tango-app-ui-manage-settings 3.0.65-dev → 3.3.0-alpha.0

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 (46) hide show
  1. package/esm2022/lib/components/configurations/configurations.component.mjs +1 -3
  2. package/esm2022/lib/components/configurations/feature-configuration/feature-configuration.component.mjs +3 -5
  3. package/esm2022/lib/components/payments-subscription/billing/billing-group-form/billing-group-form.component.mjs +448 -0
  4. package/esm2022/lib/components/payments-subscription/billing/billing-group-view/billing-group-view.component.mjs +20 -0
  5. package/esm2022/lib/components/payments-subscription/billing/billing.component.mjs +200 -0
  6. package/esm2022/lib/components/payments-subscription/billing/request-confirmation/request-confirmation.component.mjs +22 -0
  7. package/esm2022/lib/components/payments-subscription/invoice-credits/invoice-credits.component.mjs +340 -0
  8. package/esm2022/lib/components/payments-subscription/invoice-credits/paynow/paynow.component.mjs +127 -0
  9. package/esm2022/lib/components/payments-subscription/payments-subscription.component.mjs +61 -14
  10. package/esm2022/lib/components/payments-subscription/request-popups/starttrailrequest/starttrailrequest.component.mjs +25 -0
  11. package/esm2022/lib/components/payments-subscription/request-popups/subscribe-request/subscribe-request.component.mjs +25 -0
  12. package/esm2022/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.mjs +9 -3
  13. package/esm2022/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.mjs +6 -6
  14. package/esm2022/lib/components/payments-subscription/subscription-popups/needhelp/needhelp.component.mjs +23 -0
  15. package/esm2022/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.mjs +8 -5
  16. package/esm2022/lib/components/payments-subscription/subscription-popups/unsubscribeproduct/unsubscribeproduct.component.mjs +27 -0
  17. package/esm2022/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.mjs +336 -8
  18. package/esm2022/lib/components/payments-subscription/subscription-popups/viewstores/viewstores.component.mjs +299 -0
  19. package/esm2022/lib/components/tango-manage-settings/tango-manage-settings.component.mjs +313 -11
  20. package/esm2022/lib/services/payment-subscription.service.mjs +64 -3
  21. package/esm2022/lib/services/util.mjs +46 -0
  22. package/esm2022/lib/tango-manage-settings.module.mjs +48 -3
  23. package/fesm2022/tango-app-ui-manage-settings.mjs +4050 -1761
  24. package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
  25. package/lib/components/activity-logs/activity-logs.component.d.ts +1 -1
  26. package/lib/components/contact-directory/contact-directory.component.d.ts +1 -1
  27. package/lib/components/payments-subscription/billing/billing-group-form/billing-group-form.component.d.ts +65 -0
  28. package/lib/components/payments-subscription/billing/billing-group-view/billing-group-view.component.d.ts +9 -0
  29. package/lib/components/payments-subscription/billing/billing.component.d.ts +42 -0
  30. package/lib/components/payments-subscription/billing/request-confirmation/request-confirmation.component.d.ts +10 -0
  31. package/lib/components/payments-subscription/invoice-credits/invoice-credits.component.d.ts +80 -0
  32. package/lib/components/payments-subscription/invoice-credits/paynow/paynow.component.d.ts +29 -0
  33. package/lib/components/payments-subscription/payments-subscription.component.d.ts +8 -0
  34. package/lib/components/payments-subscription/request-popups/starttrailrequest/starttrailrequest.component.d.ts +11 -0
  35. package/lib/components/payments-subscription/request-popups/subscribe-request/subscribe-request.component.d.ts +11 -0
  36. package/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.d.ts +3 -1
  37. package/lib/components/payments-subscription/subscription-popups/needhelp/needhelp.component.d.ts +10 -0
  38. package/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.d.ts +3 -2
  39. package/lib/components/payments-subscription/subscription-popups/unsubscribeproduct/unsubscribeproduct.component.d.ts +13 -0
  40. package/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.d.ts +43 -1
  41. package/lib/components/payments-subscription/subscription-popups/viewstores/viewstores.component.d.ts +44 -0
  42. package/lib/components/tango-manage-settings/tango-manage-settings.component.d.ts +35 -4
  43. package/lib/services/payment-subscription.service.d.ts +21 -0
  44. package/lib/services/util.d.ts +14 -0
  45. package/lib/tango-manage-settings.module.d.ts +23 -12
  46. package/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
4
+ import * as i2 from "@angular/common";
5
+ export class BillingGroupViewComponent {
6
+ modalRef;
7
+ groupDetails;
8
+ constructor(modalRef) {
9
+ this.modalRef = modalRef;
10
+ }
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BillingGroupViewComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BillingGroupViewComponent, selector: "lib-billing-group-view", inputs: { groupDetails: "groupDetails" }, ngImport: i0, template: "<div class=\"d-flex align-items-center justify-content-between mb-5\">\r\n <div>\r\n <div class=\"header mb-3\">\r\n \u201C {{groupDetails?.groupName}} \u201C Details\r\n </div>\r\n <div class=\"description\">\r\n View your billing information\r\n </div>\r\n </div>\r\n <div>\r\n <button (click)=\"modalRef.close({groupId: groupDetails?._id})\" class=\"btn btn-blue\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_15646_72976)\">\r\n <path\r\n d=\"M14.168 2.5009C14.3868 2.28203 14.6467 2.10842 14.9326 1.98996C15.2186 1.87151 15.5251 1.81055 15.8346 1.81055C16.1442 1.81055 16.4507 1.87151 16.7366 1.98996C17.0226 2.10842 17.2824 2.28203 17.5013 2.5009C17.7202 2.71977 17.8938 2.97961 18.0122 3.26558C18.1307 3.55154 18.1917 3.85804 18.1917 4.16757C18.1917 4.4771 18.1307 4.7836 18.0122 5.06956C17.8938 5.35553 17.7202 5.61537 17.5013 5.83424L6.2513 17.0842L1.66797 18.3342L2.91797 13.7509L14.168 2.5009Z\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_15646_72976\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"sub-header mb-3\">Basic Info</div>\r\n\r\n<div class=\"row row-cols-2 mb-5\">\r\n <div class=\"col mb-5 label ps-8\">\r\n Registered Company Name\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.registeredCompanyName ? groupDetails.registeredCompanyName : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Group Tag\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.groupTag ? groupDetails.groupTag : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n GST Number\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.gst ? groupDetails.gst : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Address line 1\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.addressLineOne ? groupDetails.addressLineOne : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Address line 2\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.addressLineTwo ? groupDetails?.addressLineTwo : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n City\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.city ? groupDetails.city : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n State/Province\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.state ? groupDetails.state : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Country\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.country ? groupDetails?.country : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Pin Code\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.pinCode ? groupDetails.pinCode : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Place of Supply\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.placeOfSupply ? groupDetails.placeOfSupply : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n PO\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.po ? groupDetails.po : '--'}}\r\n </div>\r\n\r\n</div>\r\n\r\n<div class=\"sub-header mb-3\">Store Selection</div>\r\n\r\n<div class=\"row row-cols-2 mb-5\">\r\n <div class=\"col mb-5 label ps-8 \">\r\n Store Count\r\n </div>\r\n <div (click)=\"modalRef.close({groupId: groupDetails?._id, tab:'store-selection'})\" class=\"col mb-3 store-count\">\r\n {{groupDetails?.stores ? groupDetails.stores : '--'}}\r\n </div>\r\n\r\n</div>\r\n\r\n<div class=\"sub-header mb-3\">Settings</div>\r\n\r\n<div class=\"row row-cols-2 mb-5\">\r\n <div class=\"col mb-5 label ps-8\">\r\n Billing Days (Pro Rata)\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.proRata === 'before15' ? 'Before 15th of month ' : (groupDetails?.proRata === 'after15' ? 'After\r\n 15th of month ' : '--')}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Payment Category\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.paymentCategory === 'pre' ? 'Pre paid' : (groupDetails?.paymentCategory === 'post' ? 'Post paid'\r\n : '--')}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Currency\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.currency ? groupDetails.currency : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Installation fee (one time )\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.installationFee ? groupDetails.installationFee : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Payment Cycle\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.paymentCycle === 'monthly' ? 'Monthly' : (groupDetails?.paymentCycle === 'quarter' ? 'Quarterly'\r\n : (groupDetails?.paymentCycle === 'halfYearly' ? 'Half yearly' : (groupDetails?.paymentCycle === 'yearly' ?\r\n 'Yearly' : '--')))}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Payment Term\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.paymentTerm ? groupDetails.paymentTerm : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Generate Invoice To\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n <ng-container *ngIf=\"groupDetails?.generateInvoiceTo?.length\">\r\n <ng-container *ngFor=\"let email of groupDetails?.generateInvoiceTo; let i = index\">\r\n <span>{{email}}</span> <span *ngIf=\"i !== (groupDetails?.generateInvoiceTo.length - 1)\">, </span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupDetails?.generateInvoiceTo?.length\">\r\n --\r\n </ng-container>\r\n\r\n\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Attach Store List Annexure With Invoice\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.attachAnnexure === true ? 'Yes' : (groupDetails?.attachAnnexure === false ? 'No' : '--') }}\r\n </div>\r\n\r\n</div>", styles: [":host{padding:24px}.header{color:#101828;font-size:18px;font-weight:600;line-height:28px}.description{color:#667085;font-size:14px;font-weight:400;line-height:20px}.sub-header{color:#344054;font-size:18px;font-weight:500;line-height:28px}.label{color:#667085;font-size:14px;font-weight:500;line-height:20px}.value{color:#344054;font-size:14px;font-weight:600;line-height:20px}.store-count{color:#009bf3;font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;cursor:pointer}.btn-blue{background:#eaf8ff}\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"] }] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BillingGroupViewComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'lib-billing-group-view', template: "<div class=\"d-flex align-items-center justify-content-between mb-5\">\r\n <div>\r\n <div class=\"header mb-3\">\r\n \u201C {{groupDetails?.groupName}} \u201C Details\r\n </div>\r\n <div class=\"description\">\r\n View your billing information\r\n </div>\r\n </div>\r\n <div>\r\n <button (click)=\"modalRef.close({groupId: groupDetails?._id})\" class=\"btn btn-blue\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_15646_72976)\">\r\n <path\r\n d=\"M14.168 2.5009C14.3868 2.28203 14.6467 2.10842 14.9326 1.98996C15.2186 1.87151 15.5251 1.81055 15.8346 1.81055C16.1442 1.81055 16.4507 1.87151 16.7366 1.98996C17.0226 2.10842 17.2824 2.28203 17.5013 2.5009C17.7202 2.71977 17.8938 2.97961 18.0122 3.26558C18.1307 3.55154 18.1917 3.85804 18.1917 4.16757C18.1917 4.4771 18.1307 4.7836 18.0122 5.06956C17.8938 5.35553 17.7202 5.61537 17.5013 5.83424L6.2513 17.0842L1.66797 18.3342L2.91797 13.7509L14.168 2.5009Z\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_15646_72976\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"sub-header mb-3\">Basic Info</div>\r\n\r\n<div class=\"row row-cols-2 mb-5\">\r\n <div class=\"col mb-5 label ps-8\">\r\n Registered Company Name\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.registeredCompanyName ? groupDetails.registeredCompanyName : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Group Tag\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.groupTag ? groupDetails.groupTag : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n GST Number\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.gst ? groupDetails.gst : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Address line 1\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.addressLineOne ? groupDetails.addressLineOne : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Address line 2\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.addressLineTwo ? groupDetails?.addressLineTwo : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n City\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.city ? groupDetails.city : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n State/Province\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.state ? groupDetails.state : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Country\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.country ? groupDetails?.country : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Pin Code\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.pinCode ? groupDetails.pinCode : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Place of Supply\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.placeOfSupply ? groupDetails.placeOfSupply : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n PO\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.po ? groupDetails.po : '--'}}\r\n </div>\r\n\r\n</div>\r\n\r\n<div class=\"sub-header mb-3\">Store Selection</div>\r\n\r\n<div class=\"row row-cols-2 mb-5\">\r\n <div class=\"col mb-5 label ps-8 \">\r\n Store Count\r\n </div>\r\n <div (click)=\"modalRef.close({groupId: groupDetails?._id, tab:'store-selection'})\" class=\"col mb-3 store-count\">\r\n {{groupDetails?.stores ? groupDetails.stores : '--'}}\r\n </div>\r\n\r\n</div>\r\n\r\n<div class=\"sub-header mb-3\">Settings</div>\r\n\r\n<div class=\"row row-cols-2 mb-5\">\r\n <div class=\"col mb-5 label ps-8\">\r\n Billing Days (Pro Rata)\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.proRata === 'before15' ? 'Before 15th of month ' : (groupDetails?.proRata === 'after15' ? 'After\r\n 15th of month ' : '--')}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Payment Category\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.paymentCategory === 'pre' ? 'Pre paid' : (groupDetails?.paymentCategory === 'post' ? 'Post paid'\r\n : '--')}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Currency\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.currency ? groupDetails.currency : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Installation fee (one time )\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.installationFee ? groupDetails.installationFee : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Payment Cycle\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.paymentCycle === 'monthly' ? 'Monthly' : (groupDetails?.paymentCycle === 'quarter' ? 'Quarterly'\r\n : (groupDetails?.paymentCycle === 'halfYearly' ? 'Half yearly' : (groupDetails?.paymentCycle === 'yearly' ?\r\n 'Yearly' : '--')))}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Payment Term\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.paymentTerm ? groupDetails.paymentTerm : '--'}}\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Generate Invoice To\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n <ng-container *ngIf=\"groupDetails?.generateInvoiceTo?.length\">\r\n <ng-container *ngFor=\"let email of groupDetails?.generateInvoiceTo; let i = index\">\r\n <span>{{email}}</span> <span *ngIf=\"i !== (groupDetails?.generateInvoiceTo.length - 1)\">, </span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!groupDetails?.generateInvoiceTo?.length\">\r\n --\r\n </ng-container>\r\n\r\n\r\n </div>\r\n <div class=\"col mb-5 label ps-8\">\r\n Attach Store List Annexure With Invoice\r\n </div>\r\n <div class=\"col mb-5 value\">\r\n {{groupDetails?.attachAnnexure === true ? 'Yes' : (groupDetails?.attachAnnexure === false ? 'No' : '--') }}\r\n </div>\r\n\r\n</div>", styles: [":host{padding:24px}.header{color:#101828;font-size:18px;font-weight:600;line-height:28px}.description{color:#667085;font-size:14px;font-weight:400;line-height:20px}.sub-header{color:#344054;font-size:18px;font-weight:500;line-height:28px}.label{color:#667085;font-size:14px;font-weight:500;line-height:20px}.value{color:#344054;font-size:14px;font-weight:600;line-height:20px}.store-count{color:#009bf3;font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;cursor:pointer}.btn-blue{background:#eaf8ff}\n"] }]
17
+ }], ctorParameters: () => [{ type: i1.NgbActiveModal }], propDecorators: { groupDetails: [{
18
+ type: Input
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy1ncm91cC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL2JpbGxpbmcvYmlsbGluZy1ncm91cC12aWV3L2JpbGxpbmctZ3JvdXAtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9iaWxsaW5nL2JpbGxpbmctZ3JvdXAtdmlldy9iaWxsaW5nLWdyb3VwLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRakQsTUFBTSxPQUFPLHlCQUF5QjtJQUlqQjtJQUZWLFlBQVksQ0FBSTtJQUV6QixZQUFtQixRQUF1QjtRQUF2QixhQUFRLEdBQVIsUUFBUSxDQUFlO0lBRTFDLENBQUM7d0dBTlUseUJBQXlCOzRGQUF6Qix5QkFBeUIsd0dDUnRDLHd6TkFnTE07OzRGRHhLTyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO21GQU16QixZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbGxpbmctZ3JvdXAtdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbGxpbmctZ3JvdXAtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbGxpbmctZ3JvdXAtdmlldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbGxpbmdHcm91cFZpZXdDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBncm91cERldGFpbHM6YW55XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtb2RhbFJlZjpOZ2JBY3RpdmVNb2RhbCl7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItNVwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIG1iLTNcIj5cclxuICAgICAgICAgICAg4oCcIHt7Z3JvdXBEZXRhaWxzPy5ncm91cE5hbWV9fSDigJwgRGV0YWlsc1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICBWaWV3IHlvdXIgYmlsbGluZyBpbmZvcm1hdGlvblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm1vZGFsUmVmLmNsb3NlKHtncm91cElkOiBncm91cERldGFpbHM/Ll9pZH0pXCIgY2xhc3M9XCJidG4gYnRuLWJsdWVcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE1NjQ2XzcyOTc2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMTY4IDIuNTAwOUMxNC4zODY4IDIuMjgyMDMgMTQuNjQ2NyAyLjEwODQyIDE0LjkzMjYgMS45ODk5NkMxNS4yMTg2IDEuODcxNTEgMTUuNTI1MSAxLjgxMDU1IDE1LjgzNDYgMS44MTA1NUMxNi4xNDQyIDEuODEwNTUgMTYuNDUwNyAxLjg3MTUxIDE2LjczNjYgMS45ODk5NkMxNy4wMjI2IDIuMTA4NDIgMTcuMjgyNCAyLjI4MjAzIDE3LjUwMTMgMi41MDA5QzE3LjcyMDIgMi43MTk3NyAxNy44OTM4IDIuOTc5NjEgMTguMDEyMiAzLjI2NTU4QzE4LjEzMDcgMy41NTE1NCAxOC4xOTE3IDMuODU4MDQgMTguMTkxNyA0LjE2NzU3QzE4LjE5MTcgNC40NzcxIDE4LjEzMDcgNC43ODM2IDE4LjAxMjIgNS4wNjk1NkMxNy44OTM4IDUuMzU1NTMgMTcuNzIwMiA1LjYxNTM3IDE3LjUwMTMgNS44MzQyNEw2LjI1MTMgMTcuMDg0MkwxLjY2Nzk3IDE4LjMzNDJMMi45MTc5NyAxMy43NTA5TDE0LjE2OCAyLjUwMDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTU2NDZfNzI5NzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJzdWItaGVhZGVyIG1iLTNcIj5CYXNpYyBJbmZvPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLTIgbWItNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBSZWdpc3RlcmVkIENvbXBhbnkgTmFtZVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgdmFsdWVcIj5cclxuICAgICAgICB7e2dyb3VwRGV0YWlscz8ucmVnaXN0ZXJlZENvbXBhbnlOYW1lID8gZ3JvdXBEZXRhaWxzLnJlZ2lzdGVyZWRDb21wYW55TmFtZSA6ICctLSd9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgbGFiZWwgcHMtOFwiPlxyXG4gICAgICAgIEdyb3VwIFRhZ1xyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgdmFsdWVcIj5cclxuICAgICAgICB7e2dyb3VwRGV0YWlscz8uZ3JvdXBUYWcgPyBncm91cERldGFpbHMuZ3JvdXBUYWcgOiAnLS0nfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBHU1QgTnVtYmVyXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSB2YWx1ZVwiPlxyXG4gICAgICAgIHt7Z3JvdXBEZXRhaWxzPy5nc3QgPyBncm91cERldGFpbHMuZ3N0IDogJy0tJ319XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSBsYWJlbCBwcy04XCI+XHJcbiAgICAgICAgQWRkcmVzcyBsaW5lIDFcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IHZhbHVlXCI+XHJcbiAgICAgICAge3tncm91cERldGFpbHM/LmFkZHJlc3NMaW5lT25lID8gZ3JvdXBEZXRhaWxzLmFkZHJlc3NMaW5lT25lIDogJy0tJ319XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSBsYWJlbCBwcy04XCI+XHJcbiAgICAgICAgQWRkcmVzcyBsaW5lIDJcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IHZhbHVlXCI+XHJcbiAgICAgICAge3tncm91cERldGFpbHM/LmFkZHJlc3NMaW5lVHdvID8gZ3JvdXBEZXRhaWxzPy5hZGRyZXNzTGluZVR3byA6ICctLSd9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgbGFiZWwgcHMtOFwiPlxyXG4gICAgICAgIENpdHlcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IHZhbHVlXCI+XHJcbiAgICAgICAge3tncm91cERldGFpbHM/LmNpdHkgPyBncm91cERldGFpbHMuY2l0eSA6ICctLSd9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgbGFiZWwgcHMtOFwiPlxyXG4gICAgICAgIFN0YXRlL1Byb3ZpbmNlXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSB2YWx1ZVwiPlxyXG4gICAgICAgIHt7Z3JvdXBEZXRhaWxzPy5zdGF0ZSA/IGdyb3VwRGV0YWlscy5zdGF0ZSA6ICctLSd9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgbGFiZWwgcHMtOFwiPlxyXG4gICAgICAgIENvdW50cnlcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IHZhbHVlXCI+XHJcbiAgICAgICAge3tncm91cERldGFpbHM/LmNvdW50cnkgPyBncm91cERldGFpbHM/LmNvdW50cnkgOiAnLS0nfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBQaW4gQ29kZVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgdmFsdWVcIj5cclxuICAgICAgICB7e2dyb3VwRGV0YWlscz8ucGluQ29kZSA/IGdyb3VwRGV0YWlscy5waW5Db2RlIDogJy0tJ319XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSBsYWJlbCBwcy04XCI+XHJcbiAgICAgICAgUGxhY2Ugb2YgU3VwcGx5XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSB2YWx1ZVwiPlxyXG4gICAgICAgIHt7Z3JvdXBEZXRhaWxzPy5wbGFjZU9mU3VwcGx5ID8gZ3JvdXBEZXRhaWxzLnBsYWNlT2ZTdXBwbHkgOiAnLS0nfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBQT1xyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgdmFsdWVcIj5cclxuICAgICAgICB7e2dyb3VwRGV0YWlscz8ucG8gPyBncm91cERldGFpbHMucG8gOiAnLS0nfX1cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwic3ViLWhlYWRlciBtYi0zXCI+U3RvcmUgU2VsZWN0aW9uPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLTIgbWItNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLTggXCI+XHJcbiAgICAgICAgU3RvcmUgQ291bnRcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAoY2xpY2spPVwibW9kYWxSZWYuY2xvc2Uoe2dyb3VwSWQ6IGdyb3VwRGV0YWlscz8uX2lkLCB0YWI6J3N0b3JlLXNlbGVjdGlvbid9KVwiIGNsYXNzPVwiY29sIG1iLTMgc3RvcmUtY291bnRcIj5cclxuICAgICAgICB7e2dyb3VwRGV0YWlscz8uc3RvcmVzID8gZ3JvdXBEZXRhaWxzLnN0b3JlcyA6ICctLSd9fVxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJzdWItaGVhZGVyIG1iLTNcIj5TZXR0aW5nczwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInJvdyByb3ctY29scy0yIG1iLTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSBsYWJlbCBwcy04XCI+XHJcbiAgICAgICAgQmlsbGluZyBEYXlzIChQcm8gUmF0YSlcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IHZhbHVlXCI+XHJcbiAgICAgICAge3tncm91cERldGFpbHM/LnByb1JhdGEgPT09ICdiZWZvcmUxNScgPyAnQmVmb3JlIDE1dGggb2YgbW9udGggJyA6IChncm91cERldGFpbHM/LnByb1JhdGEgPT09ICdhZnRlcjE1JyA/ICdBZnRlclxyXG4gICAgICAgIDE1dGggb2YgbW9udGggJyA6ICctLScpfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBQYXltZW50IENhdGVnb3J5XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSB2YWx1ZVwiPlxyXG4gICAgICAgIHt7Z3JvdXBEZXRhaWxzPy5wYXltZW50Q2F0ZWdvcnkgPT09ICdwcmUnID8gJ1ByZSBwYWlkJyA6IChncm91cERldGFpbHM/LnBheW1lbnRDYXRlZ29yeSA9PT0gJ3Bvc3QnID8gJ1Bvc3QgcGFpZCdcclxuICAgICAgICA6ICctLScpfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBDdXJyZW5jeVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgdmFsdWVcIj5cclxuICAgICAgICB7e2dyb3VwRGV0YWlscz8uY3VycmVuY3kgPyBncm91cERldGFpbHMuY3VycmVuY3kgOiAnLS0nfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBJbnN0YWxsYXRpb24gZmVlIChvbmUgdGltZSApXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSB2YWx1ZVwiPlxyXG4gICAgICAgIHt7Z3JvdXBEZXRhaWxzPy5pbnN0YWxsYXRpb25GZWUgPyBncm91cERldGFpbHMuaW5zdGFsbGF0aW9uRmVlIDogJy0tJ319XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSBsYWJlbCBwcy04XCI+XHJcbiAgICAgICAgUGF5bWVudCBDeWNsZVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgdmFsdWVcIj5cclxuICAgICAgICB7e2dyb3VwRGV0YWlscz8ucGF5bWVudEN5Y2xlID09PSAnbW9udGhseScgPyAnTW9udGhseScgOiAoZ3JvdXBEZXRhaWxzPy5wYXltZW50Q3ljbGUgPT09ICdxdWFydGVyJyA/ICdRdWFydGVybHknXHJcbiAgICAgICAgOiAoZ3JvdXBEZXRhaWxzPy5wYXltZW50Q3ljbGUgPT09ICdoYWxmWWVhcmx5JyA/ICdIYWxmIHllYXJseScgOiAoZ3JvdXBEZXRhaWxzPy5wYXltZW50Q3ljbGUgPT09ICd5ZWFybHknID9cclxuICAgICAgICAnWWVhcmx5JyA6ICctLScpKSl9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgbGFiZWwgcHMtOFwiPlxyXG4gICAgICAgIFBheW1lbnQgVGVybVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sIG1iLTUgdmFsdWVcIj5cclxuICAgICAgICB7e2dyb3VwRGV0YWlscz8ucGF5bWVudFRlcm0gPyBncm91cERldGFpbHMucGF5bWVudFRlcm0gOiAnLS0nfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBHZW5lcmF0ZSBJbnZvaWNlIFRvXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wgbWItNSB2YWx1ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cERldGFpbHM/LmdlbmVyYXRlSW52b2ljZVRvPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZW1haWwgb2YgZ3JvdXBEZXRhaWxzPy5nZW5lcmF0ZUludm9pY2VUbzsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tlbWFpbH19PC9zcGFuPiA8c3BhbiAqbmdJZj1cImkgIT09IChncm91cERldGFpbHM/LmdlbmVyYXRlSW52b2ljZVRvLmxlbmd0aCAtIDEpXCI+LCA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ3JvdXBEZXRhaWxzPy5nZW5lcmF0ZUludm9pY2VUbz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIC0tXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IGxhYmVsIHBzLThcIj5cclxuICAgICAgICBBdHRhY2ggU3RvcmUgTGlzdCBBbm5leHVyZSBXaXRoIEludm9pY2VcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbCBtYi01IHZhbHVlXCI+XHJcbiAgICAgICAge3tncm91cERldGFpbHM/LmF0dGFjaEFubmV4dXJlID09PSB0cnVlID8gJ1llcycgOiAoZ3JvdXBEZXRhaWxzPy5hdHRhY2hBbm5leHVyZSA9PT0gZmFsc2UgPyAnTm8nIDogJy0tJykgfX1cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19
@@ -0,0 +1,200 @@
1
+ import { Component } from '@angular/core';
2
+ import { BillingGroupFormComponent } from './billing-group-form/billing-group-form.component';
3
+ import { FormControl } from '@angular/forms';
4
+ import { BehaviorSubject, takeUntil, Subject, debounceTime, distinctUntilChanged } from 'rxjs';
5
+ import dayjs from "dayjs";
6
+ import { BillingGroupViewComponent } from './billing-group-view/billing-group-view.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
9
+ import * as i2 from "../../../services/client-api.service";
10
+ import * as i3 from "../../../services/payment-subscription.service";
11
+ import * as i4 from "@angular/common";
12
+ import * as i5 from "@angular/forms";
13
+ export class BillingComponent {
14
+ modalService;
15
+ clientService;
16
+ paymentService;
17
+ clientId;
18
+ searchInput = new FormControl('');
19
+ billingGroupsApiState = new BehaviorSubject('initial');
20
+ destroy$ = new Subject();
21
+ billingGroups = [];
22
+ dayjs = dayjs;
23
+ allItems;
24
+ accountDetails;
25
+ // pagination variables
26
+ itemsPerPage = 10;
27
+ currentPage = 1;
28
+ totalItems = 0;
29
+ paginationSizes = [10, 20, 30];
30
+ pageSize = 10;
31
+ searchTerm;
32
+ sortedColumn;
33
+ sortDirection;
34
+ constructor(modalService, clientService, paymentService) {
35
+ this.modalService = modalService;
36
+ this.clientService = clientService;
37
+ this.paymentService = paymentService;
38
+ this.clientService.clientId.subscribe((e) => {
39
+ if (e) {
40
+ this.clientId = e;
41
+ this.getVirtualAccount();
42
+ this.getBillingGroups();
43
+ }
44
+ });
45
+ }
46
+ ngAfterViewInit() {
47
+ this.searchInput.valueChanges.pipe(takeUntil(this.destroy$)).pipe(debounceTime(1000), distinctUntilChanged()).subscribe((val) => {
48
+ if (val === null || val === undefined) {
49
+ return;
50
+ }
51
+ this.searchTerm = val;
52
+ this.getBillingGroups();
53
+ });
54
+ }
55
+ ngOnDestroy() {
56
+ this.destroy$.next(true);
57
+ this.destroy$.complete();
58
+ }
59
+ getVirtualAccount() {
60
+ this.paymentService.getVirtualAccount(this.clientId).pipe(takeUntil(this.destroy$)).subscribe({
61
+ next: (e) => {
62
+ if (e.data) {
63
+ this.accountDetails = e.data;
64
+ }
65
+ else {
66
+ this.accountDetails = null;
67
+ }
68
+ }
69
+ });
70
+ }
71
+ manageBilling(groupId, tab) {
72
+ const modalRef = this.modalService.open(BillingGroupFormComponent, { size: 'lg', centered: true });
73
+ modalRef.componentInstance.clientId = this.clientId;
74
+ modalRef.componentInstance.groupId = groupId;
75
+ if (tab) {
76
+ modalRef.componentInstance.currentTab = tab;
77
+ }
78
+ modalRef.result.then(() => {
79
+ this.getBillingGroups();
80
+ }).catch((e) => {
81
+ this.getBillingGroups();
82
+ });
83
+ }
84
+ getBillingGroups() {
85
+ this.billingGroupsApiState.next('loading');
86
+ const data = {
87
+ "limit": this.pageSize,
88
+ "offset": this.currentPage,
89
+ "clientId": this.clientId,
90
+ "sortColumn": this.sortedColumn,
91
+ "sortBy": this.sortDirection,
92
+ "searchValue": this.searchTerm,
93
+ };
94
+ for (const key in data) {
95
+ if (data.hasOwnProperty(key)) {
96
+ if (data[key] === undefined || data[key] === '') {
97
+ delete data[key];
98
+ }
99
+ if (Array.isArray(data[key])) {
100
+ if (!data[key].length) {
101
+ delete data[key];
102
+ }
103
+ }
104
+ }
105
+ }
106
+ this.paymentService.getBillingGroups(data).pipe(takeUntil(this.destroy$)).subscribe({
107
+ next: (res) => {
108
+ this.billingGroupsApiState.next('loaded');
109
+ if (res?.data?.pageInfo?.count) {
110
+ this.totalItems = res.data.pageInfo.count;
111
+ this.allItems = res.data.pageInfo.total;
112
+ }
113
+ else {
114
+ this.totalItems = 0;
115
+ }
116
+ if (res?.data?.data) {
117
+ this.billingGroups = res.data.data;
118
+ }
119
+ else {
120
+ this.billingGroups = [];
121
+ }
122
+ },
123
+ error: (e) => {
124
+ console.log(e);
125
+ }
126
+ });
127
+ }
128
+ onExport() {
129
+ this.billingGroupsApiState.next('loading');
130
+ const data = {
131
+ "limit": this.pageSize,
132
+ "offset": this.currentPage,
133
+ "clientId": this.clientId,
134
+ "sortColumn": this.sortedColumn,
135
+ "sortBy": this.sortDirection,
136
+ "searchValue": this.searchTerm,
137
+ "isExport": true
138
+ };
139
+ for (const key in data) {
140
+ if (data.hasOwnProperty(key)) {
141
+ if (data[key] === undefined || data[key] === '') {
142
+ delete data[key];
143
+ }
144
+ if (Array.isArray(data[key])) {
145
+ if (!data[key].length) {
146
+ delete data[key];
147
+ }
148
+ }
149
+ }
150
+ }
151
+ this.paymentService.exportBillingGroups(data).pipe(takeUntil(this.destroy$)).subscribe({
152
+ next: (res) => {
153
+ this.billingGroupsApiState.next('loaded');
154
+ this.paymentService.saveAsExcelFile(res, 'invoice');
155
+ },
156
+ error: (e) => {
157
+ console.log(e);
158
+ }
159
+ });
160
+ }
161
+ onPageChange(event) {
162
+ this.currentPage = event;
163
+ this.getBillingGroups();
164
+ }
165
+ onPageSizeChange(event) {
166
+ this.currentPage = 1;
167
+ this.pageSize = event;
168
+ this.itemsPerPage = event;
169
+ this.getBillingGroups();
170
+ }
171
+ onSort(column) {
172
+ if (this.sortedColumn === column) {
173
+ this.sortDirection = this.sortDirection === 1 ? -1 : 1;
174
+ }
175
+ else {
176
+ this.sortedColumn = column;
177
+ this.sortDirection = 1;
178
+ }
179
+ this.getBillingGroups();
180
+ }
181
+ viewBilling(groupDetails) {
182
+ const modalRef = this.modalService.open(BillingGroupViewComponent, { size: 'lg', centered: true });
183
+ modalRef.componentInstance.groupDetails = groupDetails;
184
+ modalRef.result.then((res) => {
185
+ if (res?.groupId && res.tab) {
186
+ this.manageBilling(res.groupId, res.tab);
187
+ }
188
+ else if (res?.groupId) {
189
+ this.manageBilling(res.groupId);
190
+ }
191
+ });
192
+ }
193
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BillingComponent, deps: [{ token: i1.NgbModal }, { token: i2.ClientApiService }, { token: i3.PaymentSubscriptionService }], target: i0.ɵɵFactoryTarget.Component });
194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BillingComponent, selector: "lib-billing", ngImport: i0, template: "<div *ngIf=\"allItems === 1\" class=\"d-flex justify-content-end mb-5\">\r\n <button [disabled]=\"!clientId\" (click)=\"manageBilling()\" type=\"submit\"\r\n class=\"btn-outline btn align-items-end needhelp me-4\"><span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_15029_77738)\">\r\n <path\r\n d=\"M9.16602 3.33417H3.33268C2.89065 3.33417 2.46673 3.50977 2.15417 3.82233C1.84161 4.13489 1.66602 4.55881 1.66602 5.00084V16.6675C1.66602 17.1095 1.84161 17.5335 2.15417 17.846C2.46673 18.1586 2.89065 18.3342 3.33268 18.3342H14.9993C15.4414 18.3342 15.8653 18.1586 16.1779 17.846C16.4904 17.5335 16.666 17.1095 16.666 16.6675V10.8342M15.416 2.08417C15.7475 1.75265 16.1972 1.56641 16.666 1.56641C17.1349 1.56641 17.5845 1.75265 17.916 2.08417C18.2475 2.41569 18.4338 2.86533 18.4338 3.33417C18.4338 3.80301 18.2475 4.25265 17.916 4.58417L9.99935 12.5008L6.66602 13.3342L7.49935 10.0008L15.416 2.08417Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_15029_77738\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>Manage Billing</button>\r\n</div>\r\n\r\n<div [ngClass]=\"allItems === 1 ? 'row-cols-2' : 'row-cols-1'\" class=\"row mb-5\">\r\n <div class=\"col\">\r\n <div class=\"rounded-box \">\r\n <div class=\"header mb-5\">\r\n Payment Details\r\n </div>\r\n <div *ngIf=\"allItems === 1\" class=\"row row-cols-2\">\r\n <div class=\"col label mb-3\">Payment Type </div>\r\n <div class=\"col value mb-3\">\r\n <span *ngIf=\"accountDetails?.paymentType === 'virtual_account'\" > Virtual Account</span>\r\n </div>\r\n <div class=\"col label mb-3\">Account No </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.accountNumber}}</div>\r\n <div class=\"col label mb-3\">IFSC Code </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.ifsc}}</div>\r\n <!-- <div class=\"col label mb-3\">SWIFT Code </div>\r\n <div class=\"col value mb-3\">HDFCINBBCHE</div> -->\r\n <div class=\"col label mb-3\">Branch </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.branch}}</div>\r\n </div>\r\n <div *ngIf=\"allItems > 1\" class=\"row row-cols-2\">\r\n <div class=\"col\">\r\n <div class=\"row row-cols-2\">\r\n <div class=\"col label mb-3\">Payment Type </div>\r\n <div class=\"col value mb-3\">\r\n <span *ngIf=\"accountDetails?.paymentType === 'virtual_account'\" > Virtual Account</span>\r\n </div>\r\n <div class=\"col label mb-3\">Account No </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.accountNumber}}</div>\r\n <div class=\"col label mb-3\">IFSC Code </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.ifsc}}</div>\r\n </div>\r\n </div>\r\n <div class=\"col\">\r\n <div class=\"row row-cols-2\">\r\n <!-- <div class=\"col label mb-3\">SWIFT Code </div>\r\n <div class=\"col value mb-3\">HDFCINBBCHE</div> -->\r\n <div class=\"col label mb-3\">Branch </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.branch}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"allItems === 1\" class=\"col\">\r\n <div class=\"rounded-box \">\r\n <div class=\"header mb-5\">\r\n Payment Details\r\n </div>\r\n <div class=\"row row-cols-2\">\r\n <ng-container *ngFor=\"let group of billingGroups\" >\r\n <ng-container *ngIf=\"group.isPrimary\" >\r\n <div class=\"col label mb-3\">Next Billing Date </div>\r\n <div class=\"col value mb-3\">{{dayjs().endOf('month').format('DD-MM-YYYY')}}</div>\r\n <div class=\"col label mb-3\">Registered Company Name </div>\r\n <div class=\"col value mb-3\">{{group?.registeredCompanyName ? group.registeredCompanyName : '-'}}</div>\r\n <div class=\"col label mb-3\">Billing Address </div>\r\n <div class=\"col value mb-3\">{{group?.addressLineOne ? group.addressLineOne : '-'}}</div>\r\n <div class=\"col label mb-3\">GST No</div>\r\n <div class=\"col value mb-3\">{{group?.gst ? group.gst : '-'}}</div> \r\n </ng-container>\r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<div *ngIf=\"allItems > 1\">\r\n <div class=\"d-flex justify-content-end align-items-center mb-5\">\r\n <div class=\"me-4\">\r\n <div class=\"search-input\">\r\n <span class=\"icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path\r\n d=\"M11.5 10L11.43 10.73C12.41 9.59 13 8.11 13 6.5C13 2.91 10.09 0 6.5 0C2.91 0 0 2.91 0 6.5C0 10.09 2.91 13 6.5 13C8.11 13 9.59 12.41 10.73 11.43L10.2762 11.71L16 17.49L17.49 16L11.5 10ZM6.5 11C4.01 11 2 8.99 2 6.5C2 4.01 4.01 2 6.5 2C8.99 2 11 4.01 11 6.5C11 8.99 8.99 11 6.5 11Z\"\r\n fill=\"black\" fill-opacity=\"0.54\" />\r\n </svg>\r\n </span>\r\n <input [formControl]=\"searchInput\" type=\"text\" class=\"form-control ps-14 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" />\r\n </div>\r\n\r\n </div>\r\n <div class=\"me-4\">\r\n <button (click)=\"onExport()\" [disabled]=\"!clientId\" type=\"submit\" class=\"btn-outline btn align-items-end needhelp \"><span\r\n class=\"me-2\">\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=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>Export</button>\r\n </div>\r\n <div class=\"me-4\">\r\n <button [disabled]=\"!clientId\" (click)=\"manageBilling()\" class=\"btn btn-primary w-100\">\r\n <span class=\"me-2\">\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=\"M9.99935 4.16602V15.8327M4.16602 9.99935H15.8327\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n Add Group</button>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"(billingGroupsApiState | async) === 'loaded'\">\r\n <ng-container *ngIf=\"billingGroups?.length\" >\r\n <div class=\"table-responsive store-table\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <label class=\"form-check-label\" for=\"flexCheckDefault\">\r\n <span>Group name</span>\r\n </label>\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('groupName')\"\r\n [ngClass]=\"sortedColumn === 'groupName' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </th>\r\n <th>Stores\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('stores')\"\r\n [ngClass]=\"sortedColumn === 'stores' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>GST Number\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('gst')\"\r\n [ngClass]=\"sortedColumn === 'gst' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>Place of Supply\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('placeOfSupply')\"\r\n [ngClass]=\"sortedColumn === 'placeOfSupply' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>Tag\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('groupTag')\"\r\n [ngClass]=\"sortedColumn === 'groupTag' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of billingGroups\">\r\n <td>\r\n <span class=\"me-4\" >{{data?.groupName}}</span> \r\n <span *ngIf=\"data.isPrimary\" class=\"primary-badge\" >Primary</span>\r\n </td>\r\n <td>\r\n {{data?.stores}}\r\n </td>\r\n <td>\r\n {{data?.gst}}\r\n </td>\r\n <td>\r\n {{data?.placeOfSupply}}\r\n </td>\r\n <td>\r\n {{data?.groupTag}}\r\n </td>\r\n <td>\r\n <span (click)=\"manageBilling(data._id)\" class=\"me-8 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M9.16602 3.33417H3.33268C2.89065 3.33417 2.46673 3.50977 2.15417 3.82233C1.84161 4.13489 1.66602 4.55881 1.66602 5.00084V16.6675C1.66602 17.1095 1.84161 17.5335 2.15417 17.846C2.46673 18.1586 2.89065 18.3342 3.33268 18.3342H14.9993C15.4414 18.3342 15.8653 18.1586 16.1779 17.846C16.4904 17.5335 16.666 17.1095 16.666 16.6675V10.8342M15.416 2.08417C15.7475 1.75265 16.1972 1.56641 16.666 1.56641C17.1349 1.56641 17.5845 1.75265 17.916 2.08417C18.2475 2.41569 18.4338 2.86533 18.4338 3.33417C18.4338 3.80301 18.2475 4.25265 17.916 4.58417L9.99935 12.5008L6.66602 13.3342L7.49935 10.0008L15.416 2.08417Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span (click)=\"viewBilling(data)\" class=\"cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M0.833984 10.0007C0.833984 10.0007 4.16732 3.33398 10.0007 3.33398C15.834 3.33398 19.1673 10.0007 19.1673 10.0007C19.1673 10.0007 15.834 16.6673 10.0007 16.6673C4.16732 16.6673 0.833984 10.0007 0.833984 10.0007Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5007C11.3814 12.5007 12.5006 11.3814 12.5006 10.0007C12.5006 8.61994 11.3814 7.50065 10.0007 7.50065C8.61994 7.50065 7.50065 8.61994 7.50065 10.0007C7.50065 11.3814 8.61994 12.5007 10.0007 12.5007Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div class=\"my-3\">\r\n <!-- <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination> -->\r\n </div> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!billingGroups?.length\" >\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\"\r\n src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"(billingGroupsApiState | async) === 'loading'\">\r\n <div class=\"shimmer-card w-100\">\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 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 </div>\r\n </ng-container>\r\n\r\n\r\n</div>", styles: [":host{width:100%}.rounded-box{border-radius:12px;border:1px solid #D0D5DD;padding:12px 24px;height:100%}.header{color:#344054;font-size:20px;font-weight:500;line-height:30px}.label{color:#667085;font-size:16px;font-weight:500;line-height:24px}.value{color:#1d2939;font-size:16px;font-weight:500;line-height:24px}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap;border:1px solid #D0D5DD}.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .chip:nth-child(1){margin-left:0}.search-input{position:relative}.search-input .icon{position:absolute;left:18px;top:13px}.search-input input{border-radius:7.28px;border:.91px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 .91px 1.82px #1018280d;color:#0000008a;font-size:16px;font-weight:400}.search-input .form-control:focus{box-shadow:none}table td{color:#101828;font-size:14px;font-weight:500;line-height:20px}.rotate{rotate:180deg;transition:1s}.primary-badge{padding:2px 8px;border-radius:16px;background:#eaf8ff;color:#009bf3;font-size:12px;font-weight:500;line-height:18px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
195
+ }
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BillingComponent, decorators: [{
197
+ type: Component,
198
+ args: [{ selector: 'lib-billing', template: "<div *ngIf=\"allItems === 1\" class=\"d-flex justify-content-end mb-5\">\r\n <button [disabled]=\"!clientId\" (click)=\"manageBilling()\" type=\"submit\"\r\n class=\"btn-outline btn align-items-end needhelp me-4\"><span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_15029_77738)\">\r\n <path\r\n d=\"M9.16602 3.33417H3.33268C2.89065 3.33417 2.46673 3.50977 2.15417 3.82233C1.84161 4.13489 1.66602 4.55881 1.66602 5.00084V16.6675C1.66602 17.1095 1.84161 17.5335 2.15417 17.846C2.46673 18.1586 2.89065 18.3342 3.33268 18.3342H14.9993C15.4414 18.3342 15.8653 18.1586 16.1779 17.846C16.4904 17.5335 16.666 17.1095 16.666 16.6675V10.8342M15.416 2.08417C15.7475 1.75265 16.1972 1.56641 16.666 1.56641C17.1349 1.56641 17.5845 1.75265 17.916 2.08417C18.2475 2.41569 18.4338 2.86533 18.4338 3.33417C18.4338 3.80301 18.2475 4.25265 17.916 4.58417L9.99935 12.5008L6.66602 13.3342L7.49935 10.0008L15.416 2.08417Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_15029_77738\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>Manage Billing</button>\r\n</div>\r\n\r\n<div [ngClass]=\"allItems === 1 ? 'row-cols-2' : 'row-cols-1'\" class=\"row mb-5\">\r\n <div class=\"col\">\r\n <div class=\"rounded-box \">\r\n <div class=\"header mb-5\">\r\n Payment Details\r\n </div>\r\n <div *ngIf=\"allItems === 1\" class=\"row row-cols-2\">\r\n <div class=\"col label mb-3\">Payment Type </div>\r\n <div class=\"col value mb-3\">\r\n <span *ngIf=\"accountDetails?.paymentType === 'virtual_account'\" > Virtual Account</span>\r\n </div>\r\n <div class=\"col label mb-3\">Account No </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.accountNumber}}</div>\r\n <div class=\"col label mb-3\">IFSC Code </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.ifsc}}</div>\r\n <!-- <div class=\"col label mb-3\">SWIFT Code </div>\r\n <div class=\"col value mb-3\">HDFCINBBCHE</div> -->\r\n <div class=\"col label mb-3\">Branch </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.branch}}</div>\r\n </div>\r\n <div *ngIf=\"allItems > 1\" class=\"row row-cols-2\">\r\n <div class=\"col\">\r\n <div class=\"row row-cols-2\">\r\n <div class=\"col label mb-3\">Payment Type </div>\r\n <div class=\"col value mb-3\">\r\n <span *ngIf=\"accountDetails?.paymentType === 'virtual_account'\" > Virtual Account</span>\r\n </div>\r\n <div class=\"col label mb-3\">Account No </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.accountNumber}}</div>\r\n <div class=\"col label mb-3\">IFSC Code </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.ifsc}}</div>\r\n </div>\r\n </div>\r\n <div class=\"col\">\r\n <div class=\"row row-cols-2\">\r\n <!-- <div class=\"col label mb-3\">SWIFT Code </div>\r\n <div class=\"col value mb-3\">HDFCINBBCHE</div> -->\r\n <div class=\"col label mb-3\">Branch </div>\r\n <div class=\"col value mb-3\">{{accountDetails?.branch}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"allItems === 1\" class=\"col\">\r\n <div class=\"rounded-box \">\r\n <div class=\"header mb-5\">\r\n Payment Details\r\n </div>\r\n <div class=\"row row-cols-2\">\r\n <ng-container *ngFor=\"let group of billingGroups\" >\r\n <ng-container *ngIf=\"group.isPrimary\" >\r\n <div class=\"col label mb-3\">Next Billing Date </div>\r\n <div class=\"col value mb-3\">{{dayjs().endOf('month').format('DD-MM-YYYY')}}</div>\r\n <div class=\"col label mb-3\">Registered Company Name </div>\r\n <div class=\"col value mb-3\">{{group?.registeredCompanyName ? group.registeredCompanyName : '-'}}</div>\r\n <div class=\"col label mb-3\">Billing Address </div>\r\n <div class=\"col value mb-3\">{{group?.addressLineOne ? group.addressLineOne : '-'}}</div>\r\n <div class=\"col label mb-3\">GST No</div>\r\n <div class=\"col value mb-3\">{{group?.gst ? group.gst : '-'}}</div> \r\n </ng-container>\r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n<div *ngIf=\"allItems > 1\">\r\n <div class=\"d-flex justify-content-end align-items-center mb-5\">\r\n <div class=\"me-4\">\r\n <div class=\"search-input\">\r\n <span class=\"icon\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path\r\n d=\"M11.5 10L11.43 10.73C12.41 9.59 13 8.11 13 6.5C13 2.91 10.09 0 6.5 0C2.91 0 0 2.91 0 6.5C0 10.09 2.91 13 6.5 13C8.11 13 9.59 12.41 10.73 11.43L10.2762 11.71L16 17.49L17.49 16L11.5 10ZM6.5 11C4.01 11 2 8.99 2 6.5C2 4.01 4.01 2 6.5 2C8.99 2 11 4.01 11 6.5C11 8.99 8.99 11 6.5 11Z\"\r\n fill=\"black\" fill-opacity=\"0.54\" />\r\n </svg>\r\n </span>\r\n <input [formControl]=\"searchInput\" type=\"text\" class=\"form-control ps-14 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" />\r\n </div>\r\n\r\n </div>\r\n <div class=\"me-4\">\r\n <button (click)=\"onExport()\" [disabled]=\"!clientId\" type=\"submit\" class=\"btn-outline btn align-items-end needhelp \"><span\r\n class=\"me-2\">\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=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>Export</button>\r\n </div>\r\n <div class=\"me-4\">\r\n <button [disabled]=\"!clientId\" (click)=\"manageBilling()\" class=\"btn btn-primary w-100\">\r\n <span class=\"me-2\">\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=\"M9.99935 4.16602V15.8327M4.16602 9.99935H15.8327\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n Add Group</button>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"(billingGroupsApiState | async) === 'loaded'\">\r\n <ng-container *ngIf=\"billingGroups?.length\" >\r\n <div class=\"table-responsive store-table\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <label class=\"form-check-label\" for=\"flexCheckDefault\">\r\n <span>Group name</span>\r\n </label>\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('groupName')\"\r\n [ngClass]=\"sortedColumn === 'groupName' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </th>\r\n <th>Stores\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('stores')\"\r\n [ngClass]=\"sortedColumn === 'stores' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>GST Number\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('gst')\"\r\n [ngClass]=\"sortedColumn === 'gst' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>Place of Supply\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('placeOfSupply')\"\r\n [ngClass]=\"sortedColumn === 'placeOfSupply' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>Tag\r\n <svg class=\"cursor-pointer\" (click)=\"onSort('groupTag')\"\r\n [ngClass]=\"sortedColumn === 'groupTag' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of billingGroups\">\r\n <td>\r\n <span class=\"me-4\" >{{data?.groupName}}</span> \r\n <span *ngIf=\"data.isPrimary\" class=\"primary-badge\" >Primary</span>\r\n </td>\r\n <td>\r\n {{data?.stores}}\r\n </td>\r\n <td>\r\n {{data?.gst}}\r\n </td>\r\n <td>\r\n {{data?.placeOfSupply}}\r\n </td>\r\n <td>\r\n {{data?.groupTag}}\r\n </td>\r\n <td>\r\n <span (click)=\"manageBilling(data._id)\" class=\"me-8 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M9.16602 3.33417H3.33268C2.89065 3.33417 2.46673 3.50977 2.15417 3.82233C1.84161 4.13489 1.66602 4.55881 1.66602 5.00084V16.6675C1.66602 17.1095 1.84161 17.5335 2.15417 17.846C2.46673 18.1586 2.89065 18.3342 3.33268 18.3342H14.9993C15.4414 18.3342 15.8653 18.1586 16.1779 17.846C16.4904 17.5335 16.666 17.1095 16.666 16.6675V10.8342M15.416 2.08417C15.7475 1.75265 16.1972 1.56641 16.666 1.56641C17.1349 1.56641 17.5845 1.75265 17.916 2.08417C18.2475 2.41569 18.4338 2.86533 18.4338 3.33417C18.4338 3.80301 18.2475 4.25265 17.916 4.58417L9.99935 12.5008L6.66602 13.3342L7.49935 10.0008L15.416 2.08417Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span (click)=\"viewBilling(data)\" class=\"cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M0.833984 10.0007C0.833984 10.0007 4.16732 3.33398 10.0007 3.33398C15.834 3.33398 19.1673 10.0007 19.1673 10.0007C19.1673 10.0007 15.834 16.6673 10.0007 16.6673C4.16732 16.6673 0.833984 10.0007 0.833984 10.0007Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5007C11.3814 12.5007 12.5006 11.3814 12.5006 10.0007C12.5006 8.61994 11.3814 7.50065 10.0007 7.50065C8.61994 7.50065 7.50065 8.61994 7.50065 10.0007C7.50065 11.3814 8.61994 12.5007 10.0007 12.5007Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div class=\"my-3\">\r\n <!-- <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination> -->\r\n </div> \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!billingGroups?.length\" >\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div\r\n class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\"\r\n src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"(billingGroupsApiState | async) === 'loading'\">\r\n <div class=\"shimmer-card w-100\">\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 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 </div>\r\n </ng-container>\r\n\r\n\r\n</div>", styles: [":host{width:100%}.rounded-box{border-radius:12px;border:1px solid #D0D5DD;padding:12px 24px;height:100%}.header{color:#344054;font-size:20px;font-weight:500;line-height:30px}.label{color:#667085;font-size:16px;font-weight:500;line-height:24px}.value{color:#1d2939;font-size:16px;font-weight:500;line-height:24px}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap;border:1px solid #D0D5DD}.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .chip:nth-child(1){margin-left:0}.search-input{position:relative}.search-input .icon{position:absolute;left:18px;top:13px}.search-input input{border-radius:7.28px;border:.91px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 .91px 1.82px #1018280d;color:#0000008a;font-size:16px;font-weight:400}.search-input .form-control:focus{box-shadow:none}table td{color:#101828;font-size:14px;font-weight:500;line-height:20px}.rotate{rotate:180deg;transition:1s}.primary-badge{padding:2px 8px;border-radius:16px;background:#eaf8ff;color:#009bf3;font-size:12px;font-weight:500;line-height:18px}\n"] }]
199
+ }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.ClientApiService }, { type: i3.PaymentSubscriptionService }] });
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9iaWxsaW5nL2JpbGxpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50cy1zdWJzY3JpcHRpb24vYmlsbGluZy9iaWxsaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUU5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRyxNQUFNLE1BQU0sQ0FBQztBQUVoRyxPQUFRLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDM0IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7QUFVOUYsTUFBTSxPQUFPLGdCQUFnQjtJQXlCUDtJQUErQjtJQUF3QztJQXZCM0YsUUFBUSxDQUFPO0lBQ2YsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2pDLHFCQUFxQixHQUFHLElBQUksZUFBZSxDQUFtQyxTQUFTLENBQUMsQ0FBQTtJQUN2RSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxhQUFhLEdBQVMsRUFBRSxDQUFBO0lBQ3hCLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDYixRQUFRLENBQU87SUFDZixj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Qzt3R0ExTVUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsbURDbEI3QixtdGxCQTJTTTs7NEZEelJPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQmlsbGluZ0dyb3VwRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vYmlsbGluZy1ncm91cC1mb3JtL2JpbGxpbmctZ3JvdXAtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgdGFrZVVudGlsLCBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkICB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgIGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgeyBCaWxsaW5nR3JvdXBWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9iaWxsaW5nLWdyb3VwLXZpZXcvYmlsbGluZy1ncm91cC12aWV3LmNvbXBvbmVudCc7XHJcblxyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaWxsaW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmlsbGluZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbGxpbmcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCaWxsaW5nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgY2xpZW50SWQ6c3RyaW5nXHJcbiAgc2VhcmNoSW5wdXQgPSBuZXcgRm9ybUNvbnRyb2woJycpXHJcbiAgYmlsbGluZ0dyb3Vwc0FwaVN0YXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDwnaW5pdGlhbCcgfCAnbG9hZGluZycgfCAnbG9hZGVkJz4oJ2luaXRpYWwnKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGJpbGxpbmdHcm91cHM6YW55W10gPSBbXVxyXG4gIGRheWpzID0gZGF5anNcclxuICBhbGxJdGVtczpudW1iZXJcclxuICBhY2NvdW50RGV0YWlsczphbnlcclxuXHJcblxyXG5cclxuICAvLyBwYWdpbmF0aW9uIHZhcmlhYmxlc1xyXG4gIGl0ZW1zUGVyUGFnZSA9IDEwXHJcbiAgY3VycmVudFBhZ2UgPSAxXHJcbiAgdG90YWxJdGVtcyA9IDBcclxuICBwYWdpbmF0aW9uU2l6ZXMgPSBbMTAsIDIwLCAzMF1cclxuICBwYWdlU2l6ZSA9IDEwXHJcbiAgc2VhcmNoVGVybTogc3RyaW5nXHJcbiAgc29ydGVkQ29sdW1uOiBzdHJpbmdcclxuICBzb3J0RGlyZWN0aW9uOiBudW1iZXJcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTpOZ2JNb2RhbCwgcHJpdmF0ZSBjbGllbnRTZXJ2aWNlOkNsaWVudEFwaVNlcnZpY2UsIHByaXZhdGUgcGF5bWVudFNlcnZpY2U6UGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2Upe1xyXG4gICAgdGhpcy5jbGllbnRTZXJ2aWNlLmNsaWVudElkLnN1YnNjcmliZSgoZSk9PntcclxuICAgICAgaWYoZSl7ICAgICAgICBcclxuICAgICAgICB0aGlzLmNsaWVudElkID0gZVxyXG4gICAgICAgIHRoaXMuZ2V0VmlydHVhbEFjY291bnQoKVxyXG4gICAgICAgIHRoaXMuZ2V0QmlsbGluZ0dyb3VwcygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaElucHV0LnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkucGlwZShkZWJvdW5jZVRpbWUoMTAwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlYXJjaFRlcm0gPSB2YWxcclxuICAgICAgdGhpcy5nZXRCaWxsaW5nR3JvdXBzKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldFZpcnR1YWxBY2NvdW50KCl7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFZpcnR1YWxBY2NvdW50KHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihlKT0+e1xyXG4gICAgICAgIGlmKGUuZGF0YSl7XHJcbiAgICAgICAgICB0aGlzLmFjY291bnREZXRhaWxzID0gZS5kYXRhXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmFjY291bnREZXRhaWxzID0gbnVsbFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBtYW5hZ2VCaWxsaW5nKGdyb3VwSWQ/OnN0cmluZywgdGFiPzpzdHJpbmcpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihCaWxsaW5nR3JvdXBGb3JtQ29tcG9uZW50LCB7IHNpemU6ICdsZycsIGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuY2xpZW50SWQgPSB0aGlzLmNsaWVudElkXHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5ncm91cElkID0gZ3JvdXBJZFxyXG5cclxuICAgIGlmKHRhYil7XHJcbiAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmN1cnJlbnRUYWIgPSB0YWJcclxuICAgIH1cclxuXHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuZ2V0QmlsbGluZ0dyb3VwcygpICAgIFxyXG4gICAgfSkuY2F0Y2goKGUpPT57XHJcbiAgICAgIHRoaXMuZ2V0QmlsbGluZ0dyb3VwcygpIFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRCaWxsaW5nR3JvdXBzKCkge1xyXG4gICAgdGhpcy5iaWxsaW5nR3JvdXBzQXBpU3RhdGUubmV4dCgnbG9hZGluZycpXHJcbiAgICBjb25zdCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xyXG4gICAgICBcImxpbWl0XCI6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgIFwib2Zmc2V0XCI6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJzb3J0Q29sdW1uXCI6IHRoaXMuc29ydGVkQ29sdW1uLFxyXG4gICAgICBcInNvcnRCeVwiOiB0aGlzLnNvcnREaXJlY3Rpb24sXHJcbiAgICAgIFwic2VhcmNoVmFsdWVcIjogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGlmIChkYXRhW2tleV0gPT09IHVuZGVmaW5lZCB8fCBkYXRhW2tleV0gPT09ICcnKSB7XHJcbiAgICAgICAgICBkZWxldGUgZGF0YVtrZXldXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2tleV0pKSB7XHJcbiAgICAgICAgICBpZiAoIWRhdGFba2V5XS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgZGVsZXRlIGRhdGFba2V5XVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5nZXRCaWxsaW5nR3JvdXBzKGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5iaWxsaW5nR3JvdXBzQXBpU3RhdGUubmV4dCgnbG9hZGVkJylcclxuICAgICAgICBpZiAocmVzPy5kYXRhPy5wYWdlSW5mbz8uY291bnQpIHtcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHJlcy5kYXRhLnBhZ2VJbmZvLmNvdW50XHJcbiAgICAgICAgICB0aGlzLmFsbEl0ZW1zID0gcmVzLmRhdGEucGFnZUluZm8udG90YWxcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gMFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzPy5kYXRhPy5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLmJpbGxpbmdHcm91cHMgPSByZXMuZGF0YS5kYXRhXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYmlsbGluZ0dyb3VwcyA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGUpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkV4cG9ydCgpe1xyXG4gICAgdGhpcy5iaWxsaW5nR3JvdXBzQXBpU3RhdGUubmV4dCgnbG9hZGluZycpXHJcbiAgICBjb25zdCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xyXG4gICAgICBcImxpbWl0XCI6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgIFwib2Zmc2V0XCI6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJzb3J0Q29sdW1uXCI6IHRoaXMuc29ydGVkQ29sdW1uLFxyXG4gICAgICBcInNvcnRCeVwiOiB0aGlzLnNvcnREaXJlY3Rpb24sXHJcbiAgICAgIFwic2VhcmNoVmFsdWVcIjogdGhpcy5zZWFyY2hUZXJtLFxyXG4gICAgICBcImlzRXhwb3J0XCI6dHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGlmIChkYXRhW2tleV0gPT09IHVuZGVmaW5lZCB8fCBkYXRhW2tleV0gPT09ICcnKSB7XHJcbiAgICAgICAgICBkZWxldGUgZGF0YVtrZXldXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2tleV0pKSB7XHJcbiAgICAgICAgICBpZiAoIWRhdGFba2V5XS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgZGVsZXRlIGRhdGFba2V5XVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5leHBvcnRCaWxsaW5nR3JvdXBzKGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5iaWxsaW5nR3JvdXBzQXBpU3RhdGUubmV4dCgnbG9hZGVkJylcclxuICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsICdpbnZvaWNlJylcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBldmVudFxyXG4gICAgdGhpcy5nZXRCaWxsaW5nR3JvdXBzKClcclxuXHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxXHJcbiAgICB0aGlzLnBhZ2VTaXplID0gZXZlbnRcclxuICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gZXZlbnRcclxuICAgIHRoaXMuZ2V0QmlsbGluZ0dyb3VwcygpXHJcbiAgfVxyXG5cclxuICBvblNvcnQoY29sdW1uOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLnNvcnRlZENvbHVtbiA9PT0gY29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydERpcmVjdGlvbiA9PT0gMSA/IC0xIDogMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydGVkQ29sdW1uID0gY29sdW1uO1xyXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRCaWxsaW5nR3JvdXBzKClcclxuICB9XHJcblxyXG4gIHZpZXdCaWxsaW5nKGdyb3VwRGV0YWlsczphbnkpe1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEJpbGxpbmdHcm91cFZpZXdDb21wb25lbnQsIHsgc2l6ZTogJ2xnJywgY2VudGVyZWQ6IHRydWUgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5ncm91cERldGFpbHMgPSBncm91cERldGFpbHNcclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYocmVzPy5ncm91cElkICYmIHJlcy50YWIpe1xyXG4gICAgICAgIHRoaXMubWFuYWdlQmlsbGluZyhyZXMuZ3JvdXBJZCwgIHJlcy50YWIpXHJcbiAgICAgIH1lbHNlIGlmKHJlcz8uZ3JvdXBJZCl7XHJcbiAgICAgICAgdGhpcy5tYW5hZ2VCaWxsaW5nKHJlcy5ncm91cElkKVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiYWxsSXRlbXMgPT09IDFcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG1iLTVcIj5cclxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFjbGllbnRJZFwiIChjbGljayk9XCJtYW5hZ2VCaWxsaW5nKClcIiB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBhbGlnbi1pdGVtcy1lbmQgbmVlZGhlbHAgIG1lLTRcIj48c3BhbiBjbGFzcz1cIm1lLTJcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE1MDI5Xzc3NzM4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS4xNjYwMiAzLjMzNDE3SDMuMzMyNjhDMi44OTA2NSAzLjMzNDE3IDIuNDY2NzMgMy41MDk3NyAyLjE1NDE3IDMuODIyMzNDMS44NDE2MSA0LjEzNDg5IDEuNjY2MDIgNC41NTg4MSAxLjY2NjAyIDUuMDAwODRWMTYuNjY3NUMxLjY2NjAyIDE3LjEwOTUgMS44NDE2MSAxNy41MzM1IDIuMTU0MTcgMTcuODQ2QzIuNDY2NzMgMTguMTU4NiAyLjg5MDY1IDE4LjMzNDIgMy4zMzI2OCAxOC4zMzQySDE0Ljk5OTNDMTUuNDQxNCAxOC4zMzQyIDE1Ljg2NTMgMTguMTU4NiAxNi4xNzc5IDE3Ljg0NkMxNi40OTA0IDE3LjUzMzUgMTYuNjY2IDE3LjEwOTUgMTYuNjY2IDE2LjY2NzVWMTAuODM0Mk0xNS40MTYgMi4wODQxN0MxNS43NDc1IDEuNzUyNjUgMTYuMTk3MiAxLjU2NjQxIDE2LjY2NiAxLjU2NjQxQzE3LjEzNDkgMS41NjY0MSAxNy41ODQ1IDEuNzUyNjUgMTcuOTE2IDIuMDg0MTdDMTguMjQ3NSAyLjQxNTY5IDE4LjQzMzggMi44NjUzMyAxOC40MzM4IDMuMzM0MTdDMTguNDMzOCAzLjgwMzAxIDE4LjI0NzUgNC4yNTI2NSAxNy45MTYgNC41ODQxN0w5Ljk5OTM1IDEyLjUwMDhMNi42NjYwMiAxMy4zMzQyTDcuNDk5MzUgMTAuMDAwOEwxNS40MTYgMi4wODQxN1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xNTAyOV83NzczOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvc3Bhbj5NYW5hZ2UgQmlsbGluZzwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgW25nQ2xhc3NdPVwiYWxsSXRlbXMgPT09IDEgPyAncm93LWNvbHMtMicgOiAncm93LWNvbHMtMSdcIiBjbGFzcz1cInJvdyBtYi01XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtYm94IFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIFBheW1lbnQgRGV0YWlsc1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFsbEl0ZW1zID09PSAxXCIgY2xhc3M9XCJyb3cgcm93LWNvbHMtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBsYWJlbCBtYi0zXCI+UGF5bWVudCBUeXBlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB2YWx1ZSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhY2NvdW50RGV0YWlscz8ucGF5bWVudFR5cGUgPT09ICd2aXJ0dWFsX2FjY291bnQnXCIgPiBWaXJ0dWFsIEFjY291bnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgbGFiZWwgbWItM1wiPkFjY291bnQgTm8gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZhbHVlIG1iLTNcIj57e2FjY291bnREZXRhaWxzPy5hY2NvdW50TnVtYmVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgbGFiZWwgbWItM1wiPklGU0MgQ29kZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdmFsdWUgbWItM1wiPnt7YWNjb3VudERldGFpbHM/Lmlmc2N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sIGxhYmVsIG1iLTNcIj5TV0lGVCBDb2RlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB2YWx1ZSBtYi0zXCI+SERGQ0lOQkJDSEU8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGxhYmVsIG1iLTNcIj5CcmFuY2ggPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZhbHVlIG1iLTNcIj57e2FjY291bnREZXRhaWxzPy5icmFuY2h9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFsbEl0ZW1zID4gMVwiIGNsYXNzPVwicm93IHJvdy1jb2xzLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBsYWJlbCBtYi0zXCI+UGF5bWVudCBUeXBlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZhbHVlIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWNjb3VudERldGFpbHM/LnBheW1lbnRUeXBlID09PSAndmlydHVhbF9hY2NvdW50J1wiID4gVmlydHVhbCBBY2NvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBsYWJlbCBtYi0zXCI+QWNjb3VudCBObyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB2YWx1ZSBtYi0zXCI+e3thY2NvdW50RGV0YWlscz8uYWNjb3VudE51bWJlcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgbGFiZWwgbWItM1wiPklGU0MgQ29kZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB2YWx1ZSBtYi0zXCI+e3thY2NvdW50RGV0YWlscz8uaWZzY319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sIGxhYmVsIG1iLTNcIj5TV0lGVCBDb2RlIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZhbHVlIG1iLTNcIj5IREZDSU5CQkNIRTwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBsYWJlbCBtYi0zXCI+QnJhbmNoIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZhbHVlIG1iLTNcIj57e2FjY291bnREZXRhaWxzPy5icmFuY2h9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiYWxsSXRlbXMgPT09IDFcIiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLWJveCBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICBQYXltZW50IERldGFpbHNcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtMlwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgYmlsbGluZ0dyb3Vwc1wiID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cC5pc1ByaW1hcnlcIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGxhYmVsIG1iLTNcIj5OZXh0IEJpbGxpbmcgRGF0ZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdmFsdWUgbWItM1wiPnt7ZGF5anMoKS5lbmRPZignbW9udGgnKS5mb3JtYXQoJ0RELU1NLVlZWVknKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGxhYmVsIG1iLTNcIj5SZWdpc3RlcmVkIENvbXBhbnkgTmFtZSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdmFsdWUgbWItM1wiPnt7Z3JvdXA/LnJlZ2lzdGVyZWRDb21wYW55TmFtZSA/IGdyb3VwLnJlZ2lzdGVyZWRDb21wYW55TmFtZSA6ICctJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGxhYmVsIG1iLTNcIj5CaWxsaW5nIEFkZHJlc3MgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHZhbHVlIG1iLTNcIj57e2dyb3VwPy5hZGRyZXNzTGluZU9uZSA/IGdyb3VwLmFkZHJlc3NMaW5lT25lIDogJy0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgbGFiZWwgbWItM1wiPkdTVCBObzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB2YWx1ZSBtYi0zXCI+e3tncm91cD8uZ3N0ID8gZ3JvdXAuZ3N0IDogJy0nfX08L2Rpdj4gICAgIFxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cImFsbEl0ZW1zID4gMVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBtYi01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjUgMTBMMTEuNDMgMTAuNzNDMTIuNDEgOS41OSAxMyA4LjExIDEzIDYuNUMxMyAyLjkxIDEwLjA5IDAgNi41IDBDMi45MSAwIDAgMi45MSAwIDYuNUMwIDEwLjA5IDIuOTEgMTMgNi41IDEzQzguMTEgMTMgOS41OSAxMi40MSAxMC43MyAxMS40M0wxMC4yNzYyIDExLjcxTDE2IDE3LjQ5TDE3LjQ5IDE2TDExLjUgMTBaTTYuNSAxMUM0LjAxIDExIDIgOC45OSAyIDYuNUMyIDQuMDEgNC4wMSAyIDYuNSAyQzguOTkgMiAxMSA0LjAxIDExIDYuNUMxMSA4Ljk5IDguOTkgMTEgNi41IDExWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiYmxhY2tcIiBmaWxsLW9wYWNpdHk9XCIwLjU0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwic2VhcmNoSW5wdXRcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHBzLTE0IG1lLTJcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZS00XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9uRXhwb3J0KClcIiBbZGlzYWJsZWRdPVwiIWNsaWVudElkXCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGFsaWduLWl0ZW1zLWVuZCBuZWVkaGVscCBcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+RXhwb3J0PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTRcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWNsaWVudElkXCIgKGNsaWNrKT1cIm1hbmFnZUJpbGxpbmcoKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTM1IDQuMTY2MDJWMTUuODMyN000LjE2NjAyIDkuOTk5MzVIMTUuODMyN1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgQWRkIEdyb3VwPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoYmlsbGluZ0dyb3Vwc0FwaVN0YXRlIHwgYXN5bmMpID09PSAnbG9hZGVkJ1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiaWxsaW5nR3JvdXBzPy5sZW5ndGhcIiA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgc3RvcmUtdGFibGVcIj5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYm90dG9tLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZmxleENoZWNrRGVmYXVsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Hcm91cCBuYW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnZ3JvdXBOYW1lJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0ZWRDb2x1bW4gPT09ICdncm91cE5hbWUnICYmIHNvcnREaXJlY3Rpb24gPT09IDEgPyAncm90YXRlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TdG9yZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3N0b3JlcycpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzb3J0ZWRDb2x1bW4gPT09ICdzdG9yZXMnICYmIHNvcnREaXJlY3Rpb24gPT09IDEgPyAncm90YXRlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5HU1QgTnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdnc3QnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic29ydGVkQ29sdW1uID09PSAnZ3N0JyAmJiBzb3J0RGlyZWN0aW9uID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+UGxhY2Ugb2YgU3VwcGx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdwbGFjZU9mU3VwcGx5JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRlZENvbHVtbiA9PT0gJ3BsYWNlT2ZTdXBwbHknICYmIHNvcnREaXJlY3Rpb24gPT09IDEgPyAncm90YXRlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5UYWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2dyb3VwVGFnJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNvcnRlZENvbHVtbiA9PT0gJ2dyb3VwVGFnJyAmJiBzb3J0RGlyZWN0aW9uID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+QWN0aW9uczwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBkYXRhIG9mIGJpbGxpbmdHcm91cHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtNFwiID57e2RhdGE/Lmdyb3VwTmFtZX19PC9zcGFuPiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YS5pc1ByaW1hcnlcIiBjbGFzcz1cInByaW1hcnktYmFkZ2VcIiA+UHJpbWFyeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhPy5zdG9yZXN9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGE/LmdzdH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YT8ucGxhY2VPZlN1cHBseX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YT8uZ3JvdXBUYWd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwibWFuYWdlQmlsbGluZyhkYXRhLl9pZClcIiBjbGFzcz1cIm1lLTggY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS4xNjYwMiAzLjMzNDE3SDMuMzMyNjhDMi44OTA2NSAzLjMzNDE3IDIuNDY2NzMgMy41MDk3NyAyLjE1NDE3IDMuODIyMzNDMS44NDE2MSA0LjEzNDg5IDEuNjY2MDIgNC41NTg4MSAxLjY2NjAyIDUuMDAwODRWMTYuNjY3NUMxLjY2NjAyIDE3LjEwOTUgMS44NDE2MSAxNy41MzM1IDIuMTU0MTcgMTcuODQ2QzIuNDY2NzMgMTguMTU4NiAyLjg5MDY1IDE4LjMzNDIgMy4zMzI2OCAxOC4zMzQySDE0Ljk5OTNDMTUuNDQxNCAxOC4zMzQyIDE1Ljg2NTMgMTguMTU4NiAxNi4xNzc5IDE3Ljg0NkMxNi40OTA0IDE3LjUzMzUgMTYuNjY2IDE3LjEwOTUgMTYuNjY2IDE2LjY2NzVWMTAuODM0Mk0xNS40MTYgMi4wODQxN0MxNS43NDc1IDEuNzUyNjUgMTYuMTk3MiAxLjU2NjQxIDE2LjY2NiAxLjU2NjQxQzE3LjEzNDkgMS41NjY0MSAxNy41ODQ1IDEuNzUyNjUgMTcuOTE2IDIuMDg0MTdDMTguMjQ3NSAyLjQxNTY5IDE4LjQzMzggMi44NjUzMyAxOC40MzM4IDMuMzM0MTdDMTguNDMzOCAzLjgwMzAxIDE4LjI0NzUgNC4yNTI2NSAxNy45MTYgNC41ODQxN0w5Ljk5OTM1IDEyLjUwMDhMNi42NjYwMiAxMy4zMzQyTDcuNDk5MzUgMTAuMDAwOEwxNS40MTYgMi4wODQxN1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJ2aWV3QmlsbGluZyhkYXRhKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMC44MzM5ODQgMTAuMDAwN0MwLjgzMzk4NCAxMC4wMDA3IDQuMTY3MzIgMy4zMzM5OCAxMC4wMDA3IDMuMzMzOThDMTUuODM0IDMuMzMzOTggMTkuMTY3MyAxMC4wMDA3IDE5LjE2NzMgMTAuMDAwN0MxOS4xNjczIDEwLjAwMDcgMTUuODM0IDE2LjY2NzMgMTAuMDAwNyAxNi42NjczQzQuMTY3MzIgMTYuNjY3MyAwLjgzMzk4NCAxMC4wMDA3IDAuODMzOTg0IDEwLjAwMDdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwLjAwMDcgMTIuNTAwN0MxMS4zODE0IDEyLjUwMDcgMTIuNTAwNiAxMS4zODE0IDEyLjUwMDYgMTAuMDAwN0MxMi41MDA2IDguNjE5OTQgMTEuMzgxNCA3LjUwMDY1IDEwLjAwMDcgNy41MDA2NUM4LjYxOTk0IDcuNTAwNjUgNy41MDA2NSA4LjYxOTk0IDcuNTAwNjUgMTAuMDAwN0M3LjUwMDY1IDExLjM4MTQgOC42MTk5NCAxMi41MDA3IDEwLjAwMDcgMTIuNTAwN1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCIgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPiAtLT5cclxuICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYmlsbGluZ0dyb3Vwcz8ubGVuZ3RoXCIgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICBcclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoYmlsbGluZ0dyb3Vwc0FwaVN0YXRlIHwgYXN5bmMpID09PSAnbG9hZGluZydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lci1jYXJkIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuPC9kaXY+Il19
@@ -0,0 +1,22 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
4
+ export class RequestConfirmationComponent {
5
+ activeModal;
6
+ title;
7
+ description;
8
+ constructor(activeModal) {
9
+ this.activeModal = activeModal;
10
+ }
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RequestConfirmationComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RequestConfirmationComponent, selector: "lib-request-confirmation", inputs: { title: "title", description: "description" }, ngImport: i0, template: "<!-- <span class=\"mb-5\">\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=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24V28M27.9998 32H28.0098M26.2898 18.86L17.8198 33C17.6451 33.3024 17.5527 33.6453 17.5518 33.9945C17.5508 34.3437 17.6413 34.6871 17.8142 34.9905C17.9871 35.2939 18.2365 35.5467 18.5375 35.7238C18.8385 35.9009 19.1806 35.9961 19.5298 36H36.4698C36.819 35.9961 37.1611 35.9009 37.4621 35.7238C37.7631 35.5467 38.0124 35.2939 38.1854 34.9905C38.3583 34.6871 38.4488 34.3437 38.4478 33.9945C38.4468 33.6453 38.3544 33.3024 38.1798 33L29.7098 18.86C29.5315 18.5661 29.2805 18.3231 28.981 18.1544C28.6814 17.9858 28.3435 17.8972 27.9998 17.8972C27.656 17.8972 27.3181 17.9858 27.0186 18.1544C26.7191 18.3231 26.468 18.5661 26.2898 18.86Z\"\r\n stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</span> -->\r\n\r\n<span class=\"mb-3 title\">\r\n {{title}}\r\n</span>\r\n\r\n<span class=\"mb-5 description\">\r\n {{description}}\r\n</span>\r\n\r\n<div class=\"row\">\r\n <div class=\"col-6\" >\r\n <button (click)=\"activeModal.close('No')\" class=\"btn btn-outline w-100\">No</button>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <button (click)=\"activeModal.close('Yes')\" class=\"btn btn-primary w-100\">Yes</button>\r\n </div>\r\n\r\n</div>", styles: [":host{padding:24px}.title{color:#101828;font-size:18px;font-weight:600;line-height:28px}.description{color:#667085;font-size:14px;font-weight:400;line-height:20px}\n"] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RequestConfirmationComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'lib-request-confirmation', template: "<!-- <span class=\"mb-5\">\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=\"#FEF0C7\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\" />\r\n <path\r\n d=\"M27.9998 24V28M27.9998 32H28.0098M26.2898 18.86L17.8198 33C17.6451 33.3024 17.5527 33.6453 17.5518 33.9945C17.5508 34.3437 17.6413 34.6871 17.8142 34.9905C17.9871 35.2939 18.2365 35.5467 18.5375 35.7238C18.8385 35.9009 19.1806 35.9961 19.5298 36H36.4698C36.819 35.9961 37.1611 35.9009 37.4621 35.7238C37.7631 35.5467 38.0124 35.2939 38.1854 34.9905C38.3583 34.6871 38.4488 34.3437 38.4478 33.9945C38.4468 33.6453 38.3544 33.3024 38.1798 33L29.7098 18.86C29.5315 18.5661 29.2805 18.3231 28.981 18.1544C28.6814 17.9858 28.3435 17.8972 27.9998 17.8972C27.656 17.8972 27.3181 17.9858 27.0186 18.1544C26.7191 18.3231 26.468 18.5661 26.2898 18.86Z\"\r\n stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n</span> -->\r\n\r\n<span class=\"mb-3 title\">\r\n {{title}}\r\n</span>\r\n\r\n<span class=\"mb-5 description\">\r\n {{description}}\r\n</span>\r\n\r\n<div class=\"row\">\r\n <div class=\"col-6\" >\r\n <button (click)=\"activeModal.close('No')\" class=\"btn btn-outline w-100\">No</button>\r\n </div>\r\n\r\n <div class=\"col-6\">\r\n <button (click)=\"activeModal.close('Yes')\" class=\"btn btn-primary w-100\">Yes</button>\r\n </div>\r\n\r\n</div>", styles: [":host{padding:24px}.title{color:#101828;font-size:18px;font-weight:600;line-height:28px}.description{color:#667085;font-size:14px;font-weight:400;line-height:20px}\n"] }]
17
+ }], ctorParameters: () => [{ type: i1.NgbActiveModal }], propDecorators: { title: [{
18
+ type: Input
19
+ }], description: [{
20
+ type: Input
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb25maXJtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50cy1zdWJzY3JpcHRpb24vYmlsbGluZy9yZXF1ZXN0LWNvbmZpcm1hdGlvbi9yZXF1ZXN0LWNvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9iaWxsaW5nL3JlcXVlc3QtY29uZmlybWF0aW9uL3JlcXVlc3QtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRakQsTUFBTSxPQUFPLDRCQUE0QjtJQUtwQjtJQUhWLEtBQUssQ0FBTztJQUNaLFdBQVcsQ0FBTztJQUUzQixZQUFtQixXQUEwQjtRQUExQixnQkFBVyxHQUFYLFdBQVcsQ0FBZTtJQUFFLENBQUM7d0dBTHJDLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLHdIQ1J6Qyw0bERBMkJNOzs0RkRuQk8sNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDBCQUEwQjttRkFNM0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmVxdWVzdC1jb25maXJtYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXF1ZXN0LWNvbmZpcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3JlcXVlc3QtY29uZmlybWF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdENvbmZpcm1hdGlvbkNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlOnN0cmluZ1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOnN0cmluZ1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYWN0aXZlTW9kYWw6TmdiQWN0aXZlTW9kYWwpe31cclxuXHJcbn1cclxuIiwiPCEtLSA8c3BhbiBjbGFzcz1cIm1iLTVcIj5cclxuICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIiAvPlxyXG4gICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMjcuOTk5OCAyNFYyOE0yNy45OTk4IDMySDI4LjAwOThNMjYuMjg5OCAxOC44NkwxNy44MTk4IDMzQzE3LjY0NTEgMzMuMzAyNCAxNy41NTI3IDMzLjY0NTMgMTcuNTUxOCAzMy45OTQ1QzE3LjU1MDggMzQuMzQzNyAxNy42NDEzIDM0LjY4NzEgMTcuODE0MiAzNC45OTA1QzE3Ljk4NzEgMzUuMjkzOSAxOC4yMzY1IDM1LjU0NjcgMTguNTM3NSAzNS43MjM4QzE4LjgzODUgMzUuOTAwOSAxOS4xODA2IDM1Ljk5NjEgMTkuNTI5OCAzNkgzNi40Njk4QzM2LjgxOSAzNS45OTYxIDM3LjE2MTEgMzUuOTAwOSAzNy40NjIxIDM1LjcyMzhDMzcuNzYzMSAzNS41NDY3IDM4LjAxMjQgMzUuMjkzOSAzOC4xODU0IDM0Ljk5MDVDMzguMzU4MyAzNC42ODcxIDM4LjQ0ODggMzQuMzQzNyAzOC40NDc4IDMzLjk5NDVDMzguNDQ2OCAzMy42NDUzIDM4LjM1NDQgMzMuMzAyNCAzOC4xNzk4IDMzTDI5LjcwOTggMTguODZDMjkuNTMxNSAxOC41NjYxIDI5LjI4MDUgMTguMzIzMSAyOC45ODEgMTguMTU0NEMyOC42ODE0IDE3Ljk4NTggMjguMzQzNSAxNy44OTcyIDI3Ljk5OTggMTcuODk3MkMyNy42NTYgMTcuODk3MiAyNy4zMTgxIDE3Ljk4NTggMjcuMDE4NiAxOC4xNTQ0QzI2LjcxOTEgMTguMzIzMSAyNi40NjggMTguNTY2MSAyNi4yODk4IDE4Ljg2WlwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgIDwvc3ZnPlxyXG48L3NwYW4+IC0tPlxyXG5cclxuPHNwYW4gY2xhc3M9XCJtYi0zIHRpdGxlXCI+XHJcbiAgICB7e3RpdGxlfX1cclxuPC9zcGFuPlxyXG5cclxuPHNwYW4gY2xhc3M9XCJtYi01IGRlc2NyaXB0aW9uXCI+XHJcbiAgICB7e2Rlc2NyaXB0aW9ufX1cclxuPC9zcGFuPlxyXG5cclxuPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC02XCIgPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmNsb3NlKCdObycpXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDBcIj5ObzwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWN0aXZlTW9kYWwuY2xvc2UoJ1llcycpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDBcIj5ZZXM8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19