tango-app-ui-manage-settings 3.4.0-beta.21 → 3.4.0-beta.23

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 (78) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/action-popup/action-popup.component.mjs +3 -3
  3. package/esm2022/lib/components/activity-logs/activity-logs.component.mjs +3 -12
  4. package/esm2022/lib/components/brand-details/billing-details/billing-details.component.mjs +3 -3
  5. package/esm2022/lib/components/brand-details/brand-details.component.mjs +3 -3
  6. package/esm2022/lib/components/brand-details/brand-info/brand-info.component.mjs +3 -3
  7. package/esm2022/lib/components/brand-details/signatory-details/signatory-details.component.mjs +3 -3
  8. package/esm2022/lib/components/configurations/audit-configuration/audit-configuration.component.mjs +3 -3
  9. package/esm2022/lib/components/configurations/configurations.component.mjs +3 -3
  10. package/esm2022/lib/components/configurations/control-center-configuration/control-center-configuration.component.mjs +3 -3
  11. package/esm2022/lib/components/configurations/dashboard-configuration/dashboard-configuration.component.mjs +3 -3
  12. package/esm2022/lib/components/configurations/domain-details/domain-details.component.mjs +3 -3
  13. package/esm2022/lib/components/configurations/email-configuration/email-configuration.component.mjs +3 -3
  14. package/esm2022/lib/components/configurations/email-scheduler/email-scheduler.component.mjs +4 -3
  15. package/esm2022/lib/components/configurations/employee-training/employee-training.component.mjs +3 -3
  16. package/esm2022/lib/components/configurations/feature-configuration/feature-configuration.component.mjs +3 -3
  17. package/esm2022/lib/components/configurations/report-configuration/add-report/add-report.component.mjs +3 -3
  18. package/esm2022/lib/components/configurations/report-configuration/report-configuration.component.mjs +3 -3
  19. package/esm2022/lib/components/configurations/ticket-configuration/ticket-configuration.component.mjs +3 -3
  20. package/esm2022/lib/components/configurations/user-configuration/user-configuration.component.mjs +3 -3
  21. package/esm2022/lib/components/contact-directory/contact-directory.component.mjs +3 -3
  22. package/esm2022/lib/components/contact-directory/detele-spoc/detele-spoc.component.mjs +3 -3
  23. package/esm2022/lib/components/contact-directory/edit-spoc/edit-spoc.component.mjs +3 -3
  24. package/esm2022/lib/components/documents/documents.component.mjs +3 -3
  25. package/esm2022/lib/components/mail-only-users/mail-only-users.component.mjs +3 -3
  26. package/esm2022/lib/components/payments-subscription/billing/billing-group-form/billing-group-form.component.mjs +3 -3
  27. package/esm2022/lib/components/payments-subscription/billing/billing-group-view/billing-group-view.component.mjs +3 -3
  28. package/esm2022/lib/components/payments-subscription/billing/billing.component.mjs +3 -3
  29. package/esm2022/lib/components/payments-subscription/billing/request-confirmation/request-confirmation.component.mjs +3 -3
  30. package/esm2022/lib/components/payments-subscription/invoice-credits/invoice-credits.component.mjs +3 -3
  31. package/esm2022/lib/components/payments-subscription/invoice-credits/paynow/paynow.component.mjs +3 -3
  32. package/esm2022/lib/components/payments-subscription/payments-subscription.component.mjs +3 -3
  33. package/esm2022/lib/components/payments-subscription/request-popups/skiptrail/skiptrail.component.mjs +3 -3
  34. package/esm2022/lib/components/payments-subscription/request-popups/starttrailrequest/starttrailrequest.component.mjs +3 -3
  35. package/esm2022/lib/components/payments-subscription/request-popups/subscribe-request/subscribe-request.component.mjs +3 -3
  36. package/esm2022/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.mjs +3 -3
  37. package/esm2022/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.mjs +3 -3
  38. package/esm2022/lib/components/payments-subscription/subscription-popups/model-content/model-content.component.mjs +3 -3
  39. package/esm2022/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.mjs +3 -3
  40. package/esm2022/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.mjs +3 -3
  41. package/esm2022/lib/components/payments-subscription/subscription-popups/needhelp/needhelp.component.mjs +3 -3
  42. package/esm2022/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.mjs +3 -3
  43. package/esm2022/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.mjs +3 -3
  44. package/esm2022/lib/components/payments-subscription/subscription-popups/skip-trail/skip-trail.component.mjs +3 -3
  45. package/esm2022/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.mjs +3 -3
  46. package/esm2022/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.mjs +3 -3
  47. package/esm2022/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.mjs +3 -3
  48. package/esm2022/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.mjs +3 -3
  49. package/esm2022/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.mjs +3 -3
  50. package/esm2022/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.mjs +3 -3
  51. package/esm2022/lib/components/payments-subscription/subscription-popups/unsubscribeproduct/unsubscribeproduct.component.mjs +3 -3
  52. package/esm2022/lib/components/payments-subscription/subscription-popups/update/update.component.mjs +3 -3
  53. package/esm2022/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.mjs +3 -3
  54. package/esm2022/lib/components/payments-subscription/subscription-popups/viewstores/viewstores.component.mjs +3 -3
  55. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +3 -3
  56. package/esm2022/lib/components/tango-manage-settings/tango-manage-settings.component.mjs +3 -3
  57. package/esm2022/lib/directives/dnd.directive.mjs +1 -1
  58. package/esm2022/lib/guards/activity-log.guard.mjs +1 -1
  59. package/esm2022/lib/guards/brand-detail.guard.mjs +1 -1
  60. package/esm2022/lib/guards/configuration.guard.mjs +1 -1
  61. package/esm2022/lib/guards/contact-directory.guard.mjs +1 -1
  62. package/esm2022/lib/guards/documents.guard.mjs +1 -1
  63. package/esm2022/lib/guards/payment-subscriptions.guard.mjs +1 -1
  64. package/esm2022/lib/services/client-api.service.mjs +1 -1
  65. package/esm2022/lib/services/payment-subscription.service.mjs +1 -1
  66. package/esm2022/lib/services/util.mjs +1 -1
  67. package/esm2022/lib/tango-manage-settings-routing.module.mjs +1 -1
  68. package/esm2022/lib/tango-manage-settings.module.mjs +1 -1
  69. package/esm2022/public-api.mjs +1 -1
  70. package/fesm2022/tango-app-ui-manage-settings.mjs +111 -119
  71. package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
  72. package/lib/components/activity-logs/activity-logs.component.d.ts +1 -1
  73. package/lib/components/contact-directory/contact-directory.component.d.ts +1 -1
  74. package/lib/components/payments-subscription/billing/billing-group-form/billing-group-form.component.d.ts +1 -1
  75. package/lib/components/payments-subscription/billing/billing.component.d.ts +1 -1
  76. package/lib/components/payments-subscription/invoice-credits/invoice-credits.component.d.ts +2 -2
  77. package/lib/components/tango-manage-settings/tango-manage-settings.component.d.ts +1 -1
  78. package/package.json +1 -1
package/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # TangoManageSettings
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project tango-manage-settings` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project tango-manage-settings`.
8
- > Note: Don't forget to add `--project tango-manage-settings` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build tango-manage-settings` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build tango-manage-settings`, go to the dist folder `cd dist/tango-manage-settings` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test tango-manage-settings` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # TangoManageSettings
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project tango-manage-settings` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project tango-manage-settings`.
8
+ > Note: Don't forget to add `--project tango-manage-settings` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build tango-manage-settings` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build tango-manage-settings`, go to the dist folder `cd dist/tango-manage-settings` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test tango-manage-settings` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -13,10 +13,10 @@ export class ActionPopupComponent {
13
13
  this.activeModal.close('submit');
14
14
  }
15
15
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionPopupComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
16
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionPopupComponent, selector: "lib-action-popup", ngImport: i0, template: "<div class=\"card group-delete py-0\">\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\n <div class=\"my-5\">\n <div class=\"symbol symbol-75px symbol-circle\">\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEE4E2\"/>\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FEF3F2\" stroke-width=\"8\"/>\n <path d=\"M28 24V28M28 32H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\" stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n \n </div>\n </div>\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Delete User?</a>\n <span class=\"sub-title fw-normal mt-2\">Are you sure you want to delete this user? This action cannot be undone.</span>\n\n <div class=\"mt-5 w-100\">\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\n <button id=\"alert-toast\" class=\"btn btn-danger w-100 ms-3\" (click)=\"onSubmit()\">Delete</button> \n </div>\n </div>\n\n </div>\n</div>", styles: [".sub-title{font-size:14px!important}\n"] });
16
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionPopupComponent, selector: "lib-action-popup", ngImport: i0, template: "<div class=\"card group-delete py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEE4E2\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FEF3F2\" stroke-width=\"8\"/>\r\n <path d=\"M28 24V28M28 32H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\" stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n \r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Delete User?</a>\r\n <span class=\"sub-title fw-normal mt-2\">Are you sure you want to delete this user? This action cannot be undone.</span>\r\n\r\n <div class=\"mt-5 w-100\">\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-danger w-100 ms-3\" (click)=\"onSubmit()\">Delete</button> \r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".sub-title{font-size:14px!important}\n"] });
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionPopupComponent, decorators: [{
19
19
  type: Component,
20
- args: [{ selector: 'lib-action-popup', template: "<div class=\"card group-delete py-0\">\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\n <div class=\"my-5\">\n <div class=\"symbol symbol-75px symbol-circle\">\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEE4E2\"/>\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FEF3F2\" stroke-width=\"8\"/>\n <path d=\"M28 24V28M28 32H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\" stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n \n </div>\n </div>\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Delete User?</a>\n <span class=\"sub-title fw-normal mt-2\">Are you sure you want to delete this user? This action cannot be undone.</span>\n\n <div class=\"mt-5 w-100\">\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\n <button id=\"alert-toast\" class=\"btn btn-danger w-100 ms-3\" (click)=\"onSubmit()\">Delete</button> \n </div>\n </div>\n\n </div>\n</div>", styles: [".sub-title{font-size:14px!important}\n"] }]
20
+ args: [{ selector: 'lib-action-popup', template: "<div class=\"card group-delete py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEE4E2\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FEF3F2\" stroke-width=\"8\"/>\r\n <path d=\"M28 24V28M28 32H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\" stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n \r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Delete User?</a>\r\n <span class=\"sub-title fw-normal mt-2\">Are you sure you want to delete this user? This action cannot be undone.</span>\r\n\r\n <div class=\"mt-5 w-100\">\r\n <div role=\"group\" class=\"d-flex mt-3 mb-15\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button id=\"alert-toast\" class=\"btn btn-danger w-100 ms-3\" (click)=\"onSubmit()\">Delete</button> \r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".sub-title{font-size:14px!important}\n"] }]
21
21
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1wb3B1cC9hY3Rpb24tcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTFDLE1BQU0sT0FBTyxvQkFBb0I7SUFFWjtJQUFyQixZQUFxQixXQUEyQjtRQUEzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFFaEQsQ0FBQztJQUdDLE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBYlUsb0JBQW9COzRGQUFwQixvQkFBb0Isd0RDUmpDLDZnREF1Qk07OzRGRGZPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYWN0aW9uLXBvcHVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb24tcG9wdXAuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvblBvcHVwQ29tcG9uZW50IHtcblxuY29uc3RydWN0b3IoIHByaXZhdGUgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLCl7XG5cbn1cblxuXG4gIGNhbmNlbCgpe1xuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ2Nsb3NlJyk7XG4gIH1cblxuICBvblN1Ym1pdCgpe1xuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ3N1Ym1pdCcpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBncm91cC1kZWxldGUgcHktMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMCBkLWZsZXggZmxleC1zdGFydCBmbGV4LWNvbHVtbiBwLTkgXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteS01XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sIHN5bWJvbC03NXB4IHN5bWJvbC1jaXJjbGVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRTRFMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkVGM0YyXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyNFYyOE0yOCAzMkgyOC4wMU0zOCAyOEMzOCAzMy41MjI4IDMzLjUyMjggMzggMjggMzhDMjIuNDc3MiAzOCAxOCAzMy41MjI4IDE4IDI4QzE4IDIyLjQ3NzIgMjIuNDc3MiAxOCAyOCAxOEMzMy41MjI4IDE4IDM4IDIyLjQ3NzIgMzggMjhaXCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPkRlbGV0ZSBVc2VyPzwvYT5cbiAgICAgICAgPHNwYW4gIGNsYXNzPVwic3ViLXRpdGxlIGZ3LW5vcm1hbCBtdC0yXCI+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHVzZXI/IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuPC9zcGFuPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHctMTAwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImQtZmxleCBtdC0zIG1iLTE1XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtM1wiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICBpZD1cImFsZXJ0LXRvYXN0XCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlciB3LTEwMCBtcy0zXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5EZWxldGU8L2J1dHRvbj4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1wb3B1cC9hY3Rpb24tcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTFDLE1BQU0sT0FBTyxvQkFBb0I7SUFFWjtJQUFyQixZQUFxQixXQUEyQjtRQUEzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFFaEQsQ0FBQztJQUdDLE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBYlUsb0JBQW9COzRGQUFwQixvQkFBb0Isd0RDUmpDLDJqREF1Qk07OzRGRGZPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hY3Rpb24tcG9wdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb24tcG9wdXAuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25Qb3B1cENvbXBvbmVudCB7XHJcblxyXG5jb25zdHJ1Y3RvciggcHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsKXtcclxuXHJcbn1cclxuXHJcblxyXG4gIGNhbmNlbCgpe1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnY2xvc2UnKTtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCl7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWJtaXQnKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgZ3JvdXAtZGVsZXRlIHB5LTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMCBkLWZsZXggZmxleC1zdGFydCBmbGV4LWNvbHVtbiBwLTkgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVFNEUyXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyNFYyOE0yOCAzMkgyOC4wMU0zOCAyOEMzOCAzMy41MjI4IDMzLjUyMjggMzggMjggMzhDMjIuNDc3MiAzOCAxOCAzMy41MjI4IDE4IDI4QzE4IDIyLjQ3NzIgMjIuNDc3MiAxOCAyOCAxOEMzMy41MjI4IDE4IDM4IDIyLjQ3NzIgMzggMjhaXCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhIGNsYXNzPVwiZnMtNCB0ZXh0LWdyYXktODAwIHRleHQtaG92ZXItcHJpbWFyeSBmdy1ib2xkIG1iLTAgdGl0bGUgY3Vyc29yLXBvaW50ZXJcIj5EZWxldGUgVXNlcj88L2E+XHJcbiAgICAgICAgPHNwYW4gIGNsYXNzPVwic3ViLXRpdGxlIGZ3LW5vcm1hbCBtdC0yXCI+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHVzZXI/IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuPC9zcGFuPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImQtZmxleCBtdC0zIG1iLTE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAgaWQ9XCJhbGVydC10b2FzdFwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXIgdy0xMDAgbXMtM1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+RGVsZXRlPC9idXR0b24+ICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -62,11 +62,6 @@ export class ActivityLogsComponent {
62
62
  id: 'stores',
63
63
  isChecked: true
64
64
  },
65
- {
66
- label: 'Groups',
67
- id: 'groups',
68
- isChecked: true
69
- },
70
65
  {
71
66
  label: 'Users',
72
67
  id: 'users',
@@ -95,10 +90,6 @@ export class ActivityLogsComponent {
95
90
  text: 'Stores',
96
91
  id: 'stores',
97
92
  },
98
- {
99
- text: 'Groups',
100
- id: 'groups',
101
- },
102
93
  {
103
94
  text: 'Users',
104
95
  id: 'users',
@@ -250,13 +241,13 @@ export class ActivityLogsComponent {
250
241
  this.getActivityLogs();
251
242
  }
252
243
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityLogsComponent, deps: [{ token: i1.ClientApiService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
253
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActivityLogsComponent, selector: "lib-activity-logs", host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"activity-card\">\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\n <ng-container [ngSwitch]=\"pageState\" >\n <ng-container *ngSwitchCase=\"'loaded'\" >\n <div class=\"d-flex justify-content-between align-items-center mb-10\">\n <div class=\"header\">Activity Logs</div>\n <div class=\"d-flex align-items-center\">\n <div class=\"d-flex align-items-center position-relative me-5\">\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd\n [drops]=\"'down'\" [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\"\n [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\"\n autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </div>\n <lib-filters [dataObject]=\"dataObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\n\n <!-- <div>\n <div class=\"multi-select-dropdown\" >\n <button (click)=\"$event.stopPropagation();showFilters = !showFilters;\" class=\"btn btn-outline\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n <span class=\" ms-3\">{{getCheckedIds(filters).length}} selected</span>\n </button> \n <div *ngIf=\"showFilters\" class=\"input-container dropdown\" >\n <div>\n <ul>\n <li >\n <div class=\"form-check\">\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\n id=\"selectAll\">\n <label class=\"form-check-label\" for=\"selectAll\">\n All Logs\n </label>\n </div>\n </li>\n <li *ngFor=\"let filter of filters\" >\n <div class=\"form-check\">\n <input class=\"form-check-input me-3\" type=\"checkbox\" [(ngModel)]=\"filter.isChecked\" [id]=\"filter.id\">\n <label class=\"form-check-label\" [for]=\"filter.id\" >\n {{filter.label}}\n </label>\n </div>\n </li>\n \n </ul> \n </div>\n <div >\n <div class=\" w-100 footer-seperator\"></div>\n <div class=\"d-flex justify-content-end m-2\">\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"showFilters = false\" >Cancel</a>\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"applyFilter()\" >Apply</a>\n </div>\n </div>\n \n </div> \n </div>\n \n </div> -->\n </div>\n </div>\n \n <ng-container *ngIf=\"logList?.length\" >\n <div *ngFor=\"let item of logList\" class=\"log-card mb-8\">\n <div class=\"d-flex me-10\">\n <div class=\"line me-4\"></div>\n <div class=\"d-flex flex-column\">\n <div class=\"d-flex align-items-center mb-2\">\n <div class=\"header me-4\">{{camelCaseToWords(item?.logSubType)}}</div>\n <div class=\"time\">{{formatDate(item?.date)}}</div>\n </div>\n <div class=\"sub\">{{arrayToString(item?.changes)}} <span *ngIf=\"item?.eventType\">{{item?.eventType + 'd'}}</span></div>\n <div class=\"sub\">By {{item?.userName}} - {{item?.email}}</div>\n \n <div *ngFor=\"let key of objectKeys(item?.updatedValue)\">\n <!-- <div class=\"header me-4\">{{camelCaseToWords(key)}}</div> -->\n <div class=\"sub\"><b>{{ key }}</b> has been changed from {{ item?.updatedValue[key].previous }} to {{ item?.updatedValue[key].current }}</div>\n \n </div>\n </div>\n \n </div>\n <div class=\"chip\">\n {{camelCaseToWords(item?.logType)}}\n </div>\n </div>\n \n <div *ngIf=\"logList?.length\" class=\"my-3\">\n <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\n </div> \n </ng-container>\n\n <ng-container *ngIf=\"!logList?.length\">\n <div class=\"d-flex align-items-center justify-content-center\" >\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \n </div>\n </ng-container>\n \n </ng-container>\n <ng-container *ngSwitchCase=\"'loading'\" >\n <div class=\"row loader d-flex justify-content-center align-items-center\">\n <div class=\"shimmer\">\n <div class=\"wrapper\">\n <div class=\"stroke animate title\"></div>\n <div class=\"stroke animate link\"></div>\n <div class=\"stroke animate description\"></div>\n </div>\n </div>\n <div class=\"shimmer\">\n <div class=\"wrapper\">\n <div class=\"stroke animate title\"></div>\n <div class=\"stroke animate link\"></div>\n <div class=\"stroke animate description\"></div>\n </div>\n </div>\n <div class=\"shimmer\">\n <div class=\"wrapper\">\n <div class=\"stroke animate title\"></div>\n <div class=\"stroke animate link\"></div>\n <div class=\"stroke animate description\"></div>\n </div>\n </div>\n </div>\n \n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n", styles: [".activity-card{border-radius:8px;background:var(--White, #FFF);padding:24px}.log-card{display:flex;justify-content:space-between}.log-card .line{border-radius:2px;background:var(--Primary-600, #00A3FF);min-width:2px;height:100%}.log-card .header{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.log-card .time{color:var(--Gray-500, #667085);font-size:12px;font-weight:500;line-height:18px}.log-card .sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:24px}.log-card .chip{padding:2px 10px;border-radius:16px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);font-size:14px;font-weight:500;line-height:20px;height:100%;white-space:nowrap}.header{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.multi-select-dropdown{position:relative}.multi-select-dropdown .input-container{position:absolute;width:212px;right:0;z-index:1;margin-top:5px;background-color:#fff;min-height:200px;border-radius:8px;border:1px solid var(--Gray-100, #F2F4F7);background:var(--White, #FFF);box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;display:flex;flex-direction:column;justify-content:space-between}.multi-select-dropdown .input-container ul{margin:0;padding:0}.multi-select-dropdown .input-container ul li{list-style:none;padding:10px 16px}.multi-select-dropdown .input-container .form-check{display:flex;align-items:center}.multi-select-dropdown .input-container .form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.multi-select-dropdown .input-container .form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.multi-select-dropdown .input-container .form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.multi-select-dropdown .input-container .footer-seperator{border-top:1px solid #EAECF0}.multi-select-dropdown .input-container .btn-primary{padding:10px 16px!important;font-size:12px!important;font-weight:600!important}.multi-select-dropdown .input-container .btn-outline{padding:10px 16px;font-size:12px;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i4.FiltersComponent, selector: "lib-filters", inputs: ["dataObject"], outputs: ["appliedFilters"] }, { kind: "directive", type: i5.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
244
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActivityLogsComponent, selector: "lib-activity-logs", host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"activity-card\">\r\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\r\n <ng-container [ngSwitch]=\"pageState\" >\r\n <ng-container *ngSwitchCase=\"'loaded'\" >\r\n <div class=\"d-flex justify-content-between align-items-center mb-10\">\r\n <div class=\"header\">Activity Logs</div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"d-flex align-items-center position-relative me-5\">\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\"\r\n [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\"\r\n autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <lib-filters [dataObject]=\"dataObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <!-- <div>\r\n <div class=\"multi-select-dropdown\" >\r\n <button (click)=\"$event.stopPropagation();showFilters = !showFilters;\" class=\"btn btn-outline\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span class=\" ms-3\">{{getCheckedIds(filters).length}} selected</span>\r\n </button> \r\n <div *ngIf=\"showFilters\" class=\"input-container dropdown\" >\r\n <div>\r\n <ul>\r\n <li >\r\n <div class=\"form-check\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <label class=\"form-check-label\" for=\"selectAll\">\r\n All Logs\r\n </label>\r\n </div>\r\n </li>\r\n <li *ngFor=\"let filter of filters\" >\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input me-3\" type=\"checkbox\" [(ngModel)]=\"filter.isChecked\" [id]=\"filter.id\">\r\n <label class=\"form-check-label\" [for]=\"filter.id\" >\r\n {{filter.label}}\r\n </label>\r\n </div>\r\n </li>\r\n \r\n </ul> \r\n </div>\r\n <div >\r\n <div class=\" w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end m-2\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"showFilters = false\" >Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"applyFilter()\" >Apply</a>\r\n </div>\r\n </div>\r\n \r\n </div> \r\n </div>\r\n \r\n </div> -->\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"logList?.length\" >\r\n <div *ngFor=\"let item of logList\" class=\"log-card mb-8\">\r\n <div class=\"d-flex me-10\">\r\n <div class=\"line me-4\"></div>\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"header me-4\">{{camelCaseToWords(item?.logSubType)}}</div>\r\n <div class=\"time\">{{formatDate(item?.date)}}</div>\r\n </div>\r\n <div class=\"sub\">{{arrayToString(item?.changes)}} <span *ngIf=\"item?.eventType\">{{item?.eventType + 'd'}}</span></div>\r\n <div class=\"sub\">By {{item?.userName}} - {{item?.email}}</div>\r\n \r\n <div *ngFor=\"let key of objectKeys(item?.updatedValue)\">\r\n <!-- <div class=\"header me-4\">{{camelCaseToWords(key)}}</div> -->\r\n <div class=\"sub\"><b>{{ key }}</b> has been changed from {{ item?.updatedValue[key].previous }} to {{ item?.updatedValue[key].current }}</div>\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"chip\">\r\n {{camelCaseToWords(item?.logType)}}\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"logList?.length\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!logList?.length\">\r\n <div class=\"d-flex align-items-center justify-content-center\" >\r\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'loading'\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n", styles: [".activity-card{border-radius:8px;background:var(--White, #FFF);padding:24px}.log-card{display:flex;justify-content:space-between}.log-card .line{border-radius:2px;background:var(--Primary-600, #00A3FF);min-width:2px;height:100%}.log-card .header{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.log-card .time{color:var(--Gray-500, #667085);font-size:12px;font-weight:500;line-height:18px}.log-card .sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:24px}.log-card .chip{padding:2px 10px;border-radius:16px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);font-size:14px;font-weight:500;line-height:20px;height:100%;white-space:nowrap}.header{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.multi-select-dropdown{position:relative}.multi-select-dropdown .input-container{position:absolute;width:212px;right:0;z-index:1;margin-top:5px;background-color:#fff;min-height:200px;border-radius:8px;border:1px solid var(--Gray-100, #F2F4F7);background:var(--White, #FFF);box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;display:flex;flex-direction:column;justify-content:space-between}.multi-select-dropdown .input-container ul{margin:0;padding:0}.multi-select-dropdown .input-container ul li{list-style:none;padding:10px 16px}.multi-select-dropdown .input-container .form-check{display:flex;align-items:center}.multi-select-dropdown .input-container .form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.multi-select-dropdown .input-container .form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.multi-select-dropdown .input-container .form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.multi-select-dropdown .input-container .footer-seperator{border-top:1px solid #EAECF0}.multi-select-dropdown .input-container .btn-primary{padding:10px 16px!important;font-size:12px!important;font-weight:600!important}.multi-select-dropdown .input-container .btn-outline{padding:10px 16px;font-size:12px;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: i4.FiltersComponent, selector: "lib-filters", inputs: ["dataObject"], outputs: ["appliedFilters"] }, { kind: "directive", type: i5.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
254
245
  }
255
246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityLogsComponent, decorators: [{
256
247
  type: Component,
257
- args: [{ selector: 'lib-activity-logs', template: "<div class=\"activity-card\">\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\n <ng-container [ngSwitch]=\"pageState\" >\n <ng-container *ngSwitchCase=\"'loaded'\" >\n <div class=\"d-flex justify-content-between align-items-center mb-10\">\n <div class=\"header\">Activity Logs</div>\n <div class=\"d-flex align-items-center\">\n <div class=\"d-flex align-items-center position-relative me-5\">\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd\n [drops]=\"'down'\" [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\"\n [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\"\n autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n </div>\n <lib-filters [dataObject]=\"dataObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\n\n <!-- <div>\n <div class=\"multi-select-dropdown\" >\n <button (click)=\"$event.stopPropagation();showFilters = !showFilters;\" class=\"btn btn-outline\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n <span class=\" ms-3\">{{getCheckedIds(filters).length}} selected</span>\n </button> \n <div *ngIf=\"showFilters\" class=\"input-container dropdown\" >\n <div>\n <ul>\n <li >\n <div class=\"form-check\">\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\n id=\"selectAll\">\n <label class=\"form-check-label\" for=\"selectAll\">\n All Logs\n </label>\n </div>\n </li>\n <li *ngFor=\"let filter of filters\" >\n <div class=\"form-check\">\n <input class=\"form-check-input me-3\" type=\"checkbox\" [(ngModel)]=\"filter.isChecked\" [id]=\"filter.id\">\n <label class=\"form-check-label\" [for]=\"filter.id\" >\n {{filter.label}}\n </label>\n </div>\n </li>\n \n </ul> \n </div>\n <div >\n <div class=\" w-100 footer-seperator\"></div>\n <div class=\"d-flex justify-content-end m-2\">\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"showFilters = false\" >Cancel</a>\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"applyFilter()\" >Apply</a>\n </div>\n </div>\n \n </div> \n </div>\n \n </div> -->\n </div>\n </div>\n \n <ng-container *ngIf=\"logList?.length\" >\n <div *ngFor=\"let item of logList\" class=\"log-card mb-8\">\n <div class=\"d-flex me-10\">\n <div class=\"line me-4\"></div>\n <div class=\"d-flex flex-column\">\n <div class=\"d-flex align-items-center mb-2\">\n <div class=\"header me-4\">{{camelCaseToWords(item?.logSubType)}}</div>\n <div class=\"time\">{{formatDate(item?.date)}}</div>\n </div>\n <div class=\"sub\">{{arrayToString(item?.changes)}} <span *ngIf=\"item?.eventType\">{{item?.eventType + 'd'}}</span></div>\n <div class=\"sub\">By {{item?.userName}} - {{item?.email}}</div>\n \n <div *ngFor=\"let key of objectKeys(item?.updatedValue)\">\n <!-- <div class=\"header me-4\">{{camelCaseToWords(key)}}</div> -->\n <div class=\"sub\"><b>{{ key }}</b> has been changed from {{ item?.updatedValue[key].previous }} to {{ item?.updatedValue[key].current }}</div>\n \n </div>\n </div>\n \n </div>\n <div class=\"chip\">\n {{camelCaseToWords(item?.logType)}}\n </div>\n </div>\n \n <div *ngIf=\"logList?.length\" class=\"my-3\">\n <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\n </div> \n </ng-container>\n\n <ng-container *ngIf=\"!logList?.length\">\n <div class=\"d-flex align-items-center justify-content-center\" >\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \n </div>\n </ng-container>\n \n </ng-container>\n <ng-container *ngSwitchCase=\"'loading'\" >\n <div class=\"row loader d-flex justify-content-center align-items-center\">\n <div class=\"shimmer\">\n <div class=\"wrapper\">\n <div class=\"stroke animate title\"></div>\n <div class=\"stroke animate link\"></div>\n <div class=\"stroke animate description\"></div>\n </div>\n </div>\n <div class=\"shimmer\">\n <div class=\"wrapper\">\n <div class=\"stroke animate title\"></div>\n <div class=\"stroke animate link\"></div>\n <div class=\"stroke animate description\"></div>\n </div>\n </div>\n <div class=\"shimmer\">\n <div class=\"wrapper\">\n <div class=\"stroke animate title\"></div>\n <div class=\"stroke animate link\"></div>\n <div class=\"stroke animate description\"></div>\n </div>\n </div>\n </div>\n \n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n", styles: [".activity-card{border-radius:8px;background:var(--White, #FFF);padding:24px}.log-card{display:flex;justify-content:space-between}.log-card .line{border-radius:2px;background:var(--Primary-600, #00A3FF);min-width:2px;height:100%}.log-card .header{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.log-card .time{color:var(--Gray-500, #667085);font-size:12px;font-weight:500;line-height:18px}.log-card .sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:24px}.log-card .chip{padding:2px 10px;border-radius:16px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);font-size:14px;font-weight:500;line-height:20px;height:100%;white-space:nowrap}.header{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.multi-select-dropdown{position:relative}.multi-select-dropdown .input-container{position:absolute;width:212px;right:0;z-index:1;margin-top:5px;background-color:#fff;min-height:200px;border-radius:8px;border:1px solid var(--Gray-100, #F2F4F7);background:var(--White, #FFF);box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;display:flex;flex-direction:column;justify-content:space-between}.multi-select-dropdown .input-container ul{margin:0;padding:0}.multi-select-dropdown .input-container ul li{list-style:none;padding:10px 16px}.multi-select-dropdown .input-container .form-check{display:flex;align-items:center}.multi-select-dropdown .input-container .form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.multi-select-dropdown .input-container .form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.multi-select-dropdown .input-container .form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.multi-select-dropdown .input-container .footer-seperator{border-top:1px solid #EAECF0}.multi-select-dropdown .input-container .btn-primary{padding:10px 16px!important;font-size:12px!important;font-weight:600!important}.multi-select-dropdown .input-container .btn-outline{padding:10px 16px;font-size:12px;font-weight:600}\n"] }]
248
+ args: [{ selector: 'lib-activity-logs', template: "<div class=\"activity-card\">\r\n <ng-container *ngIf=\"pageState$ | async as pageState\" >\r\n <ng-container [ngSwitch]=\"pageState\" >\r\n <ng-container *ngSwitchCase=\"'loaded'\" >\r\n <div class=\"d-flex justify-content-between align-items-center mb-10\">\r\n <div class=\"header\">Activity Logs</div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"d-flex align-items-center position-relative me-5\">\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd\r\n [drops]=\"'down'\" [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\"\r\n [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\"\r\n autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <lib-filters [dataObject]=\"dataObject\" (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <!-- <div>\r\n <div class=\"multi-select-dropdown\" >\r\n <button (click)=\"$event.stopPropagation();showFilters = !showFilters;\" class=\"btn btn-outline\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 10H15M2.5 5H17.5M7.5 15H12.5\" stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span class=\" ms-3\">{{getCheckedIds(filters).length}} selected</span>\r\n </button> \r\n <div *ngIf=\"showFilters\" class=\"input-container dropdown\" >\r\n <div>\r\n <ul>\r\n <li >\r\n <div class=\"form-check\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <label class=\"form-check-label\" for=\"selectAll\">\r\n All Logs\r\n </label>\r\n </div>\r\n </li>\r\n <li *ngFor=\"let filter of filters\" >\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input me-3\" type=\"checkbox\" [(ngModel)]=\"filter.isChecked\" [id]=\"filter.id\">\r\n <label class=\"form-check-label\" [for]=\"filter.id\" >\r\n {{filter.label}}\r\n </label>\r\n </div>\r\n </li>\r\n \r\n </ul> \r\n </div>\r\n <div >\r\n <div class=\" w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end m-2\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"showFilters = false\" >Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"applyFilter()\" >Apply</a>\r\n </div>\r\n </div>\r\n \r\n </div> \r\n </div>\r\n \r\n </div> -->\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"logList?.length\" >\r\n <div *ngFor=\"let item of logList\" class=\"log-card mb-8\">\r\n <div class=\"d-flex me-10\">\r\n <div class=\"line me-4\"></div>\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"header me-4\">{{camelCaseToWords(item?.logSubType)}}</div>\r\n <div class=\"time\">{{formatDate(item?.date)}}</div>\r\n </div>\r\n <div class=\"sub\">{{arrayToString(item?.changes)}} <span *ngIf=\"item?.eventType\">{{item?.eventType + 'd'}}</span></div>\r\n <div class=\"sub\">By {{item?.userName}} - {{item?.email}}</div>\r\n \r\n <div *ngFor=\"let key of objectKeys(item?.updatedValue)\">\r\n <!-- <div class=\"header me-4\">{{camelCaseToWords(key)}}</div> -->\r\n <div class=\"sub\"><b>{{ key }}</b> has been changed from {{ item?.updatedValue[key].previous }} to {{ item?.updatedValue[key].current }}</div>\r\n \r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"chip\">\r\n {{camelCaseToWords(item?.logType)}}\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"logList?.length\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!logList?.length\">\r\n <div class=\"d-flex align-items-center justify-content-center\" >\r\n <img width=\"300px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\"> \r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'loading'\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n", styles: [".activity-card{border-radius:8px;background:var(--White, #FFF);padding:24px}.log-card{display:flex;justify-content:space-between}.log-card .line{border-radius:2px;background:var(--Primary-600, #00A3FF);min-width:2px;height:100%}.log-card .header{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:20px}.log-card .time{color:var(--Gray-500, #667085);font-size:12px;font-weight:500;line-height:18px}.log-card .sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:24px}.log-card .chip{padding:2px 10px;border-radius:16px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);font-size:14px;font-weight:500;line-height:20px;height:100%;white-space:nowrap}.header{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.multi-select-dropdown{position:relative}.multi-select-dropdown .input-container{position:absolute;width:212px;right:0;z-index:1;margin-top:5px;background-color:#fff;min-height:200px;border-radius:8px;border:1px solid var(--Gray-100, #F2F4F7);background:var(--White, #FFF);box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;display:flex;flex-direction:column;justify-content:space-between}.multi-select-dropdown .input-container ul{margin:0;padding:0}.multi-select-dropdown .input-container ul li{list-style:none;padding:10px 16px}.multi-select-dropdown .input-container .form-check{display:flex;align-items:center}.multi-select-dropdown .input-container .form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.multi-select-dropdown .input-container .form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.multi-select-dropdown .input-container .form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.multi-select-dropdown .input-container .footer-seperator{border-top:1px solid #EAECF0}.multi-select-dropdown .input-container .btn-primary{padding:10px 16px!important;font-size:12px!important;font-weight:600!important}.multi-select-dropdown .input-container .btn-outline{padding:10px 16px;font-size:12px;font-weight:600}\n"] }]
258
249
  }], ctorParameters: () => [{ type: i1.ClientApiService }, { type: i0.ChangeDetectorRef }], propDecorators: { onClick: [{
259
250
  type: HostListener,
260
251
  args: ['document:click', ['$event']]
261
252
  }] } });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZ3MvYWN0aXZpdHktbG9ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZ3MvYWN0aXZpdHktbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBUSxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzNCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBQzNELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU92QixNQUFNLE9BQU8scUJBQXFCO0lBa0daO0lBQXNDO0lBaEcxRCxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ2IsY0FBYyxDQUFNO0lBRXBCLE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxZQUFZLEdB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WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUE7UUFDcEIsSUFBSSxPQUFPLEdBQXdCO1lBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDeEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRyxJQUFJLENBQUMsY0FBYztTQUNyQyxDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQTtTQUN6QztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7U0FDckM7UUFFQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDMUIsQ0FBQzt3R0FoUVkscUJBQXFCOzRGQUFyQixxQkFBcUIsdUhDZmxDLDhxU0EwSUE7OzRGRDNIYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3FIQVM3QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpZW50QXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsaWVudC1hcGkuc2VydmljZSc7XG5pbXBvcnQgIGRheWpzIGZyb20gXCJkYXlqc1wiO1xuaW1wb3J0IFwiZGF5anMvbG9jYWxlL2VuXCI7XG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XG5pbXBvcnQgdGltZXpvbmUgZnJvbSBcImRheWpzL3BsdWdpbi90aW1lem9uZVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmRheWpzLmV4dGVuZCh1dGMpO1xuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFjdGl2aXR5LWxvZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktbG9ncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hY3Rpdml0eS1sb2dzLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eUxvZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIGRheWpzID0gZGF5anNcbiAgZmlsdGVyQnlTdGF0dXM6IGFueTtcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bicpKSB7XG4gICAgICB0aGlzLnNob3dGaWx0ZXJzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaXRlbXNQZXJQYWdlID0gMTBcbiAgY3VycmVudFBhZ2UgPSAxXG4gIHRvdGFsSXRlbXMgPSAwXG4gIHBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXVxuICBwYWdlU2l6ZSA9IDEwXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7XG4gICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkudXRjKCkuc3RhcnRPZignZGF5JyksXG4gICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLnV0YygpLnN0YXJ0T2YoJ2RheScpXG4gIH07XG4gIGNsaWVudExpc3Q6IGFueSA9IFtdXG4gIHNlbGVjdGVkQ2xpZW50OiBhbnlcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIGNsaWVudElkOiBzdHJpbmc7XG4gIGxvZ0xpc3Q6IGFueTtcbiAgZmlsdGVyU3RhcnREYXRlOiBzdHJpbmcgPSB0aGlzLmRheWpzKCkudXRjKCkuc3RhcnRPZignZGF5JykudG9JU09TdHJpbmcoKVxuICBmaWx0ZXJFbmREYXRlOiBzdHJpbmcgPSB0aGlzLmRheWpzKCkudXRjKCkuZW5kT2YoJ2RheScpLnRvSVNPU3RyaW5nKClcbiAgc2hvd0ZpbHRlcnM6Ym9vbGVhbiA9IGZhbHNlXG4gIHBhZ2VTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdsb2FkZWQnIHwgJ2xvYWRpbmcnPignbG9hZGluZycpO1xuICBmaWx0ZXJzID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOidCcmFuZCBkZXRhaWxzJyxcbiAgICAgIGlkOidicmFuZERldGFpbHMnLFxuICAgICAgaXNDaGVja2VkOnRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOidDb25maWd1cmF0aW9uJyxcbiAgICAgIGlkOidjb25maWd1cmF0aW9uJyxcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDonRG9jdW1lbnRzJyxcbiAgICAgIGlkOidkb2N1bWVudHMnLFxuICAgICAgaXNDaGVja2VkOnRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOidTdG9yZXMnLFxuICAgICAgaWQ6J3N0b3JlcycsXG4gICAgICBpc0NoZWNrZWQ6dHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6J0dyb3VwcycsXG4gICAgICBpZDonZ3JvdXBzJyxcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDonVXNlcnMnLFxuICAgICAgaWQ6J3VzZXJzJyxcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDonU3Vic2NyaXB0aW9uJyxcbiAgICAgIGlkOidzdWJzY3JpcHRpb24nLFxuICAgICAgaXNDaGVja2VkOnRydWVcbiAgICB9LFxuICBdXG4gIGRhdGFPYmplY3Q6IGFueSA9IFtcbiAgICB7IERlc2NyaXB0aW9uOiAnU3RhdHVzIExvZ3MnLCBJc3N1ZXM6W3tcbiAgICAgIHRleHQ6J0JyYW5kIGRldGFpbHMnLFxuICAgICAgaWQ6J2JyYW5kRGV0YWlscycsXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OidDb25maWd1cmF0aW9uJyxcbiAgICAgIGlkOidjb25maWd1cmF0aW9uJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6J0RvY3VtZW50cycsXG4gICAgICBpZDonZG9jdW1lbnRzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6J1N0b3JlcycsXG4gICAgICBpZDonc3RvcmVzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6J0dyb3VwcycsXG4gICAgICBpZDonZ3JvdXBzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRleHQ6J1VzZXJzJyxcbiAgICAgIGlkOid1c2VycycsIFxuICAgIH0sXG4gICAge1xuICAgICAgdGV4dDonU3Vic2NyaXB0aW9uJyxcbiAgICAgIGlkOidzdWJzY3JpcHRpb24nXG4gICAgfSxcbiAgXX1cbiAgXVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudElkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIGlmIChlKSB7XG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBlXG4gICAgICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLnBhZ2VTdGF0ZSQuY29tcGxldGUoKTtcblxuICB9XG5cbiAgZ2V0QWN0aXZpdHlMb2dzKCkge1xuICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkaW5nJylcbiAgICBsZXQgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIGxpbWl0OiB0aGlzLnBhZ2VTaXplLFxuICAgICAgb2Zmc2V0OiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICBsb2dUeXBlRmlsdGVycyA6IHRoaXMuZmlsdGVyQnlTdGF0dXMsXG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlclN0YXJ0RGF0ZSkge1xuICAgICAgZmlsdGVycy5zdGFydERhdGUgPSB0aGlzLmZpbHRlclN0YXJ0RGF0ZVxuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJFbmREYXRlKSB7XG4gICAgICBmaWx0ZXJzLmVuZERhdGUgPSB0aGlzLmZpbHRlckVuZERhdGVcbiAgICB9XG5cbiAgICAvLyBpZih0aGlzLmdldENoZWNrZWRJZHModGhpcy5maWx0ZXJzKT8ubGVuZ3RoKXtcbiAgICAvLyAgIGZpbHRlcnMubG9nVHlwZUZpbHRlcnMgPSB0aGlzLmdldENoZWNrZWRJZHModGhpcy5maWx0ZXJzKVxuICAgIC8vIH1cblxuICAgIHRoaXMuYXBpU2VydmljZS5nZXRBY3Rpdml0eUxvZ3MoZmlsdGVycykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChlKSA9PiB7XG4gICAgICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkZWQnKVxuICAgICAgICBpZiAoZT8uZGF0YT8uY291bnQpIHtcbiAgICAgICAgICB0aGlzLmxvZ0xpc3QgPSBlLmRhdGEuZGF0YVxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IGUuZGF0YS5jb3VudFxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dMaXN0ID0gW11cbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkZWQnKVxuICAgICAgICB0aGlzLmxvZ0xpc3QgPSBbXVxuICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXG4gICAgICB9XG4gICAgfSlcblxuICB9XG5cbiAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnN0YXJ0RGF0ZSB8fCBldmVudC5lbmREYXRlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMVxuICAgICAgdGhpcy5maWx0ZXJTdGFydERhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkudXRjKCkudG9JU09TdHJpbmcoKVxuICAgICAgdGhpcy5maWx0ZXJFbmREYXRlID0gdGhpcy5kYXlqcyhldmVudC5lbmREYXRlKS51dGMoKS50b0lTT1N0cmluZygpXG4gICAgICB0aGlzLmdldEFjdGl2aXR5TG9ncygpXG4gICAgfVxuXG4gIH1cblxuICByYW5nZXM6IGFueSA9IHtcbiAgICBUb2RheTogW3RoaXMuZGF5anMoKSwgdGhpcy5kYXlqcygpXSxcbiAgICBZZXN0ZXJkYXk6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpLCB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpXSxcbiAgICBcIlRoaXMgV2Vla1wiOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDYsIFwiZGF5c1wiKSwgdGhpcy5kYXlqcygpXSxcbiAgICBcIkxhc3QgV2Vla1wiOiBbXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMTQsIFwiZGF5c1wiKS5zdGFydE9mKFwiZGF5c1wiKSxcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCg4LCBcImRheXNcIikuZW5kT2YoXCJkYXlzXCIpLFxuICAgIF0sXG4gICAgXCJUaGlzIE1vbnRoXCI6IFt0aGlzLmRheWpzKCkuc3RhcnRPZihcIm1vbnRoXCIpLCB0aGlzLmRheWpzKCkuZW5kT2YoXCJtb250aFwiKV0sXG4gICAgXCJMYXN0IE1vbnRoXCI6IFtcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpLnN0YXJ0T2YoXCJtb250aFwiKSxcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpLmVuZE9mKFwibW9udGhcIiksXG4gICAgXSxcbiAgfTtcblxuXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZU9mZnNldFxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKClcblxuICB9XG5cbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogbnVtYmVyKSB7ICAgXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDEgXG4gICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplXG4gICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBwYWdlU2l6ZVxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKClcbiAgfVxuXG4gIGZvcm1hdERhdGUoaW5wdXREYXRlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJzZWREYXRlID0gdGhpcy5kYXlqcyhpbnB1dERhdGUpO1xuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBwYXJzZWREYXRlLmZvcm1hdCgnREQtTU0tWVlZWSB8IGhoOm1tIEEnKTtcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbiAgfVxuXG4gIGNhbWVsQ2FzZVRvV29yZHMoY2FtZWxDYXNlU3RyaW5nOiBzdHJpbmcpIHtcbiAgICBjb25zdCB3b3JkcyA9IGNhbWVsQ2FzZVN0cmluZy5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKTtcbiAgICByZXR1cm4gd29yZHMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3Jkcy5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgYXJyYXlUb1N0cmluZyhhcnJheTogYW55KSB7XG4gICAgcmV0dXJuIGFycmF5LmpvaW4oJywgJyk7XG4gIH1cbiAgb2JqZWN0S2V5cyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID4gMCA/IE9iamVjdC5rZXlzKG9iaikgOiBbXTtcbiAgfVxuICBcblxuICBjaGVja0lmQWxsU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVycy5ldmVyeSgoaXRlbTphbnkpID0+IGl0ZW0uaXNDaGVja2VkKTtcbiAgfVxuXG4gIG9uU2VsZWN0QWxsKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBzZWxlY3RBbGwgPSBldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQ7XG4gICAgdGhpcy5maWx0ZXJzLmZvckVhY2goKGl0ZW06IGFueSkgPT4gaXRlbS5pc0NoZWNrZWQgPSBzZWxlY3RBbGwpO1xuICB9XG5cbiAgIGdldENoZWNrZWRJZHMoZmlsdGVyczphbnkpIHtcbiAgICBjb25zdCBjaGVja2VkSWRzID0gZmlsdGVycy5maWx0ZXIoKGZpbHRlcjphbnkpID0+IGZpbHRlci5pc0NoZWNrZWQpLm1hcCgoZmlsdGVyOmFueSkgPT4gZmlsdGVyLmlkKTtcbiAgICByZXR1cm4gY2hlY2tlZElkcztcbn1cblxuYXBwbHlGaWx0ZXIoKXtcbiAgdGhpcy5jdXJyZW50UGFnZSA9IDFcbiAgdGhpcy5zaG93RmlsdGVycyA9IGZhbHNlXG4gIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKCk7XG59XG5hcHBseUZpbHRlcnMoZXZlbnQ6YW55KXtcbiAgaWYgKGV2ZW50Py5sZW5ndGgpIHtcbiAgICBldmVudC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LkRlc2NyaXB0aW9uID09PSBcIlN0YXR1cyBMb2dzXCIpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJCeVN0YXR1cyA9IGVsZW1lbnQuSXNzdWVzLm1hcCgodmFsOiBhbnkpID0+IHZhbD8uaWQpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgdGhpcy5jdXJyZW50UGFnZSA9IDFcbiAgbGV0IGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgbGltaXQ6IHRoaXMucGFnZVNpemUsXG4gICAgb2Zmc2V0OiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxuICAgIGxvZ1R5cGVGaWx0ZXJzIDogdGhpcy5maWx0ZXJCeVN0YXR1cyxcbiAgfVxuICBpZiAodGhpcy5maWx0ZXJTdGFydERhdGUpIHtcbiAgICBmaWx0ZXJzLnN0YXJ0RGF0ZSA9IHRoaXMuZmlsdGVyU3RhcnREYXRlXG4gIH1cbiAgaWYgKHRoaXMuZmlsdGVyRW5kRGF0ZSkge1xuICAgIGZpbHRlcnMuZW5kRGF0ZSA9IHRoaXMuZmlsdGVyRW5kRGF0ZVxuICB9XG4gXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKVxufVxufVxuIiwiPGRpdiBjbGFzcz1cImFjdGl2aXR5LWNhcmRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZVN0YXRlJCB8IGFzeW5jIGFzIHBhZ2VTdGF0ZVwiID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicGFnZVN0YXRlXCIgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xvYWRlZCdcIiAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0xMFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+QWN0aXZpdHkgTG9nczwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbWUtNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgc3R5bGU9XCJtaW4td2lkdGg6IDI2MHB4ICFpbXBvcnRhbnQ7XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIiBbcmFuZ2VzXT1cInJhbmdlc1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZmlsdGVycyBbZGF0YU9iamVjdF09XCJkYXRhT2JqZWN0XCIgKGFwcGxpZWRGaWx0ZXJzKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCI+PC9saWItZmlsdGVycz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXVsdGktc2VsZWN0LWRyb3Bkb3duXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO3Nob3dGaWx0ZXJzID0gIXNob3dGaWx0ZXJzO1wiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgMTBIMTVNMi41IDVIMTcuNU03LjUgMTVIMTIuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIgbXMtM1wiPnt7Z2V0Q2hlY2tlZElkcyhmaWx0ZXJzKS5sZW5ndGh9fSBzZWxlY3RlZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+ICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dGaWx0ZXJzXCIgY2xhc3M9XCJpbnB1dC1jb250YWluZXIgZHJvcGRvd25cIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICBjbGFzcz1cImZvcm0tY2hlY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsKCRldmVudClcIiBbY2hlY2tlZF09XCJjaGVja0lmQWxsU2VsZWN0ZWQoKVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCIgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNlbGVjdEFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInNlbGVjdEFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBMb2dzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcnNcIiAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCIgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIuaXNDaGVja2VkXCIgW2lkXT1cImZpbHRlci5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIFtmb3JdPVwiZmlsdGVyLmlkXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZmlsdGVyLmxhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPiAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdy0xMDAgZm9vdGVyLXNlcGVyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG1lLTRcIiAoY2xpY2spPVwic2hvd0ZpbHRlcnMgPSBmYWxzZVwiID5DYW5jZWw8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IFwiIChjbGljayk9XCJhcHBseUZpbHRlcigpXCIgPkFwcGx5PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvZ0xpc3Q/Lmxlbmd0aFwiID5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxvZ0xpc3RcIiBjbGFzcz1cImxvZy1jYXJkIG1iLThcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtZS0xMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUgbWUtNFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBtZS00XCI+e3tjYW1lbENhc2VUb1dvcmRzKGl0ZW0/LmxvZ1N1YlR5cGUpfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj57e2Zvcm1hdERhdGUoaXRlbT8uZGF0ZSl9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj57e2FycmF5VG9TdHJpbmcoaXRlbT8uY2hhbmdlcyl9fSA8c3BhbiAqbmdJZj1cIml0ZW0/LmV2ZW50VHlwZVwiPnt7aXRlbT8uZXZlbnRUeXBlICsgJ2QnfX08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPkJ5IHt7aXRlbT8udXNlck5hbWV9fSAtIHt7aXRlbT8uZW1haWx9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBrZXkgb2Ygb2JqZWN0S2V5cyhpdGVtPy51cGRhdGVkVmFsdWUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImhlYWRlciBtZS00XCI+e3tjYW1lbENhc2VUb1dvcmRzKGtleSl9fTwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPjxiPnt7IGtleSB9fTwvYj4gaGFzIGJlZW4gY2hhbmdlZCBmcm9tIHt7IGl0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLnByZXZpb3VzIH19IHRvIHt7IGl0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLmN1cnJlbnQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2NhbWVsQ2FzZVRvV29yZHMoaXRlbT8ubG9nVHlwZSl9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsb2dMaXN0Py5sZW5ndGhcIiBjbGFzcz1cIm15LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCIgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIiAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cbiAgICAgICAgICAgIDwvZGl2PiAgICBcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9nTGlzdD8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHdpZHRoPVwiMzAwcHhcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGEuc3ZnXCIgYWx0PVwiXCI+ICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsb2FkaW5nJ1wiICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZ3MvYWN0aXZpdHktbG9ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2FjdGl2aXR5LWxvZ3MvYWN0aXZpdHktbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBUSxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzNCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBQzNELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU92QixNQUFNLE9BQU8scUJBQXFCO0lBeUZaO0lBQXNDO0lBdkYxRCxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ2IsY0FBYyxDQUFNO0lBRXBCLE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxZQUFZLEdB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RUFBRSxJQUFJLENBQUMsV0FBVztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFHLElBQUksQ0FBQyxjQUFjO1NBQ3JDLENBQUE7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFBO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtTQUNyQztRQUVDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUMxQixDQUFDO3dHQXZQWSxxQkFBcUI7NEZBQXJCLHFCQUFxQix1SENmbEMsazhTQTBJQTs7NEZEM0hhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7cUhBUzdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgIGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgXCJkYXlqcy9sb2NhbGUvZW5cIjtcclxuaW1wb3J0IHV0YyBmcm9tIFwiZGF5anMvcGx1Z2luL3V0Y1wiO1xyXG5pbXBvcnQgdGltZXpvbmUgZnJvbSBcImRheWpzL3BsdWdpbi90aW1lem9uZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjdGl2aXR5LWxvZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpdml0eS1sb2dzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWN0aXZpdHktbG9ncy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5TG9nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIGRheWpzID0gZGF5anNcclxuICBmaWx0ZXJCeVN0YXR1czogYW55O1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpdGVtc1BlclBhZ2UgPSAxMFxyXG4gIGN1cnJlbnRQYWdlID0gMVxyXG4gIHRvdGFsSXRlbXMgPSAwXHJcbiAgcGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdXHJcbiAgcGFnZVNpemUgPSAxMFxyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7XHJcbiAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS51dGMoKS5zdGFydE9mKCdkYXknKSxcclxuICAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS51dGMoKS5zdGFydE9mKCdkYXknKVxyXG4gIH07XHJcbiAgY2xpZW50TGlzdDogYW55ID0gW11cclxuICBzZWxlY3RlZENsaWVudDogYW55XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY2xpZW50SWQ6IHN0cmluZztcclxuICBsb2dMaXN0OiBhbnk7XHJcbiAgZmlsdGVyU3RhcnREYXRlOiBzdHJpbmcgPSB0aGlzLmRheWpzKCkudXRjKCkuc3RhcnRPZignZGF5JykudG9JU09TdHJpbmcoKVxyXG4gIGZpbHRlckVuZERhdGU6IHN0cmluZyA9IHRoaXMuZGF5anMoKS51dGMoKS5lbmRPZignZGF5JykudG9JU09TdHJpbmcoKVxyXG4gIHNob3dGaWx0ZXJzOmJvb2xlYW4gPSBmYWxzZVxyXG4gIHBhZ2VTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdsb2FkZWQnIHwgJ2xvYWRpbmcnPignbG9hZGluZycpO1xyXG4gIGZpbHRlcnMgPSBbXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidCcmFuZCBkZXRhaWxzJyxcclxuICAgICAgaWQ6J2JyYW5kRGV0YWlscycsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonQ29uZmlndXJhdGlvbicsXHJcbiAgICAgIGlkOidjb25maWd1cmF0aW9uJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidEb2N1bWVudHMnLFxyXG4gICAgICBpZDonZG9jdW1lbnRzJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidTdG9yZXMnLFxyXG4gICAgICBpZDonc3RvcmVzJyxcclxuICAgICAgaXNDaGVja2VkOnRydWVcclxuICAgIH0sICAgXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOidVc2VycycsXHJcbiAgICAgIGlkOid1c2VycycsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBsYWJlbDonU3Vic2NyaXB0aW9uJyxcclxuICAgICAgaWQ6J3N1YnNjcmlwdGlvbicsXHJcbiAgICAgIGlzQ2hlY2tlZDp0cnVlXHJcbiAgICB9LFxyXG4gIF1cclxuICBkYXRhT2JqZWN0OiBhbnkgPSBbXHJcbiAgICB7IERlc2NyaXB0aW9uOiAnU3RhdHVzIExvZ3MnLCBJc3N1ZXM6W3tcclxuICAgICAgdGV4dDonQnJhbmQgZGV0YWlscycsXHJcbiAgICAgIGlkOidicmFuZERldGFpbHMnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonQ29uZmlndXJhdGlvbicsXHJcbiAgICAgIGlkOidjb25maWd1cmF0aW9uJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6J0RvY3VtZW50cycsXHJcbiAgICAgIGlkOidkb2N1bWVudHMnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonU3RvcmVzJyxcclxuICAgICAgaWQ6J3N0b3JlcycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OidVc2VycycsXHJcbiAgICAgIGlkOid1c2VycycsIFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDonU3Vic2NyaXB0aW9uJyxcclxuICAgICAgaWQ6J3N1YnNjcmlwdGlvbidcclxuICAgIH0sXHJcbiAgXX1cclxuICBdXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBDbGllbnRBcGlTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudElkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUpIHtcclxuICAgICAgICB0aGlzLmNsaWVudElkID0gZVxyXG4gICAgICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5wYWdlU3RhdGUkLmNvbXBsZXRlKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZpdHlMb2dzKCkge1xyXG4gICAgdGhpcy5wYWdlU3RhdGUkLm5leHQoJ2xvYWRpbmcnKVxyXG4gICAgbGV0IGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XHJcbiAgICAgIGxpbWl0OiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBvZmZzZXQ6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBsb2dUeXBlRmlsdGVycyA6IHRoaXMuZmlsdGVyQnlTdGF0dXMsXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5maWx0ZXJTdGFydERhdGUpIHtcclxuICAgICAgZmlsdGVycy5zdGFydERhdGUgPSB0aGlzLmZpbHRlclN0YXJ0RGF0ZVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsdGVyRW5kRGF0ZSkge1xyXG4gICAgICBmaWx0ZXJzLmVuZERhdGUgPSB0aGlzLmZpbHRlckVuZERhdGVcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZih0aGlzLmdldENoZWNrZWRJZHModGhpcy5maWx0ZXJzKT8ubGVuZ3RoKXtcclxuICAgIC8vICAgZmlsdGVycy5sb2dUeXBlRmlsdGVycyA9IHRoaXMuZ2V0Q2hlY2tlZElkcyh0aGlzLmZpbHRlcnMpXHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEFjdGl2aXR5TG9ncyhmaWx0ZXJzKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkZWQnKVxyXG4gICAgICAgIGlmIChlPy5kYXRhPy5jb3VudCkge1xyXG4gICAgICAgICAgdGhpcy5sb2dMaXN0ID0gZS5kYXRhLmRhdGFcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IGUuZGF0YS5jb3VudFxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dMaXN0ID0gW11cclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IDBcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMucGFnZVN0YXRlJC5uZXh0KCdsb2FkZWQnKVxyXG4gICAgICAgIHRoaXMubG9nTGlzdCA9IFtdXHJcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gMFxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQuc3RhcnREYXRlIHx8IGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDFcclxuICAgICAgdGhpcy5maWx0ZXJTdGFydERhdGUgPSB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkudXRjKCkudG9JU09TdHJpbmcoKVxyXG4gICAgICB0aGlzLmZpbHRlckVuZERhdGUgPSB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUpLnV0YygpLnRvSVNPU3RyaW5nKClcclxuICAgICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHJhbmdlczogYW55ID0ge1xyXG4gICAgVG9kYXk6IFt0aGlzLmRheWpzKCksIHRoaXMuZGF5anMoKV0sXHJcbiAgICBZZXN0ZXJkYXk6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpLCB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpXSxcclxuICAgIFwiVGhpcyBXZWVrXCI6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoNiwgXCJkYXlzXCIpLCB0aGlzLmRheWpzKCldLFxyXG4gICAgXCJMYXN0IFdlZWtcIjogW1xyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMTQsIFwiZGF5c1wiKS5zdGFydE9mKFwiZGF5c1wiKSxcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDgsIFwiZGF5c1wiKS5lbmRPZihcImRheXNcIiksXHJcbiAgICBdLFxyXG4gICAgXCJUaGlzIE1vbnRoXCI6IFt0aGlzLmRheWpzKCkuc3RhcnRPZihcIm1vbnRoXCIpLCB0aGlzLmRheWpzKCkuZW5kT2YoXCJtb250aFwiKV0sXHJcbiAgICBcIkxhc3QgTW9udGhcIjogW1xyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJtb250aFwiKS5zdGFydE9mKFwibW9udGhcIiksXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpLmVuZE9mKFwibW9udGhcIiksXHJcbiAgICBdLFxyXG4gIH07XHJcblxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZU9mZnNldFxyXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKVxyXG5cclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IG51bWJlcikgeyAgIFxyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDEgXHJcbiAgICB0aGlzLnBhZ2VTaXplID0gcGFnZVNpemVcclxuICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gcGFnZVNpemVcclxuICAgIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKClcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoaW5wdXREYXRlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcnNlZERhdGUgPSB0aGlzLmRheWpzKGlucHV0RGF0ZSk7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gcGFyc2VkRGF0ZS5mb3JtYXQoJ0RELU1NLVlZWVkgfCBoaDptbSBBJyk7XHJcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcclxuICB9XHJcblxyXG4gIGNhbWVsQ2FzZVRvV29yZHMoY2FtZWxDYXNlU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHdvcmRzID0gY2FtZWxDYXNlU3RyaW5nLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xyXG4gICAgcmV0dXJuIHdvcmRzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZHMuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIGFycmF5VG9TdHJpbmcoYXJyYXk6IGFueSkge1xyXG4gICAgcmV0dXJuIGFycmF5LmpvaW4oJywgJyk7XHJcbiAgfVxyXG4gIG9iamVjdEtleXMob2JqOiBhbnkpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID4gMCA/IE9iamVjdC5rZXlzKG9iaikgOiBbXTtcclxuICB9XHJcbiAgXHJcblxyXG4gIGNoZWNrSWZBbGxTZWxlY3RlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuZXZlcnkoKGl0ZW06YW55KSA9PiBpdGVtLmlzQ2hlY2tlZCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RBbGwgPSBldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiBpdGVtLmlzQ2hlY2tlZCA9IHNlbGVjdEFsbCk7XHJcbiAgfVxyXG5cclxuICAgZ2V0Q2hlY2tlZElkcyhmaWx0ZXJzOmFueSkge1xyXG4gICAgY29uc3QgY2hlY2tlZElkcyA9IGZpbHRlcnMuZmlsdGVyKChmaWx0ZXI6YW55KSA9PiBmaWx0ZXIuaXNDaGVja2VkKS5tYXAoKGZpbHRlcjphbnkpID0+IGZpbHRlci5pZCk7XHJcbiAgICByZXR1cm4gY2hlY2tlZElkcztcclxufVxyXG5cclxuYXBwbHlGaWx0ZXIoKXtcclxuICB0aGlzLmN1cnJlbnRQYWdlID0gMVxyXG4gIHRoaXMuc2hvd0ZpbHRlcnMgPSBmYWxzZVxyXG4gIHRoaXMuZ2V0QWN0aXZpdHlMb2dzKCk7XHJcbn1cclxuYXBwbHlGaWx0ZXJzKGV2ZW50OmFueSl7XHJcbiAgaWYgKGV2ZW50Py5sZW5ndGgpIHtcclxuICAgIGV2ZW50LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZWxlbWVudC5EZXNjcmlwdGlvbiA9PT0gXCJTdGF0dXMgTG9nc1wiKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJCeVN0YXR1cyA9IGVsZW1lbnQuSXNzdWVzLm1hcCgodmFsOiBhbnkpID0+IHZhbD8uaWQpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICB0aGlzLmN1cnJlbnRQYWdlID0gMVxyXG4gIGxldCBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xyXG4gICAgbGltaXQ6IHRoaXMucGFnZVNpemUsXHJcbiAgICBvZmZzZXQ6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgIGxvZ1R5cGVGaWx0ZXJzIDogdGhpcy5maWx0ZXJCeVN0YXR1cyxcclxuICB9XHJcbiAgaWYgKHRoaXMuZmlsdGVyU3RhcnREYXRlKSB7XHJcbiAgICBmaWx0ZXJzLnN0YXJ0RGF0ZSA9IHRoaXMuZmlsdGVyU3RhcnREYXRlXHJcbiAgfVxyXG4gIGlmICh0aGlzLmZpbHRlckVuZERhdGUpIHtcclxuICAgIGZpbHRlcnMuZW5kRGF0ZSA9IHRoaXMuZmlsdGVyRW5kRGF0ZVxyXG4gIH1cclxuIFxyXG4gICAgdGhpcy5nZXRBY3Rpdml0eUxvZ3MoKVxyXG59XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFjdGl2aXR5LWNhcmRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlU3RhdGUkIHwgYXN5bmMgYXMgcGFnZVN0YXRlXCIgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInBhZ2VTdGF0ZVwiID5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xvYWRlZCdcIiAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPkFjdGl2aXR5IExvZ3M8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBtZS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHN0eWxlPVwibWluLXdpZHRoOiAyNjBweCAhaW1wb3J0YW50O1wiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJvcHNdPVwiJ2Rvd24nXCIgW29wZW5zXT1cIidyaWdodCdcIiBbcmFuZ2VzXT1cInJhbmdlc1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1maWx0ZXJzIFtkYXRhT2JqZWN0XT1cImRhdGFPYmplY3RcIiAoYXBwbGllZEZpbHRlcnMpPVwiYXBwbHlGaWx0ZXJzKCRldmVudClcIj48L2xpYi1maWx0ZXJzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aS1zZWxlY3QtZHJvcGRvd25cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtzaG93RmlsdGVycyA9ICFzaG93RmlsdGVycztcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSAxMEgxNU0yLjUgNUgxNy41TTcuNSAxNUgxMi41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCIgbXMtM1wiPnt7Z2V0Q2hlY2tlZElkcyhmaWx0ZXJzKS5sZW5ndGh9fSBzZWxlY3RlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RmlsdGVyc1wiIGNsYXNzPVwiaW5wdXQtY29udGFpbmVyIGRyb3Bkb3duXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwib25TZWxlY3RBbGwoJGV2ZW50KVwiIFtjaGVja2VkXT1cImNoZWNrSWZBbGxTZWxlY3RlZCgpXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzZWxlY3RBbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInNlbGVjdEFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsIExvZ3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCIgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIiB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5pc0NoZWNrZWRcIiBbaWRdPVwiZmlsdGVyLmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBbZm9yXT1cImZpbHRlci5pZFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZmlsdGVyLmxhYmVsfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4gICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHctMTAwIGZvb3Rlci1zZXBlcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgbWUtNFwiIChjbGljayk9XCJzaG93RmlsdGVycyA9IGZhbHNlXCIgPkNhbmNlbDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBcIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXIoKVwiID5BcHBseTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9nTGlzdD8ubGVuZ3RoXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2dMaXN0XCIgY2xhc3M9XCJsb2ctY2FyZCBtYi04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtZS0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZSBtZS00XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIG1lLTRcIj57e2NhbWVsQ2FzZVRvV29yZHMoaXRlbT8ubG9nU3ViVHlwZSl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lXCI+e3tmb3JtYXREYXRlKGl0ZW0/LmRhdGUpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPnt7YXJyYXlUb1N0cmluZyhpdGVtPy5jaGFuZ2VzKX19IDxzcGFuICpuZ0lmPVwiaXRlbT8uZXZlbnRUeXBlXCI+e3tpdGVtPy5ldmVudFR5cGUgKyAnZCd9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5CeSB7e2l0ZW0/LnVzZXJOYW1lfX0gLSB7e2l0ZW0/LmVtYWlsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGtleSBvZiBvYmplY3RLZXlzKGl0ZW0/LnVwZGF0ZWRWYWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJoZWFkZXIgbWUtNFwiPnt7Y2FtZWxDYXNlVG9Xb3JkcyhrZXkpfX08L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YlwiPjxiPnt7IGtleSB9fTwvYj4gaGFzIGJlZW4gY2hhbmdlZCBmcm9tIHt7IGl0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLnByZXZpb3VzIH19IHRvIHt7IGl0ZW0/LnVwZGF0ZWRWYWx1ZVtrZXldLmN1cnJlbnQgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2FtZWxDYXNlVG9Xb3JkcyhpdGVtPy5sb2dUeXBlKX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9nTGlzdD8ubGVuZ3RoXCIgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCIgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvZ0xpc3Q/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgd2lkdGg9XCIzMDBweFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsb2FkaW5nJ1wiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==