@posiwise/admin-module 0.0.65 → 0.0.67

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 (138) hide show
  1. package/esm2022/index.mjs +1 -2
  2. package/esm2022/lib/admin-guard.service.mjs +3 -3
  3. package/esm2022/lib/admin-module.routing.mjs +4 -4
  4. package/esm2022/lib/admin.module.mjs +6 -6
  5. package/esm2022/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +6 -6
  6. package/esm2022/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +7 -7
  7. package/esm2022/lib/components/TOS/terms-of-service-tabs/terms-of-service-tabs.component.mjs +3 -3
  8. package/esm2022/lib/components/config/global-config-details/global-config-details.component.mjs +7 -7
  9. package/esm2022/lib/components/config/global-config-list/global-config-list.component.mjs +6 -6
  10. package/esm2022/lib/components/config/global-config-tabs/global-config-tabs.component.mjs +3 -3
  11. package/esm2022/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +6 -6
  12. package/esm2022/lib/components/contact-us/contact-us-tabs/contact-us-tabs.component.mjs +3 -3
  13. package/esm2022/lib/components/credentials/credentials/credentials.component.mjs +6 -6
  14. package/esm2022/lib/components/credentials/credentials-details/credentials-details.component.mjs +7 -7
  15. package/esm2022/lib/components/credentials/credentials-tab/credentials-tab.component.mjs +3 -3
  16. package/esm2022/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +6 -6
  17. package/esm2022/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +7 -7
  18. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +7 -7
  19. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +7 -7
  20. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-details.component.mjs +6 -6
  21. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +7 -7
  22. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +7 -7
  23. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +7 -7
  24. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +7 -7
  25. package/esm2022/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +7 -7
  26. package/esm2022/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +6 -6
  27. package/esm2022/lib/components/domain-config/domain-config-tabs/domain-config-tabs.component.mjs +3 -3
  28. package/esm2022/lib/components/faqs/faqs-list/faqs-list.component.mjs +7 -7
  29. package/esm2022/lib/components/faqs/faqs-tabs/faqs-tabs.component.mjs +3 -3
  30. package/esm2022/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.mjs +7 -7
  31. package/esm2022/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +6 -6
  32. package/esm2022/lib/components/generic/generic-insight/generic-insight.component.mjs +3 -3
  33. package/esm2022/lib/components/generic/generic-misc/generic-misc.component.mjs +6 -6
  34. package/esm2022/lib/components/generic/generic-tabs/generic-tabs.component.mjs +3 -3
  35. package/esm2022/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +7 -7
  36. package/esm2022/lib/components/login-notifications/login-notification-tabs/login-notification-tabs.component.mjs +3 -3
  37. package/esm2022/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +6 -6
  38. package/esm2022/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +7 -7
  39. package/esm2022/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +7 -7
  40. package/esm2022/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +6 -6
  41. package/esm2022/lib/components/newsletters/newsletters-insight/newsletters-insight.component.mjs +6 -6
  42. package/esm2022/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +6 -6
  43. package/esm2022/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +6 -6
  44. package/esm2022/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.mjs +8 -8
  45. package/esm2022/lib/components/permissions/permissions-details/permissions-details.component.mjs +7 -7
  46. package/esm2022/lib/components/permissions/permissions-list/permissions-list.component.mjs +6 -6
  47. package/esm2022/lib/components/permissions/permissions-tabs/permissions-tabs.component.mjs +3 -3
  48. package/esm2022/lib/components/permissions/role-details/role-details.component.mjs +7 -7
  49. package/esm2022/lib/components/permissions/roles-list/roles-list.component.mjs +6 -6
  50. package/esm2022/lib/components/products/product-details/product-details.component.mjs +7 -7
  51. package/esm2022/lib/components/products/products-insight/products-insight.component.mjs +3 -3
  52. package/esm2022/lib/components/products/products-list/products-list.component.mjs +3 -3
  53. package/esm2022/lib/components/products/products-tabs/products-tabs.component.mjs +3 -3
  54. package/esm2022/lib/components/products/users-list-for-product/users-list-for-product.component.mjs +3 -3
  55. package/esm2022/lib/components/subscriptions/subscription-agents/subscription-agents.component.mjs +7 -7
  56. package/esm2022/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +7 -7
  57. package/esm2022/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +7 -7
  58. package/esm2022/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +7 -7
  59. package/esm2022/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +3 -3
  60. package/esm2022/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +3 -3
  61. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +6 -6
  62. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.mjs +6 -6
  63. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscription-insight-tabs/subscription-insight-tabs.component.mjs +3 -3
  64. package/esm2022/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.mjs +6 -6
  65. package/esm2022/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +6 -6
  66. package/esm2022/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.mjs +8 -8
  67. package/esm2022/lib/components/tags/tags-category/tags-category.component.mjs +3 -3
  68. package/esm2022/lib/components/tags/tags-list/tags-list.component.mjs +5 -5
  69. package/esm2022/lib/components/tags/tags-tabs/tags-tabs.component.mjs +3 -3
  70. package/esm2022/lib/components/tips/tip-detail/tip-detail.component.mjs +5 -5
  71. package/esm2022/lib/components/tips/tips-list/tips-list.component.mjs +3 -3
  72. package/esm2022/lib/components/tips/tips-tabs/tips-tabs.component.mjs +3 -3
  73. package/esm2022/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +3 -3
  74. package/esm2022/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +3 -3
  75. package/esm2022/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +3 -3
  76. package/esm2022/lib/components/tracking/events/events.component.mjs +3 -3
  77. package/esm2022/lib/components/tracking/tracking-tabs/tracking-tabs.component.mjs +3 -3
  78. package/esm2022/lib/components/tracking/versions/versions.component.mjs +3 -3
  79. package/esm2022/lib/components/users/user-details/user-details.component.mjs +7 -7
  80. package/esm2022/lib/components/users/users-insight/users-insight.component.mjs +6 -6
  81. package/esm2022/lib/components/users/users-list/users-list.component.mjs +6 -6
  82. package/esm2022/lib/components/users/users-tabs/users-tabs.component.mjs +3 -3
  83. package/fesm2022/posiwise-admin-module.mjs +322 -1062
  84. package/fesm2022/posiwise-admin-module.mjs.map +1 -1
  85. package/index.d.ts +0 -1
  86. package/lib/components/TOS/terms-of-service/terms-of-service.component.d.ts +1 -1
  87. package/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.d.ts +1 -1
  88. package/lib/components/config/global-config-details/global-config-details.component.d.ts +1 -1
  89. package/lib/components/config/global-config-list/global-config-list.component.d.ts +1 -1
  90. package/lib/components/contact-us/contact-us-list/contact-us-list.component.d.ts +1 -1
  91. package/lib/components/credentials/credentials/credentials.component.d.ts +1 -1
  92. package/lib/components/credentials/credentials-details/credentials-details.component.d.ts +1 -1
  93. package/lib/components/credentials/subscription-credentials/subscription-credentials.component.d.ts +1 -1
  94. package/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.d.ts +1 -1
  95. package/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.d.ts +1 -1
  96. package/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.d.ts +1 -1
  97. package/lib/components/domain-config/domain-config-details/domain-config-details.component.d.ts +1 -1
  98. package/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.d.ts +1 -1
  99. package/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.d.ts +1 -1
  100. package/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.d.ts +1 -1
  101. package/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.d.ts +1 -1
  102. package/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.d.ts +1 -1
  103. package/lib/components/domain-config/domain-config-list/domain-config-list.component.d.ts +1 -1
  104. package/lib/components/faqs/faqs-list/faqs-list.component.d.ts +1 -1
  105. package/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.d.ts +1 -1
  106. package/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.d.ts +1 -1
  107. package/lib/components/generic/generic-misc/generic-misc.component.d.ts +1 -1
  108. package/lib/components/login-notifications/login-notification-details/login-notification-details.component.d.ts +1 -1
  109. package/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.d.ts +1 -1
  110. package/lib/components/newsletters/newsletter-details/newsletter-details.component.d.ts +1 -1
  111. package/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.d.ts +1 -1
  112. package/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.d.ts +1 -1
  113. package/lib/components/newsletters/newsletters-insight/newsletters-insight.component.d.ts +1 -1
  114. package/lib/components/newsletters/newsletters-items/newsletters-items.component.d.ts +1 -1
  115. package/lib/components/newsletters/newsletters-list/newsletters-list.component.d.ts +1 -1
  116. package/lib/components/newsletters/newsletters-tabs/newsletters-tabs.component.d.ts +2 -0
  117. package/lib/components/permissions/permissions-details/permissions-details.component.d.ts +1 -1
  118. package/lib/components/permissions/permissions-list/permissions-list.component.d.ts +1 -1
  119. package/lib/components/permissions/role-details/role-details.component.d.ts +1 -1
  120. package/lib/components/permissions/roles-list/roles-list.component.d.ts +1 -1
  121. package/lib/components/products/product-details/product-details.component.d.ts +1 -1
  122. package/lib/components/subscriptions/subscription-agents/subscription-agents.component.d.ts +1 -1
  123. package/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.d.ts +1 -1
  124. package/lib/components/subscriptions/subscription-details/subscription-details.component.d.ts +1 -1
  125. package/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.d.ts +1 -1
  126. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.d.ts +1 -1
  127. package/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.d.ts +1 -1
  128. package/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.d.ts +1 -1
  129. package/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.d.ts +1 -1
  130. package/lib/components/subscriptions/subscriptions-tabs/subscriptions-tabs.component.d.ts +2 -0
  131. package/lib/components/users/user-details/user-details.component.d.ts +1 -1
  132. package/lib/components/users/users-insight/users-insight.component.d.ts +1 -1
  133. package/lib/components/users/users-list/users-list.component.d.ts +1 -1
  134. package/package.json +3 -3
  135. package/esm2022/lib/admin.service.mjs +0 -411
  136. package/esm2022/lib/shared/models/admin.model.mjs +0 -338
  137. package/lib/admin.service.d.ts +0 -145
  138. package/lib/shared/models/admin.model.d.ts +0 -29
@@ -1,14 +1,14 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Component, Injector, QueryList, ViewChildren } from '@angular/core';
3
- import { AdminService } from '../../../../admin.service';
4
- import { AppAdmin } from '../../../../shared/models/admin.model';
3
+ import { AdminService } from '@posiwise/admin-module-utils';
4
+ import { AppAdmin } from '@posiwise/admin-module-utils';
5
5
  import { ROUTERS } from '../../../../shared/routers/routers';
6
6
  import { AppBaseComponent } from '@posiwise/app-base-component';
7
7
  import { CustomUploaderComponent } from '@posiwise/shared-components';
8
8
  import { PermissionService } from '@posiwise/common-services';
9
9
  import { ValidateForm } from '@posiwise/utils';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../../../admin.service";
11
+ import * as i1 from "@posiwise/admin-module-utils";
12
12
  import * as i2 from "@angular/common";
13
13
  import * as i3 from "@angular/forms";
14
14
  import * as i4 from "@posiwise/shared-components";
@@ -106,8 +106,8 @@ export class DomainConfigInterfaceComponent extends AppBaseComponent {
106
106
  this.submitted = false;
107
107
  });
108
108
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DomainConfigInterfaceComponent, deps: [{ token: i0.Injector }, { token: i1.AdminService }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: DomainConfigInterfaceComponent, selector: "pw-domain-config-interface", viewQueries: [{ propertyName: "uploader", predicate: CustomUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<h3>Look and Feel Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <h5>Color codes</h5>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeFirst' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeFirst' | transloco\"\n name=\"color_code_first\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_first\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_first'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSecond' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSecond' | transloco\"\n name=\"color_code_second\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_second\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_second'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeThird' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeThird' | transloco\"\n name=\"color_code_third\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_third\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_third'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTitles' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTitles' | transloco\"\n name=\"color_code_titles\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_titles\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_titles'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeText' | transloco\"\n name=\"color_code_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarBg' | transloco\"\n name=\"color_code_sidebar_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarText' | transloco\"\n name=\"color_code_sidebar_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsBg' | transloco\"\n name=\"color_code_tabs_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsText' | transloco\"\n name=\"color_code_tabs_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_text'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n <h5 class=\"my-3\">Logos</h5>\n <div>\n <p>\n The following logos are used across our platform in different pages such as the\n header in our public pages and in our dashboard.\n </p>\n </div>\n <div class=\"row\"\n matchHeight=\"card\">\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main'\"\n [previewData]=\"data['logo_main']\"\n controlName=\"logo_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Dark'\"\n [previewData]=\"data['logo_main_dark']\"\n controlName=\"logo_main_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Contrast'\"\n [previewData]=\"data['logo_main_contrast']\"\n controlName=\"logo_main_contrast\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Main'\"\n [previewData]=\"data['logo_squared_main']\"\n controlName=\"logo_squared_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Dark'\"\n [previewData]=\"data['logo_squared_dark']\"\n controlName=\"logo_squared_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Contrast'\"\n [previewData]=\"data['logo_squared_contrast']\"\n controlName=\"logo_squared_contrast\"></pw-custom-uploader>\n </div>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.CustomUploaderComponent, selector: "pw-custom-uploader", inputs: ["controlName", "previewData", "aspectRatio", "title"], outputs: ["saveEvent"] }, { kind: "component", type: i5.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i4.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText"] }, { kind: "component", type: i4.NoDataComponent, selector: "pw-no-data", inputs: ["message"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i6.TranslocoPipe, name: "transloco" }] }); }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DomainConfigInterfaceComponent, deps: [{ token: i0.Injector }, { token: i1.AdminService }], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: DomainConfigInterfaceComponent, selector: "pw-domain-config-interface", viewQueries: [{ propertyName: "uploader", predicate: CustomUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<h3>Look and Feel Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <h5>Color codes</h5>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeFirst' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeFirst' | transloco\"\n name=\"color_code_first\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_first\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_first'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSecond' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSecond' | transloco\"\n name=\"color_code_second\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_second\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_second'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeThird' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeThird' | transloco\"\n name=\"color_code_third\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_third\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_third'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTitles' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTitles' | transloco\"\n name=\"color_code_titles\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_titles\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_titles'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeText' | transloco\"\n name=\"color_code_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarBg' | transloco\"\n name=\"color_code_sidebar_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarText' | transloco\"\n name=\"color_code_sidebar_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsBg' | transloco\"\n name=\"color_code_tabs_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsText' | transloco\"\n name=\"color_code_tabs_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_text'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n <h5 class=\"my-3\">Logos</h5>\n <div>\n <p>\n The following logos are used across our platform in different pages such as the\n header in our public pages and in our dashboard.\n </p>\n </div>\n <div class=\"row\"\n matchHeight=\"card\">\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main'\"\n [previewData]=\"data['logo_main']\"\n controlName=\"logo_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Dark'\"\n [previewData]=\"data['logo_main_dark']\"\n controlName=\"logo_main_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Contrast'\"\n [previewData]=\"data['logo_main_contrast']\"\n controlName=\"logo_main_contrast\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Main'\"\n [previewData]=\"data['logo_squared_main']\"\n controlName=\"logo_squared_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Dark'\"\n [previewData]=\"data['logo_squared_dark']\"\n controlName=\"logo_squared_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Contrast'\"\n [previewData]=\"data['logo_squared_contrast']\"\n controlName=\"logo_squared_contrast\"></pw-custom-uploader>\n </div>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.CustomUploaderComponent, selector: "pw-custom-uploader", inputs: ["controlName", "previewData", "aspectRatio", "title"], outputs: ["saveEvent"] }, { kind: "component", type: i5.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration"] }, { kind: "component", type: i4.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText"] }, { kind: "component", type: i4.NoDataComponent, selector: "pw-no-data", inputs: ["message"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i6.TranslocoPipe, name: "transloco" }] }); }
111
111
  }
112
112
  __decorate([
113
113
  ValidateForm('form'),
@@ -115,11 +115,11 @@ __decorate([
115
115
  __metadata("design:paramtypes", []),
116
116
  __metadata("design:returntype", void 0)
117
117
  ], DomainConfigInterfaceComponent.prototype, "onSave", null);
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DomainConfigInterfaceComponent, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DomainConfigInterfaceComponent, decorators: [{
119
119
  type: Component,
120
120
  args: [{ selector: 'pw-domain-config-interface', template: "<h3>Look and Feel Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <h5>Color codes</h5>\n <div class=\"row\">\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeFirst' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeFirst' | transloco\"\n name=\"color_code_first\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_first\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_first'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSecond' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSecond' | transloco\"\n name=\"color_code_second\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_second\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_second'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeThird' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeThird' | transloco\"\n name=\"color_code_third\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_third\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_third'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTitles' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTitles' | transloco\"\n name=\"color_code_titles\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_titles\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_titles'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeText' | transloco\"\n name=\"color_code_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarBg' | transloco\"\n name=\"color_code_sidebar_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeSidebarText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeSidebarText' | transloco\"\n name=\"color_code_sidebar_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_sidebar_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_sidebar_text'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\"></div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsBg' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsBg' | transloco\"\n name=\"color_code_tabs_bg\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_bg\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_bg'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [label]=\"'Admin.DomainConfig.ColorCodeTabsText' | transloco\"\n [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.ColorCodeTabsText' | transloco\"\n name=\"color_code_tabs_text\">\n <input type=\"color\"\n class=\"form-control\"\n formControlName=\"color_code_tabs_text\"\n [ngClass]=\"{ 'is-invalid': submitted && f['color_code_tabs_text'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n <h5 class=\"my-3\">Logos</h5>\n <div>\n <p>\n The following logos are used across our platform in different pages such as the\n header in our public pages and in our dashboard.\n </p>\n </div>\n <div class=\"row\"\n matchHeight=\"card\">\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main'\"\n [previewData]=\"data['logo_main']\"\n controlName=\"logo_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Dark'\"\n [previewData]=\"data['logo_main_dark']\"\n controlName=\"logo_main_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoMainContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoMainContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader [aspectRatio]=\"'fullLogo'\"\n (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Main Contrast'\"\n [previewData]=\"data['logo_main_contrast']\"\n controlName=\"logo_main_contrast\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredMain' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredMain' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Main'\"\n [previewData]=\"data['logo_squared_main']\"\n controlName=\"logo_squared_main\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredDark' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredDark' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Dark'\"\n [previewData]=\"data['logo_squared_dark']\"\n controlName=\"logo_squared_dark\"></pw-custom-uploader>\n </div>\n <div class=\"col-md-4 mt-3\">\n <label>{{ 'Admin.DomainConfig.LogoSquaredContrast' | transloco }}\n <span class=\"info-circle\">\n <span class=\"tooltiptext gradient-custom-branding\">{{\n 'Admin.DomainConfig.Tooltip.LogoSquaredContrast' | transloco\n }}</span>\n </span>\n </label>\n <pw-custom-uploader (saveEvent)=\"saveFile($event)\"\n [title]=\"'Logo Squared Contrast'\"\n [previewData]=\"data['logo_squared_contrast']\"\n controlName=\"logo_squared_contrast\"></pw-custom-uploader>\n </div>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n" }]
121
121
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AdminService }], propDecorators: { uploader: [{
122
122
  type: ViewChildren,
123
123
  args: [CustomUploaderComponent]
124
124
  }], onSave: [] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1pbnRlcmZhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2RvbWFpbi1jb25maWcvZG9tYWluLWNvbmZpZy1kZXRhaWxzL2RvbWFpbi1jb25maWctaW50ZXJmYWNlL2RvbWFpbi1jb25maWctaW50ZXJmYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLWludGVyZmFjZS9kb21haW4tY29uZmlnLWludGVyZmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsUUFBUSxFQUFVLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQU0vQyxNQUFNLE9BQU8sOEJBQ1QsU0FBUSxnQkFBZ0I7SUFxQnhCLFlBQVksUUFBa0IsRUFBVSxZQUEwQjtRQUM5RCxLQUFLLENB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QUFZLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNYLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDUixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNoQixDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDcEU7b0JBQ0ksV0FBVyxFQUFFO3dCQUNULEtBQUssRUFBRSxPQUFPO3FCQUNqQjtpQkFDSixDQUNKLENBQUM7WUFDTixDQUFDO1NBQ0osQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUhRLDhCQUE4QjtrR0FBOUIsOEJBQThCLCtGQUl6Qix1QkFBdUIsdUVDcEJ6QyxtMlRBNE5BOztBRDdHSTtJQURDLFlBQVksQ0FBQyxNQUFNLENBQUM7Ozs7NERBNEJwQjsyRkExSFEsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNJLDRCQUE0Qjt3R0FPQyxRQUFRO3NCQUE5QyxZQUFZO3VCQUFDLHVCQUF1QjtnQkEyRnJDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9hZG1pbi5zZXJ2aWNlJztcbmltcG9ydCB7IERvbWFpbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvZG9tYWluLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQWRtaW4gfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbW9kZWxzL2FkbWluLm1vZGVsJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL3NoYXJlZC1jb21wb25lbnRzJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZGF0ZUZvcm0gfSBmcm9tICdAcG9zaXdpc2UvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWRvbWFpbi1jb25maWctaW50ZXJmYWNlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG9tYWluLWNvbmZpZy1pbnRlcmZhY2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERvbWFpbkNvbmZpZ0ludGVyZmFjZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gICAgQFZpZXdDaGlsZHJlbihDdXN0b21VcGxvYWRlckNvbXBvbmVudCkgdXBsb2FkZXI6IFF1ZXJ5TGlzdDxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG5cbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICBpZDogbnVtYmVyO1xuXG4gICAgZGF0YTogRG9tYWluQ29uZmlnO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgY2hpbGRMaXN0ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZvcm0gPSBBcHBBZG1pbi5kb21haW5Db25maWdJbnRlcmZhY2VGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IE51bWJlcihwYXJhbXNbJ2lkJ10pO1xuICAgICAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldERvbWFpbkNvbmZpZ0RldGFpbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnVwbG9hZGVyLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRMaXN0ID0gdGhpcy51cGxvYWRlci50b0FycmF5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RG9tYWluQ29uZmlnRGV0YWlscygpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldERvbWFpbkNvbmZpZ0J5SWQodGhpcy5pZCwgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBEb21haW5Db25maWcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLmRhdGEpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlRmlsZShldmVudCkge1xuICAgICAgICBjb25zdCBpdGVtOiBDdXN0b21VcGxvYWRlckNvbXBvbmVudCA9IHRoaXMuY2hpbGRMaXN0LmZpbmQoXG4gICAgICAgICAgICB4ID0+IHguY29udHJvbE5hbWUgPT09IGV2ZW50Lm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHsgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkIH07XG4gICAgICAgIGlmIChldmVudC5maWxlKSB7XG4gICAgICAgICAgICBkYXRhW2V2ZW50Lm5hbWVdID0gZXZlbnQuZmlsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGFbYHJlbW92ZV8ke2V2ZW50Lm5hbWV9YF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBpZiAoa2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiQgPSB0aGlzLmlkXG4gICAgICAgICAgICA/IHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmlkLCBmb3JtRGF0YSlcbiAgICAgICAgICAgIDogdGhpcy5hZG1pblNlcnZpY2UuY3JlYXRlRG9tYWluQ29uZmlnKGZvcm1EYXRhKTtcblxuICAgICAgICBzdWIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXREb21haW5Db25maWdCeUlkKHRoaXMuaWQsIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY2xlYXJWYWx1ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhW2V2ZW50Lm5hbWVdID0gcmVzcG9uc2VbZXZlbnQubmFtZV07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmJ1dHRvbkJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0ub25DbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAVmFsaWRhdGVGb3JtKCdmb3JtJylcbiAgICBvblNhdmUoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5zdWJzY3JpcHRpb25JZFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhKS5maWx0ZXIoKFtfa2V5LCB2YWx1ZV0pID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJylcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc3ViJCA9IHRoaXMuaWRcbiAgICAgICAgICAgID8gdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuaWQsIGZpbHRlcmVkRGF0YSlcbiAgICAgICAgICAgIDogdGhpcy5hZG1pblNlcnZpY2UuY3JlYXRlRG9tYWluQ29uZmlnKGZpbHRlcmVkRGF0YSk7XG4gICAgICAgIHN1YiQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5Eb21haW5Db25maWcuVXBkYXRlZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLnJvdXRlcnMuZG9tYWluQ29uZmlnRGV0YWlsc30ke3RoaXMuaWQgPyB0aGlzLmlkIDogcmVzLmlkfWBdLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYklkOiAnQnVpbGQnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGgzPkxvb2sgYW5kIEZlZWwgQ29uZmlnPC9oMz5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8uaG9zdF9uYW1lXCI+XG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgPGg1PkNvbG9yIGNvZGVzPC9oNT5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlRmlyc3QnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVGaXJzdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX2ZpcnN0XCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvcl9jb2RlX2ZpcnN0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV9maXJzdCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVTZWNvbmQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVTZWNvbmQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV9zZWNvbmRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfc2Vjb25kXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV9zZWNvbmQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlVGhpcmQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVUaGlyZCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX3RoaXJkXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvcl9jb2RlX3RoaXJkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV90aGlyZCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVUaXRsZXMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVUaXRsZXMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV90aXRsZXNcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfdGl0bGVzXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV90aXRsZXMnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlVGV4dCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbG9yQ29kZVRleHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV90ZXh0XCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvcl9jb2RlX3RleHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3RleHQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlU2lkZWJhckJnJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlU2lkZWJhckJnJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbG9yX2NvZGVfc2lkZWJhcl9iZ1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JfY29kZV9zaWRlYmFyX2JnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV9zaWRlYmFyX2JnJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbG9yQ29kZVNpZGViYXJUZXh0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlU2lkZWJhclRleHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV9zaWRlYmFyX3RleHRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfc2lkZWJhcl90ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV9zaWRlYmFyX3RleHQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlVGFic0JnJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlVGFic0JnJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbG9yX2NvZGVfdGFic19iZ1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JfY29kZV90YWJzX2JnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV90YWJzX2JnJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbG9yQ29kZVRhYnNUZXh0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlVGFic1RleHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV90YWJzX3RleHRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfdGFic190ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV90YWJzX3RleHQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZCBtdC0zXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAoY2xpY2spPVwiYmFjaygpXCI+XG4gICAgICAgIHt7ICdCdXR0b24uQ2FuY2VsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPnt7ICdCdXR0b24uU3VibWl0JyB8IHRyYW5zbG9jbyB9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxoNSBjbGFzcz1cIm15LTNcIj5Mb2dvczwvaDU+XG4gICAgPGRpdj5cbiAgICAgIDxwPlxuICAgICAgICBUaGUgZm9sbG93aW5nIGxvZ29zIGFyZSB1c2VkIGFjcm9zcyBvdXIgcGxhdGZvcm0gaW4gZGlmZmVyZW50IHBhZ2VzIHN1Y2ggYXMgdGhlXG4gICAgICAgIGhlYWRlciBpbiBvdXIgcHVibGljIHBhZ2VzIGFuZCBpbiBvdXIgZGFzaGJvYXJkLlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxuICAgICAgbWF0Y2hIZWlnaHQ9XCJjYXJkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtM1wiPlxuICAgICAgICA8bGFiZWw+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Mb2dvTWFpbicgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkxvZ29NYWluJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgICAgICAoc2F2ZUV2ZW50KT1cInNhdmVGaWxlKCRldmVudClcIlxuICAgICAgICAgIFt0aXRsZV09XCInTG9nbyBNYWluJ1wiXG4gICAgICAgICAgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2xvZ29fbWFpbiddXCJcbiAgICAgICAgICBjb250cm9sTmFtZT1cImxvZ29fbWFpblwiPjwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtM1wiPlxuICAgICAgICA8bGFiZWw+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Mb2dvTWFpbkRhcmsnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvTWFpbkRhcmsnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgW2FzcGVjdFJhdGlvXT1cIidmdWxsTG9nbydcIlxuICAgICAgICAgIChzYXZlRXZlbnQpPVwic2F2ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidMb2dvIE1haW4gRGFyaydcIlxuICAgICAgICAgIFtwcmV2aWV3RGF0YV09XCJkYXRhWydsb2dvX21haW5fZGFyayddXCJcbiAgICAgICAgICBjb250cm9sTmFtZT1cImxvZ29fbWFpbl9kYXJrXCI+PC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0zXCI+XG4gICAgICAgIDxsYWJlbD57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkxvZ29NYWluQ29udHJhc3QnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvTWFpbkNvbnRyYXN0JyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgICAgICAoc2F2ZUV2ZW50KT1cInNhdmVGaWxlKCRldmVudClcIlxuICAgICAgICAgIFt0aXRsZV09XCInTG9nbyBNYWluIENvbnRyYXN0J1wiXG4gICAgICAgICAgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2xvZ29fbWFpbl9jb250cmFzdCddXCJcbiAgICAgICAgICBjb250cm9sTmFtZT1cImxvZ29fbWFpbl9jb250cmFzdFwiPjwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtM1wiPlxuICAgICAgICA8bGFiZWw+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Mb2dvU3F1YXJlZE1haW4nIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvU3F1YXJlZE1haW4nIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJzYXZlRmlsZSgkZXZlbnQpXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0xvZ28gU3F1YXJlZCBNYWluJ1wiXG4gICAgICAgICAgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2xvZ29fc3F1YXJlZF9tYWluJ11cIlxuICAgICAgICAgIGNvbnRyb2xOYW1lPVwibG9nb19zcXVhcmVkX21haW5cIj48L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTNcIj5cbiAgICAgICAgPGxhYmVsPnt7ICdBZG1pbi5Eb21haW5Db25maWcuTG9nb1NxdWFyZWREYXJrJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuTG9nb1NxdWFyZWREYXJrJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwic2F2ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidMb2dvIFNxdWFyZWQgRGFyaydcIlxuICAgICAgICAgIFtwcmV2aWV3RGF0YV09XCJkYXRhWydsb2dvX3NxdWFyZWRfZGFyayddXCJcbiAgICAgICAgICBjb250cm9sTmFtZT1cImxvZ29fc3F1YXJlZF9kYXJrXCI+PC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0zXCI+XG4gICAgICAgIDxsYWJlbD57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkxvZ29TcXVhcmVkQ29udHJhc3QnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvU3F1YXJlZENvbnRyYXN0JyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwic2F2ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidMb2dvIFNxdWFyZWQgQ29udHJhc3QnXCJcbiAgICAgICAgICBbcHJldmlld0RhdGFdPVwiZGF0YVsnbG9nb19zcXVhcmVkX2NvbnRyYXN0J11cIlxuICAgICAgICAgIGNvbnRyb2xOYW1lPVwibG9nb19zcXVhcmVkX2NvbnRyYXN0XCI+PC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy1jb250YWluZXI+XG48ZGl2ICpuZ0lmPVwiIWRhdGE/Lmhvc3RfbmFtZSAmJiAhaXNMb2FkaW5nXCI+XG4gIDxwdy1uby1kYXRhIFttZXNzYWdlXT1cIidBZG1pbi5Eb21haW5Db25maWcuRW5hYmxlQ29uZmlnVGFiJyB8IHRyYW5zbG9jb1wiPiA8L3B3LW5vLWRhdGE+XG48L2Rpdj5cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1pbnRlcmZhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2RvbWFpbi1jb25maWcvZG9tYWluLWNvbmZpZy1kZXRhaWxzL2RvbWFpbi1jb25maWctaW50ZXJmYWNlL2RvbWFpbi1jb25maWctaW50ZXJmYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLWludGVyZmFjZS9kb21haW4tY29uZmlnLWludGVyZmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsUUFBUSxFQUFVLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQU0vQyxNQUFNLE9BQU8sOEJBQ1QsU0FBUSxnQkFBZ0I7SUFxQnhCLFlBQVksUUFBa0IsRUFBVSxZQUEwQjtRQUM5RCxLQUFLLENB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QUFZLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNYLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDUixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNoQixDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDcEU7b0JBQ0ksV0FBVyxFQUFFO3dCQUNULEtBQUssRUFBRSxPQUFPO3FCQUNqQjtpQkFDSixDQUNKLENBQUM7WUFDTixDQUFDO1NBQ0osQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUhRLDhCQUE4QjtrR0FBOUIsOEJBQThCLCtGQUl6Qix1QkFBdUIsdUVDcEJ6QyxtMlRBNE5BOztBRDdHSTtJQURDLFlBQVksQ0FBQyxNQUFNLENBQUM7Ozs7NERBNEJwQjsyRkExSFEsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNJLDRCQUE0Qjt3R0FPQyxRQUFRO3NCQUE5QyxZQUFZO3VCQUFDLHVCQUF1QjtnQkEyRnJDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IERvbWFpbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvZG9tYWluLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQWRtaW4gfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL3NoYXJlZC1jb21wb25lbnRzJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZGF0ZUZvcm0gfSBmcm9tICdAcG9zaXdpc2UvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWRvbWFpbi1jb25maWctaW50ZXJmYWNlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG9tYWluLWNvbmZpZy1pbnRlcmZhY2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERvbWFpbkNvbmZpZ0ludGVyZmFjZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gICAgQFZpZXdDaGlsZHJlbihDdXN0b21VcGxvYWRlckNvbXBvbmVudCkgdXBsb2FkZXI6IFF1ZXJ5TGlzdDxDdXN0b21VcGxvYWRlckNvbXBvbmVudD47XG5cbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICBpZDogbnVtYmVyO1xuXG4gICAgZGF0YTogRG9tYWluQ29uZmlnO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgY2hpbGRMaXN0ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZvcm0gPSBBcHBBZG1pbi5kb21haW5Db25maWdJbnRlcmZhY2VGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IE51bWJlcihwYXJhbXNbJ2lkJ10pO1xuICAgICAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldERvbWFpbkNvbmZpZ0RldGFpbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnVwbG9hZGVyLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRMaXN0ID0gdGhpcy51cGxvYWRlci50b0FycmF5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RG9tYWluQ29uZmlnRGV0YWlscygpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldERvbWFpbkNvbmZpZ0J5SWQodGhpcy5pZCwgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBEb21haW5Db25maWcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLmRhdGEpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlRmlsZShldmVudCkge1xuICAgICAgICBjb25zdCBpdGVtOiBDdXN0b21VcGxvYWRlckNvbXBvbmVudCA9IHRoaXMuY2hpbGRMaXN0LmZpbmQoXG4gICAgICAgICAgICB4ID0+IHguY29udHJvbE5hbWUgPT09IGV2ZW50Lm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHsgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkIH07XG4gICAgICAgIGlmIChldmVudC5maWxlKSB7XG4gICAgICAgICAgICBkYXRhW2V2ZW50Lm5hbWVdID0gZXZlbnQuZmlsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGFbYHJlbW92ZV8ke2V2ZW50Lm5hbWV9YF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBpZiAoa2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCBkYXRhW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiQgPSB0aGlzLmlkXG4gICAgICAgICAgICA/IHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZURvbWFpbkNvbmZpZyh0aGlzLmlkLCBmb3JtRGF0YSlcbiAgICAgICAgICAgIDogdGhpcy5hZG1pblNlcnZpY2UuY3JlYXRlRG9tYWluQ29uZmlnKGZvcm1EYXRhKTtcblxuICAgICAgICBzdWIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXREb21haW5Db25maWdCeUlkKHRoaXMuaWQsIHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY2xlYXJWYWx1ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhW2V2ZW50Lm5hbWVdID0gcmVzcG9uc2VbZXZlbnQubmFtZV07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmJ1dHRvbkJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0ub25DbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAVmFsaWRhdGVGb3JtKCdmb3JtJylcbiAgICBvblNhdmUoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9pZDogdGhpcy5zdWJzY3JpcHRpb25JZFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhkYXRhKS5maWx0ZXIoKFtfa2V5LCB2YWx1ZV0pID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJylcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc3ViJCA9IHRoaXMuaWRcbiAgICAgICAgICAgID8gdGhpcy5hZG1pblNlcnZpY2UudXBkYXRlRG9tYWluQ29uZmlnKHRoaXMuaWQsIGZpbHRlcmVkRGF0YSlcbiAgICAgICAgICAgIDogdGhpcy5hZG1pblNlcnZpY2UuY3JlYXRlRG9tYWluQ29uZmlnKGZpbHRlcmVkRGF0YSk7XG4gICAgICAgIHN1YiQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5Eb21haW5Db25maWcuVXBkYXRlZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLnJvdXRlcnMuZG9tYWluQ29uZmlnRGV0YWlsc30ke3RoaXMuaWQgPyB0aGlzLmlkIDogcmVzLmlkfWBdLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYklkOiAnQnVpbGQnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGgzPkxvb2sgYW5kIEZlZWwgQ29uZmlnPC9oMz5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8uaG9zdF9uYW1lXCI+XG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgPGg1PkNvbG9yIGNvZGVzPC9oNT5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlRmlyc3QnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVGaXJzdCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX2ZpcnN0XCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvcl9jb2RlX2ZpcnN0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV9maXJzdCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVTZWNvbmQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVTZWNvbmQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV9zZWNvbmRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfc2Vjb25kXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV9zZWNvbmQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlVGhpcmQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVUaGlyZCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb2xvcl9jb2RlX3RoaXJkXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvcl9jb2RlX3RoaXJkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV90aGlyZCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db2xvckNvZGVUaXRsZXMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db2xvckNvZGVUaXRsZXMnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV90aXRsZXNcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfdGl0bGVzXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV90aXRsZXMnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlVGV4dCcgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbG9yQ29kZVRleHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV90ZXh0XCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb2xvcl9jb2RlX3RleHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb2xvcl9jb2RlX3RleHQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlU2lkZWJhckJnJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlU2lkZWJhckJnJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbG9yX2NvZGVfc2lkZWJhcl9iZ1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JfY29kZV9zaWRlYmFyX2JnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV9zaWRlYmFyX2JnJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbG9yQ29kZVNpZGViYXJUZXh0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlU2lkZWJhclRleHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV9zaWRlYmFyX3RleHRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfc2lkZWJhcl90ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV9zaWRlYmFyX3RleHQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29sb3JDb2RlVGFic0JnJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlVGFic0JnJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbG9yX2NvZGVfdGFic19iZ1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JfY29kZV90YWJzX2JnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV90YWJzX2JnJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbG9yQ29kZVRhYnNUZXh0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29sb3JDb2RlVGFic1RleHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29sb3JfY29kZV90YWJzX3RleHRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbG9yX2NvZGVfdGFic190ZXh0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29sb3JfY29kZV90YWJzX3RleHQnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZCBtdC0zXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAoY2xpY2spPVwiYmFjaygpXCI+XG4gICAgICAgIHt7ICdCdXR0b24uQ2FuY2VsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPnt7ICdCdXR0b24uU3VibWl0JyB8IHRyYW5zbG9jbyB9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxoNSBjbGFzcz1cIm15LTNcIj5Mb2dvczwvaDU+XG4gICAgPGRpdj5cbiAgICAgIDxwPlxuICAgICAgICBUaGUgZm9sbG93aW5nIGxvZ29zIGFyZSB1c2VkIGFjcm9zcyBvdXIgcGxhdGZvcm0gaW4gZGlmZmVyZW50IHBhZ2VzIHN1Y2ggYXMgdGhlXG4gICAgICAgIGhlYWRlciBpbiBvdXIgcHVibGljIHBhZ2VzIGFuZCBpbiBvdXIgZGFzaGJvYXJkLlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxuICAgICAgbWF0Y2hIZWlnaHQ9XCJjYXJkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtM1wiPlxuICAgICAgICA8bGFiZWw+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Mb2dvTWFpbicgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tY2lyY2xlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkxvZ29NYWluJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgICAgICAoc2F2ZUV2ZW50KT1cInNhdmVGaWxlKCRldmVudClcIlxuICAgICAgICAgIFt0aXRsZV09XCInTG9nbyBNYWluJ1wiXG4gICAgICAgICAgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2xvZ29fbWFpbiddXCJcbiAgICAgICAgICBjb250cm9sTmFtZT1cImxvZ29fbWFpblwiPjwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtM1wiPlxuICAgICAgICA8bGFiZWw+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Mb2dvTWFpbkRhcmsnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvTWFpbkRhcmsnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgW2FzcGVjdFJhdGlvXT1cIidmdWxsTG9nbydcIlxuICAgICAgICAgIChzYXZlRXZlbnQpPVwic2F2ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidMb2dvIE1haW4gRGFyaydcIlxuICAgICAgICAgIFtwcmV2aWV3RGF0YV09XCJkYXRhWydsb2dvX21haW5fZGFyayddXCJcbiAgICAgICAgICBjb250cm9sTmFtZT1cImxvZ29fbWFpbl9kYXJrXCI+PC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0zXCI+XG4gICAgICAgIDxsYWJlbD57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkxvZ29NYWluQ29udHJhc3QnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvTWFpbkNvbnRyYXN0JyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIFthc3BlY3RSYXRpb109XCInZnVsbExvZ28nXCJcbiAgICAgICAgICAoc2F2ZUV2ZW50KT1cInNhdmVGaWxlKCRldmVudClcIlxuICAgICAgICAgIFt0aXRsZV09XCInTG9nbyBNYWluIENvbnRyYXN0J1wiXG4gICAgICAgICAgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2xvZ29fbWFpbl9jb250cmFzdCddXCJcbiAgICAgICAgICBjb250cm9sTmFtZT1cImxvZ29fbWFpbl9jb250cmFzdFwiPjwvcHctY3VzdG9tLXVwbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtM1wiPlxuICAgICAgICA8bGFiZWw+e3sgJ0FkbWluLkRvbWFpbkNvbmZpZy5Mb2dvU3F1YXJlZE1haW4nIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvU3F1YXJlZE1haW4nIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwdy1jdXN0b20tdXBsb2FkZXIgKHNhdmVFdmVudCk9XCJzYXZlRmlsZSgkZXZlbnQpXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0xvZ28gU3F1YXJlZCBNYWluJ1wiXG4gICAgICAgICAgW3ByZXZpZXdEYXRhXT1cImRhdGFbJ2xvZ29fc3F1YXJlZF9tYWluJ11cIlxuICAgICAgICAgIGNvbnRyb2xOYW1lPVwibG9nb19zcXVhcmVkX21haW5cIj48L3B3LWN1c3RvbS11cGxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTNcIj5cbiAgICAgICAgPGxhYmVsPnt7ICdBZG1pbi5Eb21haW5Db25maWcuTG9nb1NxdWFyZWREYXJrJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby1jaXJjbGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuTG9nb1NxdWFyZWREYXJrJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwic2F2ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidMb2dvIFNxdWFyZWQgRGFyaydcIlxuICAgICAgICAgIFtwcmV2aWV3RGF0YV09XCJkYXRhWydsb2dvX3NxdWFyZWRfZGFyayddXCJcbiAgICAgICAgICBjb250cm9sTmFtZT1cImxvZ29fc3F1YXJlZF9kYXJrXCI+PC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0zXCI+XG4gICAgICAgIDxsYWJlbD57eyAnQWRtaW4uRG9tYWluQ29uZmlnLkxvZ29TcXVhcmVkQ29udHJhc3QnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWNpcmNsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Mb2dvU3F1YXJlZENvbnRyYXN0JyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctY3VzdG9tLXVwbG9hZGVyIChzYXZlRXZlbnQpPVwic2F2ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidMb2dvIFNxdWFyZWQgQ29udHJhc3QnXCJcbiAgICAgICAgICBbcHJldmlld0RhdGFdPVwiZGF0YVsnbG9nb19zcXVhcmVkX2NvbnRyYXN0J11cIlxuICAgICAgICAgIGNvbnRyb2xOYW1lPVwibG9nb19zcXVhcmVkX2NvbnRyYXN0XCI+PC9wdy1jdXN0b20tdXBsb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy1jb250YWluZXI+XG48ZGl2ICpuZ0lmPVwiIWRhdGE/Lmhvc3RfbmFtZSAmJiAhaXNMb2FkaW5nXCI+XG4gIDxwdy1uby1kYXRhIFttZXNzYWdlXT1cIidBZG1pbi5Eb21haW5Db25maWcuRW5hYmxlQ29uZmlnVGFiJyB8IHRyYW5zbG9jb1wiPiA8L3B3LW5vLWRhdGE+XG48L2Rpdj5cbiJdfQ==
@@ -1,13 +1,13 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Component, Injector } from '@angular/core';
3
- import { AdminService } from '../../../../admin.service';
4
- import { AppAdmin } from '../../../../shared/models/admin.model';
3
+ import { AdminService } from '@posiwise/admin-module-utils';
4
+ import { AppAdmin } from '@posiwise/admin-module-utils';
5
5
  import { ROUTERS } from '../../../../shared/routers/routers';
6
6
  import { AppBaseComponent } from '@posiwise/app-base-component';
7
7
  import { PermissionService } from '@posiwise/common-services';
8
8
  import { ValidateForm } from '@posiwise/utils';
9
9
  import * as i0 from "@angular/core";
10
- import * as i1 from "../../../../admin.service";
10
+ import * as i1 from "@posiwise/admin-module-utils";
11
11
  import * as i2 from "@angular/common";
12
12
  import * as i3 from "@angular/forms";
13
13
  import * as i4 from "primeng/progressspinner";
@@ -68,8 +68,8 @@ export class DomainConfigOrganizationComponent extends AppBaseComponent {
68
68
  this.submitted = false;
69
69
  });
70
70
  }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DomainConfigOrganizationComponent, deps: [{ token: i0.Injector }, { token: i1.AdminService }], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: DomainConfigOrganizationComponent, selector: "pw-domain-config-organization", usesInheritance: true, ngImport: i0, template: "<h3>Organization Related Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyHeader' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyHeader' | transloco\"\n name=\"company_header\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_header\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_header'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyTitle' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyTitle' | transloco\"\n name=\"company_title\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_title'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyKeywords' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyKeywords' | transloco\"\n name=\"company_keywords\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_keywords\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_keywords'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyDescription' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyDescription' | transloco\"\n name=\"company_description\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_description\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_description'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCountry' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCountry' | transloco\"\n name=\"company_country\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_country\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_country'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyAddress' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyAddress' | transloco\"\n name=\"company_address\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_address\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_address'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCity' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCity' | transloco\"\n name=\"company_city\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCityCode' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCityCode' | transloco\"\n name=\"company_city_code\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city_code\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city_code'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyVatNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyVatNumber' | transloco\"\n name=\"company_vat_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_vat_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_vat_number'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyPhoneNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyPhoneNumber' | transloco\"\n name=\"company_phone_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_phone_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_phone_number'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i5.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText"] }, { kind: "component", type: i5.NoDataComponent, selector: "pw-no-data", inputs: ["message"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i6.TranslocoPipe, name: "transloco" }] }); }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DomainConfigOrganizationComponent, deps: [{ token: i0.Injector }, { token: i1.AdminService }], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: DomainConfigOrganizationComponent, selector: "pw-domain-config-organization", usesInheritance: true, ngImport: i0, template: "<h3>Organization Related Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyHeader' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyHeader' | transloco\"\n name=\"company_header\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_header\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_header'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyTitle' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyTitle' | transloco\"\n name=\"company_title\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_title'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyKeywords' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyKeywords' | transloco\"\n name=\"company_keywords\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_keywords\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_keywords'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyDescription' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyDescription' | transloco\"\n name=\"company_description\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_description\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_description'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCountry' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCountry' | transloco\"\n name=\"company_country\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_country\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_country'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyAddress' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyAddress' | transloco\"\n name=\"company_address\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_address\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_address'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCity' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCity' | transloco\"\n name=\"company_city\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCityCode' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCityCode' | transloco\"\n name=\"company_city_code\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city_code\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city_code'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyVatNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyVatNumber' | transloco\"\n name=\"company_vat_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_vat_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_vat_number'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyPhoneNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyPhoneNumber' | transloco\"\n name=\"company_phone_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_phone_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_phone_number'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration"] }, { kind: "component", type: i5.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText"] }, { kind: "component", type: i5.NoDataComponent, selector: "pw-no-data", inputs: ["message"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i6.TranslocoPipe, name: "transloco" }] }); }
73
73
  }
74
74
  __decorate([
75
75
  ValidateForm('form'),
@@ -77,8 +77,8 @@ __decorate([
77
77
  __metadata("design:paramtypes", []),
78
78
  __metadata("design:returntype", void 0)
79
79
  ], DomainConfigOrganizationComponent.prototype, "onSave", null);
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DomainConfigOrganizationComponent, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DomainConfigOrganizationComponent, decorators: [{
81
81
  type: Component,
82
82
  args: [{ selector: 'pw-domain-config-organization', template: "<h3>Organization Related Config</h3>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<ng-container *ngIf=\"data?.host_name\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyHeader' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyHeader' | transloco\"\n name=\"company_header\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_header\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_header'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyTitle' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyTitle' | transloco\"\n name=\"company_title\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_title'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyKeywords' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyKeywords' | transloco\"\n name=\"company_keywords\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_keywords\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_keywords'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-6\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyDescription' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyDescription' | transloco\"\n name=\"company_description\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_description\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_description'].errors }\" />\n </pw-input-container>\n </div>\n\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCountry' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCountry' | transloco\"\n name=\"company_country\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_country\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_country'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyAddress' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyAddress' | transloco\"\n name=\"company_address\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_address\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_address'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCity' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCity' | transloco\"\n name=\"company_city\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyCityCode' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyCityCode' | transloco\"\n name=\"company_city_code\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_city_code\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_city_code'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyVatNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyVatNumber' | transloco\"\n name=\"company_vat_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_vat_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_vat_number'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-3\">\n <pw-input-container [showTooltip]=\"true\"\n [tooltipText]=\"'Admin.DomainConfig.Tooltip.CompanyPhoneNumber' | transloco\"\n [label]=\"'Admin.DomainConfig.CompanyPhoneNumber' | transloco\"\n name=\"company_phone_number\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"company_phone_number\"\n [ngClass]=\"{ 'is-invalid': submitted && f['company_phone_number'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\">{{ 'Button.Submit' | transloco }}</button>\n </div>\n </form>\n</ng-container>\n<div *ngIf=\"!data?.host_name && !isLoading\">\n <pw-no-data [message]=\"'Admin.DomainConfig.EnableConfigTab' | transloco\"> </pw-no-data>\n</div>\n" }]
83
83
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AdminService }], propDecorators: { onSave: [] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1vcmdhbml6YXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2RvbWFpbi1jb25maWcvZG9tYWluLWNvbmZpZy1kZXRhaWxzL2RvbWFpbi1jb25maWctb3JnYW5pemF0aW9uL2RvbWFpbi1jb25maWctb3JnYW5pemF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLW9yZ2FuaXphdGlvbi9kb21haW4tY29uZmlnLW9yZ2FuaXphdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQU0vQyxNQUFNLE9BQU8saUNBQWtDLFNBQVEsZ0JBQWdCO0lBZW5FLFlBQVksUUFBa0IsRUFBVSxZQUEwQjtRQUM5RCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEb0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFabEUs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Q0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTNFUSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyw0RkNmOUMsbWtNQXVJQTs7QUR4RUk7SUFEQyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7OytEQTRCcEI7MkZBM0VRLGlDQUFpQztrQkFKN0MsU0FBUzsrQkFDSSwrQkFBK0I7d0dBbUR6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9hZG1pbi5zZXJ2aWNlJztcbmltcG9ydCB7IERvbWFpbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvZG9tYWluLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQWRtaW4gfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbW9kZWxzL2FkbWluLm1vZGVsJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZGF0ZUZvcm0gfSBmcm9tICdAcG9zaXdpc2UvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWRvbWFpbi1jb25maWctb3JnYW5pemF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG9tYWluLWNvbmZpZy1vcmdhbml6YXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERvbWFpbkNvbmZpZ09yZ2FuaXphdGlvbkNvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBzdWJtaXR0ZWQgPSBmYWxzZTtcblxuICAgIGlkOiBudW1iZXI7XG5cbiAgICBkYXRhOiBEb21haW5Db25maWc7XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG5cbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZvcm0gPSBBcHBBZG1pbi5kb21haW5Db25maWdPcmdhbml6YXRpb25Gb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IE51bWJlcihwYXJhbXNbJ2lkJ10pO1xuICAgICAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldERvbWFpbkNvbmZpZ0RldGFpbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREb21haW5Db25maWdEZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0RG9tYWluQ29uZmlnQnlJZCh0aGlzLmlkLCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IERvbWFpbkNvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMuZGF0YSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBWYWxpZGF0ZUZvcm0oJ2Zvcm0nKVxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZpbHRlcigoW18sIHZdKSA9PiB2ICE9PSBudWxsICYmIHYgIT09ICcnKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzdWIkID0gdGhpcy5pZFxuICAgICAgICAgICAgPyB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5pZCwgZmlsdGVyZWREYXRhKVxuICAgICAgICAgICAgOiB0aGlzLmFkbWluU2VydmljZS5jcmVhdGVEb21haW5Db25maWcoZmlsdGVyZWREYXRhKTtcbiAgICAgICAgc3ViJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkRvbWFpbkNvbmZpZy5VcGRhdGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMucm91dGVycy5kb21haW5Db25maWdEZXRhaWxzfSR7dGhpcy5pZCA/IHRoaXMuaWQgOiByZXMuaWR9YF0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSWQ6ICdJbnRlZ3JhdGlvbnMnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGgzPk9yZ2FuaXphdGlvbiBSZWxhdGVkIENvbmZpZzwvaDM+XG48ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGE/Lmhvc3RfbmFtZVwiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgIChuZ1N1Ym1pdCk9XCJvblNhdmUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55SGVhZGVyJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueUhlYWRlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2hlYWRlclwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21wYW55X2hlYWRlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfaGVhZGVyJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNlwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlUaXRsZScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlUaXRsZScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X3RpdGxlXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfdGl0bGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X3RpdGxlJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNlwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlLZXl3b3JkcycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlLZXl3b3JkcycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2tleXdvcmRzXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfa2V5d29yZHNcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X2tleXdvcmRzJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNlwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X2Rlc2NyaXB0aW9uJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueUNvdW50cnknIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db21wYW55Q291bnRyeScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2NvdW50cnlcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV9jb3VudHJ5XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29tcGFueV9jb3VudHJ5J10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlBZGRyZXNzJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueUFkZHJlc3MnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29tcGFueV9hZGRyZXNzXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfYWRkcmVzc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfYWRkcmVzcyddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55Q2l0eScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlDaXR5JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfY2l0eVwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21wYW55X2NpdHlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X2NpdHknXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueUNpdHlDb2RlJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueUNpdHlDb2RlJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfY2l0eV9jb2RlXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfY2l0eV9jb2RlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29tcGFueV9jaXR5X2NvZGUnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueVZhdE51bWJlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlWYXROdW1iZXInIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29tcGFueV92YXRfbnVtYmVyXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfdmF0X251bWJlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfdmF0X251bWJlciddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55UGhvbmVOdW1iZXInIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db21wYW55UGhvbmVOdW1iZXInIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29tcGFueV9waG9uZV9udW1iZXJcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV9waG9uZV9udW1iZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X3Bob25lX251bWJlciddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtZW5kIG10LTNcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRlZmF1bHQgbWUtMlwiXG4gICAgICAgIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+e3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuPGRpdiAqbmdJZj1cIiFkYXRhPy5ob3N0X25hbWUgJiYgIWlzTG9hZGluZ1wiPlxuICA8cHctbm8tZGF0YSBbbWVzc2FnZV09XCInQWRtaW4uRG9tYWluQ29uZmlnLkVuYWJsZUNvbmZpZ1RhYicgfCB0cmFuc2xvY29cIj4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLWNvbmZpZy1vcmdhbml6YXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL2RvbWFpbi1jb25maWcvZG9tYWluLWNvbmZpZy1kZXRhaWxzL2RvbWFpbi1jb25maWctb3JnYW5pemF0aW9uL2RvbWFpbi1jb25maWctb3JnYW5pemF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9kb21haW4tY29uZmlnL2RvbWFpbi1jb25maWctZGV0YWlscy9kb21haW4tY29uZmlnLW9yZ2FuaXphdGlvbi9kb21haW4tY29uZmlnLW9yZ2FuaXphdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQU0vQyxNQUFNLE9BQU8saUNBQWtDLFNBQVEsZ0JBQWdCO0lBZW5FLFlBQVksUUFBa0IsRUFBVSxZQUEwQjtRQUM5RCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEb0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFabEUs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Q0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTNFUSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyw0RkNmOUMsbWtNQXVJQTs7QUR4RUk7SUFEQyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7OytEQTRCcEI7MkZBM0VRLGlDQUFpQztrQkFKN0MsU0FBUzsrQkFDSSwrQkFBK0I7d0dBbUR6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IERvbWFpbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvZG9tYWluLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQWRtaW4gfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZGF0ZUZvcm0gfSBmcm9tICdAcG9zaXdpc2UvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LWRvbWFpbi1jb25maWctb3JnYW5pemF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG9tYWluLWNvbmZpZy1vcmdhbml6YXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERvbWFpbkNvbmZpZ09yZ2FuaXphdGlvbkNvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBzdWJtaXR0ZWQgPSBmYWxzZTtcblxuICAgIGlkOiBudW1iZXI7XG5cbiAgICBkYXRhOiBEb21haW5Db25maWc7XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG5cbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZvcm0gPSBBcHBBZG1pbi5kb21haW5Db25maWdPcmdhbml6YXRpb25Gb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IE51bWJlcihwYXJhbXNbJ2lkJ10pO1xuICAgICAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldERvbWFpbkNvbmZpZ0RldGFpbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREb21haW5Db25maWdEZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0RG9tYWluQ29uZmlnQnlJZCh0aGlzLmlkLCB0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IERvbWFpbkNvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMuZGF0YSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBWYWxpZGF0ZUZvcm0oJ2Zvcm0nKVxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uX2lkOiB0aGlzLnN1YnNjcmlwdGlvbklkXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZpbHRlcigoW18sIHZdKSA9PiB2ICE9PSBudWxsICYmIHYgIT09ICcnKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzdWIkID0gdGhpcy5pZFxuICAgICAgICAgICAgPyB0aGlzLmFkbWluU2VydmljZS51cGRhdGVEb21haW5Db25maWcodGhpcy5pZCwgZmlsdGVyZWREYXRhKVxuICAgICAgICAgICAgOiB0aGlzLmFkbWluU2VydmljZS5jcmVhdGVEb21haW5Db25maWcoZmlsdGVyZWREYXRhKTtcbiAgICAgICAgc3ViJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkRvbWFpbkNvbmZpZy5VcGRhdGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMucm91dGVycy5kb21haW5Db25maWdEZXRhaWxzfSR7dGhpcy5pZCA/IHRoaXMuaWQgOiByZXMuaWR9YF0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSWQ6ICdJbnRlZ3JhdGlvbnMnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGgzPk9yZ2FuaXphdGlvbiBSZWxhdGVkIENvbmZpZzwvaDM+XG48ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGE/Lmhvc3RfbmFtZVwiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgIChuZ1N1Ym1pdCk9XCJvblNhdmUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTZcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55SGVhZGVyJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueUhlYWRlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2hlYWRlclwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21wYW55X2hlYWRlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfaGVhZGVyJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNlwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlUaXRsZScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlUaXRsZScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X3RpdGxlXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfdGl0bGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X3RpdGxlJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNlwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlLZXl3b3JkcycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlLZXl3b3JkcycgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2tleXdvcmRzXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfa2V5d29yZHNcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X2tleXdvcmRzJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNlwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X2Rlc2NyaXB0aW9uJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueUNvdW50cnknIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db21wYW55Q291bnRyeScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIG5hbWU9XCJjb21wYW55X2NvdW50cnlcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV9jb3VudHJ5XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29tcGFueV9jb3VudHJ5J10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tM1wiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtzaG93VG9vbHRpcF09XCJ0cnVlXCJcbiAgICAgICAgICBbdG9vbHRpcFRleHRdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Ub29sdGlwLkNvbXBhbnlBZGRyZXNzJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueUFkZHJlc3MnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29tcGFueV9hZGRyZXNzXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfYWRkcmVzc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfYWRkcmVzcyddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55Q2l0eScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlDaXR5JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfY2l0eVwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21wYW55X2NpdHlcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X2NpdHknXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueUNpdHlDb2RlJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidBZG1pbi5Eb21haW5Db25maWcuQ29tcGFueUNpdHlDb2RlJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgbmFtZT1cImNvbXBhbnlfY2l0eV9jb2RlXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfY2l0eV9jb2RlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY29tcGFueV9jaXR5X2NvZGUnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS0zXCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW3Nob3dUb29sdGlwXT1cInRydWVcIlxuICAgICAgICAgIFt0b29sdGlwVGV4dF09XCInQWRtaW4uRG9tYWluQ29uZmlnLlRvb2x0aXAuQ29tcGFueVZhdE51bWJlcicgfCB0cmFuc2xvY29cIlxuICAgICAgICAgIFtsYWJlbF09XCInQWRtaW4uRG9tYWluQ29uZmlnLkNvbXBhbnlWYXROdW1iZXInIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29tcGFueV92YXRfbnVtYmVyXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlfdmF0X251bWJlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NvbXBhbnlfdmF0X251bWJlciddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTNcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbc2hvd1Rvb2x0aXBdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBUZXh0XT1cIidBZG1pbi5Eb21haW5Db25maWcuVG9vbHRpcC5Db21wYW55UGhvbmVOdW1iZXInIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0FkbWluLkRvbWFpbkNvbmZpZy5Db21wYW55UGhvbmVOdW1iZXInIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICBuYW1lPVwiY29tcGFueV9waG9uZV9udW1iZXJcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tcGFueV9waG9uZV9udW1iZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydjb21wYW55X3Bob25lX251bWJlciddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtZW5kIG10LTNcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRlZmF1bHQgbWUtMlwiXG4gICAgICAgIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+e3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuPGRpdiAqbmdJZj1cIiFkYXRhPy5ob3N0X25hbWUgJiYgIWlzTG9hZGluZ1wiPlxuICA8cHctbm8tZGF0YSBbbWVzc2FnZV09XCInQWRtaW4uRG9tYWluQ29uZmlnLkVuYWJsZUNvbmZpZ1RhYicgfCB0cmFuc2xvY29cIj4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4iXX0=