@posiwise/smart-crm 0.0.37 → 0.0.38

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 (84) hide show
  1. package/esm2022/lib/private/components/smart-crm-accounts/smart-crm-account-details/smart-crm-account-details.component.mjs +10 -10
  2. package/esm2022/lib/private/components/smart-crm-accounts/smart-crm-account-files/smart-crm-account-files.component.mjs +8 -8
  3. package/esm2022/lib/private/components/smart-crm-accounts/smart-crm-account-info/smart-crm-account-info.component.mjs +23 -23
  4. package/esm2022/lib/private/components/smart-crm-accounts/smart-crm-account-invoices/smart-crm-account-invoices.component.mjs +10 -10
  5. package/esm2022/lib/private/components/smart-crm-accounts/smart-crm-accounts.component.mjs +9 -9
  6. package/esm2022/lib/private/components/smart-crm-actions/smart-crm-actions.component.mjs +12 -12
  7. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-actions/smart-crm-actions-details/smart-crm-actions-details.component.mjs +5 -5
  8. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-actions/smart-crm-actions.component.mjs +5 -5
  9. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-configuration.component.mjs +4 -4
  10. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-opportunity-categories/smart-crm-opportunity-categories-details/smart-crm-opportunity-categories-details.component.mjs +3 -3
  11. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-opportunity-categories/smart-crm-opportunity-categories.component.mjs +6 -6
  12. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-source/smart-crm-source-details/smart-crm-source-details.component.mjs +3 -3
  13. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-source/smart-crm-source.component.mjs +9 -9
  14. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-stages/smart-crm-stage-details/smart-crm-stage-details.component.mjs +4 -4
  15. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-stages/smart-crm-stages.component.mjs +9 -9
  16. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-widgets/smart-crm-widgets-details/smart-crm-widgets-details.component.mjs +3 -3
  17. package/esm2022/lib/private/components/smart-crm-configuration/smart-crm-widgets/smart-crm-widgets.component.mjs +8 -8
  18. package/esm2022/lib/private/components/smart-crm-contacts/smart-crm-contact-details/smart-crm-contact-details.component.mjs +8 -8
  19. package/esm2022/lib/private/components/smart-crm-contacts/smart-crm-contact-info/smart-crm-contact-info.component.mjs +17 -17
  20. package/esm2022/lib/private/components/smart-crm-contacts/smart-crm-contacts.component.mjs +11 -11
  21. package/esm2022/lib/private/components/smart-crm-customer/smart-crm-customer-success/smart-crm-customer-success.component.mjs +3 -3
  22. package/esm2022/lib/private/components/smart-crm-insight/smart-crm-account-insight/smart-crm-account-insight.component.mjs +3 -3
  23. package/esm2022/lib/private/components/smart-crm-insight/smart-crm-analysis-insight/smart-crm-analysis.component.mjs +3 -3
  24. package/esm2022/lib/private/components/smart-crm-insight/smart-crm-contact-insight/smart-crm-contact-insight.component.mjs +5 -5
  25. package/esm2022/lib/private/components/smart-crm-insight/smart-crm-insight.component.mjs +4 -4
  26. package/esm2022/lib/private/components/smart-crm-insight/smart-crm-marketing-insight/smart-crm-marketing-insight.component.mjs +5 -5
  27. package/esm2022/lib/private/components/smart-crm-insight/smart-crm-opportunities-insight/smart-crm-opportunities-insight.component.mjs +10 -10
  28. package/esm2022/lib/private/components/smart-crm-leads/smart-crm-leads-details/smart-crm-leads-details.component.mjs +6 -6
  29. package/esm2022/lib/private/components/smart-crm-leads/smart-crm-leads.component.mjs +7 -7
  30. package/esm2022/lib/private/components/smart-crm-marketing/smart-crm-marketing-list/smart-crm-marketing-contacts/smart-crm-marketing-contacts.component.mjs +7 -7
  31. package/esm2022/lib/private/components/smart-crm-marketing/smart-crm-marketing-list/smart-crm-marketing-details/smart-crm-marketing-details.component.mjs +6 -6
  32. package/esm2022/lib/private/components/smart-crm-marketing/smart-crm-marketing-list/smart-crm-marketing-list.component.mjs +10 -10
  33. package/esm2022/lib/private/components/smart-crm-marketing/smart-crm-marketing-list/smart-crm-marketing-view-details/smart-crm-marketing-view-details.component.mjs +3 -3
  34. package/esm2022/lib/private/components/smart-crm-opportunities/smart-crm-board/smart-crm-board.component.mjs +9 -9
  35. package/esm2022/lib/private/components/smart-crm-opportunities/smart-crm-opportunities-list/smart-crm-opportunities-details/smart-crm-opportunities-details.component.mjs +17 -17
  36. package/esm2022/lib/private/components/smart-crm-opportunities/smart-crm-opportunities-list/smart-crm-opportunities-info/smart-crm-opportunities-info.component.mjs +13 -11
  37. package/esm2022/lib/private/components/smart-crm-opportunities/smart-crm-opportunities-list/smart-crm-opportunities-list.component.mjs +10 -10
  38. package/esm2022/lib/private/components/smart-crm-tabs/smart-crm-tabs.component.mjs +3 -3
  39. package/esm2022/lib/private/smart-crm-private.module.mjs +33 -33
  40. package/esm2022/lib/private/smart-crm-private.routing.module.mjs +8 -8
  41. package/esm2022/lib/public/components/smart-crm-newsletter-confirmation/smart-crm-newsletter-confirmation.component.mjs +1 -1
  42. package/esm2022/lib/public/components/smart-crm-newsletter-unsubscribe/smart-crm-newsletter-unsubscribe.component.mjs +3 -3
  43. package/esm2022/lib/public/components/smart-crm-signup/smart-crm-signup.component.mjs +2 -2
  44. package/esm2022/lib/public/smart-crm-public.module.mjs +4 -4
  45. package/esm2022/lib/public/smart-crm-public.routing.module.mjs +1 -1
  46. package/fesm2022/posiwise-smart-crm.mjs +155 -153
  47. package/fesm2022/posiwise-smart-crm.mjs.map +1 -1
  48. package/lib/private/components/smart-crm-accounts/smart-crm-account-details/smart-crm-account-details.component.d.ts +16 -16
  49. package/lib/private/components/smart-crm-accounts/smart-crm-account-files/smart-crm-account-files.component.d.ts +12 -12
  50. package/lib/private/components/smart-crm-accounts/smart-crm-account-info/smart-crm-account-info.component.d.ts +46 -47
  51. package/lib/private/components/smart-crm-accounts/smart-crm-account-invoices/smart-crm-account-invoices.component.d.ts +10 -10
  52. package/lib/private/components/smart-crm-accounts/smart-crm-accounts.component.d.ts +12 -12
  53. package/lib/private/components/smart-crm-actions/smart-crm-actions.component.d.ts +15 -15
  54. package/lib/private/components/smart-crm-configuration/smart-crm-actions/smart-crm-actions-details/smart-crm-actions-details.component.d.ts +8 -8
  55. package/lib/private/components/smart-crm-configuration/smart-crm-actions/smart-crm-actions.component.d.ts +5 -5
  56. package/lib/private/components/smart-crm-configuration/smart-crm-opportunity-categories/smart-crm-opportunity-categories-details/smart-crm-opportunity-categories-details.component.d.ts +4 -4
  57. package/lib/private/components/smart-crm-configuration/smart-crm-opportunity-categories/smart-crm-opportunity-categories.component.d.ts +7 -7
  58. package/lib/private/components/smart-crm-configuration/smart-crm-source/smart-crm-source-details/smart-crm-source-details.component.d.ts +1 -1
  59. package/lib/private/components/smart-crm-configuration/smart-crm-source/smart-crm-source.component.d.ts +6 -6
  60. package/lib/private/components/smart-crm-configuration/smart-crm-stages/smart-crm-stage-details/smart-crm-stage-details.component.d.ts +5 -5
  61. package/lib/private/components/smart-crm-configuration/smart-crm-stages/smart-crm-stages.component.d.ts +8 -8
  62. package/lib/private/components/smart-crm-configuration/smart-crm-widgets/smart-crm-widgets-details/smart-crm-widgets-details.component.d.ts +7 -7
  63. package/lib/private/components/smart-crm-configuration/smart-crm-widgets/smart-crm-widgets.component.d.ts +9 -9
  64. package/lib/private/components/smart-crm-contacts/smart-crm-contact-details/smart-crm-contact-details.component.d.ts +11 -11
  65. package/lib/private/components/smart-crm-contacts/smart-crm-contact-info/smart-crm-contact-info.component.d.ts +27 -27
  66. package/lib/private/components/smart-crm-contacts/smart-crm-contacts.component.d.ts +19 -19
  67. package/lib/private/components/smart-crm-insight/smart-crm-account-insight/smart-crm-account-insight.component.d.ts +19 -19
  68. package/lib/private/components/smart-crm-insight/smart-crm-analysis-insight/smart-crm-analysis.component.d.ts +7 -7
  69. package/lib/private/components/smart-crm-insight/smart-crm-contact-insight/smart-crm-contact-insight.component.d.ts +13 -13
  70. package/lib/private/components/smart-crm-insight/smart-crm-marketing-insight/smart-crm-marketing-insight.component.d.ts +8 -8
  71. package/lib/private/components/smart-crm-insight/smart-crm-opportunities-insight/smart-crm-opportunities-insight.component.d.ts +18 -18
  72. package/lib/private/components/smart-crm-leads/smart-crm-leads-details/smart-crm-leads-details.component.d.ts +6 -6
  73. package/lib/private/components/smart-crm-leads/smart-crm-leads.component.d.ts +9 -9
  74. package/lib/private/components/smart-crm-marketing/smart-crm-marketing-list/smart-crm-marketing-contacts/smart-crm-marketing-contacts.component.d.ts +7 -7
  75. package/lib/private/components/smart-crm-marketing/smart-crm-marketing-list/smart-crm-marketing-details/smart-crm-marketing-details.component.d.ts +10 -10
  76. package/lib/private/components/smart-crm-marketing/smart-crm-marketing-list/smart-crm-marketing-list.component.d.ts +8 -8
  77. package/lib/private/components/smart-crm-marketing/smart-crm-marketing-list/smart-crm-marketing-view-details/smart-crm-marketing-view-details.component.d.ts +3 -3
  78. package/lib/private/components/smart-crm-opportunities/smart-crm-board/smart-crm-board.component.d.ts +10 -10
  79. package/lib/private/components/smart-crm-opportunities/smart-crm-opportunities-list/smart-crm-opportunities-details/smart-crm-opportunities-details.component.d.ts +23 -23
  80. package/lib/private/components/smart-crm-opportunities/smart-crm-opportunities-list/smart-crm-opportunities-info/smart-crm-opportunities-info.component.d.ts +27 -27
  81. package/lib/private/components/smart-crm-opportunities/smart-crm-opportunities-list/smart-crm-opportunities-list.component.d.ts +12 -12
  82. package/lib/private/components/smart-crm-tabs/smart-crm-tabs.component.d.ts +1 -1
  83. package/lib/public/components/smart-crm-newsletter-unsubscribe/smart-crm-newsletter-unsubscribe.component.d.ts +1 -1
  84. package/package.json +1 -1
@@ -13,15 +13,15 @@ export class SmartCrmInsightComponent {
13
13
  { id: 1, title: 'Accounts' },
14
14
  { id: 2, title: 'Contacts' },
15
15
  { id: 3, title: 'Opportunities' },
16
- { id: 4, title: 'Email Marketing' },
16
+ { id: 4, title: 'E-Marketing' },
17
17
  { id: 5, title: 'Analysis' }
18
18
  ];
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartCrmInsightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartCrmInsightComponent, selector: "pw-smart-crm-insight", ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 mb-0\">\n <h2>Insight</h2>\n <p>\n Below, you\u2019ll find key insights for your CRM. The data updates every few hours.\n </p>\n <ul ngbNav\n #nav=\"ngbNav\"\n class=\"nav-tabs\">\n <li *ngFor=\"let tab of tabs\" [ngbNavItem]=\"tab.id\">\n <a ngbNavLink>{{ tab.title }}</a>\n <ng-template ngbNavContent>\n <ng-container *ngIf=\"tab.title === 'Accounts'\">\n <pw-smart-crm-account-insight />\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Contacts'\">\n <pw-smart-crm-contact-insight />\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Opportunities'\">\n <pw-smart-crm-opportunities-insight/>\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Email Marketing'\">\n <pw-smart-crm-communications-insight/>\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Analysis'\">\n <pw-smart-crm-analysis/>\n </ng-container>\n </ng-template>\n </li>\n </ul>\n\n <div [ngbNavOutlet]=\"nav\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i2.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i2.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i2.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i2.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i2.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i2.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i3.SmartCrmCommunicationsInsightComponent, selector: "pw-smart-crm-communications-insight" }, { kind: "component", type: i4.SmartCrmAnalysisComponent, selector: "pw-smart-crm-analysis" }, { kind: "component", type: i5.SmartCrmContactInsightComponent, selector: "pw-smart-crm-contact-insight" }, { kind: "component", type: i6.SmartCrmOpportunitiesInsightComponent, selector: "pw-smart-crm-opportunities-insight" }, { kind: "component", type: i7.SmartCrmAccountInsightComponent, selector: "pw-smart-crm-account-insight" }] }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartCrmInsightComponent, selector: "pw-smart-crm-insight", ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 mb-0\">\n <h2>Insight</h2>\n <p>\n Below, you\u2019ll find key insights for your CRM. The data updates every few hours.\n </p>\n <ul ngbNav\n #nav=\"ngbNav\"\n class=\"nav-tabs\">\n <li *ngFor=\"let tab of tabs\" [ngbNavItem]=\"tab.id\">\n <a ngbNavLink>{{ tab.title }}</a>\n <ng-template ngbNavContent>\n <ng-container *ngIf=\"tab.title === 'Accounts'\">\n <pw-smart-crm-account-insight />\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Contacts'\">\n <pw-smart-crm-contact-insight />\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Opportunities'\">\n <pw-smart-crm-opportunities-insight/>\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'E-Marketing'\">\n <pw-smart-crm-communications-insight/>\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Analysis'\">\n <pw-smart-crm-analysis/>\n </ng-container>\n </ng-template>\n </li>\n </ul>\n\n <div [ngbNavOutlet]=\"nav\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i2.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i2.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i2.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i2.NgbNavLink, selector: "a[ngbNavLink]" }, { kind: "directive", type: i2.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i2.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "component", type: i3.SmartCrmCommunicationsInsightComponent, selector: "pw-smart-crm-communications-insight" }, { kind: "component", type: i4.SmartCrmAnalysisComponent, selector: "pw-smart-crm-analysis" }, { kind: "component", type: i5.SmartCrmContactInsightComponent, selector: "pw-smart-crm-contact-insight" }, { kind: "component", type: i6.SmartCrmOpportunitiesInsightComponent, selector: "pw-smart-crm-opportunities-insight" }, { kind: "component", type: i7.SmartCrmAccountInsightComponent, selector: "pw-smart-crm-account-insight" }] }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartCrmInsightComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'pw-smart-crm-insight', template: "<div class=\"row\">\n <div class=\"col-12 mb-0\">\n <h2>Insight</h2>\n <p>\n Below, you\u2019ll find key insights for your CRM. The data updates every few hours.\n </p>\n <ul ngbNav\n #nav=\"ngbNav\"\n class=\"nav-tabs\">\n <li *ngFor=\"let tab of tabs\" [ngbNavItem]=\"tab.id\">\n <a ngbNavLink>{{ tab.title }}</a>\n <ng-template ngbNavContent>\n <ng-container *ngIf=\"tab.title === 'Accounts'\">\n <pw-smart-crm-account-insight />\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Contacts'\">\n <pw-smart-crm-contact-insight />\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Opportunities'\">\n <pw-smart-crm-opportunities-insight/>\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Email Marketing'\">\n <pw-smart-crm-communications-insight/>\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Analysis'\">\n <pw-smart-crm-analysis/>\n </ng-container>\n </ng-template>\n </li>\n </ul>\n\n <div [ngbNavOutlet]=\"nav\"></div>\n </div>\n</div>\n" }]
25
+ args: [{ selector: 'pw-smart-crm-insight', template: "<div class=\"row\">\n <div class=\"col-12 mb-0\">\n <h2>Insight</h2>\n <p>\n Below, you\u2019ll find key insights for your CRM. The data updates every few hours.\n </p>\n <ul ngbNav\n #nav=\"ngbNav\"\n class=\"nav-tabs\">\n <li *ngFor=\"let tab of tabs\" [ngbNavItem]=\"tab.id\">\n <a ngbNavLink>{{ tab.title }}</a>\n <ng-template ngbNavContent>\n <ng-container *ngIf=\"tab.title === 'Accounts'\">\n <pw-smart-crm-account-insight />\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Contacts'\">\n <pw-smart-crm-contact-insight />\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Opportunities'\">\n <pw-smart-crm-opportunities-insight/>\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'E-Marketing'\">\n <pw-smart-crm-communications-insight/>\n </ng-container>\n <ng-container *ngIf=\"tab.title === 'Analysis'\">\n <pw-smart-crm-analysis/>\n </ng-container>\n </ng-template>\n </li>\n </ul>\n\n <div [ngbNavOutlet]=\"nav\"></div>\n </div>\n</div>\n" }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY3JtLWluc2lnaHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWluc2lnaHQvc21hcnQtY3JtLWluc2lnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWluc2lnaHQvc21hcnQtY3JtLWluc2lnaHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBTTFDLE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFLSSxTQUFJLEdBQUc7WUFDSCxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUM1QixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUM1QixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtZQUNqQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1lBQ25DLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO1NBQy9CLENBQUM7S0FDTDsrR0FSWSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw0RENOckMsc3FDQWtDQTs7NEZENUJhLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDSSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1zbWFydC1jcm0taW5zaWdodCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWNybS1pbnNpZ2h0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTbWFydENybUluc2lnaHRDb21wb25lbnQge1xuICAgIHRhYnMgPSBbXG4gICAgICAgIHsgaWQ6IDEsIHRpdGxlOiAnQWNjb3VudHMnIH0sXG4gICAgICAgIHsgaWQ6IDIsIHRpdGxlOiAnQ29udGFjdHMnIH0sXG4gICAgICAgIHsgaWQ6IDMsIHRpdGxlOiAnT3Bwb3J0dW5pdGllcycgfSxcbiAgICAgICAgeyBpZDogNCwgdGl0bGU6ICdFbWFpbCBNYXJrZXRpbmcnIH0sXG4gICAgICAgIHsgaWQ6IDUsIHRpdGxlOiAnQW5hbHlzaXMnIH1cbiAgICBdO1xufVxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTBcIj5cbiAgICA8aDI+SW5zaWdodDwvaDI+XG4gICAgPHA+XG4gICAgICBCZWxvdywgeW914oCZbGwgZmluZCBrZXkgaW5zaWdodHMgZm9yIHlvdXIgQ1JNLiBUaGUgZGF0YSB1cGRhdGVzIGV2ZXJ5IGZldyBob3Vycy5cbiAgICA8L3A+XG4gICAgPHVsIG5nYk5hdlxuICAgICAgI25hdj1cIm5nYk5hdlwiXG4gICAgICBjbGFzcz1cIm5hdi10YWJzXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCIgW25nYk5hdkl0ZW1dPVwidGFiLmlkXCI+XG4gICAgICAgIDxhIG5nYk5hdkxpbms+e3sgdGFiLnRpdGxlIH19PC9hPlxuICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLnRpdGxlID09PSAnQWNjb3VudHMnXCI+XG4gICAgICAgICAgICA8cHctc21hcnQtY3JtLWFjY291bnQtaW5zaWdodCAvPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIudGl0bGUgPT09ICdDb250YWN0cydcIj5cbiAgICAgICAgICAgIDxwdy1zbWFydC1jcm0tY29udGFjdC1pbnNpZ2h0IC8+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50aXRsZSA9PT0gJ09wcG9ydHVuaXRpZXMnXCI+XG4gICAgICAgICAgICA8cHctc21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC8+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50aXRsZSA9PT0gJ0VtYWlsIE1hcmtldGluZydcIj5cbiAgICAgICAgICAgIDxwdy1zbWFydC1jcm0tY29tbXVuaWNhdGlvbnMtaW5zaWdodC8+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50aXRsZSA9PT0gJ0FuYWx5c2lzJ1wiPlxuICAgICAgICAgICAgIDxwdy1zbWFydC1jcm0tYW5hbHlzaXMvPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY3JtLWluc2lnaHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWluc2lnaHQvc21hcnQtY3JtLWluc2lnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWluc2lnaHQvc21hcnQtY3JtLWluc2lnaHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBTTFDLE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFLSSxTQUFJLEdBQUc7WUFDSCxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUM1QixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUM1QixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtZQUNqQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtZQUMvQixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtTQUMvQixDQUFDO0tBQ0w7K0dBUlksd0JBQXdCO21HQUF4Qix3QkFBd0IsNERDTnJDLGtxQ0FrQ0E7OzRGRDVCYSx3QkFBd0I7a0JBSnBDLFNBQVM7K0JBQ0ksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctc21hcnQtY3JtLWluc2lnaHQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1jcm0taW5zaWdodC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRDcm1JbnNpZ2h0Q29tcG9uZW50IHtcbiAgICB0YWJzID0gW1xuICAgICAgICB7IGlkOiAxLCB0aXRsZTogJ0FjY291bnRzJyB9LFxuICAgICAgICB7IGlkOiAyLCB0aXRsZTogJ0NvbnRhY3RzJyB9LFxuICAgICAgICB7IGlkOiAzLCB0aXRsZTogJ09wcG9ydHVuaXRpZXMnIH0sXG4gICAgICAgIHsgaWQ6IDQsIHRpdGxlOiAnRS1NYXJrZXRpbmcnIH0sXG4gICAgICAgIHsgaWQ6IDUsIHRpdGxlOiAnQW5hbHlzaXMnIH1cbiAgICBdO1xufVxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTBcIj5cbiAgICA8aDI+SW5zaWdodDwvaDI+XG4gICAgPHA+XG4gICAgICBCZWxvdywgeW914oCZbGwgZmluZCBrZXkgaW5zaWdodHMgZm9yIHlvdXIgQ1JNLiBUaGUgZGF0YSB1cGRhdGVzIGV2ZXJ5IGZldyBob3Vycy5cbiAgICA8L3A+XG4gICAgPHVsIG5nYk5hdlxuICAgICAgI25hdj1cIm5nYk5hdlwiXG4gICAgICBjbGFzcz1cIm5hdi10YWJzXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCIgW25nYk5hdkl0ZW1dPVwidGFiLmlkXCI+XG4gICAgICAgIDxhIG5nYk5hdkxpbms+e3sgdGFiLnRpdGxlIH19PC9hPlxuICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLnRpdGxlID09PSAnQWNjb3VudHMnXCI+XG4gICAgICAgICAgICA8cHctc21hcnQtY3JtLWFjY291bnQtaW5zaWdodCAvPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIudGl0bGUgPT09ICdDb250YWN0cydcIj5cbiAgICAgICAgICAgIDxwdy1zbWFydC1jcm0tY29udGFjdC1pbnNpZ2h0IC8+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50aXRsZSA9PT0gJ09wcG9ydHVuaXRpZXMnXCI+XG4gICAgICAgICAgICA8cHctc21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC8+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50aXRsZSA9PT0gJ0UtTWFya2V0aW5nJ1wiPlxuICAgICAgICAgICAgPHB3LXNtYXJ0LWNybS1jb21tdW5pY2F0aW9ucy1pbnNpZ2h0Lz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLnRpdGxlID09PSAnQW5hbHlzaXMnXCI+XG4gICAgICAgICAgICAgPHB3LXNtYXJ0LWNybS1hbmFseXNpcy8+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG5cbiAgICA8ZGl2IFtuZ2JOYXZPdXRsZXRdPVwibmF2XCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef, Component, Injector } from '@angular/core';
2
- import { ROUTERS } from '../../../../shared/routers/routers';
3
- import { CrmService } from '@posiwise/smart-crm-shared';
4
2
  import { AppBaseComponent } from '@posiwise/app-base-component';
3
+ import { CrmService } from '@posiwise/smart-crm-shared';
4
+ import { ROUTERS } from '../../../../shared/routers/routers';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@posiwise/smart-crm-shared";
7
7
  import * as i2 from "@angular/common";
@@ -19,14 +19,14 @@ export class SmartCrmCommunicationsInsightComponent extends AppBaseComponent {
19
19
  super(injector);
20
20
  this.crmService = crmService;
21
21
  this.cdr = cdr;
22
- this.searchText = '';
23
22
  this.data = {
24
23
  crm_newsletters: [],
25
24
  object_count: 0,
26
25
  unfiltered_count: 0
27
26
  };
28
- this.isLoaded = false;
27
+ this.searchText = '';
29
28
  this.loading = true;
29
+ this.isLoaded = false;
30
30
  this.communicationsInsightLoaded = false;
31
31
  this.geographyLoaded = false;
32
32
  this.routers = ROUTERS;
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
75
75
  type: Component,
76
76
  args: [{ selector: 'pw-smart-crm-communications-insight', template: "\n <div class=\"row mt-5\">\n <!-- Drill Down -->\n <div class=\"col-12 col-md-6 mb-3 analytics\">\n <h5 class=\"accordion-heading\">Watch Closely</h5>\n <div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!communicationsInsightLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </ng-template>\n </div>\n <div class=\"primeng-datatable-container table-responsive\"\n *ngIf=\"communicationsInsightLoaded && communicationsInsight?.length\">\n <p-table class=\"table\"\n #dt\n [value]=\"communicationsInsight\"\n [paginator]=\"communicationsInsight.length !== 0\"\n [rows]=\"PAGE_SIZE\"\n\n [totalRecords]=\"communicationsInsight.length\"\n [lazy]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">\n {{ 'Crm.CommunicationsMessage.Title' | transloco }}\n </th>\n <th scope=\"true\">\n {{ 'Crm.CommunicationsMessage.SendAt' | transloco }}\n </th>\n <th scope=\"true\">\n {{ 'Crm.CommunicationsMessage.SendUntil' | transloco }}\n </th>\n <th scope=\"true\">\n {{ 'Crm.CommunicationsMessage.Reason' | transloco }}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-insight>\n <tr>\n <td data-head=\"Title\">\n <span\n [ngbTooltip]=\"insight?.title\"\n container=\"body\"\n tooltipClass=\"custom-tooltip\"\n placement=\"bottom\"\n >\n <a [routerLink]=\"['/' + subscription?.slug + routers.marketing, insight.id]\">{{ insight?.title | textTruncate: 30 }}</a>\n </span>\n </td>\n <td data-head=\"Value\">{{ insight.send_at | date: 'dd-MMM-YYYY' }}</td>\n <td data-head=\"Value\">{{ insight.send_until | date: 'dd-MMM-YYYY' }}</td>\n <td data-head=\"Reason\">{{ insight.reason }}</td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\" *ngIf=\"communicationsInsight.length !== 0\">{{ 'Label.Total' | transloco }}: {{ communicationsInsight.length }}</span>\n </div>\n <div *ngIf=\"communicationsInsightLoaded && !communicationsInsight?.length\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Crm.CommunicationsMessage.NoInsightMessage' | transloco\">\n </pw-no-data>\n </div>\n </div>\n <!-- Geography -->\n <div class=\"col-12 col-md-6 mb-3 analytics\">\n <h5 class=\"accordion-heading\">Engagement</h5>\n <div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!geographyLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </ng-template>\n </div>\n <div>\n <ng-template [ngIf]=\"geographyLoaded && communicationEngagement?.data?.length\">\n <plotly-plot [data]=\"communicationEngagement?.data\"\n [layout]=\"communicationEngagement?.layout\"\n [config]=\"communicationEngagement?.config\"\n [useResizeHandler]=\"true\">\n </plotly-plot>\n </ng-template>\n </div>\n <div *ngIf=\"geographyLoaded && !communicationEngagement?.data?.length\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Crm.CommunicationsMessage.NoInsightMessage' | transloco\">\n </pw-no-data>\n </div>\n </div>\n </div>\n", styles: [".actions-column{min-width:170px}.eye-icon{color:var(--first);font-size:18px;padding-left:3px;padding-right:3px}\n"] }]
77
77
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.CrmService }, { type: i0.ChangeDetectorRef }] });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY3JtLW1hcmtldGluZy1pbnNpZ2h0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc21hcnQtY3JtL3NyYy9saWIvcHJpdmF0ZS9jb21wb25lbnRzL3NtYXJ0LWNybS1pbnNpZ2h0L3NtYXJ0LWNybS1tYXJrZXRpbmctaW5zaWdodC9zbWFydC1jcm0tbWFya2V0aW5nLWluc2lnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWluc2lnaHQvc21hcnQtY3JtLW1hcmtldGluZy1pbnNpZ2h0L3NtYXJ0LWNybS1tYXJrZXRpbmctaW5zaWdodC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU9oRSxNQUFNLE9BQU8sc0NBQ1QsU0FBUSxnQkFBZ0I7SUErQnhCLFlBQ0ksUUFBa0IsRUFDRCxVQUFzQixFQUN0QixHQUFzQjtRQUV2QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBN0IzQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhCLFNBQUksR0FBMEI7WUFDMUIsZUFBZSxFQUFFLEVBQUU7WUFDbkIsWUFBWSxFQUFFLENBQUM7WUFDZixnQkFBZ0IsRUFBRSxDQUFDO1NBQ3RCLENBQUM7UUFFRixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFZixnQ0FBMkIsR0FBRyxLQUFLLENBQUM7UUFFcEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFVeEIsWUFBTyxHQUFHLE9BQU8sQ0FBQztJQVFsQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsNkNBQTZDO0lBQ3JDLHVCQUF1QjtRQUMzQixJQUFJLENBQUMsVUFBVTthQUNWLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQzthQUNqRSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztRQUMxQyxDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxnREFBZ0Q7SUFDeEMsMEJBQTBCO1FBQzlCLElBQUksQ0FBQyxVQUFVO2FBQ1YsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLDJCQUEyQixDQUFDO2FBQ25FLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDO1FBQzVDLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQWhGUSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyxrR0NwQm5ELHFsSEFxRkE7OzRGRGpFYSxzQ0FBc0M7a0JBTGxELFNBQVM7K0JBQ0kscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuaW1wb3J0IHsgQ3JtU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9zbWFydC1jcm0tc2hhcmVkJztcblxuaW1wb3J0IHsgUGxvdGx5LCBTdWJzY3JpcHRpb24sIFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBDcm1OZXdzTGV0dGVyUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL2NybS1uZXdzbGV0dGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctc21hcnQtY3JtLWNvbW11bmljYXRpb25zLWluc2lnaHQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1jcm0tbWFya2V0aW5nLWluc2lnaHQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NtYXJ0LWNybS1tYXJrZXRpbmctaW5zaWdodC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0Q3JtQ29tbXVuaWNhdGlvbnNJbnNpZ2h0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZFxue1xuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG5cbiAgICBzZWFyY2hUZXh0ID0gJyc7XG5cbiAgICBkYXRhOiBDcm1OZXdzTGV0dGVyUmVzcG9uc2UgPSB7XG4gICAgICAgIGNybV9uZXdzbGV0dGVyczogW10sXG4gICAgICAgIG9iamVjdF9jb3VudDogMCxcbiAgICAgICAgdW5maWx0ZXJlZF9jb3VudDogMFxuICAgIH07XG5cbiAgICBpc0xvYWRlZCA9IGZhbHNlO1xuXG4gICAgbG9hZGluZyA9IHRydWU7XG5cbiAgICBjb21tdW5pY2F0aW9uc0luc2lnaHRMb2FkZWQgPSBmYWxzZTtcblxuICAgIGdlb2dyYXBoeUxvYWRlZCA9IGZhbHNlO1xuXG4gICAgdXNlcjogVXNlcjtcblxuICAgIGNvbW11bmljYXRpb25zSW5zaWdodDtcblxuICAgIGNvbW11bmljYXRpb25FbmdhZ2VtZW50OiBQbG90bHkuRmlndXJlO1xuXG4gICAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY3JtU2VydmljZTogQ3JtU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5nZXRVc2VyU3Vic2NyaXB0aW9uKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gcmVzcG9uc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24/LmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb21tdW5pY2F0aW9uSW5zaWdodCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29tbXVuaWNhdGlvbkVuZ2FnZW1lbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGNhbGwgY29tbXVuaWNhdGlvbiBpbnNpZ2h0ICovXG4gICAgcHJpdmF0ZSBnZXRDb21tdW5pY2F0aW9uSW5zaWdodCgpIHtcbiAgICAgICAgdGhpcy5jcm1TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0Q3JtQW5hbHl0aWNzKHRoaXMuc3Vic2NyaXB0aW9uPy5pZCwgJ2NvbW11bmljYXRpb25zX2luc2lnaHRzJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbXVuaWNhdGlvbnNJbnNpZ2h0ID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tdW5pY2F0aW9uc0luc2lnaHRMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGNhbGwgY29tbXVuaWNhdGlvbiBlbmdhZ2VtZW50ICovXG4gICAgcHJpdmF0ZSBnZXRDb21tdW5pY2F0aW9uRW5nYWdlbWVudCgpIHtcbiAgICAgICAgdGhpcy5jcm1TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0Q3JtQW5hbHl0aWNzKHRoaXMuc3Vic2NyaXB0aW9uPy5pZCwgJ2NvbW11bmljYXRpb25zX2VuZ2FnZW1lbnQnKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tdW5pY2F0aW9uRW5nYWdlbWVudCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2VvZ3JhcGh5TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIlxuICA8ZGl2IGNsYXNzPVwicm93IG10LTVcIj5cbiAgICA8IS0tIERyaWxsIERvd24gLS0+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBtYi0zIGFuYWx5dGljc1wiPlxuICAgICAgPGg1IGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRpbmdcIj5XYXRjaCBDbG9zZWx5PC9oNT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhY29tbXVuaWNhdGlvbnNJbnNpZ2h0TG9hZGVkXCI+XG4gICAgICAgICAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJpbWVuZy1kYXRhdGFibGUtY29udGFpbmVyIHRhYmxlLXJlc3BvbnNpdmVcIlxuICAgICAgICAqbmdJZj1cImNvbW11bmljYXRpb25zSW5zaWdodExvYWRlZCAmJiBjb21tdW5pY2F0aW9uc0luc2lnaHQ/Lmxlbmd0aFwiPlxuICAgICAgICA8cC10YWJsZSBjbGFzcz1cInRhYmxlXCJcbiAgICAgICAgICAjZHRcbiAgICAgICAgICBbdmFsdWVdPVwiY29tbXVuaWNhdGlvbnNJbnNpZ2h0XCJcbiAgICAgICAgICBbcGFnaW5hdG9yXT1cImNvbW11bmljYXRpb25zSW5zaWdodC5sZW5ndGggIT09IDBcIlxuICAgICAgICAgIFtyb3dzXT1cIlBBR0VfU0laRVwiXG5cbiAgICAgICAgICBbdG90YWxSZWNvcmRzXT1cImNvbW11bmljYXRpb25zSW5zaWdodC5sZW5ndGhcIlxuICAgICAgICAgIFtsYXp5XT1cInRydWVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICB7eyAnQ3JtLkNvbW11bmljYXRpb25zTWVzc2FnZS5UaXRsZScgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdDcm0uQ29tbXVuaWNhdGlvbnNNZXNzYWdlLlNlbmRBdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdDcm0uQ29tbXVuaWNhdGlvbnNNZXNzYWdlLlNlbmRVbnRpbCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdDcm0uQ29tbXVuaWNhdGlvbnNNZXNzYWdlLlJlYXNvbicgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiXG4gICAgICAgICAgICBsZXQtaW5zaWdodD5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRkIGRhdGEtaGVhZD1cIlRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJpbnNpZ2h0Py50aXRsZVwiXG4gICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgdG9vbHRpcENsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLycgKyBzdWJzY3JpcHRpb24/LnNsdWcgKyByb3V0ZXJzLm1hcmtldGluZywgaW5zaWdodC5pZF1cIj57eyBpbnNpZ2h0Py50aXRsZSB8IHRleHRUcnVuY2F0ZTogMzAgfX08L2E+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGRhdGEtaGVhZD1cIlZhbHVlXCI+e3sgaW5zaWdodC5zZW5kX2F0IHwgZGF0ZTogJ2RkLU1NTS1ZWVlZJyAgfX08L3RkPlxuICAgICAgICAgICAgICA8dGQgZGF0YS1oZWFkPVwiVmFsdWVcIj57eyBpbnNpZ2h0LnNlbmRfdW50aWwgfCBkYXRlOiAnZGQtTU1NLVlZWVknICB9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJSZWFzb25cIj57eyBpbnNpZ2h0LnJlYXNvbiB9fTwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC10YWJsZT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b3RhbC1yZWNvcmRzLWNvdW50XCIgKm5nSWY9XCJjb21tdW5pY2F0aW9uc0luc2lnaHQubGVuZ3RoICE9PSAwXCI+e3sgJ0xhYmVsLlRvdGFsJyB8IHRyYW5zbG9jbyB9fToge3sgY29tbXVuaWNhdGlvbnNJbnNpZ2h0Lmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbW11bmljYXRpb25zSW5zaWdodExvYWRlZCAmJiAhY29tbXVuaWNhdGlvbnNJbnNpZ2h0Py5sZW5ndGhcIj5cbiAgICAgICAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ0NybS5Db21tdW5pY2F0aW9uc01lc3NhZ2UuTm9JbnNpZ2h0TWVzc2FnZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPC9wdy1uby1kYXRhPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBHZW9ncmFwaHkgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBtYi0zIGFuYWx5dGljc1wiPlxuICAgICAgPGg1IGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRpbmdcIj5FbmdhZ2VtZW50PC9oNT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhZ2VvZ3JhcGh5TG9hZGVkXCI+XG4gICAgICAgICAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiZ2VvZ3JhcGh5TG9hZGVkICYmIGNvbW11bmljYXRpb25FbmdhZ2VtZW50Py5kYXRhPy5sZW5ndGhcIj5cbiAgICAgICAgICA8cGxvdGx5LXBsb3QgW2RhdGFdPVwiY29tbXVuaWNhdGlvbkVuZ2FnZW1lbnQ/LmRhdGFcIlxuICAgICAgICAgICAgW2xheW91dF09XCJjb21tdW5pY2F0aW9uRW5nYWdlbWVudD8ubGF5b3V0XCJcbiAgICAgICAgICAgIFtjb25maWddPVwiY29tbXVuaWNhdGlvbkVuZ2FnZW1lbnQ/LmNvbmZpZ1wiXG4gICAgICAgICAgICBbdXNlUmVzaXplSGFuZGxlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgPC9wbG90bHktcGxvdD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImdlb2dyYXBoeUxvYWRlZCAmJiAhY29tbXVuaWNhdGlvbkVuZ2FnZW1lbnQ/LmRhdGE/Lmxlbmd0aFwiPlxuICAgICAgICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBbbWVzc2FnZV09XCInQ3JtLkNvbW11bmljYXRpb25zTWVzc2FnZS5Ob0luc2lnaHRNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8L3B3LW5vLWRhdGE+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY3JtLW1hcmtldGluZy1pbnNpZ2h0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc21hcnQtY3JtL3NyYy9saWIvcHJpdmF0ZS9jb21wb25lbnRzL3NtYXJ0LWNybS1pbnNpZ2h0L3NtYXJ0LWNybS1tYXJrZXRpbmctaW5zaWdodC9zbWFydC1jcm0tbWFya2V0aW5nLWluc2lnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWluc2lnaHQvc21hcnQtY3JtLW1hcmtldGluZy1pbnNpZ2h0L3NtYXJ0LWNybS1tYXJrZXRpbmctaW5zaWdodC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU83RCxNQUFNLE9BQU8sc0NBQ1QsU0FBUSxnQkFBZ0I7SUF5QnhCLFlBQ0ksUUFBa0IsRUFDRCxVQUFzQixFQUN0QixHQUFzQjtRQUV2QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBckIzQyxTQUFJLEdBQTBCO1lBQzFCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLFlBQVksRUFBRSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsQ0FBQztTQUN0QixDQUFDO1FBS0YsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQ0FBMkIsR0FBRyxLQUFLLENBQUM7UUFDcEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsWUFBTyxHQUFHLE9BQU8sQ0FBQztJQVFsQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsNkNBQTZDO0lBQ3JDLHVCQUF1QjtRQUMzQixJQUFJLENBQUMsVUFBVTthQUNWLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQzthQUNqRSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztRQUMxQyxDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxnREFBZ0Q7SUFDeEMsMEJBQTBCO1FBQzlCLElBQUksQ0FBQyxVQUFVO2FBQ1YsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLDJCQUEyQixDQUFDO2FBQ25FLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDO1FBQzVDLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQTFFUSxzQ0FBc0M7bUdBQXRDLHNDQUFzQyxrR0NyQm5ELHFsSEFxRkE7OzRGRGhFYSxzQ0FBc0M7a0JBTGxELFNBQVM7K0JBQ0kscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbG90bHksIFN1YnNjcmlwdGlvbiwgVXNlciB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IENybVNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2Uvc21hcnQtY3JtLXNoYXJlZCc7XG5cbmltcG9ydCB7IENybU5ld3NMZXR0ZXJSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvY3JtLW5ld3NsZXR0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1zbWFydC1jcm0tY29tbXVuaWNhdGlvbnMtaW5zaWdodCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWNybS1tYXJrZXRpbmctaW5zaWdodC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc21hcnQtY3JtLW1hcmtldGluZy1pbnNpZ2h0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU21hcnRDcm1Db21tdW5pY2F0aW9uc0luc2lnaHRDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkXG57XG4gICAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICB1c2VyOiBVc2VyO1xuXG4gICAgZGF0YTogQ3JtTmV3c0xldHRlclJlc3BvbnNlID0ge1xuICAgICAgICBjcm1fbmV3c2xldHRlcnM6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuXG4gICAgY29tbXVuaWNhdGlvbnNJbnNpZ2h0O1xuICAgIGNvbW11bmljYXRpb25FbmdhZ2VtZW50OiBQbG90bHkuRmlndXJlO1xuXG4gICAgc2VhcmNoVGV4dCA9ICcnO1xuXG4gICAgbG9hZGluZyA9IHRydWU7XG4gICAgaXNMb2FkZWQgPSBmYWxzZTtcbiAgICBjb21tdW5pY2F0aW9uc0luc2lnaHRMb2FkZWQgPSBmYWxzZTtcbiAgICBnZW9ncmFwaHlMb2FkZWQgPSBmYWxzZTtcblxuICAgIHJvdXRlcnMgPSBST1VURVJTO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjcm1TZXJ2aWNlOiBDcm1TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmdldFVzZXJTdWJzY3JpcHRpb24oKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSByZXNwb25zZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbj8uaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldENvbW11bmljYXRpb25JbnNpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb21tdW5pY2F0aW9uRW5nYWdlbWVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY2FsbCBjb21tdW5pY2F0aW9uIGluc2lnaHQgKi9cbiAgICBwcml2YXRlIGdldENvbW11bmljYXRpb25JbnNpZ2h0KCkge1xuICAgICAgICB0aGlzLmNybVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRDcm1BbmFseXRpY3ModGhpcy5zdWJzY3JpcHRpb24/LmlkLCAnY29tbXVuaWNhdGlvbnNfaW5zaWdodHMnKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tdW5pY2F0aW9uc0luc2lnaHQgPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbW11bmljYXRpb25zSW5zaWdodExvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY2FsbCBjb21tdW5pY2F0aW9uIGVuZ2FnZW1lbnQgKi9cbiAgICBwcml2YXRlIGdldENvbW11bmljYXRpb25FbmdhZ2VtZW50KCkge1xuICAgICAgICB0aGlzLmNybVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRDcm1BbmFseXRpY3ModGhpcy5zdWJzY3JpcHRpb24/LmlkLCAnY29tbXVuaWNhdGlvbnNfZW5nYWdlbWVudCcpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbW11bmljYXRpb25FbmdhZ2VtZW50ID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZW9ncmFwaHlMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiXG4gIDxkaXYgY2xhc3M9XCJyb3cgbXQtNVwiPlxuICAgIDwhLS0gRHJpbGwgRG93biAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IG1iLTMgYW5hbHl0aWNzXCI+XG4gICAgICA8aDUgY2xhc3M9XCJhY2NvcmRpb24taGVhZGluZ1wiPldhdGNoIENsb3NlbHk8L2g1PlxuICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFjb21tdW5pY2F0aW9uc0luc2lnaHRMb2FkZWRcIj5cbiAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwcmltZW5nLWRhdGF0YWJsZS1jb250YWluZXIgdGFibGUtcmVzcG9uc2l2ZVwiXG4gICAgICAgICpuZ0lmPVwiY29tbXVuaWNhdGlvbnNJbnNpZ2h0TG9hZGVkICYmIGNvbW11bmljYXRpb25zSW5zaWdodD8ubGVuZ3RoXCI+XG4gICAgICAgIDxwLXRhYmxlIGNsYXNzPVwidGFibGVcIlxuICAgICAgICAgICNkdFxuICAgICAgICAgIFt2YWx1ZV09XCJjb21tdW5pY2F0aW9uc0luc2lnaHRcIlxuICAgICAgICAgIFtwYWdpbmF0b3JdPVwiY29tbXVuaWNhdGlvbnNJbnNpZ2h0Lmxlbmd0aCAhPT0gMFwiXG4gICAgICAgICAgW3Jvd3NdPVwiUEFHRV9TSVpFXCJcblxuICAgICAgICAgIFt0b3RhbFJlY29yZHNdPVwiY29tbXVuaWNhdGlvbnNJbnNpZ2h0Lmxlbmd0aFwiXG4gICAgICAgICAgW2xhenldPVwidHJ1ZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIHt7ICdDcm0uQ29tbXVuaWNhdGlvbnNNZXNzYWdlLlRpdGxlJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3sgJ0NybS5Db21tdW5pY2F0aW9uc01lc3NhZ2UuU2VuZEF0JyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3sgJ0NybS5Db21tdW5pY2F0aW9uc01lc3NhZ2UuU2VuZFVudGlsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3sgJ0NybS5Db21tdW5pY2F0aW9uc01lc3NhZ2UuUmVhc29uJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCJcbiAgICAgICAgICAgIGxldC1pbnNpZ2h0PlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGQgZGF0YS1oZWFkPVwiVGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cImluc2lnaHQ/LnRpdGxlXCJcbiAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICB0b29sdGlwQ2xhc3M9XCJjdXN0b20tdG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiWycvJyArIHN1YnNjcmlwdGlvbj8uc2x1ZyArIHJvdXRlcnMubWFya2V0aW5nLCBpbnNpZ2h0LmlkXVwiPnt7IGluc2lnaHQ/LnRpdGxlIHwgdGV4dFRydW5jYXRlOiAzMCB9fTwvYT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgZGF0YS1oZWFkPVwiVmFsdWVcIj57eyBpbnNpZ2h0LnNlbmRfYXQgfCBkYXRlOiAnZGQtTU1NLVlZWVknICB9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJWYWx1ZVwiPnt7IGluc2lnaHQuc2VuZF91bnRpbCB8IGRhdGU6ICdkZC1NTU0tWVlZWScgIH19PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGRhdGEtaGVhZD1cIlJlYXNvblwiPnt7IGluc2lnaHQucmVhc29uIH19PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRhYmxlPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRvdGFsLXJlY29yZHMtY291bnRcIiAqbmdJZj1cImNvbW11bmljYXRpb25zSW5zaWdodC5sZW5ndGggIT09IDBcIj57eyAnTGFiZWwuVG90YWwnIHwgdHJhbnNsb2NvIH19OiB7eyBjb21tdW5pY2F0aW9uc0luc2lnaHQubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29tbXVuaWNhdGlvbnNJbnNpZ2h0TG9hZGVkICYmICFjb21tdW5pY2F0aW9uc0luc2lnaHQ/Lmxlbmd0aFwiPlxuICAgICAgICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBbbWVzc2FnZV09XCInQ3JtLkNvbW11bmljYXRpb25zTWVzc2FnZS5Ob0luc2lnaHRNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8L3B3LW5vLWRhdGE+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEdlb2dyYXBoeSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IG1iLTMgYW5hbHl0aWNzXCI+XG4gICAgICA8aDUgY2xhc3M9XCJhY2NvcmRpb24taGVhZGluZ1wiPkVuZ2FnZW1lbnQ8L2g1PlxuICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFnZW9ncmFwaHlMb2FkZWRcIj5cbiAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJnZW9ncmFwaHlMb2FkZWQgJiYgY29tbXVuaWNhdGlvbkVuZ2FnZW1lbnQ/LmRhdGE/Lmxlbmd0aFwiPlxuICAgICAgICAgIDxwbG90bHktcGxvdCBbZGF0YV09XCJjb21tdW5pY2F0aW9uRW5nYWdlbWVudD8uZGF0YVwiXG4gICAgICAgICAgICBbbGF5b3V0XT1cImNvbW11bmljYXRpb25FbmdhZ2VtZW50Py5sYXlvdXRcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb21tdW5pY2F0aW9uRW5nYWdlbWVudD8uY29uZmlnXCJcbiAgICAgICAgICAgIFt1c2VSZXNpemVIYW5kbGVyXT1cInRydWVcIj5cbiAgICAgICAgICA8L3Bsb3RseS1wbG90PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZ2VvZ3JhcGh5TG9hZGVkICYmICFjb21tdW5pY2F0aW9uRW5nYWdlbWVudD8uZGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidDcm0uQ29tbXVuaWNhdGlvbnNNZXNzYWdlLk5vSW5zaWdodE1lc3NhZ2UnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgIDwvcHctbm8tZGF0YT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiJdfQ==
@@ -1,10 +1,10 @@
1
1
  import { ChangeDetectorRef, Component, Injector } from '@angular/core';
2
- import { ROUTERS } from '../../../../shared/routers/routers';
3
- import { CrmService } from '@posiwise/smart-crm-shared';
4
2
  import { AppBaseComponent } from '@posiwise/app-base-component';
5
3
  import { ProductService } from '@posiwise/common-services';
6
4
  import { HelperService } from '@posiwise/helper-service';
5
+ import { CrmService } from '@posiwise/smart-crm-shared';
7
6
  import { handleDateRangeSelection } from '@posiwise/utils';
7
+ import { ROUTERS } from '../../../../shared/routers/routers';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@posiwise/smart-crm-shared";
10
10
  import * as i2 from "@posiwise/common-services";
@@ -19,29 +19,29 @@ export class SmartCrmOpportunitiesInsightComponent extends AppBaseComponent {
19
19
  this.crmService = crmService;
20
20
  this.cdr = cdr;
21
21
  this.productService = productService;
22
- this.hasAccess = false;
23
- this.searchText = '';
24
22
  this.data = {
25
23
  crm_opportunities: [],
26
24
  object_count: 0,
27
25
  unfiltered_count: 0
28
26
  };
29
- this.id = '';
30
- this.isLoaded = false;
31
- this.loading = true;
27
+ this.searchText = '';
32
28
  this.searchStages = [];
29
+ this.searchCategories = [];
33
30
  this.filterByStages = [];
34
31
  this.filterByCategories = [];
35
- this.searchCategories = [];
36
32
  this.page = 1;
37
33
  this.stages = [];
38
34
  this.categories = [];
39
- this.routers = ROUTERS;
35
+ this.id = '';
36
+ this.loading = true;
37
+ this.isLoaded = false;
38
+ this.hasAccess = false;
40
39
  this.opportunitiesInsightLoaded = false;
41
40
  this.opportunitiesGeographyLoaded = false;
42
41
  this.opportunitiesCategoryLoaded = false;
43
42
  this.opportunitiesStageLoaded = false;
44
43
  this.opportunitiesGraphLoaded = false;
44
+ this.routers = ROUTERS;
45
45
  }
46
46
  ngOnInit() {
47
47
  this.getUserSubscription().subscribe(subscription => {
@@ -150,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
150
150
  type: Component,
151
151
  args: [{ selector: 'pw-smart-crm-opportunities-insight', template: "\n<app-date-picker\n[selectedDateRange]=\"selectedDateRange\"\n[dateRanges]=\"dateRanges\"\n(dateRangeChange)=\"onDateRangeSelect($event)\">\n</app-date-picker>\n\n <div class=\"row mt-5\">\n\n <div class=\"col-12 col-md-6 mb-3 analytics\">\n <h5 class=\"accordion-heading\">Opportunities by Category</h5>\n <div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!opportunitiesCategoryLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </ng-template>\n </div>\n <div>\n <ng-template [ngIf]=\"opportunitiesCategoryLoaded && opportunitiesCategory?.data?.length\">\n <plotly-plot [data]=\"opportunitiesCategory?.data\" [config]=\"opportunitiesCategory?.config\" [layout]=\"opportunitiesCategory?.layout\" [useResizeHandler]=\"true\">\n </plotly-plot>\n </ng-template>\n </div>\n <div *ngIf=\"!opportunitiesCategory?.data?.length && opportunitiesCategoryLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Crm.OpportunitiesMessage.NoInsightMessage' | transloco\">\n </pw-no-data>\n </div>\n </div>\n\n <div class=\"col-12 col-md-6 mb-3 analytics\">\n <h5 class=\"accordion-heading\">Opportunity by Stage</h5>\n <div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!opportunitiesStageLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </ng-template>\n </div>\n <div>\n <ng-template [ngIf]=\"opportunitiesStageLoaded && opportunitiesStage?.data?.length\">\n <plotly-plot [data]=\"opportunitiesStage?.data\" [config]=\"opportunitiesStage?.config\" [layout]=\"opportunitiesStage?.layout\" [useResizeHandler]=\"true\">\n </plotly-plot>\n </ng-template>\n </div>\n <div *ngIf=\" opportunitiesStageLoaded && !opportunitiesStage?.data?.length\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Crm.OpportunitiesMessage.NoInsightMessage' | transloco\">\n </pw-no-data>\n </div>\n </div>\n\n <div class=\"col-12 col-md-6 mb-3 analytics\">\n <h5 class=\"accordion-heading\">Opportunities - All</h5>\n <div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!opportunitiesGraphLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </ng-template>\n </div>\n <div>\n <ng-template [ngIf]=\"opportunitiesGraphLoaded && opportunitiesGraphData?.data?.length\">\n <plotly-plot [data]=\"opportunitiesGraphData?.data\" [config]=\"opportunitiesGraphData?.config\" [layout]=\"opportunitiesGraphData?.layout\"\n [useResizeHandler]=\"true\">\n </plotly-plot>\n </ng-template>\n </div>\n <div *ngIf=\"opportunitiesGraphLoaded && !opportunitiesGraphData?.data?.length\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Crm.OpportunitiesMessage.NoInsightMessage' | transloco\">\n </pw-no-data>\n </div>\n </div>\n\n </div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_sub_bg: rgb(70, 136, 236);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}@media (min-width: 640px) and (max-width: 768px){.primeng-datatable-container tr td{width:350px}}.search-opportunities-search-input{background-color:#fff!important}\n"] }]
152
152
  }], ctorParameters: () => [{ type: i1.CrmService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i2.ProductService }] });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NtYXJ0LWNybS9zcmMvbGliL3ByaXZhdGUvY29tcG9uZW50cy9zbWFydC1jcm0taW5zaWdodC9zbWFydC1jcm0tb3Bwb3J0dW5pdGllcy1pbnNpZ2h0L3NtYXJ0LWNybS1vcHBvcnR1bml0aWVzLWluc2lnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWluc2lnaHQvc21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC9zbWFydC1jcm0tb3Bwb3J0dW5pdGllcy1pbnNpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQU8zRCxNQUFNLE9BQU8scUNBQ1QsU0FBUSxnQkFBZ0I7SUFnRXhCLFlBQ3FCLFVBQXNCLEVBQ3ZDLFFBQWtCLEVBQ0QsR0FBc0IsRUFDdEIsY0FBOEI7UUFFL0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxD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QkFBd0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxVQUFrQjtRQUM5QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FuTVEscUNBQXFDO21HQUFyQyxxQ0FBcUMsaUdDeEJsRCx3OUZBb0VBOzs0RkQ1Q2EscUNBQXFDO2tCQUxqRCxTQUFTOytCQUNJLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcbmltcG9ydCB7IENybVNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2Uvc21hcnQtY3JtLXNoYXJlZCc7XG5cbmltcG9ydCB7IFBsb3RseSwgU3Vic2NyaXB0aW9uLCBVc2VyIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQ3JtT3Bwb3J0dW5pdHlSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvY3JtLW9wcG9ydHVuaXR5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgT3Bwb3J0dW5pdHlJbnNpZ2h0IH0gZnJvbSAnbGlicy9zbWFydC1jcm0vc3JjL2xpYi9zaGFyZWQvaW50ZXJmYWNlL3NtYXJ0LWNybS1tb2R1bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEhlbHBlclNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvaGVscGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgaGFuZGxlRGF0ZVJhbmdlU2VsZWN0aW9uIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1zbWFydC1jcm0tb3Bwb3J0dW5pdGllcy1pbnNpZ2h0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0Q3JtT3Bwb3J0dW5pdGllc0luc2lnaHRDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkXG57XG4gICAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgaGFzQWNjZXNzID0gZmFsc2U7XG5cbiAgICBzZWFyY2hUZXh0ID0gJyc7XG5cbiAgICBzZWxlY3RlZERhdGVSYW5nZTtcblxuICAgIGRhdGVSYW5nZXM7XG5cbiAgICBkYXRhOiBDcm1PcHBvcnR1bml0eVJlc3BvbnNlID0ge1xuICAgICAgICBjcm1fb3Bwb3J0dW5pdGllczogW10sXG4gICAgICAgIG9iamVjdF9jb3VudDogMCxcbiAgICAgICAgdW5maWx0ZXJlZF9jb3VudDogMFxuICAgIH07XG5cbiAgICBpZCA9ICcnO1xuXG4gICAgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgb3Bwb3J0dW5pdGllc0luc2lnaHQ6IE9wcG9ydHVuaXR5SW5zaWdodFtdO1xuXG4gICAgb3Bwb3J0dW5pdGllc0NhdGVnb3J5O1xuXG4gICAgb3Bwb3J0dW5pdGllc1N0YWdlO1xuXG4gICAgb3Bwb3J0dW5pdGllc0dyYXBoRGF0YTtcblxuICAgIG9wcG9ydHVuaXRpZXNHZW9ncmFwaHk6IFBsb3RseS5GaWd1cmU7XG5cbiAgICB1c2VyOiBVc2VyO1xuXG4gICAgdXNlcklkOiBudW1iZXI7XG5cbiAgICBzZWFyY2hTdGFnZXM6IG9iamVjdFtdID0gW107XG4gICAgZmlsdGVyQnlTdGFnZXM6IHN0cmluZ1tdID0gW107XG4gICAgZmlsdGVyQnlDYXRlZ29yaWVzID0gW107XG4gICAgc2VhcmNoQ2F0ZWdvcmllczogb2JqZWN0W10gPSBbXTtcblxuICAgIHBhZ2UgPSAxO1xuXG4gICAgc3RhZ2VzID0gW107XG5cbiAgICBjYXRlZ29yaWVzID0gW107XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIG9wcG9ydHVuaXRpZXNJbnNpZ2h0TG9hZGVkID0gZmFsc2U7XG5cbiAgICBvcHBvcnR1bml0aWVzR2VvZ3JhcGh5TG9hZGVkID0gZmFsc2U7XG5cbiAgICBvcHBvcnR1bml0aWVzQ2F0ZWdvcnlMb2FkZWQgPSBmYWxzZTtcblxuICAgIG9wcG9ydHVuaXRpZXNTdGFnZUxvYWRlZCA9IGZhbHNlO1xuXG4gICAgb3Bwb3J0dW5pdGllc0dyYXBoTG9hZGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjcm1TZXJ2aWNlOiBDcm1TZXJ2aWNlLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0U2VydmljZTogUHJvZHVjdFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFVzZXJTdWJzY3JpcHRpb24oKS5zdWJzY3JpYmUoc3Vic2NyaXB0aW9uID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uPy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlcyA9IEhlbHBlclNlcnZpY2UuaW5pdGlhbGl6ZURhdGVSYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRPcHBvcnR1bml0aWVzSW5zaWdodCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29udGFjdEdlb2dyYXBoeSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0T3Bwb3J0dW5pdHlDYXRlZ29yeSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0T3Bwb3J0dW5pdHlTdGFnZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0T3Bwb3J0dW5pdHlHcmFwaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY2FsbCBvcHBvcnR1bml0aWVzIGluc2lnaHQgKi9cbiAgICBwcml2YXRlIGdldE9wcG9ydHVuaXRpZXNJbnNpZ2h0KCkge1xuICAgICAgICB0aGlzLmNybVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRDcm1BbmFseXRpY3ModGhpcy5zdWJzY3JpcHRpb24/LmlkLCAnb3Bwb3J0dW5pdGllc19pbnNpZ2h0cycpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyhyZXNwb25zZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3Bwb3J0dW5pdGllc0luc2lnaHQgPSBbXTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgdGhpcy5vcHBvcnR1bml0aWVzSW5zaWdodCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Bwb3J0dW5pdGllc0luc2lnaHRMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGNhbGwgY29udGFjdCBnZW9ncmFwaHkgKi9cbiAgICBwcml2YXRlIGdldENvbnRhY3RHZW9ncmFwaHkoKSB7XG4gICAgICAgIHRoaXMuY3JtU2VydmljZVxuICAgICAgICAgICAgLmdldENybUFuYWx5dGljcyh0aGlzLnN1YnNjcmlwdGlvbj8uaWQsICdvcHBvcnR1bml0aWVzX2dlb2dyYXBoeScpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNHZW9ncmFwaHkgPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNHZW9ncmFwaHlMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHBvcnR1bml0eUNhdGVnb3J5KCkge1xuICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNDYXRlZ29yeUxvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNybVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRHcmFwaEFuYWx5dGljcyhcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8uaWQsXG4gICAgICAgICAgICAgICAgJ29wcG9ydHVuaXRpZXNfY2F0ZWdvcmllcycsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZT8uc3RhcnREYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5lbmREYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Bwb3J0dW5pdGllc0NhdGVnb3J5ID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzQ2F0ZWdvcnlMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHBvcnR1bml0eVN0YWdlKCkge1xuICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNTdGFnZUxvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNybVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRHcmFwaEFuYWx5dGljcyhcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8uaWQsXG4gICAgICAgICAgICAgICAgJ29wcG9ydHVuaXRpZXNfc3RhZ2UnLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U/LnN0YXJ0RGF0ZVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAgICAgICAgICAgICAgIDogJycsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZT8uZW5kRGF0ZVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNTdGFnZSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Bwb3J0dW5pdGllc1N0YWdlTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3Bwb3J0dW5pdHlHcmFwaCgpIHtcbiAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzR3JhcGhMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jcm1TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0R3JhcGhBbmFseXRpY3MoXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LmlkLFxuICAgICAgICAgICAgICAgICdvcHBvcnR1bml0aWVzX2dyYXBoJyxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5zdGFydERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U/LmVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzR3JhcGhEYXRhID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzR3JhcGhMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EYXRlUmFuZ2VTZWxlY3QoZXZlbnQ6IHsgc3RhcnREYXRlOiBtb21lbnQuTW9tZW50OyBlbmREYXRlOiBtb21lbnQuTW9tZW50IH0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IGhhbmRsZURhdGVSYW5nZVNlbGVjdGlvbihldmVudCwgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSk7XG4gICAgICAgIHRoaXMuZ2V0T3Bwb3J0dW5pdHlDYXRlZ29yeSgpO1xuICAgICAgICB0aGlzLmdldE9wcG9ydHVuaXR5U3RhZ2UoKTtcbiAgICAgICAgdGhpcy5nZXRPcHBvcnR1bml0eUdyYXBoKCk7XG4gICAgfVxuXG4gICAgY2hlY2tQZXJtaXNzaW9uKHBlcm1pc3Npb246IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5ldmFsdWF0ZVBlcm1pc3Npb25zKHBlcm1pc3Npb24pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIlxuPGFwcC1kYXRlLXBpY2tlclxuW3NlbGVjdGVkRGF0ZVJhbmdlXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCJcbltkYXRlUmFuZ2VzXT1cImRhdGVSYW5nZXNcIlxuKGRhdGVSYW5nZUNoYW5nZSk9XCJvbkRhdGVSYW5nZVNlbGVjdCgkZXZlbnQpXCI+XG48L2FwcC1kYXRlLXBpY2tlcj5cblxuICA8ZGl2IGNsYXNzPVwicm93IG10LTVcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgbWItMyBhbmFseXRpY3NcIj5cbiAgICAgIDxoNSBjbGFzcz1cImFjY29yZGlvbi1oZWFkaW5nXCI+T3Bwb3J0dW5pdGllcyBieSBDYXRlZ29yeTwvaDU+XG4gICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIW9wcG9ydHVuaXRpZXNDYXRlZ29yeUxvYWRlZFwiPlxuICAgICAgICAgIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIm9wcG9ydHVuaXRpZXNDYXRlZ29yeUxvYWRlZCAmJiBvcHBvcnR1bml0aWVzQ2F0ZWdvcnk/LmRhdGE/Lmxlbmd0aFwiPlxuICAgICAgICAgIDxwbG90bHktcGxvdCBbZGF0YV09XCJvcHBvcnR1bml0aWVzQ2F0ZWdvcnk/LmRhdGFcIiBbY29uZmlnXT1cIm9wcG9ydHVuaXRpZXNDYXRlZ29yeT8uY29uZmlnXCIgW2xheW91dF09XCJvcHBvcnR1bml0aWVzQ2F0ZWdvcnk/LmxheW91dFwiICBbdXNlUmVzaXplSGFuZGxlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgPC9wbG90bHktcGxvdD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIiFvcHBvcnR1bml0aWVzQ2F0ZWdvcnk/LmRhdGE/Lmxlbmd0aCAmJiBvcHBvcnR1bml0aWVzQ2F0ZWdvcnlMb2FkZWRcIj5cbiAgICAgICAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ0NybS5PcHBvcnR1bml0aWVzTWVzc2FnZS5Ob0luc2lnaHRNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8L3B3LW5vLWRhdGE+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgbWItMyBhbmFseXRpY3NcIj5cbiAgICAgIDxoNSBjbGFzcz1cImFjY29yZGlvbi1oZWFkaW5nXCI+T3Bwb3J0dW5pdHkgYnkgU3RhZ2U8L2g1PlxuICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFvcHBvcnR1bml0aWVzU3RhZ2VMb2FkZWRcIj5cbiAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJvcHBvcnR1bml0aWVzU3RhZ2VMb2FkZWQgJiYgb3Bwb3J0dW5pdGllc1N0YWdlPy5kYXRhPy5sZW5ndGhcIj5cbiAgICAgICAgICA8cGxvdGx5LXBsb3QgW2RhdGFdPVwib3Bwb3J0dW5pdGllc1N0YWdlPy5kYXRhXCIgW2NvbmZpZ109XCJvcHBvcnR1bml0aWVzU3RhZ2U/LmNvbmZpZ1wiIFtsYXlvdXRdPVwib3Bwb3J0dW5pdGllc1N0YWdlPy5sYXlvdXRcIiBbdXNlUmVzaXplSGFuZGxlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgPC9wbG90bHktcGxvdD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIiBvcHBvcnR1bml0aWVzU3RhZ2VMb2FkZWQgJiYgIW9wcG9ydHVuaXRpZXNTdGFnZT8uZGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidDcm0uT3Bwb3J0dW5pdGllc01lc3NhZ2UuTm9JbnNpZ2h0TWVzc2FnZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPC9wdy1uby1kYXRhPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IG1iLTMgYW5hbHl0aWNzXCI+XG4gICAgICA8aDUgY2xhc3M9XCJhY2NvcmRpb24taGVhZGluZ1wiPk9wcG9ydHVuaXRpZXMgLSBBbGw8L2g1PlxuICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFvcHBvcnR1bml0aWVzR3JhcGhMb2FkZWRcIj5cbiAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJvcHBvcnR1bml0aWVzR3JhcGhMb2FkZWQgJiYgb3Bwb3J0dW5pdGllc0dyYXBoRGF0YT8uZGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgICAgPHBsb3RseS1wbG90IFtkYXRhXT1cIm9wcG9ydHVuaXRpZXNHcmFwaERhdGE/LmRhdGFcIiBbY29uZmlnXT1cIm9wcG9ydHVuaXRpZXNHcmFwaERhdGE/LmNvbmZpZ1wiIFtsYXlvdXRdPVwib3Bwb3J0dW5pdGllc0dyYXBoRGF0YT8ubGF5b3V0XCJcbiAgICAgICAgICAgIFt1c2VSZXNpemVIYW5kbGVyXT1cInRydWVcIj5cbiAgICAgICAgICA8L3Bsb3RseS1wbG90PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwib3Bwb3J0dW5pdGllc0dyYXBoTG9hZGVkICYmICFvcHBvcnR1bml0aWVzR3JhcGhEYXRhPy5kYXRhPy5sZW5ndGhcIj5cbiAgICAgICAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ0NybS5PcHBvcnR1bml0aWVzTWVzc2FnZS5Ob0luc2lnaHRNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICA8L3B3LW5vLWRhdGE+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NtYXJ0LWNybS9zcmMvbGliL3ByaXZhdGUvY29tcG9uZW50cy9zbWFydC1jcm0taW5zaWdodC9zbWFydC1jcm0tb3Bwb3J0dW5pdGllcy1pbnNpZ2h0L3NtYXJ0LWNybS1vcHBvcnR1bml0aWVzLWluc2lnaHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWluc2lnaHQvc21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC9zbWFydC1jcm0tb3Bwb3J0dW5pdGllcy1pbnNpZ2h0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFHWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUszRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7OztBQU83RCxNQUFNLE9BQU8scUNBQ1QsU0FBUSxnQkFBZ0I7SUFnRHhCLFlBQ3FCLFVBQXNCLEVBQ3ZDLFFBQWtCLEVBQ0QsR0FBc0IsRUFDdEIsY0FBOEI7UUFFL0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBTEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUV0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUE1Q25ELFNBQUksR0FBMkI7WUFDM0IsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixZQUFZLEVBQUUsQ0FBQztZQUNmLGdCQUFnQixFQUFFLENBQUM7U0FDdEIsQ0FBQztRQVdGLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBRWhDLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUVSLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLGlDQUE0QixHQUFHLEtBQUssQ0FBQztRQUNyQyxnQ0FBMkIsR0FBRyxLQUFLLENBQUM7UUFDcEMsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUVqQyxZQUFPLEdBQUcsT0FBTyxDQUFDO0lBU2xCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCw2Q0FBNkM7SUFDckMsdUJBQXVCO1FBQzNCLElBQUksQ0FBQyxVQUFVO2FBQ1YsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLHdCQUF3QixDQUFDO2FBQ2hFLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztZQUNuQyxDQUFDOztnQkFBTSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDO1FBQ2hELENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELHlDQUF5QztJQUNqQyxtQkFBbUI7UUFDdkIsSUFBSSxDQUFDLFVBQVU7YUFDVixlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUseUJBQXlCLENBQUM7YUFDakUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUM7UUFDM0MsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVU7YUFDVixpQkFBaUIsQ0FDZCxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFDckIsMEJBQTBCLEVBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxTQUFTO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDdkQsQ0FBQyxDQUFDLEVBQUUsRUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxFQUFFLENBQ1g7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztRQUMxQyxDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVTthQUNWLGlCQUFpQixDQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUNyQixxQkFBcUIsRUFDckIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFNBQVM7WUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUN2RCxDQUFDLENBQUMsRUFBRSxFQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPO1lBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDckQsQ0FBQyxDQUFDLEVBQUUsQ0FDWDthQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVO2FBQ1YsaUJBQWlCLENBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQ3JCLHFCQUFxQixFQUNyQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsU0FBUztZQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxFQUFFLEVBQ1IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU87WUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNyRCxDQUFDLENBQUMsRUFBRSxDQUNYO2FBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUM7UUFDM0MsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBMkQ7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHdCQUF3QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQWtCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQW5MUSxxQ0FBcUM7bUdBQXJDLHFDQUFxQyxpR0MxQmxELHc5RkFvRUE7OzRGRDFDYSxxQ0FBcUM7a0JBTGpELFNBQVM7K0JBQ0ksb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgUGxvdGx5LCBTdWJzY3JpcHRpb24sIFVzZXIgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IENybVNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2Uvc21hcnQtY3JtLXNoYXJlZCc7XG5pbXBvcnQgeyBoYW5kbGVEYXRlUmFuZ2VTZWxlY3Rpb24gfSBmcm9tICdAcG9zaXdpc2UvdXRpbHMnO1xuXG5pbXBvcnQgeyBPcHBvcnR1bml0eUluc2lnaHQgfSBmcm9tICdsaWJzL3NtYXJ0LWNybS9zcmMvbGliL3NoYXJlZC9pbnRlcmZhY2Uvc21hcnQtY3JtLW1vZHVsZS5pbnRlcmZhY2UnO1xuXG5pbXBvcnQgeyBDcm1PcHBvcnR1bml0eVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9jcm0tb3Bwb3J0dW5pdHkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1zbWFydC1jcm0tb3Bwb3J0dW5pdGllcy1pbnNpZ2h0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc21hcnQtY3JtLW9wcG9ydHVuaXRpZXMtaW5zaWdodC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0Q3JtT3Bwb3J0dW5pdGllc0luc2lnaHRDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkXG57XG4gICAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcbiAgICB1c2VyOiBVc2VyO1xuICAgIHVzZXJJZDogbnVtYmVyO1xuXG4gICAgZGF0YTogQ3JtT3Bwb3J0dW5pdHlSZXNwb25zZSA9IHtcbiAgICAgICAgY3JtX29wcG9ydHVuaXRpZXM6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuXG4gICAgb3Bwb3J0dW5pdGllc0luc2lnaHQ6IE9wcG9ydHVuaXR5SW5zaWdodFtdO1xuICAgIG9wcG9ydHVuaXRpZXNDYXRlZ29yeTtcbiAgICBvcHBvcnR1bml0aWVzU3RhZ2U7XG4gICAgb3Bwb3J0dW5pdGllc0dyYXBoRGF0YTtcbiAgICBvcHBvcnR1bml0aWVzR2VvZ3JhcGh5OiBQbG90bHkuRmlndXJlO1xuXG4gICAgc2VsZWN0ZWREYXRlUmFuZ2U7XG4gICAgZGF0ZVJhbmdlcztcblxuICAgIHNlYXJjaFRleHQgPSAnJztcbiAgICBzZWFyY2hTdGFnZXM6IG9iamVjdFtdID0gW107XG4gICAgc2VhcmNoQ2F0ZWdvcmllczogb2JqZWN0W10gPSBbXTtcblxuICAgIGZpbHRlckJ5U3RhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZpbHRlckJ5Q2F0ZWdvcmllcyA9IFtdO1xuXG4gICAgcGFnZSA9IDE7XG4gICAgc3RhZ2VzID0gW107XG4gICAgY2F0ZWdvcmllcyA9IFtdO1xuXG4gICAgaWQgPSAnJztcblxuICAgIGxvYWRpbmcgPSB0cnVlO1xuICAgIGlzTG9hZGVkID0gZmFsc2U7XG4gICAgaGFzQWNjZXNzID0gZmFsc2U7XG5cbiAgICBvcHBvcnR1bml0aWVzSW5zaWdodExvYWRlZCA9IGZhbHNlO1xuICAgIG9wcG9ydHVuaXRpZXNHZW9ncmFwaHlMb2FkZWQgPSBmYWxzZTtcbiAgICBvcHBvcnR1bml0aWVzQ2F0ZWdvcnlMb2FkZWQgPSBmYWxzZTtcbiAgICBvcHBvcnR1bml0aWVzU3RhZ2VMb2FkZWQgPSBmYWxzZTtcbiAgICBvcHBvcnR1bml0aWVzR3JhcGhMb2FkZWQgPSBmYWxzZTtcblxuICAgIHJvdXRlcnMgPSBST1VURVJTO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY3JtU2VydmljZTogQ3JtU2VydmljZSxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3RTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRVc2VyU3Vic2NyaXB0aW9uKCkuc3Vic2NyaWJlKHN1YnNjcmlwdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHN1YnNjcmlwdGlvbjtcbiAgICAgICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbj8uaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVSYW5nZXMgPSBIZWxwZXJTZXJ2aWNlLmluaXRpYWxpemVEYXRlUmFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0T3Bwb3J0dW5pdGllc0luc2lnaHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldENvbnRhY3RHZW9ncmFwaHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldE9wcG9ydHVuaXR5Q2F0ZWdvcnkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldE9wcG9ydHVuaXR5U3RhZ2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldE9wcG9ydHVuaXR5R3JhcGgoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGNhbGwgb3Bwb3J0dW5pdGllcyBpbnNpZ2h0ICovXG4gICAgcHJpdmF0ZSBnZXRPcHBvcnR1bml0aWVzSW5zaWdodCgpIHtcbiAgICAgICAgdGhpcy5jcm1TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0Q3JtQW5hbHl0aWNzKHRoaXMuc3Vic2NyaXB0aW9uPy5pZCwgJ29wcG9ydHVuaXRpZXNfaW5zaWdodHMnKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMocmVzcG9uc2UpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNJbnNpZ2h0ID0gW107XG4gICAgICAgICAgICAgICAgfSBlbHNlIHRoaXMub3Bwb3J0dW5pdGllc0luc2lnaHQgPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNJbnNpZ2h0TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBjYWxsIGNvbnRhY3QgZ2VvZ3JhcGh5ICovXG4gICAgcHJpdmF0ZSBnZXRDb250YWN0R2VvZ3JhcGh5KCkge1xuICAgICAgICB0aGlzLmNybVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRDcm1BbmFseXRpY3ModGhpcy5zdWJzY3JpcHRpb24/LmlkLCAnb3Bwb3J0dW5pdGllc19nZW9ncmFwaHknKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzR2VvZ3JhcGh5ID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzR2VvZ3JhcGh5TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3Bwb3J0dW5pdHlDYXRlZ29yeSgpIHtcbiAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzQ2F0ZWdvcnlMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jcm1TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0R3JhcGhBbmFseXRpY3MoXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LmlkLFxuICAgICAgICAgICAgICAgICdvcHBvcnR1bml0aWVzX2NhdGVnb3JpZXMnLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U/LnN0YXJ0RGF0ZVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAgICAgICAgICAgICAgIDogJycsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZT8uZW5kRGF0ZVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNDYXRlZ29yeSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Bwb3J0dW5pdGllc0NhdGVnb3J5TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3Bwb3J0dW5pdHlTdGFnZSgpIHtcbiAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzU3RhZ2VMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jcm1TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0R3JhcGhBbmFseXRpY3MoXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LmlkLFxuICAgICAgICAgICAgICAgICdvcHBvcnR1bml0aWVzX3N0YWdlJyxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5zdGFydERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2U/LmVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHBvcnR1bml0aWVzU3RhZ2UgPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wcG9ydHVuaXRpZXNTdGFnZUxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wcG9ydHVuaXR5R3JhcGgoKSB7XG4gICAgICAgIHRoaXMub3Bwb3J0dW5pdGllc0dyYXBoTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3JtU2VydmljZVxuICAgICAgICAgICAgLmdldEdyYXBoQW5hbHl0aWNzKFxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy5pZCxcbiAgICAgICAgICAgICAgICAnb3Bwb3J0dW5pdGllc19ncmFwaCcsXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZT8uc3RhcnREYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlPy5lbmREYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXG4gICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Bwb3J0dW5pdGllc0dyYXBoRGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Bwb3J0dW5pdGllc0dyYXBoTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGF0ZVJhbmdlU2VsZWN0KGV2ZW50OiB7IHN0YXJ0RGF0ZTogbW9tZW50Lk1vbWVudDsgZW5kRGF0ZTogbW9tZW50Lk1vbWVudCB9KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSBoYW5kbGVEYXRlUmFuZ2VTZWxlY3Rpb24oZXZlbnQsIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UpO1xuICAgICAgICB0aGlzLmdldE9wcG9ydHVuaXR5Q2F0ZWdvcnkoKTtcbiAgICAgICAgdGhpcy5nZXRPcHBvcnR1bml0eVN0YWdlKCk7XG4gICAgICAgIHRoaXMuZ2V0T3Bwb3J0dW5pdHlHcmFwaCgpO1xuICAgIH1cblxuICAgIGNoZWNrUGVybWlzc2lvbihwZXJtaXNzaW9uOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZXZhbHVhdGVQZXJtaXNzaW9ucyhwZXJtaXNzaW9uKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCJcbjxhcHAtZGF0ZS1waWNrZXJcbltzZWxlY3RlZERhdGVSYW5nZV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXG5bZGF0ZVJhbmdlc109XCJkYXRlUmFuZ2VzXCJcbihkYXRlUmFuZ2VDaGFuZ2UpPVwib25EYXRlUmFuZ2VTZWxlY3QoJGV2ZW50KVwiPlxuPC9hcHAtZGF0ZS1waWNrZXI+XG5cbiAgPGRpdiBjbGFzcz1cInJvdyBtdC01XCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IG1iLTMgYW5hbHl0aWNzXCI+XG4gICAgICA8aDUgY2xhc3M9XCJhY2NvcmRpb24taGVhZGluZ1wiPk9wcG9ydHVuaXRpZXMgYnkgQ2F0ZWdvcnk8L2g1PlxuICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFvcHBvcnR1bml0aWVzQ2F0ZWdvcnlMb2FkZWRcIj5cbiAgICAgICAgICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJvcHBvcnR1bml0aWVzQ2F0ZWdvcnlMb2FkZWQgJiYgb3Bwb3J0dW5pdGllc0NhdGVnb3J5Py5kYXRhPy5sZW5ndGhcIj5cbiAgICAgICAgICA8cGxvdGx5LXBsb3QgW2RhdGFdPVwib3Bwb3J0dW5pdGllc0NhdGVnb3J5Py5kYXRhXCIgW2NvbmZpZ109XCJvcHBvcnR1bml0aWVzQ2F0ZWdvcnk/LmNvbmZpZ1wiIFtsYXlvdXRdPVwib3Bwb3J0dW5pdGllc0NhdGVnb3J5Py5sYXlvdXRcIiAgW3VzZVJlc2l6ZUhhbmRsZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvcGxvdGx5LXBsb3Q+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhb3Bwb3J0dW5pdGllc0NhdGVnb3J5Py5kYXRhPy5sZW5ndGggJiYgb3Bwb3J0dW5pdGllc0NhdGVnb3J5TG9hZGVkXCI+XG4gICAgICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidDcm0uT3Bwb3J0dW5pdGllc01lc3NhZ2UuTm9JbnNpZ2h0TWVzc2FnZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPC9wdy1uby1kYXRhPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IG1iLTMgYW5hbHl0aWNzXCI+XG4gICAgICA8aDUgY2xhc3M9XCJhY2NvcmRpb24taGVhZGluZ1wiPk9wcG9ydHVuaXR5IGJ5IFN0YWdlPC9oNT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhb3Bwb3J0dW5pdGllc1N0YWdlTG9hZGVkXCI+XG4gICAgICAgICAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwib3Bwb3J0dW5pdGllc1N0YWdlTG9hZGVkICYmIG9wcG9ydHVuaXRpZXNTdGFnZT8uZGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgICAgPHBsb3RseS1wbG90IFtkYXRhXT1cIm9wcG9ydHVuaXRpZXNTdGFnZT8uZGF0YVwiIFtjb25maWddPVwib3Bwb3J0dW5pdGllc1N0YWdlPy5jb25maWdcIiBbbGF5b3V0XT1cIm9wcG9ydHVuaXRpZXNTdGFnZT8ubGF5b3V0XCIgW3VzZVJlc2l6ZUhhbmRsZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvcGxvdGx5LXBsb3Q+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIgb3Bwb3J0dW5pdGllc1N0YWdlTG9hZGVkICYmICFvcHBvcnR1bml0aWVzU3RhZ2U/LmRhdGE/Lmxlbmd0aFwiPlxuICAgICAgICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBbbWVzc2FnZV09XCInQ3JtLk9wcG9ydHVuaXRpZXNNZXNzYWdlLk5vSW5zaWdodE1lc3NhZ2UnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgIDwvcHctbm8tZGF0YT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBtYi0zIGFuYWx5dGljc1wiPlxuICAgICAgPGg1IGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRpbmdcIj5PcHBvcnR1bml0aWVzIC0gQWxsPC9oNT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhb3Bwb3J0dW5pdGllc0dyYXBoTG9hZGVkXCI+XG4gICAgICAgICAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwib3Bwb3J0dW5pdGllc0dyYXBoTG9hZGVkICYmIG9wcG9ydHVuaXRpZXNHcmFwaERhdGE/LmRhdGE/Lmxlbmd0aFwiPlxuICAgICAgICAgIDxwbG90bHktcGxvdCBbZGF0YV09XCJvcHBvcnR1bml0aWVzR3JhcGhEYXRhPy5kYXRhXCIgW2NvbmZpZ109XCJvcHBvcnR1bml0aWVzR3JhcGhEYXRhPy5jb25maWdcIiBbbGF5b3V0XT1cIm9wcG9ydHVuaXRpZXNHcmFwaERhdGE/LmxheW91dFwiXG4gICAgICAgICAgICBbdXNlUmVzaXplSGFuZGxlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgPC9wbG90bHktcGxvdD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIm9wcG9ydHVuaXRpZXNHcmFwaExvYWRlZCAmJiAhb3Bwb3J0dW5pdGllc0dyYXBoRGF0YT8uZGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidDcm0uT3Bwb3J0dW5pdGllc01lc3NhZ2UuTm9JbnNpZ2h0TWVzc2FnZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgPC9wdy1uby1kYXRhPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG4iXX0=
@@ -1,9 +1,9 @@
1
1
  import { Component, Injector } from '@angular/core';
2
2
  import { UntypedFormGroup } from '@angular/forms';
3
- import { AppSmartCrm } from '../../../../shared/models/smart-crm.model';
4
- import { CrmService } from '@posiwise/smart-crm-shared';
5
3
  import { AppBaseComponent } from '@posiwise/app-base-component';
6
4
  import { HelperService } from '@posiwise/helper-service';
5
+ import { CrmService } from '@posiwise/smart-crm-shared';
6
+ import { AppSmartCrm } from '../../../../shared/models/smart-crm.model';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@posiwise/smart-crm-shared";
9
9
  import * as i2 from "@angular/common";
@@ -20,12 +20,12 @@ export class SmartCrmLeadsDetailsComponent extends AppBaseComponent {
20
20
  constructor(injector, crmService) {
21
21
  super(injector);
22
22
  this.crmService = crmService;
23
- this.submitted = false;
24
- this.buttonBusy = false;
25
- this.isLoading = true;
26
23
  this.filteredAccounts = [];
27
24
  this.potentials = [];
28
25
  this.labels = [];
26
+ this.submitted = false;
27
+ this.buttonBusy = false;
28
+ this.isLoading = true;
29
29
  this.form = AppSmartCrm.getLeadsForm();
30
30
  }
31
31
  ngOnInit() {
@@ -183,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
183
183
  type: Component,
184
184
  args: [{ selector: 'pw-smart-crm-leads-details', template: "<div class=\"me-auto col-xs-6\">\n <a aria-label=\"Navigate to Target\" (click)=\"back()\" class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\"\n aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>{{ 'Crm.CrmLeads.Title' | transloco }}: {{ isLoading ? '' : (data?.first_name || data?.last_name ? data?.first_name ||\n data?.last_name : ('Label.AddNew' | transloco)) }}</span>\n </h3>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n<div class=\"p-2 mt-3\" *ngIf=\"!isLoading\">\n <form [formGroup]=\"form\" (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-sm-4\">\n <pw-input-container [label]=\"'Crm.ContactMessage.FirstName' | transloco\" name=\"first_name\"\n [errorMsg]=\"'Crm.ContactMessage.FirstNameErrorMessage' | transloco\">\n <input type=\"text\" class=\"form-control\" formControlName=\"first_name\" id=\"first_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['first_name'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-4\">\n <pw-input-container [label]=\"'Crm.ContactMessage.LastName' | transloco\" name=\"last_name\"\n [errorMsg]=\"'Crm.ContactMessage.LastNameErrorMessage' | transloco\">\n <input type=\"text\" class=\"form-control\" formControlName=\"last_name\" id=\"last_name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['last_name'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-4\">\n <pw-input-container [label]=\"'Crm.ContactMessage.Headline' | transloco\" name=\"headline\"\n [errorMsg]=\"'Crm.ContactMessage.HeadlineErrorMessage' | transloco\">\n <input type=\"text\" class=\"form-control\" formControlName=\"headline\" id=\"headline\"\n [ngClass]=\"{ 'is-invalid': submitted && f['headline'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-4 col-lg-4\">\n <pw-input-container [label]=\"'Crm.ContactMessage.Tel' | transloco\" name=\"tel\"\n [errorMsg]=\"'Crm.ContactMessage.TelErrorMessage' | transloco\">\n <input type=\"text\" class=\"form-control\" formControlName=\"tel\" id=\"tel\"\n [ngClass]=\"{ 'is-invalid': submitted && f['tel'].errors }\" />\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-4\">\n <div class=\"mb-3\">\n <label for=\"email\">{{ 'Crm.ContactMessage.Email' | transloco }} <span class=\"text-danger required-icon\">*</span>\n <span *ngIf=\"data && data.email_verified\" class=\"text-success fw-bold\">Verified</span>\n </label>\n <input type=\"text\" class=\"form-control\" formControlName=\"email\"\n [ngClass]=\"{ 'is-invalid': submitted && f['email'].errors }\" />\n <pw-field-error-display [displayError]=\"(submitted || f['email'].touched) && f['email'].errors\" [errorMsg]=\"\n f['email']?.errors?.required\n ? 'Please enter email'\n : 'Please Enter valid email'\n \">\n </pw-field-error-display>\n </div>\n </div>\n <div class=\"col-12 col-sm-4\">\n <div class=\"mb-3\">\n <label class=\"info-circle mb-2\" for=\"email\">{{ 'Crm.ContactMessage.EmailVerified' | transloco }} <span\n class=\"tooltiptext gradient-custom-branding\"> {{'Crm.ContactMessage.Tooltip.EmailVerified'| transloco\n }} </span>\n </label>\n <pw-input-container class=\"nowrap\" name=\"email_verified\">\n <ui-switch formControlName=\"email_verified\" name=\"email_verified\"\n [ngClass]=\"{ 'is-invalid': submitted && f['email_verified'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-sm-4\">\n <pw-input-container [label]=\"'Crm.ContactMessage.LinkedInUrl' | transloco\" name=\"linkedin_url\">\n <input type=\"text\" class=\"form-control\" formControlName=\"linkedin_url\" id=\"linkedin_url\" />\n </pw-input-container>\n </div>\n <div class=\"ui-fluid skills-modal col-sm-4\">\n <label class=\"info-circle mb-2\" for=\"Account\">{{ 'Crm.ContactMessage.Account' | transloco }} <span\n class=\"tooltiptext gradient-custom-branding\">{{ 'Crm.CrmLeads.Tooltip.Account' | transloco }}</span></label>\n <p-autoComplete [suggestions]=\"filteredAccounts\" formControlName=\"crm_account_id\" dataKey=\"id\"\n autocomplete=\"off\" field=\"name\" [dropdown]=\"true\" (completeMethod)=\"search($event)\" styleClass=\"w-100\"\n [inputStyle]=\"\n submitted && f['crm_account_id'].errors\n ? { border: '1px solid #ff586b' }\n : { border: '1px solid gray' }\n \" placeholder=\"Search accounts\" [multiple]=\"false\">\n </p-autoComplete>\n </div>\n <div class=\"col-12 col-sm-4\">\n <label class=\"info-circle mb-2\" for=\"Source\">{{ 'Crm.CrmLeads.Source' | transloco }} <span class=\"text-danger required-icon\">*</span><span\n class=\"tooltiptext gradient-custom-branding\">{{ 'Crm.CrmLeads.Tooltip.Source' | transloco }}</span>\n </label>\n <pw-input-container name=\"crm_source_id\" errorMsg=\"source is required\" *ngIf=\"source$ | async as source\">\n <select class=\"form-select\" formControlName=\"crm_source_id\"\n [ngClass]=\"{ 'is-invalid': submitted && f['crm_source_id'].errors }\">\n <option *ngFor=\"let option of source['crm_sources']\" [value]=\"option.id\"> {{ option.name }} </option>\n </select>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-4\">\n <pw-input-container [label]=\"'Crm.ContactMessage.DateOfBirth' | transloco\" name=\"dob\">\n <div class=\"input-group\">\n <input class=\"form-control\" placeholder=\"dd-mmm-yyyy\" formControlName=\"dob\" ngbDatepicker\n #d=\"ngbDatepicker\" />\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary\" (click)=\"d.toggle()\" type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </pw-input-container>\n </div>\n <div class=\"col-12 col-sm-4\">\n <label class=\"info-circle mb-2\" for=\"Potential\">{{ 'Crm.ContactMessage.Potential' | transloco }} <span\n class=\"tooltiptext gradient-custom-branding\"> {{ 'Crm.ContactMessage.Tooltip.Potential' | transloco\n }}</span>\n </label>\n <select formControlName=\"potential\" class=\"form-control form-select\"\n [ngClass]=\"{ 'is-invalid': submitted && f['potential'].errors }\">\n <option *ngFor=\"let option of potentials\" [value]=\"option\">{{ option }}</option>\n </select>\n </div>\n <div class=\"col-12 col-sm-4\">\n <label class=\"info-circle mb-2\" for=\"Label\">{{ 'Crm.ContactMessage.Labels' | transloco }} <span\n class=\"tooltiptext gradient-custom-branding\"> {{ 'Crm.ContactMessage.Tooltip.Labels' | transloco }}\n </span>\n </label>\n <p-multiSelect [options]=\"labels\" formControlName=\"labels\" appendTo=\"body\"></p-multiSelect>\n </div>\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\" class=\"btn btn-outline-default me-2\" (click)=\"back()\"> {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\" [buttonBusy]=\"buttonBusy\" class=\"btn btn-primary\" [disabled]=\"form.invalid\"> {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n</div>\n" }]
185
185
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.CrmService }] });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY3JtLWxlYWRzLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWxlYWRzL3NtYXJ0LWNybS1sZWFkcy1kZXRhaWxzL3NtYXJ0LWNybS1sZWFkcy1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc21hcnQtY3JtL3NyYy9saWIvcHJpdmF0ZS9jb21wb25lbnRzL3NtYXJ0LWNybS1sZWFkcy9zbWFydC1jcm0tbGVhZHMtZGV0YWlscy9zbWFydC1jcm0tbGVhZHMtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUt4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNekQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGdCQUFnQjtJQXVCL0QsWUFDSSxRQUFrQixFQUNELFVBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFwQjNDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBUWpCLHFCQUFn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bml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiRGF0ZVN0cnVjdCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEFwcFNtYXJ0Q3JtIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscy9zbWFydC1jcm0ubW9kZWwnO1xuaW1wb3J0IHsgQ3JtU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9zbWFydC1jcm0tc2hhcmVkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ3JtQWNjb3VudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvY3JtLWFjY291bnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENybUxlYWQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL2NybS1sZWFkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1zbWFydC1jcm0tbGVhZHMtZGV0YWlscycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWNybS1sZWFkcy1kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTbWFydENybUxlYWRzRGV0YWlsc0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIGRhdGE6IENybUxlYWQ7XG5cbiAgICBzdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICBidXR0b25CdXN5ID0gZmFsc2U7XG4gICAgaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgIGlkOiBudW1iZXI7XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgYWNjb3VudHM6IENybUFjY291bnRbXTtcblxuICAgIGZpbHRlcmVkQWNjb3VudHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBzb3VyY2UkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICBwb3RlbnRpYWxzID0gW107XG5cbiAgICBsYWJlbHMgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY3JtU2VydmljZTogQ3JtU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIHRoaXMuZm9ybSA9IEFwcFNtYXJ0Q3JtLmdldExlYWRzRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICBpZiAoIU51bWJlcihkYXRhWydJZCddKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlkID0gTnVtYmVyKGRhdGFbJ0lkJ10pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5nZXRVc2VyU3Vic2NyaXB0aW9uSWQoKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldERlZmF1bHRWYWx1ZXModGhpcy5zdWJzY3JpcHRpb25JZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnc3Vic2NyaXB0aW9uX2lkJykuc2V0VmFsdWUodGhpcy5zdWJzY3JpcHRpb25JZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRBY2NvdW50c0J5U3Vic2NyaXB0aW9uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3VyY2UkID0gdGhpcy5jcm1TZXJ2aWNlLmdldEFsbEFjY291bnRTb3VyY2UodGhpcy5zdWJzY3JpcHRpb25JZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBnZXQgdGhlIHNwZWNpZmljIGNvbnRhY3QgZGV0YWlscyBvbiBlZGl0IGZvcm0gKi9cbiAgICBwcml2YXRlIGdldExlYWREZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmNybVNlcnZpY2UuZ2V0Q29udGFjdEJ5SWQodGhpcy5zdWJzY3JpcHRpb25JZCwgdGhpcy5pZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgbGV0IGRvYk9iamVjdDogTmdiRGF0ZVN0cnVjdDtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5kb2IpIHtcbiAgICAgICAgICAgICAgICBkb2JPYmplY3QgPSB7XG4gICAgICAgICAgICAgICAgICAgIHllYXI6IE51bWJlcihyZXNwb25zZS5kb2Iuc3Vic3RyaW5nKDAsIDQpKSxcbiAgICAgICAgICAgICAgICAgICAgbW9udGg6IE51bWJlcihyZXNwb25zZS5kb2Iuc3Vic3RyaW5nKDUsIDcpKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5OiBOdW1iZXIocmVzcG9uc2UuZG9iLnN1YnN0cmluZyg4LCAxMCkpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShyZXNwb25zZSk7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGRvYjogZG9iT2JqZWN0IH0pO1xuICAgICAgICAgICAgdGhpcy5hY2NvdW50cy5mb3JFYWNoKGFjY291bnQgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuY3JtX2FjY291bnRfaWQgPT09IGFjY291bnQuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnY3JtX2FjY291bnRfaWQnKS5wYXRjaFZhbHVlKGFjY291bnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkKHRoaXMuZm9ybSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFya0FsbEFzVG91Y2hlZChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGNvbnRyb2xOYW1lID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdO1xuICAgICAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7IC8vIE1hcmsgZWFjaCBjb250cm9sIGFzIHRvdWNoZWRcbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZChjb250cm9sKTsgLy8gUmVjdXJzaXZlbHkgbWFyayBuZXN0ZWQgZm9ybSBncm91cHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGV4ZWN1dGUgb24gZm9ybSBzdWJtaXNzaW9uICovXG4gICAgb25TYXZlKCkge1xuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZm9ybSB9ID0gdGhpcztcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IHRydWU7XG4gICAgICAgICAgICBpZiAoZm9ybS52YWx1ZS5jcm1fYWNjb3VudF9pZCkge1xuICAgICAgICAgICAgICAgIGZvcm0uZ2V0KCdjcm1fYWNjb3VudF9pZCcpLnNldFZhbHVlKGZvcm0uZ2V0KCdjcm1fYWNjb3VudF9pZCcpLnZhbHVlLmlkKTtcbiAgICAgICAgICAgICAgICBmb3JtLnZhbHVlLmNybV9hY2NvdW50X2lkID0gTnVtYmVyKGZvcm0udmFsdWUuY3JtX2FjY291bnRfaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVXBkYXRlTGVhZCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUG9zdExlYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBnZXQgZm9ybSBjb250cm9scyAqL1xuICAgIGdldCBmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBwb3N0IHRoZSBuZXcgbGVhZCAqL1xuICAgIHByaXZhdGUgb25Qb3N0TGVhZCgpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHsgLi4udGhpcy5mb3JtLnZhbHVlIH07XG4gICAgICAgIGRhdGEuZG9iID0gSGVscGVyU2VydmljZS5kYXRlRm9ybWF0KHRoaXMuZm9ybS5nZXQoJ2RvYicpLnZhbHVlKTtcbiAgICAgICAgZGF0YS5pc19tYW51YWwgPSB0cnVlO1xuICAgICAgICB0aGlzLmNybVNlcnZpY2VcbiAgICAgICAgICAgIC5wb3N0Q3JtTGVhZCh0aGlzLnN1YnNjcmlwdGlvbklkLCBkYXRhKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdDcm0uQ3JtTGVhZHMuQWRkZWRNZXNzYWdlJykpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmFjaygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25CdXN5ID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBsZWFkcyAqL1xuICAgIHByaXZhdGUgb25VcGRhdGVMZWFkKCkge1xuICAgICAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLmZvcm0udmFsdWUgfTtcbiAgICAgICAgZGF0YS5kb2IgPSBIZWxwZXJTZXJ2aWNlLmRhdGVGb3JtYXQodGhpcy5mb3JtLmdldCgnZG9iJykudmFsdWUpO1xuICAgICAgICB0aGlzLmNybVNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVDb250YWN0KHRoaXMuc3Vic2NyaXB0aW9uSWQsIHRoaXMuaWQsIGRhdGEpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJhY2soKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0NybS5Dcm1MZWFkcy5VcGRhdGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBnZXQgdGhlIGxpc3Qgb2YgYWNjb3VudHMgYnkgc3Vic2NyaXB0aW9uSWQgKi9cbiAgICBwcml2YXRlIGdldEFjY291bnRzQnlTdWJzY3JpcHRpb24oKSB7XG4gICAgICAgIHRoaXMuY3JtU2VydmljZVxuICAgICAgICAgICAgLmdldEFjY291bnRzQnlTdWJzY3JpcHRpb24odGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY291bnRzID0gcmVzLmFjY291bnRzO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TGVhZERldGFpbHMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBzZWFyY2ggYWNjb3VudHMgKi9cbiAgICBzZWFyY2goZXZlbnQpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBbXTtcbiAgICAgICAgaWYgKGV2ZW50LnF1ZXJ5KSB7XG4gICAgICAgICAgICBkYXRhID0gdGhpcy5hY2NvdW50cz8uZmlsdGVyKCh4OiBDcm1BY2NvdW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHgubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV2ZW50LnF1ZXJ5LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjY291bnRzPy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIGRhdGEucHVzaChlbGVtZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maWx0ZXJlZEFjY291bnRzID0gZGF0YTtcbiAgICB9XG5cbiAgICBnZXREZWZhdWx0VmFsdWVzKGlkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5jcm1TZXJ2aWNlLmdldENybUNvbnRhY3REZWZhdWx0VmFsdWVzKGlkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMucG90ZW50aWFscyA9IHJlc1sncG90ZW50aWFsJ107XG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IHJlc1snbGFiZWxzJ107XG4gICAgICAgICAgICBsYWJlbC5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHZhbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5sYWJlbHMucHVzaChkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWUtYXV0byBjb2wteHMtNlwiPlxuICA8YSBhcmlhLWxhYmVsPVwiTmF2aWdhdGUgdG8gVGFyZ2V0XCIgKGNsaWNrKT1cImJhY2soKVwiIGNsYXNzPVwicHJldmlvdXNcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LWFsdC1jaXJjbGUtbGVmdFwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxuICA8aDMgY2xhc3M9XCJtLXN1YmhlYWRlcl9fdGl0bGUgbS1zdWJoZWFkZXJfX3RpdGxlLS1zZXBhcmF0b3JcIj5cbiAgICA8c3Bhbj57eyAnQ3JtLkNybUxlYWRzLlRpdGxlJyB8IHRyYW5zbG9jbyB9fToge3sgaXNMb2FkaW5nID8gJycgOiAoZGF0YT8uZmlyc3RfbmFtZSB8fCBkYXRhPy5sYXN0X25hbWUgPyBkYXRhPy5maXJzdF9uYW1lIHx8XG4gICAgICBkYXRhPy5sYXN0X25hbWUgOiAoJ0xhYmVsLkFkZE5ldycgfCB0cmFuc2xvY28pKSB9fTwvc3Bhbj5cbiAgPC9oMz5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIlxuICAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG4gIDwvZGl2PlxuPGRpdiBjbGFzcz1cInAtMiBtdC0zXCIgICAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNFwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQ3JtLkNvbnRhY3RNZXNzYWdlLkZpcnN0TmFtZScgfCB0cmFuc2xvY29cIiBuYW1lPVwiZmlyc3RfbmFtZVwiXG4gICAgICAgICAgW2Vycm9yTXNnXT1cIidDcm0uQ29udGFjdE1lc3NhZ2UuRmlyc3ROYW1lRXJyb3JNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3RfbmFtZVwiIGlkPVwiZmlyc3RfbmFtZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2ZpcnN0X25hbWUnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00XCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidDcm0uQ29udGFjdE1lc3NhZ2UuTGFzdE5hbWUnIHwgdHJhbnNsb2NvXCIgbmFtZT1cImxhc3RfbmFtZVwiXG4gICAgICAgICAgW2Vycm9yTXNnXT1cIidDcm0uQ29udGFjdE1lc3NhZ2UuTGFzdE5hbWVFcnJvck1lc3NhZ2UnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJsYXN0X25hbWVcIiBpZD1cImxhc3RfbmFtZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2xhc3RfbmFtZSddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTRcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0NybS5Db250YWN0TWVzc2FnZS5IZWFkbGluZScgfCB0cmFuc2xvY29cIiBuYW1lPVwiaGVhZGxpbmVcIlxuICAgICAgICAgIFtlcnJvck1zZ109XCInQ3JtLkNvbnRhY3RNZXNzYWdlLkhlYWRsaW5lRXJyb3JNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiaGVhZGxpbmVcIiBpZD1cImhlYWRsaW5lXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnaGVhZGxpbmUnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00IGNvbC1sZy00XCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidDcm0uQ29udGFjdE1lc3NhZ2UuVGVsJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJ0ZWxcIlxuICAgICAgICAgIFtlcnJvck1zZ109XCInQ3JtLkNvbnRhY3RNZXNzYWdlLlRlbEVycm9yTWVzc2FnZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInRlbFwiIGlkPVwidGVsXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsndGVsJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbFwiPnt7ICdDcm0uQ29udGFjdE1lc3NhZ2UuRW1haWwnIHwgdHJhbnNsb2NvIH19IDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXIgcmVxdWlyZWQtaWNvblwiPio8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGEgJiYgZGF0YS5lbWFpbF92ZXJpZmllZFwiIGNsYXNzPVwidGV4dC1zdWNjZXNzIGZ3LWJvbGRcIj5WZXJpZmllZDwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydlbWFpbCddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgICA8cHctZmllbGQtZXJyb3ItZGlzcGxheSBbZGlzcGxheUVycm9yXT1cIihzdWJtaXR0ZWQgfHwgZlsnZW1haWwnXS50b3VjaGVkKSAmJiBmWydlbWFpbCddLmVycm9yc1wiIFtlcnJvck1zZ109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmWydlbWFpbCddPy5lcnJvcnM/LnJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1BsZWFzZSBlbnRlciBlbWFpbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnUGxlYXNlIEVudGVyIHZhbGlkIGVtYWlsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgPC9wdy1maWVsZC1lcnJvci1kaXNwbGF5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImluZm8tY2lyY2xlIG1iLTJcIiBmb3I9XCJlbWFpbFwiPnt7ICdDcm0uQ29udGFjdE1lc3NhZ2UuRW1haWxWZXJpZmllZCcgfCB0cmFuc2xvY28gfX0gPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj4ge3snQ3JtLkNvbnRhY3RNZXNzYWdlLlRvb2x0aXAuRW1haWxWZXJpZmllZCd8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICB9fSA8L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIGNsYXNzPVwibm93cmFwXCIgbmFtZT1cImVtYWlsX3ZlcmlmaWVkXCI+XG4gICAgICAgICAgICA8dWktc3dpdGNoIGZvcm1Db250cm9sTmFtZT1cImVtYWlsX3ZlcmlmaWVkXCIgbmFtZT1cImVtYWlsX3ZlcmlmaWVkXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydlbWFpbF92ZXJpZmllZCddLmVycm9ycyB9XCI+XG4gICAgICAgICAgICA8L3VpLXN3aXRjaD5cbiAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTRcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0NybS5Db250YWN0TWVzc2FnZS5MaW5rZWRJblVybCcgfCB0cmFuc2xvY29cIiBuYW1lPVwibGlua2VkaW5fdXJsXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJsaW5rZWRpbl91cmxcIiBpZD1cImxpbmtlZGluX3VybFwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidWktZmx1aWQgc2tpbGxzLW1vZGFsIGNvbC1zbS00XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImluZm8tY2lyY2xlIG1iLTJcIiBmb3I9XCJBY2NvdW50XCI+e3sgJ0NybS5Db250YWN0TWVzc2FnZS5BY2NvdW50JyB8IHRyYW5zbG9jbyB9fSA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQ3JtLkNybUxlYWRzLlRvb2x0aXAuQWNjb3VudCcgfCB0cmFuc2xvY28gfX08L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgPHAtYXV0b0NvbXBsZXRlIFtzdWdnZXN0aW9uc109XCJmaWx0ZXJlZEFjY291bnRzXCIgZm9ybUNvbnRyb2xOYW1lPVwiY3JtX2FjY291bnRfaWRcIiBkYXRhS2V5PVwiaWRcIlxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZpZWxkPVwibmFtZVwiIFtkcm9wZG93bl09XCJ0cnVlXCIgKGNvbXBsZXRlTWV0aG9kKT1cInNlYXJjaCgkZXZlbnQpXCIgc3R5bGVDbGFzcz1cInctMTAwXCJcbiAgICAgICAgICBbaW5wdXRTdHlsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlZCAmJiBmWydjcm1fYWNjb3VudF9pZCddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBib3JkZXI6ICcxcHggc29saWQgI2ZmNTg2YicgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyBib3JkZXI6ICcxcHggc29saWQgZ3JheScgfVxuICAgICAgICAgICAgICAgICAgICBcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBhY2NvdW50c1wiIFttdWx0aXBsZV09XCJmYWxzZVwiPlxuICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImluZm8tY2lyY2xlIG1iLTJcIiBmb3I9XCJTb3VyY2VcIj57eyAnQ3JtLkNybUxlYWRzLlNvdXJjZScgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlciByZXF1aXJlZC1pY29uXCI+Kjwvc3Bhbj48c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj57eyAnQ3JtLkNybUxlYWRzLlRvb2x0aXAuU291cmNlJyB8IHRyYW5zbG9jbyB9fTwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBuYW1lPVwiY3JtX3NvdXJjZV9pZFwiIGVycm9yTXNnPVwic291cmNlIGlzIHJlcXVpcmVkXCIgKm5nSWY9XCJzb3VyY2UkIHwgYXN5bmMgYXMgc291cmNlXCI+XG4gICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3JtX3NvdXJjZV9pZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2NybV9zb3VyY2VfaWQnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNvdXJjZVsnY3JtX3NvdXJjZXMnXVwiIFt2YWx1ZV09XCJvcHRpb24uaWRcIj4ge3sgb3B0aW9uLm5hbWUgfX0gPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00XCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidDcm0uQ29udGFjdE1lc3NhZ2UuRGF0ZU9mQmlydGgnIHwgdHJhbnNsb2NvXCIgbmFtZT1cImRvYlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJkZC1tbW0teXl5eVwiIGZvcm1Db250cm9sTmFtZT1cImRvYlwiIG5nYkRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgI2Q9XCJuZ2JEYXRlcGlja2VyXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJkLnRvZ2dsZSgpXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2FsZW5kYXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImluZm8tY2lyY2xlIG1iLTJcIiBmb3I9XCJQb3RlbnRpYWxcIj57eyAnQ3JtLkNvbnRhY3RNZXNzYWdlLlBvdGVudGlhbCcgfCB0cmFuc2xvY28gfX0gPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+IHt7ICdDcm0uQ29udGFjdE1lc3NhZ2UuVG9vbHRpcC5Qb3RlbnRpYWwnIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJwb3RlbnRpYWxcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLXNlbGVjdFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydwb3RlbnRpYWwnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwb3RlbnRpYWxzXCIgW3ZhbHVlXT1cIm9wdGlvblwiPnt7IG9wdGlvbiB9fTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbmZvLWNpcmNsZSBtYi0yXCIgZm9yPVwiTGFiZWxcIj57eyAnQ3JtLkNvbnRhY3RNZXNzYWdlLkxhYmVscycgfCB0cmFuc2xvY28gfX0gPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwidG9vbHRpcHRleHQgZ3JhZGllbnQtY3VzdG9tLWJyYW5kaW5nXCI+IHt7ICdDcm0uQ29udGFjdE1lc3NhZ2UuVG9vbHRpcC5MYWJlbHMnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cC1tdWx0aVNlbGVjdCBbb3B0aW9uc109XCJsYWJlbHNcIiBmb3JtQ29udHJvbE5hbWU9XCJsYWJlbHNcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbXVsdGlTZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGV4dC1lbmQgbXQtM1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIiAoY2xpY2spPVwiYmFjaygpXCI+IHt7ICdCdXR0b24uQ2FuY2VsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2J1dHRvbkJ1c3ldPVwiYnV0dG9uQnVzeVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiPiB7eyAnQnV0dG9uLlN1Ym1pdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9kaXY+XG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY3JtLWxlYWRzLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zbWFydC1jcm0vc3JjL2xpYi9wcml2YXRlL2NvbXBvbmVudHMvc21hcnQtY3JtLWxlYWRzL3NtYXJ0LWNybS1sZWFkcy1kZXRhaWxzL3NtYXJ0LWNybS1sZWFkcy1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc21hcnQtY3JtL3NyYy9saWIvcHJpdmF0ZS9jb21wb25lbnRzL3NtYXJ0LWNybS1sZWFkcy9zbWFydC1jcm0tbGVhZHMtZGV0YWlscy9zbWFydC1jcm0tbGVhZHMtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVF4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNeEUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGdCQUFnQjtJQW1CL0QsWUFDSSxRQUFrQixFQUNELFVBQXNCO1FBRXZDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFYM0MscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBRWhDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVaLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBT2IsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGdFQUFnRTtJQUN4RCxjQUFjO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5RSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUNyQixJQUFJLFNBQXdCLENBQUM7WUFDN0IsSUFBSSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2YsU0FBUyxHQUFHO29CQUNSLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMxQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDM0MsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7aUJBQzdDLENBQUM7WUFDTixDQUFDO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFNBQTJCO1FBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLCtCQUErQjtZQUN4RCxJQUFJLE9BQU8sWUFBWSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7WUFDMUUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxNQUFNO1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsSUFBSSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsb0NBQW9DO0lBQzVCLFVBQVU7UUFDZCxNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVU7YUFDVixXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUM7YUFDdEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELG1DQUFtQztJQUMzQixZQUFZO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVTthQUNWLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ2pELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELDZEQUE2RDtJQUNyRCx5QkFBeUI7UUFDN0IsSUFBSSxDQUFDLFVBQVU7YUFDVix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQzlDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsQ0FBQztRQUNMLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsTUFBTSxDQUFDLEtBQUs7UUFDUixJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQWEsRUFBRSxFQUFFO2dCQUMzQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBVTtRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEIsTUFBTSxJQUFJLEdBQUc7b0JBQ1QsS0FBSyxFQUFFLEdBQUc7b0JBQ1YsS0FBSyxFQUFFLEdBQUc7aUJBQ2IsQ0FBQztnQkFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVRLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBdkxRLDZCQUE2QjttR0FBN0IsNkJBQTZCLHlGQ25CMUMsczZQQTBJQTs7NEZEdkhhLDZCQUE2QjtrQkFKekMsU0FBUzsrQkFDSSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBDcm1TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL3NtYXJ0LWNybS1zaGFyZWQnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbmltcG9ydCB7IENybUFjY291bnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL2NybS1hY2NvdW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDcm1MZWFkIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9jcm0tbGVhZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwU21hcnRDcm0gfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3NtYXJ0LWNybS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctc21hcnQtY3JtLWxlYWRzLWRldGFpbHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1jcm0tbGVhZHMtZGV0YWlscy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRDcm1MZWFkc0RldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBpZDogbnVtYmVyO1xuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG5cbiAgICBkYXRhOiBDcm1MZWFkO1xuICAgIHNvdXJjZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIGFjY291bnRzOiBDcm1BY2NvdW50W107XG4gICAgZmlsdGVyZWRBY2NvdW50czogc3RyaW5nW10gPSBbXTtcblxuICAgIHBvdGVudGlhbHMgPSBbXTtcbiAgICBsYWJlbHMgPSBbXTtcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIGJ1dHRvbkJ1c3kgPSBmYWxzZTtcbiAgICBpc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjcm1TZXJ2aWNlOiBDcm1TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5mb3JtID0gQXBwU21hcnRDcm0uZ2V0TGVhZHNGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGlmICghTnVtYmVyKGRhdGFbJ0lkJ10pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaWQgPSBOdW1iZXIoZGF0YVsnSWQnXSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdldFVzZXJTdWJzY3JpcHRpb25JZCgpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gcmVzcG9uc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25JZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGVmYXVsdFZhbHVlcyh0aGlzLnN1YnNjcmlwdGlvbklkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdzdWJzY3JpcHRpb25faWQnKS5zZXRWYWx1ZSh0aGlzLnN1YnNjcmlwdGlvbklkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdldEFjY291bnRzQnlTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZSQgPSB0aGlzLmNybVNlcnZpY2UuZ2V0QWxsQWNjb3VudFNvdXJjZSh0aGlzLnN1YnNjcmlwdGlvbklkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCB0aGUgc3BlY2lmaWMgY29udGFjdCBkZXRhaWxzIG9uIGVkaXQgZm9ybSAqL1xuICAgIHByaXZhdGUgZ2V0TGVhZERldGFpbHMoKSB7XG4gICAgICAgIHRoaXMuY3JtU2VydmljZS5nZXRDb250YWN0QnlJZCh0aGlzLnN1YnNjcmlwdGlvbklkLCB0aGlzLmlkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gcmVzcG9uc2U7XG4gICAgICAgICAgICBsZXQgZG9iT2JqZWN0OiBOZ2JEYXRlU3RydWN0O1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRvYikge1xuICAgICAgICAgICAgICAgIGRvYk9iamVjdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgeWVhcjogTnVtYmVyKHJlc3BvbnNlLmRvYi5zdWJzdHJpbmcoMCwgNCkpLFxuICAgICAgICAgICAgICAgICAgICBtb250aDogTnVtYmVyKHJlc3BvbnNlLmRvYi5zdWJzdHJpbmcoNSwgNykpLFxuICAgICAgICAgICAgICAgICAgICBkYXk6IE51bWJlcihyZXNwb25zZS5kb2Iuc3Vic3RyaW5nKDgsIDEwKSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgZG9iOiBkb2JPYmplY3QgfSk7XG4gICAgICAgICAgICB0aGlzLmFjY291bnRzLmZvckVhY2goYWNjb3VudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5jcm1fYWNjb3VudF9pZCA9PT0gYWNjb3VudC5pZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdjcm1fYWNjb3VudF9pZCcpLnBhdGNoVmFsdWUoYWNjb3VudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQodGhpcy5mb3JtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXJrQWxsQXNUb3VjaGVkKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goY29udHJvbE5hbWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV07XG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTsgLy8gTWFyayBlYWNoIGNvbnRyb2wgYXMgdG91Y2hlZFxuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkKGNvbnRyb2wpOyAvLyBSZWN1cnNpdmVseSBtYXJrIG5lc3RlZCBmb3JtIGdyb3Vwc1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gZXhlY3V0ZSBvbiBmb3JtIHN1Ym1pc3Npb24gKi9cbiAgICBvblNhdmUoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgeyBmb3JtIH0gPSB0aGlzO1xuICAgICAgICAgICAgdGhpcy5idXR0b25CdXN5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChmb3JtLnZhbHVlLmNybV9hY2NvdW50X2lkKSB7XG4gICAgICAgICAgICAgICAgZm9ybS5nZXQoJ2NybV9hY2NvdW50X2lkJykuc2V0VmFsdWUoZm9ybS5nZXQoJ2NybV9hY2NvdW50X2lkJykudmFsdWUuaWQpO1xuICAgICAgICAgICAgICAgIGZvcm0udmFsdWUuY3JtX2FjY291bnRfaWQgPSBOdW1iZXIoZm9ybS52YWx1ZS5jcm1fYWNjb3VudF9pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25VcGRhdGVMZWFkKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25Qb3N0TGVhZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCBmb3JtIGNvbnRyb2xzICovXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIHBvc3QgdGhlIG5ldyBsZWFkICovXG4gICAgcHJpdmF0ZSBvblBvc3RMZWFkKCkge1xuICAgICAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLmZvcm0udmFsdWUgfTtcbiAgICAgICAgZGF0YS5kb2IgPSBIZWxwZXJTZXJ2aWNlLmRhdGVGb3JtYXQodGhpcy5mb3JtLmdldCgnZG9iJykudmFsdWUpO1xuICAgICAgICBkYXRhLmlzX21hbnVhbCA9IHRydWU7XG4gICAgICAgIHRoaXMuY3JtU2VydmljZVxuICAgICAgICAgICAgLnBvc3RDcm1MZWFkKHRoaXMuc3Vic2NyaXB0aW9uSWQsIGRhdGEpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0NybS5Dcm1MZWFkcy5BZGRlZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5iYWNrKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIGxlYWRzICovXG4gICAgcHJpdmF0ZSBvblVwZGF0ZUxlYWQoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IC4uLnRoaXMuZm9ybS52YWx1ZSB9O1xuICAgICAgICBkYXRhLmRvYiA9IEhlbHBlclNlcnZpY2UuZGF0ZUZvcm1hdCh0aGlzLmZvcm0uZ2V0KCdkb2InKS52YWx1ZSk7XG4gICAgICAgIHRoaXMuY3JtU2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZUNvbnRhY3QodGhpcy5zdWJzY3JpcHRpb25JZCwgdGhpcy5pZCwgZGF0YSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFjaygpO1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQ3JtLkNybUxlYWRzLlVwZGF0ZWRNZXNzYWdlJykpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCB0aGUgbGlzdCBvZiBhY2NvdW50cyBieSBzdWJzY3JpcHRpb25JZCAqL1xuICAgIHByaXZhdGUgZ2V0QWNjb3VudHNCeVN1YnNjcmlwdGlvbigpIHtcbiAgICAgICAgdGhpcy5jcm1TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0QWNjb3VudHNCeVN1YnNjcmlwdGlvbih0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjb3VudHMgPSByZXMuYWNjb3VudHM7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRMZWFkRGV0YWlscygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIHNlYXJjaCBhY2NvdW50cyAqL1xuICAgIHNlYXJjaChldmVudCkge1xuICAgICAgICBsZXQgZGF0YSA9IFtdO1xuICAgICAgICBpZiAoZXZlbnQucXVlcnkpIHtcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLmFjY291bnRzPy5maWx0ZXIoKHg6IENybUFjY291bnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZXZlbnQucXVlcnkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWNjb3VudHM/LmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgZGF0YS5wdXNoKGVsZW1lbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpbHRlcmVkQWNjb3VudHMgPSBkYXRhO1xuICAgIH1cblxuICAgIGdldERlZmF1bHRWYWx1ZXMoaWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmNybVNlcnZpY2UuZ2V0Q3JtQ29udGFjdERlZmF1bHRWYWx1ZXMoaWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5wb3RlbnRpYWxzID0gcmVzWydwb3RlbnRpYWwnXTtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gcmVzWydsYWJlbHMnXTtcbiAgICAgICAgICAgIGxhYmVsLmZvckVhY2godmFsID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdmFsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVscy5wdXNoKGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZS1hdXRvIGNvbC14cy02XCI+XG4gIDxhIGFyaWEtbGFiZWw9XCJOYXZpZ2F0ZSB0byBUYXJnZXRcIiAoY2xpY2spPVwiYmFjaygpXCIgY2xhc3M9XCJwcmV2aW91c1wiPjxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0XCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XG4gIDxoMyBjbGFzcz1cIm0tc3ViaGVhZGVyX190aXRsZSBtLXN1YmhlYWRlcl9fdGl0bGUtLXNlcGFyYXRvclwiPlxuICAgIDxzcGFuPnt7ICdDcm0uQ3JtTGVhZHMuVGl0bGUnIHwgdHJhbnNsb2NvIH19OiB7eyBpc0xvYWRpbmcgPyAnJyA6IChkYXRhPy5maXJzdF9uYW1lIHx8IGRhdGE/Lmxhc3RfbmFtZSA/IGRhdGE/LmZpcnN0X25hbWUgfHxcbiAgICAgIGRhdGE/Lmxhc3RfbmFtZSA6ICgnTGFiZWwuQWRkTmV3JyB8IHRyYW5zbG9jbykpIH19PC9zcGFuPlxuICA8L2gzPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgPC9kaXY+XG48ZGl2IGNsYXNzPVwicC0yIG10LTNcIiAgICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TYXZlKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00XCI+XG4gICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidDcm0uQ29udGFjdE1lc3NhZ2UuRmlyc3ROYW1lJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJmaXJzdF9uYW1lXCJcbiAgICAgICAgICBbZXJyb3JNc2ddPVwiJ0NybS5Db250YWN0TWVzc2FnZS5GaXJzdE5hbWVFcnJvck1lc3NhZ2UnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdF9uYW1lXCIgaWQ9XCJmaXJzdF9uYW1lXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnZmlyc3RfbmFtZSddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTRcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0NybS5Db250YWN0TWVzc2FnZS5MYXN0TmFtZScgfCB0cmFuc2xvY29cIiBuYW1lPVwibGFzdF9uYW1lXCJcbiAgICAgICAgICBbZXJyb3JNc2ddPVwiJ0NybS5Db250YWN0TWVzc2FnZS5MYXN0TmFtZUVycm9yTWVzc2FnZScgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImxhc3RfbmFtZVwiIGlkPVwibGFzdF9uYW1lXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnbGFzdF9uYW1lJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNFwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQ3JtLkNvbnRhY3RNZXNzYWdlLkhlYWRsaW5lJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJoZWFkbGluZVwiXG4gICAgICAgICAgW2Vycm9yTXNnXT1cIidDcm0uQ29udGFjdE1lc3NhZ2UuSGVhZGxpbmVFcnJvck1lc3NhZ2UnIHwgdHJhbnNsb2NvXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJoZWFkbGluZVwiIGlkPVwiaGVhZGxpbmVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydoZWFkbGluZSddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTQgY29sLWxnLTRcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0NybS5Db250YWN0TWVzc2FnZS5UZWwnIHwgdHJhbnNsb2NvXCIgbmFtZT1cInRlbFwiXG4gICAgICAgICAgW2Vycm9yTXNnXT1cIidDcm0uQ29udGFjdE1lc3NhZ2UuVGVsRXJyb3JNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidGVsXCIgaWQ9XCJ0ZWxcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWyd0ZWwnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImVtYWlsXCI+e3sgJ0NybS5Db250YWN0TWVzc2FnZS5FbWFpbCcgfCB0cmFuc2xvY28gfX0gPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlciByZXF1aXJlZC1pY29uXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YSAmJiBkYXRhLmVtYWlsX3ZlcmlmaWVkXCIgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3MgZnctYm9sZFwiPlZlcmlmaWVkPC9zcGFuPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2VtYWlsJ10uZXJyb3JzIH1cIiAvPlxuICAgICAgICAgIDxwdy1maWVsZC1lcnJvci1kaXNwbGF5IFtkaXNwbGF5RXJyb3JdPVwiKHN1Ym1pdHRlZCB8fCBmWydlbWFpbCddLnRvdWNoZWQpICYmIGZbJ2VtYWlsJ10uZXJyb3JzXCIgW2Vycm9yTXNnXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZbJ2VtYWlsJ10/LmVycm9ycz8ucmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnUGxlYXNlIGVudGVyIGVtYWlsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdQbGVhc2UgRW50ZXIgdmFsaWQgZW1haWwnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICA8L3B3LWZpZWxkLWVycm9yLWRpc3BsYXk+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1jaXJjbGUgbWItMlwiIGZvcj1cImVtYWlsXCI+e3sgJ0NybS5Db250YWN0TWVzc2FnZS5FbWFpbFZlcmlmaWVkJyB8IHRyYW5zbG9jbyB9fSA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPiB7eydDcm0uQ29udGFjdE1lc3NhZ2UuVG9vbHRpcC5FbWFpbFZlcmlmaWVkJ3wgdHJhbnNsb2NvXG4gICAgICAgICAgICAgIH19IDwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgY2xhc3M9XCJub3dyYXBcIiBuYW1lPVwiZW1haWxfdmVyaWZpZWRcIj5cbiAgICAgICAgICAgIDx1aS1zd2l0Y2ggZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxfdmVyaWZpZWRcIiBuYW1lPVwiZW1haWxfdmVyaWZpZWRcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2VtYWlsX3ZlcmlmaWVkJ10uZXJyb3JzIH1cIj5cbiAgICAgICAgICAgIDwvdWktc3dpdGNoPlxuICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tNFwiPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQ3JtLkNvbnRhY3RNZXNzYWdlLkxpbmtlZEluVXJsJyB8IHRyYW5zbG9jb1wiIG5hbWU9XCJsaW5rZWRpbl91cmxcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImxpbmtlZGluX3VybFwiIGlkPVwibGlua2VkaW5fdXJsXCIgLz5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1aS1mbHVpZCBza2lsbHMtbW9kYWwgY29sLXNtLTRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1jaXJjbGUgbWItMlwiIGZvcj1cIkFjY291bnRcIj57eyAnQ3JtLkNvbnRhY3RNZXNzYWdlLkFjY291bnQnIHwgdHJhbnNsb2NvIH19IDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7ICdDcm0uQ3JtTGVhZHMuVG9vbHRpcC5BY2NvdW50JyB8IHRyYW5zbG9jbyB9fTwvc3Bhbj48L2xhYmVsPlxuICAgICAgICA8cC1hdXRvQ29tcGxldGUgW3N1Z2dlc3Rpb25zXT1cImZpbHRlcmVkQWNjb3VudHNcIiBmb3JtQ29udHJvbE5hbWU9XCJjcm1fYWNjb3VudF9pZFwiIGRhdGFLZXk9XCJpZFwiXG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZmllbGQ9XCJuYW1lXCIgW2Ryb3Bkb3duXT1cInRydWVcIiAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIiBzdHlsZUNsYXNzPVwidy0xMDBcIlxuICAgICAgICAgIFtpbnB1dFN0eWxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0dGVkICYmIGZbJ2NybV9hY2NvdW50X2lkJ10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGJvcmRlcjogJzFweCBzb2xpZCAjZmY1ODZiJyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7IGJvcmRlcjogJzFweCBzb2xpZCBncmF5JyB9XG4gICAgICAgICAgICAgICAgICAgIFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGFjY291bnRzXCIgW211bHRpcGxlXT1cImZhbHNlXCI+XG4gICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1jaXJjbGUgbWItMlwiIGZvcj1cIlNvdXJjZVwiPnt7ICdDcm0uQ3JtTGVhZHMuU291cmNlJyB8IHRyYW5zbG9jbyB9fSA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyIHJlcXVpcmVkLWljb25cIj4qPC9zcGFuPjxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRvb2x0aXB0ZXh0IGdyYWRpZW50LWN1c3RvbS1icmFuZGluZ1wiPnt7ICdDcm0uQ3JtTGVhZHMuVG9vbHRpcC5Tb3VyY2UnIHwgdHJhbnNsb2NvIH19PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIG5hbWU9XCJjcm1fc291cmNlX2lkXCIgZXJyb3JNc2c9XCJzb3VyY2UgaXMgcmVxdWlyZWRcIiAqbmdJZj1cInNvdXJjZSQgfCBhc3luYyBhcyBzb3VyY2VcIj5cbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJjcm1fc291cmNlX2lkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnY3JtX3NvdXJjZV9pZCddLmVycm9ycyB9XCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc291cmNlWydjcm1fc291cmNlcyddXCIgW3ZhbHVlXT1cIm9wdGlvbi5pZFwiPiB7eyBvcHRpb24ubmFtZSB9fSA8L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTRcIj5cbiAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0NybS5Db250YWN0TWVzc2FnZS5EYXRlT2ZCaXJ0aCcgfCB0cmFuc2xvY29cIiBuYW1lPVwiZG9iXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cImRkLW1tbS15eXl5XCIgZm9ybUNvbnRyb2xOYW1lPVwiZG9iXCIgbmdiRGF0ZXBpY2tlclxuICAgICAgICAgICAgICAjZD1cIm5nYkRhdGVwaWNrZXJcIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImQudG9nZ2xlKClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jYWxlbmRhclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLTRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5mby1jaXJjbGUgbWItMlwiIGZvcj1cIlBvdGVudGlhbFwiPnt7ICdDcm0uQ29udGFjdE1lc3NhZ2UuUG90ZW50aWFsJyB8IHRyYW5zbG9jbyB9fSA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj4ge3sgJ0NybS5Db250YWN0TWVzc2FnZS5Ub29sdGlwLlBvdGVudGlhbCcgfCB0cmFuc2xvY29cbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInBvdGVudGlhbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tc2VsZWN0XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ3BvdGVudGlhbCddLmVycm9ycyB9XCI+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHBvdGVudGlhbHNcIiBbdmFsdWVdPVwib3B0aW9uXCI+e3sgb3B0aW9uIH19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS00XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImluZm8tY2lyY2xlIG1iLTJcIiBmb3I9XCJMYWJlbFwiPnt7ICdDcm0uQ29udGFjdE1lc3NhZ2UuTGFiZWxzJyB8IHRyYW5zbG9jbyB9fSA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwdGV4dCBncmFkaWVudC1jdXN0b20tYnJhbmRpbmdcIj4ge3sgJ0NybS5Db250YWN0TWVzc2FnZS5Ub29sdGlwLkxhYmVscycgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxwLW11bHRpU2VsZWN0IFtvcHRpb25zXT1cImxhYmVsc1wiIGZvcm1Db250cm9sTmFtZT1cImxhYmVsc1wiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tdWx0aVNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZCBtdC0zXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRlZmF1bHQgbWUtMlwiIChjbGljayk9XCJiYWNrKClcIj4ge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbYnV0dG9uQnVzeV09XCJidXR0b25CdXN5XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCI+IHt7ICdCdXR0b24uU3VibWl0JyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==