ng-easycommerce-v18 0.4.0 → 0.4.1-beta.1

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 (43) hide show
  1. package/README.md +7 -0
  2. package/assets/ec-i18n/ct.json +4 -0
  3. package/assets/ec-i18n/en.json +12 -1
  4. package/assets/ec-i18n/es.json +12 -1
  5. package/assets/ec-i18n/fr.json +4 -0
  6. package/assets/ec-i18n/gl.json +4 -0
  7. package/assets/ec-i18n/pr.json +4 -0
  8. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +5 -9
  9. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +11 -5
  10. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +12 -3
  11. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +8 -1
  12. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +5 -3
  13. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +44 -4
  14. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +4 -3
  15. package/esm2022/lib/ec-components/credit-account-banner-ec/credit-account-banner-ec.component.mjs +79 -0
  16. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +25 -11
  17. package/esm2022/lib/ec-components/index.mjs +2 -1
  18. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +3 -3
  19. package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +5 -7
  20. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +5 -11
  21. package/esm2022/lib/ec-services/cart.service.mjs +42 -7
  22. package/esm2022/lib/ec-services/index.mjs +2 -1
  23. package/esm2022/lib/ec-services/price-visibility.service.mjs +40 -0
  24. package/esm2022/lib/ec-services/product-detail.service.mjs +45 -7
  25. package/fesm2022/ng-easycommerce-v18.mjs +295 -61
  26. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  27. package/lib/ec-components/account-ec/order-ec/order-ec.component.d.ts +2 -2
  28. package/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.d.ts +3 -0
  29. package/lib/ec-components/cart-ec/cart-ec.component.d.ts +4 -2
  30. package/lib/ec-components/checkout-ec/checkout-ec.component.d.ts +2 -0
  31. package/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.d.ts +2 -0
  32. package/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.d.ts +6 -0
  33. package/lib/ec-components/checkout-ec/success-ec/success-ec.component.d.ts +1 -0
  34. package/lib/ec-components/credit-account-banner-ec/credit-account-banner-ec.component.d.ts +27 -0
  35. package/lib/ec-components/header-ec/header-ec.component.d.ts +12 -4
  36. package/lib/ec-components/index.d.ts +1 -0
  37. package/lib/ec-components/sidebar-ec/sidebar-ec.component.d.ts +2 -1
  38. package/lib/ec-components/widgets-ec/price-ec/price-ec.component.d.ts +2 -4
  39. package/lib/ec-services/cart.service.d.ts +1 -0
  40. package/lib/ec-services/index.d.ts +1 -0
  41. package/lib/ec-services/price-visibility.service.d.ts +23 -0
  42. package/lib/ec-services/product-detail.service.d.ts +3 -0
  43. package/package.json +1 -1
@@ -8,6 +8,7 @@ import { MpRedirectEcComponent, OfflineEcComponent } from './payment-methods';
8
8
  import { BankTransferEcComponent } from './payment-methods/bank-transfer-ec/bank-transfer-ec.component';
9
9
  import { DecidirEcComponent } from '../../widgets-ec/decidir-ec/decidir-ec.component';
10
10
  import { CartService } from '../../../ec-services';
11
+ import { ToastService } from '../../../ec-services';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@angular/common";
13
14
  import * as i2 from "@ngx-translate/core";
@@ -15,6 +16,7 @@ export class PaymentEcComponent {
15
16
  _paymentService = inject(PaymentService);
16
17
  _checkoutService = inject(CheckoutService);
17
18
  _cartService = inject(CartService);
19
+ _toastService = inject(ToastService);
18
20
  _methodDataSubject = new BehaviorSubject(null);
19
21
  _loadingSubject = new BehaviorSubject(false);
20
22
  methods$ = this._paymentService.methods$;
@@ -22,12 +24,18 @@ export class PaymentEcComponent {
22
24
  methodData$ = this._methodDataSubject.asObservable();
23
25
  loadingInternal = false;
24
26
  total_amount = 0;
27
+ allowAnyPaymentMethod = null;
28
+ balanceMethodRejected = false;
29
+ showMethodError = false;
25
30
  constructor() { }
26
31
  ngOnInit() {
27
32
  this._checkoutService.associatedData$.subscribe((data) => {
28
33
  const totalItem = data.find(item => item.type == 'total');
29
34
  this.total_amount = totalItem?.amount ?? 0;
30
35
  });
36
+ this._cartService.allowAnyPaymentMethod$.subscribe(value => {
37
+ this.allowAnyPaymentMethod = value;
38
+ });
31
39
  // console.log('PaymentEcComponent initialized with total_amount:', this.total_amount);
32
40
  }
33
41
  setActive($event) {
@@ -41,7 +49,34 @@ export class PaymentEcComponent {
41
49
  }
42
50
  async setMethod(method) {
43
51
  this._methodDataSubject.next(null);
44
- let result = await this._paymentService.putPayment(method.code);
52
+ this.showMethodError = false;
53
+ const result = await this._paymentService.putPayment(method.code);
54
+ const balanceCustomer = result?.balanceCustomer;
55
+ const totals = result?.totals;
56
+ this._cartService.updateBalanceAttributes(balanceCustomer, totals?.total);
57
+ const isBalanceMethod = this.isBalanceInAccount(method.code);
58
+ const allowAny = balanceCustomer?.allowAnyPaymentMethod;
59
+ if ((balanceCustomer && allowAny === false && !isBalanceMethod) ||
60
+ (isBalanceMethod && !balanceCustomer)) {
61
+ this.handleMethodError('this-payment-method-cannot-be-used', method);
62
+ return;
63
+ }
64
+ if (isBalanceMethod &&
65
+ balanceCustomer &&
66
+ totals &&
67
+ balanceCustomer.allowExceedBalance === false &&
68
+ balanceCustomer.creditAmount < totals.total) {
69
+ this._toastService.show('insufficient_credit');
70
+ this.balanceMethodRejected = true;
71
+ }
72
+ else if (isBalanceMethod) {
73
+ this.balanceMethodRejected = false;
74
+ }
75
+ this._methodDataSubject.next(method);
76
+ }
77
+ handleMethodError(message, method) {
78
+ this.showMethodError = true;
79
+ this._toastService.show(message);
45
80
  this._methodDataSubject.next(method);
46
81
  }
47
82
  //Funciones para chequear el metodo de pago.
@@ -64,6 +99,7 @@ export class PaymentEcComponent {
64
99
  isBankTransfer = (code) => !!code?.toLowerCase().includes('bank_transfer');
65
100
  isCatastro = (code) => !!code?.toLowerCase().includes('catastro');
66
101
  isBamboo = (code) => !!code?.toLowerCase().includes('bamboo');
102
+ isBalanceInAccount = (code) => !!code?.toLowerCase().includes('balance_in_account');
67
103
  allData() {
68
104
  return {
69
105
  ...this._paymentService.getUserData().shippingAddress,
@@ -80,6 +116,10 @@ export class PaymentEcComponent {
80
116
  return true;
81
117
  };
82
118
  verifyValidate = ($event = true) => {
119
+ if (this.balanceMethodRejected) {
120
+ this.setLoading(false);
121
+ return;
122
+ }
83
123
  if ($event === false) {
84
124
  this.setLoading(false);
85
125
  return;
@@ -94,7 +134,7 @@ export class PaymentEcComponent {
94
134
  this._checkoutService.back();
95
135
  };
96
136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PaymentEcComponent, isStandalone: true, selector: "app-payment-ec", ngImport: i0, template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\"(click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<!-- <div class=\"method-container text-dark text-left\" *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<div app-mp-credit-ec (ready)=\"verifyValidate()\" [public_key]=\"getPK(method)\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectRedsys(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-out-ec (ready)=\"verifyValidate($event)\"\n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" [user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-out-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectCecaBank(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-ceca-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t</app-ceca-redirect-ec>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-paypal-express-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-paypal-express-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-mobbex-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-bancard-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>-->\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!--\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[amount]=\"total_amount\" [customStyle]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t(ready)=\"verifyValidate()\"></app-culqi-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-catastro-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bancard-catastro-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bamboo-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bamboo-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> -->\n\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: LoadingInlineEcComponent, selector: "app-loading-inline-ec", inputs: ["type"] }, { kind: "component", type: MpRedirectEcComponent, selector: "app-mp-redirect-ec", inputs: ["method", "total_amount", "allData"], outputs: ["ready"] }, { kind: "component", type: BankTransferEcComponent, selector: "app-bank-transfer-ec", inputs: ["method", "verifyValidate", "setLoading"] }, { kind: "component", type: OfflineEcComponent, selector: "app-offline-ec", inputs: ["method", "verifyValidate", "setLoading"] }, { kind: "component", type: DecidirEcComponent, selector: "app-decidir-ec", inputs: ["paymentServiceInst", "method", "total_amount", "allData", "user_data"], outputs: ["ready"] }] });
137
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PaymentEcComponent, isStandalone: true, selector: "app-payment-ec", ngImport: i0, template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\" (click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(method && !showMethodError){\n\t\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showMethodError){\n\t\t\t\t\t\t\t\t<div class=\"text-danger mt-2 px-3 fw-bold\">\n\t\t\t\t\t\t\t\t\t{{ 'this-payment-method-cannot-be-used' | translate }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(isBalanceInAccount(method.code) && !showMethodError){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row px-0 description-cont\" *ngIf=\"method.description\">\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let line of method.description.split('\\r\\n'); let i = index\">\n\t\t\t\t\t\t\t\t\t\t\t<p [id]=\"'cc-desc-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<hr *ngIf=\"method.instructions\">\n\t\t\t\t\t\t\t\t\t<div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n\t\t\t\t\t\t\t\t\t\t<h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let line of method.instructions.split('\\r\\n'); let i = index\">\n\t\t\t\t\t\t\t\t\t\t\t<p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!balanceMethodRejected; else showCreditError\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"end-button\">\n\t\t\t\t\t\t\t\t\t\t\t<button class=\"btn comprar\" (click)=\"setLoading() && verifyValidate()\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ 'pay-with' | translate }} {{ method.name }}\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t\t<ng-template #showCreditError>\n\t\t\t\t\t\t\t\t\t\t<div class=\"text-danger mt-2 px-3 fw-bold\">\n\t\t\t\t\t\t\t\t\t\t\t{{ 'not-enough-credits-to-complete' | translate }}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-template>\n\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"(loading$ | async) as load\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"mt-2\" *ngIf=\"load\">\n\t\t\t\t\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: LoadingInlineEcComponent, selector: "app-loading-inline-ec", inputs: ["type"] }, { kind: "component", type: MpRedirectEcComponent, selector: "app-mp-redirect-ec", inputs: ["method", "total_amount", "allData"], outputs: ["ready"] }, { kind: "component", type: BankTransferEcComponent, selector: "app-bank-transfer-ec", inputs: ["method", "verifyValidate", "setLoading"] }, { kind: "component", type: OfflineEcComponent, selector: "app-offline-ec", inputs: ["method", "verifyValidate", "setLoading"] }, { kind: "component", type: DecidirEcComponent, selector: "app-decidir-ec", inputs: ["paymentServiceInst", "method", "total_amount", "allData", "user_data"], outputs: ["ready"] }] });
98
138
  }
99
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentEcComponent, decorators: [{
100
140
  type: Component,
@@ -106,6 +146,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
106
146
  BankTransferEcComponent,
107
147
  OfflineEcComponent,
108
148
  DecidirEcComponent
109
- ], template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\"(click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<!-- <div class=\"method-container text-dark text-left\" *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<div app-mp-credit-ec (ready)=\"verifyValidate()\" [public_key]=\"getPK(method)\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectRedsys(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-out-ec (ready)=\"verifyValidate($event)\"\n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" [user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-out-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectCecaBank(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-ceca-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t</app-ceca-redirect-ec>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-paypal-express-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-paypal-express-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-mobbex-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-bancard-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>-->\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!--\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[amount]=\"total_amount\" [customStyle]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t(ready)=\"verifyValidate()\"></app-culqi-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-catastro-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bancard-catastro-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bamboo-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bamboo-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> -->\n\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}" }]
149
+ ], template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\" (click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(method && !showMethodError){\n\t\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showMethodError){\n\t\t\t\t\t\t\t\t<div class=\"text-danger mt-2 px-3 fw-bold\">\n\t\t\t\t\t\t\t\t\t{{ 'this-payment-method-cannot-be-used' | translate }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(isBalanceInAccount(method.code) && !showMethodError){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row px-0 description-cont\" *ngIf=\"method.description\">\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let line of method.description.split('\\r\\n'); let i = index\">\n\t\t\t\t\t\t\t\t\t\t\t<p [id]=\"'cc-desc-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<hr *ngIf=\"method.instructions\">\n\t\t\t\t\t\t\t\t\t<div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n\t\t\t\t\t\t\t\t\t\t<h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let line of method.instructions.split('\\r\\n'); let i = index\">\n\t\t\t\t\t\t\t\t\t\t\t<p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!balanceMethodRejected; else showCreditError\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"end-button\">\n\t\t\t\t\t\t\t\t\t\t\t<button class=\"btn comprar\" (click)=\"setLoading() && verifyValidate()\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ 'pay-with' | translate }} {{ method.name }}\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t\t<ng-template #showCreditError>\n\t\t\t\t\t\t\t\t\t\t<div class=\"text-danger mt-2 px-3 fw-bold\">\n\t\t\t\t\t\t\t\t\t\t\t{{ 'not-enough-credits-to-complete' | translate }}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-template>\n\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"(loading$ | async) as load\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"mt-2\" *ngIf=\"load\">\n\t\t\t\t\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}\n" }]
110
150
  }], ctorParameters: () => [] });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9wYXltZW50LWVjL3BheW1lbnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFrQm5ELE1BQU0sT0FBTyxrQkFBa0I7SUFFdkIsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdkQsZ0JBQWdCLEdB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QUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzdFLGVBQWUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFBO0lBQ0QsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNyRSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZFLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdkUsT0FBTyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNuRSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ2xGLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekUsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUVyRSxPQUFPO1FBQ04sT0FBTztZQUNOLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxlQUFlO1lBQ3JELEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUU7U0FDekMsQ0FBQztJQUNILENBQUM7SUFDRCxVQUFVLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDWixDQUFDLENBQUE7SUFFTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDLENBQUE7SUFFTSxjQUFjLEdBQUcsQ0FBQyxTQUFjLElBQUksRUFBRSxFQUFFO1FBQzlDLElBQUksTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsT0FBTztRQUNSLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFBO0lBRU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtRQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQyxDQUFBO0lBRU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQyxDQUFBO3dHQTlGVyxrQkFBa0I7NEZBQWxCLGtCQUFrQiwwRUMzQi9CLDR6U0FrTUMscUREakxVLFNBQVMsNkNBQ2xCLFlBQVksa0lBQ1osZUFBZSw0RkFDZix3QkFBd0Isb0ZBQ3hCLHFCQUFxQixrSUFDckIsdUJBQXVCLHFIQUN2QixrQkFBa0IsK0dBQ2xCLGtCQUFrQjs7NEZBR1Asa0JBQWtCO2tCQWY5QixTQUFTOytCQUNDLGdCQUFnQixjQUNkLElBQUksV0FHUCxDQUFDLFNBQVM7d0JBQ2xCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UsIFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldHMtZWMnO1xuaW1wb3J0IHsgTXBSZWRpcmVjdEVjQ29tcG9uZW50LCBPZmZsaW5lRWNDb21wb25lbnQgfSBmcm9tICcuL3BheW1lbnQtbWV0aG9kcyc7XG5pbXBvcnQgeyBCYW5rVHJhbnNmZXJFY0NvbXBvbmVudCB9IGZyb20gJy4vcGF5bWVudC1tZXRob2RzL2JhbmstdHJhbnNmZXItZWMvYmFuay10cmFuc2Zlci1lYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVjaWRpckVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYy9kZWNpZGlyLWVjL2RlY2lkaXItZWMuY29tcG9uZW50JztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1wYXltZW50LWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wYXltZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG5cdGltcG9ydHM6IFtBc3luY1BpcGUsXG5cdFx0Q29tbW9uTW9kdWxlLFxuXHRcdFRyYW5zbGF0ZU1vZHVsZSxcblx0XHRMb2FkaW5nSW5saW5lRWNDb21wb25lbnQsXG5cdFx0TXBSZWRpcmVjdEVjQ29tcG9uZW50LFxuXHRcdEJhbmtUcmFuc2ZlckVjQ29tcG9uZW50LFxuXHRcdE9mZmxpbmVFY0NvbXBvbmVudCxcblx0XHREZWNpZGlyRWNDb21wb25lbnRcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50RWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG5cdHB1YmxpYyBfcGF5bWVudFNlcnZpY2U6IFBheW1lbnRTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRTZXJ2aWNlKVxuXHRwcml2YXRlIF9jaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSA9IGluamVjdChDaGVja291dFNlcnZpY2UpXG5cdHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XG5cblx0cHJpdmF0ZSBfbWV0aG9kRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG5cdHByaXZhdGUgX2xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cblx0cHVibGljIG1ldGhvZHMkID0gdGhpcy5fcGF5bWVudFNlcnZpY2UubWV0aG9kcyQ7XG5cdHB1YmxpYyBsb2FkaW5nJCA9IHRoaXMuX2xvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXHRwdWJsaWMgbWV0aG9kRGF0YSQgPSB0aGlzLl9tZXRob2REYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuXHRwdWJsaWMgbG9hZGluZ0ludGVybmFsOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyB0b3RhbF9hbW91bnQ6IG51bWJlciA9IDA7XG5cblx0Y29uc3RydWN0b3IoKSB7IH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UuYXNzb2NpYXRlZERhdGEkLnN1YnNjcmliZSgoZGF0YTogQ2hlY2tvdXREYXRhW10pID0+IHtcblx0XHRcdGNvbnN0IHRvdGFsSXRlbSA9IGRhdGEuZmluZChpdGVtID0+IGl0ZW0udHlwZSA9PSAndG90YWwnKTtcblx0XHRcdHRoaXMudG90YWxfYW1vdW50ID0gdG90YWxJdGVtPy5hbW91bnQgPz8gMDtcblx0XHR9KVxuXG5cdFx0Ly8gY29uc29sZS5sb2coJ1BheW1lbnRFY0NvbXBvbmVudCBpbml0aWFsaXplZCB3aXRoIHRvdGFsX2Ftb3VudDonLCB0aGlzLnRvdGFsX2Ftb3VudCk7XG5cdH1cblx0c2V0QWN0aXZlKCRldmVudDogYW55KSB7XG5cdFx0Y29uc3QgcGFyZW50ID0gJGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuXHRcdGZvciAoY29uc3QgYnV0dG9uIG9mIHBhcmVudCkge1xuXHRcdFx0aWYgKGJ1dHRvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSB7XG5cdFx0XHRcdGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuXHRcdFx0fVxuXHRcdH1cblx0XHQkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcblx0fVxuXHRhc3luYyBzZXRNZXRob2QobWV0aG9kOiBhbnkpIHtcblx0XHR0aGlzLl9tZXRob2REYXRhU3ViamVjdC5uZXh0KG51bGwpO1xuXHRcdGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLl9wYXltZW50U2VydmljZS5wdXRQYXltZW50KG1ldGhvZC5jb2RlKTtcblx0XHR0aGlzLl9tZXRob2REYXRhU3ViamVjdC5uZXh0KG1ldGhvZCk7XG5cdH1cblxuXHQvL0Z1bmNpb25lcyBwYXJhIGNoZXF1ZWFyIGVsIG1ldG9kbyBkZSBwYWdvLlxuXHRpc1JlZGlyZWN0UmVkc3lzID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdyZWRzeXNfcmVkaXJlY3QnKVxuXHRpc1JlZGlyZWN0Q2VjYUJhbmsgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NlY2FfYmFua19yZWRpcmVjdCcpXG5cdGlzTVAgPSAoY29kZTogc3RyaW5nKSA9PiB7XG5cdFx0Y29uc3QgbG93ZXJDb2RlID0gY29kZT8udG9Mb3dlckNhc2UoKSB8fCAnJztcblx0XHRyZXR1cm4gbG93ZXJDb2RlLmluY2x1ZGVzKCdtZXJjYWRvX3BhZ28nKSAmJiAhbG93ZXJDb2RlLmluY2x1ZGVzKCdjcmVkaXQnKTtcblx0fVxuXHRpc01QVGFyamV0YURlQ3JlZGl0byA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY3JlZGl0Jylcblx0aXNNZXRob2RPZmZsaW5lID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdvZmZsaW5lJylcblx0aXNQZXlQYWxFeHByZXNzID0gKGNvZGU6IHN0cmluZykgPT4ge1xuXHRcdGNvbnN0IGxvd2VyQ29kZSA9IGNvZGU/LnRvTG93ZXJDYXNlKCkgfHwgJyc7XG5cdFx0cmV0dXJuIGxvd2VyQ29kZS5pbmNsdWRlcygncGF5cGFsJykgJiYgbG93ZXJDb2RlLmluY2x1ZGVzKCdleHByZXNzJyk7XG5cdH1cblx0aXNNb2JiZXggPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ21vYmJleCcpXG5cdGlzQmFuY2FyZCA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFuY2FyZCcpXG5cdGlzRGVjaWRpciA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZGVjaWRpcicpXG5cdGlzQ3VscWkgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2N1bHFpJylcblx0aXNCYW5rVHJhbnNmZXIgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbmtfdHJhbnNmZXInKVxuXHRpc0NhdGFzdHJvID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjYXRhc3RybycpXG5cdGlzQmFtYm9vID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW1ib28nKVxuXG5cdGFsbERhdGEoKTogYW55IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4udGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0VXNlckRhdGEoKS5zaGlwcGluZ0FkZHJlc3MsXG5cdFx0XHQuLi50aGlzLl9wYXltZW50U2VydmljZS5nZXRTaGlwbWVudERhdGEoKSxcblx0XHR9O1xuXHR9XG5cdGVtaXRSZXN1bHQgPSBhc3luYyAoKSA9PiB7XG5cdFx0dGhpcy5fcGF5bWVudFNlcnZpY2Uuc2V0UGF5bWVudCh0aGlzLl9tZXRob2REYXRhU3ViamVjdC5nZXRWYWx1ZSgpKVxuXHRcdHRoaXMuc2V0TG9hZGluZyhmYWxzZSlcblx0XHR0aGlzLm5leHQoKVxuXHR9XG5cblx0cHVibGljIHNldExvYWRpbmcgPSAoZXN0YWRvID0gdHJ1ZSkgPT4ge1xuXHRcdHRoaXMuX2xvYWRpbmdTdWJqZWN0Lm5leHQoZXN0YWRvKTtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHB1YmxpYyB2ZXJpZnlWYWxpZGF0ZSA9ICgkZXZlbnQ6IGFueSA9IHRydWUpID0+IHtcblx0XHRpZiAoJGV2ZW50ID09PSBmYWxzZSkge1xuXHRcdFx0dGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zZXRMb2FkaW5nKHRydWUpXG5cdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLmVtaXRSZXN1bHQoKSwgMTAwMCk7XG5cdH1cblxuXHRwdWJsaWMgbmV4dCA9ICgpID0+IHtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UubmV4dCgpXG5cdH1cblxuXHRwdWJsaWMgZ29CYWNrID0gKCkgPT4ge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5iYWNrKClcblx0fVxufVxuIiwiQGlmKG1ldGhvZHMkIHwgYXN5bmM7IGFzIG1ldGhvZHMpe1xuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuXG5cdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZCBcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHRleHQtZGFyayB0ZXh0LWNlbnRlclwiPlxuXHRcdFx0XHRcdDxoND57eyAnc2VsZWN0LW1ldGhvZCcgfCB0cmFuc2xhdGUgfX08L2g0PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgcm9sZT1cInRvb2xiYXJcIiBhcmlhLWxhYmVsPVwiRW52aW9zIHRvb2xiYXJcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiR3J1cG8gYm90b25lcyBlbnZpb1wiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cblx0XHRcdFx0XHRcdFx0XHRAZm9yIChtZXRob2Qgb2YgbWV0aG9kczsgdHJhY2sgJGluZGV4OyBsZXQgeCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBteC0xIG1iLTFcIihjbGljayk9XCJzZXRNZXRob2QobWV0aG9kKSA7IHNldEFjdGl2ZSgkZXZlbnQpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHR7eyBtZXRob2QubmFtZSB8IHRyYW5zbGF0ZSB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgdGV4dC1jZW50ZXJcIj5cblx0XHRcdFx0XHRAaWYobWV0aG9kRGF0YSQgfCBhc3luYzsgYXMgbWV0aG9kKXtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdEBpZighbG9hZGluZ0ludGVybmFsKXtcblx0XHRcdFx0XHRcdFx0QGlmKGlzTVAobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGlkPVwiZmFxc1wiIGNsYXNzPVwicXQgcHgtNSBcIj57eyBtZXRob2QuZGVzY3JpcHRpb24gfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJweC01XCI+e3sgbWV0aG9kLmluc3RydWN0aW9ucyB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1tcC1yZWRpcmVjdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFx0W21ldGhvZF09XCJtZXRob2RcIj48L2FwcC1tcC1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQ8IS0tIDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LWxlZnRcIiAqbmdJZj1cImlzTVBUYXJqZXRhRGVDcmVkaXRvKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgaWQ9XCJmYXFzXCIgY2xhc3M9XCJxdCBweC01IFwiPnt7IG1ldGhvZC5kZXNjcmlwdGlvbiB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJweC01XCI+e3sgbWV0aG9kLmluc3RydWN0aW9ucyB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBhcHAtbXAtY3JlZGl0LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgpXCIgW3B1YmxpY19rZXldPVwiZ2V0UEsobWV0aG9kKVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzUmVkaXJlY3RSZWRzeXMobWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCIhbWV0aG9kLmNvZGUuaW5jbHVkZXMoJ2JpenVtJykgJiYgIW1ldGhvZC5jb2RlLmluY2x1ZGVzKCdfb3V0XycpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1yZWRzeXMtcmVkaXJlY3QtZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLXJlZHN5cy1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cIm1ldGhvZC5jb2RlLmluY2x1ZGVzKCdiaXp1bScpIHx8IG1ldGhvZC5jb2RlLmluY2x1ZGVzKCdfb3V0XycpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1yZWRzeXMtcmVkaXJlY3Qtb3V0LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFttZXRob2RdPVwibWV0aG9kXCIgW3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1yZWRzeXMtcmVkaXJlY3Qtb3V0LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzUmVkaXJlY3RDZWNhQmFuayhtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtY2VjYS1yZWRpcmVjdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1jZWNhLXJlZGlyZWN0LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNQZXlQYWxFeHByZXNzKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1wYXlwYWwtZXhwcmVzcy1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1wYXlwYWwtZXhwcmVzcy1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LXN0YXJ0XCIgKm5nSWY9XCJpc01vYmJleChtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtbW9iYmV4LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbcGF5bWVudFNlcnZpY2VJbnN0XT1cInBheW1lbnRTZXJ2aWNlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt0b3RhbF9hbW91bnRdPVwidG90YWxfYW1vdW50XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9hcHAtbW9iYmV4LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzQmFuY2FyZChtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuY2FyZC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLWJhbmNhcmQtZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2Pi0tPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNEZWNpZGlyKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1kZWNpZGlyLWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbcGF5bWVudFNlcnZpY2VJbnN0XT1cIl9wYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLWRlY2lkaXItZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PiBcblx0XHRcdFx0XHRcdFx0QGlmKGlzTWV0aG9kT2ZmbGluZShtZXRob2QuY29kZSkpe1xuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtb2ZmbGluZS1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0W21ldGhvZF09XCJtZXRob2RcIiBcblx0XHRcdFx0XHRcdFx0XHRcdFx0W3ZlcmlmeVZhbGlkYXRlXT0gXCJ2ZXJpZnlWYWxpZGF0ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XHRcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0PCEtLVxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNDdWxxaShtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtY3VscWktZWMgW2FwaUtleV09XCJnZXRQS0N1bHFpKG1ldGhvZClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiIFtjdXN0b21TdHlsZV09XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgpXCI+PC9hcHAtY3VscWktZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNDYXRhc3RybyhtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuY2FyZC1jYXRhc3Ryby1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPjwvYXBwLWJhbmNhcmQtY2F0YXN0cm8tZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNCYW1ib28obWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWJhbWJvby1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPjwvYXBwLWJhbWJvby1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+IC0tPlxuXHRcdFx0XHRcdFx0XHRAaWYoaXNCYW5rVHJhbnNmZXIobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuay10cmFuc2Zlci1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFttZXRob2RdPVwibWV0aG9kXCIgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdmVyaWZ5VmFsaWRhdGVdPSBcInZlcmlmeVZhbGlkYXRlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQ8YXBwLWxvYWRpbmctaW5saW5lLWVjPjwvYXBwLWxvYWRpbmctaW5saW5lLWVjPlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGZsZXgtcm93XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+e3snYmFjayd8dHJhbnNsYXRlfX08L2J1dHRvbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbn0iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9wYXltZW50LWVjL3BheW1lbnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBaUJwRCxNQUFNLE9BQU8sa0JBQWtCO0lBRXZCLGVBQWUsR0FB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ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSwgUGF5bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9hZGluZ0lubGluZUVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XG5pbXBvcnQgeyBNcFJlZGlyZWN0RWNDb21wb25lbnQsIE9mZmxpbmVFY0NvbXBvbmVudCB9IGZyb20gJy4vcGF5bWVudC1tZXRob2RzJztcbmltcG9ydCB7IEJhbmtUcmFuc2ZlckVjQ29tcG9uZW50IH0gZnJvbSAnLi9wYXltZW50LW1ldGhvZHMvYmFuay10cmFuc2Zlci1lYy9iYW5rLXRyYW5zZmVyLWVjLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWNpZGlyRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzLWVjL2RlY2lkaXItZWMvZGVjaWRpci1lYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDaGVja291dERhdGEgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLXBheW1lbnQtZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGF5bWVudC1lYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3BheW1lbnQtZWMuY29tcG9uZW50LnNjc3MnXSxcblx0aW1wb3J0czogW0FzeW5jUGlwZSxcblx0XHRDb21tb25Nb2R1bGUsXG5cdFx0VHJhbnNsYXRlTW9kdWxlLFxuXHRcdExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCxcblx0XHRNcFJlZGlyZWN0RWNDb21wb25lbnQsXG5cdFx0QmFua1RyYW5zZmVyRWNDb21wb25lbnQsXG5cdFx0T2ZmbGluZUVjQ29tcG9uZW50LFxuXHRcdERlY2lkaXJFY0NvbXBvbmVudFxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblx0cHVibGljIF9wYXltZW50U2VydmljZTogUGF5bWVudFNlcnZpY2UgPSBpbmplY3QoUGF5bWVudFNlcnZpY2UpXG5cdHByaXZhdGUgX2NoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlID0gaW5qZWN0KENoZWNrb3V0U2VydmljZSlcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuXHRwcml2YXRlIF9tZXRob2REYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcblx0cHJpdmF0ZSBfbG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuXHRwdWJsaWMgbWV0aG9kcyQgPSB0aGlzLl9wYXltZW50U2VydmljZS5tZXRob2RzJDtcblx0cHVibGljIGxvYWRpbmckID0gdGhpcy5fbG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cdHB1YmxpYyBtZXRob2REYXRhJCA9IHRoaXMuX21ldGhvZERhdGFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG5cdHB1YmxpYyBsb2FkaW5nSW50ZXJuYWw6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIHRvdGFsX2Ftb3VudDogbnVtYmVyID0gMDtcblx0cHVibGljIGFsbG93QW55UGF5bWVudE1ldGhvZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXHRwdWJsaWMgYmFsYW5jZU1ldGhvZFJlamVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBzaG93TWV0aG9kRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3RvcigpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5hc3NvY2lhdGVkRGF0YSQuc3Vic2NyaWJlKChkYXRhOiBDaGVja291dERhdGFbXSkgPT4ge1xuXHRcdFx0Y29uc3QgdG90YWxJdGVtID0gZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS50eXBlID09ICd0b3RhbCcpO1xuXHRcdFx0dGhpcy50b3RhbF9hbW91bnQgPSB0b3RhbEl0ZW0/LmFtb3VudCA/PyAwO1xuXHRcdH0pXG5cdFx0dGhpcy5fY2FydFNlcnZpY2UuYWxsb3dBbnlQYXltZW50TWV0aG9kJC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuXHRcdFx0dGhpcy5hbGxvd0FueVBheW1lbnRNZXRob2QgPSB2YWx1ZTtcblx0XHR9KTtcblxuXHRcdC8vIGNvbnNvbGUubG9nKCdQYXltZW50RWNDb21wb25lbnQgaW5pdGlhbGl6ZWQgd2l0aCB0b3RhbF9hbW91bnQ6JywgdGhpcy50b3RhbF9hbW91bnQpO1xuXHR9XG5cdHNldEFjdGl2ZSgkZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHBhcmVudCA9ICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcblx0XHRmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcblx0XHRcdGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuXHRcdFx0XHRidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcblx0XHRcdH1cblx0XHR9XG5cdFx0JGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpXG5cdH1cblx0YXN5bmMgc2V0TWV0aG9kKG1ldGhvZDogYW55KSB7XG5cdFx0dGhpcy5fbWV0aG9kRGF0YVN1YmplY3QubmV4dChudWxsKTtcblx0XHR0aGlzLnNob3dNZXRob2RFcnJvciA9IGZhbHNlO1xuXG5cdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fcGF5bWVudFNlcnZpY2UucHV0UGF5bWVudChtZXRob2QuY29kZSk7XG5cdFx0Y29uc3QgYmFsYW5jZUN1c3RvbWVyID0gcmVzdWx0Py5iYWxhbmNlQ3VzdG9tZXI7XG5cdFx0Y29uc3QgdG90YWxzID0gcmVzdWx0Py50b3RhbHM7XG5cblx0XHR0aGlzLl9jYXJ0U2VydmljZS51cGRhdGVCYWxhbmNlQXR0cmlidXRlcyhiYWxhbmNlQ3VzdG9tZXIsIHRvdGFscz8udG90YWwpO1xuXG5cdFx0Y29uc3QgaXNCYWxhbmNlTWV0aG9kID0gdGhpcy5pc0JhbGFuY2VJbkFjY291bnQobWV0aG9kLmNvZGUpO1xuXHRcdGNvbnN0IGFsbG93QW55ID0gYmFsYW5jZUN1c3RvbWVyPy5hbGxvd0FueVBheW1lbnRNZXRob2Q7XG5cblx0XHRpZiAoXG5cdFx0XHQoYmFsYW5jZUN1c3RvbWVyICYmIGFsbG93QW55ID09PSBmYWxzZSAmJiAhaXNCYWxhbmNlTWV0aG9kKSB8fFxuXHRcdFx0KGlzQmFsYW5jZU1ldGhvZCAmJiAhYmFsYW5jZUN1c3RvbWVyKVxuXHRcdCkge1xuXHRcdFx0dGhpcy5oYW5kbGVNZXRob2RFcnJvcigndGhpcy1wYXltZW50LW1ldGhvZC1jYW5ub3QtYmUtdXNlZCcsIG1ldGhvZCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKFxuXHRcdFx0aXNCYWxhbmNlTWV0aG9kICYmXG5cdFx0XHRiYWxhbmNlQ3VzdG9tZXIgJiZcblx0XHRcdHRvdGFscyAmJlxuXHRcdFx0YmFsYW5jZUN1c3RvbWVyLmFsbG93RXhjZWVkQmFsYW5jZSA9PT0gZmFsc2UgJiZcblx0XHRcdGJhbGFuY2VDdXN0b21lci5jcmVkaXRBbW91bnQgPCB0b3RhbHMudG90YWxcblx0XHQpIHtcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdpbnN1ZmZpY2llbnRfY3JlZGl0Jyk7XG5cdFx0XHR0aGlzLmJhbGFuY2VNZXRob2RSZWplY3RlZCA9IHRydWU7XG5cdFx0fSBlbHNlIGlmIChpc0JhbGFuY2VNZXRob2QpIHtcblx0XHRcdHRoaXMuYmFsYW5jZU1ldGhvZFJlamVjdGVkID0gZmFsc2U7XG5cdFx0fVxuXG5cdFx0dGhpcy5fbWV0aG9kRGF0YVN1YmplY3QubmV4dChtZXRob2QpO1xuXHR9XG5cblx0cHJpdmF0ZSBoYW5kbGVNZXRob2RFcnJvcihtZXNzYWdlOiBzdHJpbmcsIG1ldGhvZDogYW55KSB7XG5cdFx0dGhpcy5zaG93TWV0aG9kRXJyb3IgPSB0cnVlO1xuXHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KG1lc3NhZ2UpO1xuXHRcdHRoaXMuX21ldGhvZERhdGFTdWJqZWN0Lm5leHQobWV0aG9kKTtcblx0fVxuXG5cdC8vRnVuY2lvbmVzIHBhcmEgY2hlcXVlYXIgZWwgbWV0b2RvIGRlIHBhZ28uXG5cdGlzUmVkaXJlY3RSZWRzeXMgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3JlZHN5c19yZWRpcmVjdCcpXG5cdGlzUmVkaXJlY3RDZWNhQmFuayA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY2VjYV9iYW5rX3JlZGlyZWN0Jylcblx0aXNNUCA9IChjb2RlOiBzdHJpbmcpID0+IHtcblx0XHRjb25zdCBsb3dlckNvZGUgPSBjb2RlPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuXHRcdHJldHVybiBsb3dlckNvZGUuaW5jbHVkZXMoJ21lcmNhZG9fcGFnbycpICYmICFsb3dlckNvZGUuaW5jbHVkZXMoJ2NyZWRpdCcpO1xuXHR9XG5cdGlzTVBUYXJqZXRhRGVDcmVkaXRvID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjcmVkaXQnKVxuXHRpc01ldGhvZE9mZmxpbmUgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ29mZmxpbmUnKVxuXHRpc1BleVBhbEV4cHJlc3MgPSAoY29kZTogc3RyaW5nKSA9PiB7XG5cdFx0Y29uc3QgbG93ZXJDb2RlID0gY29kZT8udG9Mb3dlckNhc2UoKSB8fCAnJztcblx0XHRyZXR1cm4gbG93ZXJDb2RlLmluY2x1ZGVzKCdwYXlwYWwnKSAmJiBsb3dlckNvZGUuaW5jbHVkZXMoJ2V4cHJlc3MnKTtcblx0fVxuXHRpc01vYmJleCA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnbW9iYmV4Jylcblx0aXNCYW5jYXJkID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5jYXJkJylcblx0aXNEZWNpZGlyID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdkZWNpZGlyJylcblx0aXNDdWxxaSA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY3VscWknKVxuXHRpc0JhbmtUcmFuc2ZlciA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFua190cmFuc2ZlcicpXG5cdGlzQ2F0YXN0cm8gPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NhdGFzdHJvJylcblx0aXNCYW1ib28gPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbWJvbycpXG5cdGlzQmFsYW5jZUluQWNjb3VudCA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFsYW5jZV9pbl9hY2NvdW50JylcblxuXHRhbGxEYXRhKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLnRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldFVzZXJEYXRhKCkuc2hpcHBpbmdBZGRyZXNzLFxuXHRcdFx0Li4udGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0U2hpcG1lbnREYXRhKCksXG5cdFx0fTtcblx0fVxuXHRlbWl0UmVzdWx0ID0gYXN5bmMgKCkgPT4ge1xuXHRcdHRoaXMuX3BheW1lbnRTZXJ2aWNlLnNldFBheW1lbnQodGhpcy5fbWV0aG9kRGF0YVN1YmplY3QuZ2V0VmFsdWUoKSlcblx0XHR0aGlzLnNldExvYWRpbmcoZmFsc2UpXG5cdFx0dGhpcy5uZXh0KClcblx0fVxuXG5cdHB1YmxpYyBzZXRMb2FkaW5nID0gKGVzdGFkbyA9IHRydWUpID0+IHtcblx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGVzdGFkbyk7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRwdWJsaWMgdmVyaWZ5VmFsaWRhdGUgPSAoJGV2ZW50OiBhbnkgPSB0cnVlKSA9PiB7XG5cdFx0aWYgKHRoaXMuYmFsYW5jZU1ldGhvZFJlamVjdGVkKSB7XG5cdFx0XHR0aGlzLnNldExvYWRpbmcoZmFsc2UpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoJGV2ZW50ID09PSBmYWxzZSkge1xuXHRcdFx0dGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zZXRMb2FkaW5nKHRydWUpXG5cdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLmVtaXRSZXN1bHQoKSwgMTAwMCk7XG5cdH1cblxuXHRwdWJsaWMgbmV4dCA9ICgpID0+IHtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UubmV4dCgpXG5cdH1cblxuXHRwdWJsaWMgZ29CYWNrID0gKCkgPT4ge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5iYWNrKClcblx0fVxufVxuIiwiQGlmKG1ldGhvZHMkIHwgYXN5bmM7IGFzIG1ldGhvZHMpe1xuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuXG5cdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZCBcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHRleHQtZGFyayB0ZXh0LWNlbnRlclwiPlxuXHRcdFx0XHRcdDxoND57eyAnc2VsZWN0LW1ldGhvZCcgfCB0cmFuc2xhdGUgfX08L2g0PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgcm9sZT1cInRvb2xiYXJcIiBhcmlhLWxhYmVsPVwiRW52aW9zIHRvb2xiYXJcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiR3J1cG8gYm90b25lcyBlbnZpb1wiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cblx0XHRcdFx0XHRcdFx0XHRAZm9yIChtZXRob2Qgb2YgbWV0aG9kczsgdHJhY2sgJGluZGV4OyBsZXQgeCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBteC0xIG1iLTFcIiAoY2xpY2spPVwic2V0TWV0aG9kKG1ldGhvZCkgOyBzZXRBY3RpdmUoJGV2ZW50KVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbWV0aG9kLm5hbWUgfCB0cmFuc2xhdGUgfX1cblx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHRleHQtY2VudGVyXCI+XG5cdFx0XHRcdFx0QGlmKG1ldGhvZERhdGEkIHwgYXN5bmM7IGFzIG1ldGhvZCl7XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRAaWYoIWxvYWRpbmdJbnRlcm5hbCl7XG5cdFx0XHRcdFx0XHRcdEBpZihtZXRob2QgJiYgIXNob3dNZXRob2RFcnJvcil7XG5cdFx0XHRcdFx0XHRcdFx0QGlmKGlzTVAobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFya1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgaWQ9XCJmYXFzXCIgY2xhc3M9XCJxdCBweC01IFwiPnt7IG1ldGhvZC5kZXNjcmlwdGlvbiB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwicHgtNVwiPnt7IG1ldGhvZC5pbnN0cnVjdGlvbnMgfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1tcC1yZWRpcmVjdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFx0W21ldGhvZF09XCJtZXRob2RcIj48L2FwcC1tcC1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzRGVjaWRpcihtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1kZWNpZGlyLWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiIFtwYXltZW50U2VydmljZUluc3RdPVwiX3BheW1lbnRTZXJ2aWNlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLWRlY2lkaXItZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+IFxuXHRcdFx0XHRcdFx0XHRcdEBpZihpc01ldGhvZE9mZmxpbmUobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtb2ZmbGluZS1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbbWV0aG9kXT1cIm1ldGhvZFwiIFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt2ZXJpZnlWYWxpZGF0ZV09IFwidmVyaWZ5VmFsaWRhdGVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHRcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0QGlmKGlzQmFua1RyYW5zZmVyKG1ldGhvZC5jb2RlKSl7XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuay10cmFuc2Zlci1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W21ldGhvZF09XCJtZXRob2RcIiBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3ZlcmlmeVZhbGlkYXRlXT0gXCJ2ZXJpZnlWYWxpZGF0ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdEBpZihzaG93TWV0aG9kRXJyb3Ipe1xuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0yIHB4LTMgZnctYm9sZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgJ3RoaXMtcGF5bWVudC1tZXRob2QtY2Fubm90LWJlLXVzZWQnIHwgdHJhbnNsYXRlIH19XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0QGlmKGlzQmFsYW5jZUluQWNjb3VudChtZXRob2QuY29kZSkgJiYgIXNob3dNZXRob2RFcnJvcil7XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IHB4LTAgZGVzY3JpcHRpb24tY29udFwiICpuZ0lmPVwibWV0aG9kLmRlc2NyaXB0aW9uXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmUgb2YgbWV0aG9kLmRlc2NyaXB0aW9uLnNwbGl0KCdcXHJcXG4nKTsgbGV0IGkgPSBpbmRleFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIFtpZF09XCInY2MtZGVzYy0nK2lcIiBbY2xhc3NdPVwiJ3F0IHB4LTUgbS0wIGxpbmUtJytpXCI+e3sgbGluZSB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDxociAqbmdJZj1cIm1ldGhvZC5pbnN0cnVjdGlvbnNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJtZXRob2QuaW5zdHJ1Y3Rpb25zXCIgY2xhc3M9XCJyb3cgcHgtMCBpbnN0cnVjdGlvbnMtY29udCBtYi0xXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxoNSBjbGFzcz1cImluc3RydWN0aW9ucy10aXRsZVwiPnt7ICgnaW5zdHJ1Y3Rpb25zJyB8IHRyYW5zbGF0ZSkgfX08L2g1PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5lIG9mIG1ldGhvZC5pbnN0cnVjdGlvbnMuc3BsaXQoJ1xcclxcbicpOyBsZXQgaSA9IGluZGV4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgW2NsYXNzXT1cIidweC01IG0tMCBpbnN0cnVjdGlvbnMtdGV4dCBsaW5lLScraSBcIj57eyBsaW5lIH19PC9wPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWJhbGFuY2VNZXRob2RSZWplY3RlZDsgZWxzZSBzaG93Q3JlZGl0RXJyb3JcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImVuZC1idXR0b25cIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGNvbXByYXJcIiAoY2xpY2spPVwic2V0TG9hZGluZygpICYmIHZlcmlmeVZhbGlkYXRlKClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7ICdwYXktd2l0aCcgfCB0cmFuc2xhdGUgfX0ge3sgbWV0aG9kLm5hbWUgfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNzaG93Q3JlZGl0RXJyb3I+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0yIHB4LTMgZnctYm9sZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7ICdub3QtZW5vdWdoLWNyZWRpdHMtdG8tY29tcGxldGUnIHwgdHJhbnNsYXRlIH19XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIihsb2FkaW5nJCB8IGFzeW5jKSBhcyBsb2FkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJsb2FkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1sb2FkaW5nLWlubGluZS1lYz48L2FwcC1sb2FkaW5nLWlubGluZS1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0XHRcdDxhcHAtbG9hZGluZy1pbmxpbmUtZWM+PC9hcHAtbG9hZGluZy1pbmxpbmUtZWM+XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cInJvdyBkLWZsZXggZmxleC1yb3dcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtd2hpdGVcIiAoY2xpY2spPVwiZ29CYWNrKClcIj57eydiYWNrJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxufVxuIl19
@@ -45,11 +45,12 @@ export class SuccessEcComponent {
45
45
  * @returns el bloque si lo encontro.
46
46
  */
47
47
  containsBlock(codeBlock) { return this.blocks.find((block) => block.code == codeBlock); }
48
+ isBalanceInAccount = (code) => code && code.toLocaleLowerCase().includes('balance_in_account');
48
49
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SuccessEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SuccessEcComponent, isStandalone: true, selector: "app-order-success-ec", ngImport: i0, template: "<div id=\"container \" class=\"flex-center generalContainer container-xl py-5\">\n\t@if(payments && payments[0].method.code){\n\t<div class=\"Main card my-2\">\n\t\t@if(this.blocks && this.blocks.length > 0){ \n\t\t\t@if(containsBlock(this.payments[0].method.code); as bloque) {\n\t\t\t\t<div class=\"wrap my-4 card-body\" [id]=\"bloque.code\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t\t\t\t<h5 [class]=\"bloque.code+'-title'\">{{ (bloque?.translations[locale]?.name ?\n\t\t\t\t\t\t\t\tbloque.translations[locale].name :\n\t\t\t\t\t\t\t\t'thanks-for-buying') | translate\n\t\t\t\t\t\t\t\t| uppercase }}</h5>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12 text-start\">\n\t\t\t\t\t\t\t<app-blocks-ec [section]=\"'info_metodo_pago'\" [blockFilters]=\"payments[0].method.code\">\n\t\t\t\t\t\t\t</app-blocks-ec>\n\t\t\t\t\t\t\t<div class=\"d-flex flex-column details\">\n\t\t\t\t\t\t\t\t<p class=\"card-text\">{{ ('number' | translate) + ': ' + params.external_reference }}</p>\n\t\t\t\t\t\t\t\t<p class=\"card-text\">{{((params.payment_status || 'pending') | translate)}}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}@else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t\t\t}\n\t\t} @else{\n\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t}\n\t</div>\n\t} @else {\n\t\t<app-loading-full-ec></app-loading-full-ec>\t\n\t}\n</div>\n\n<ng-template #notInfoToMethod let-params>\n\n\t<div class=\"wrap my-4 card-body\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t<h5 class=\"card-title titpage center-block text-center\">\n\t\t\t\t\t{{ 'thanks-for-buying' | translate | uppercase }}\n\t\t\t\t</h5>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12 text-center py-3\">\n\t\t\t\t<h4 class=\"thanks-details\">{{ 'thanks-details' | translate }}</h4>\n\t\t\t\t<h5 class=\"number\">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>\n\t\t\t\t<h5 class=\"pending\">{{ ((params.payment_status || 'pending') | translate) }}</h5>\n\t\t\t\t<!-- <h5 *ngIf=\"!from_mp\">{{ ('will_contact' | translate) }}</h5> -->\n\n\t\t\t\t<!-- <a routerLink=\"/collection\"><button class=\"comprar\">{{ 'continue-shopping' | translate }}</button></a> -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>", styles: [""], dependencies: [{ kind: "component", type: BlocksEcComponent, selector: "app-blocks-ec", inputs: ["templates", "show_loading", "section", "blockFilters"] }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SuccessEcComponent, isStandalone: true, selector: "app-order-success-ec", ngImport: i0, template: "<div id=\"container \" class=\"flex-center generalContainer container-xl py-5\">\n\t@if(payments && payments[0].method.code){\n\t<div class=\"Main card my-2\">\n\t\t@if(this.blocks && this.blocks.length > 0){ \n\t\t\t@if(containsBlock(this.payments[0].method.code); as bloque) {\n\t\t\t\t<div class=\"wrap my-4 card-body\" [id]=\"bloque.code\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t\t\t\t<h5 [class]=\"bloque.code+'-title'\">{{ (bloque?.translations[locale]?.name ?\n\t\t\t\t\t\t\t\tbloque.translations[locale].name :\n\t\t\t\t\t\t\t\t'thanks-for-buying') | translate\n\t\t\t\t\t\t\t\t| uppercase }}</h5>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12 text-start\">\n\t\t\t\t\t\t\t\t\t<app-blocks-ec [section]=\"'info_metodo_pago'\" [blockFilters]=\"payments[0].method.code\">\n\t\t\t\t\t\t\t\t\t</app-blocks-ec>\n\t\t\t\t\t\t\t\t\t<div class=\"d-flex flex-column details\">\n\t\t\t\t\t\t\t\t\t\t<p class=\"card-text\">{{ ('number' | translate) + ': ' + params.external_reference }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"card-text\">\n\t\t\t\t\t\t\t\t\t\t\t{{ isBalanceInAccount(payments[0].method.code)\n\t\t\t\t\t\t\t\t\t\t\t\t? ('balance-in-account-message' | translate)\n\t\t\t\t\t\t\t\t\t\t\t\t: ((params.payment_status || 'pending') | translate) }}\n\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}@else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t\t\t}\n\t\t} @else{\n\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t}\n\t</div>\n\t} @else {\n\t\t<app-loading-full-ec></app-loading-full-ec>\t\n\t}\n</div>\n\n<ng-template #notInfoToMethod let-params>\n\n\t<div class=\"wrap my-4 card-body\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t<h5 class=\"card-title titpage center-block text-center\">\n\t\t\t\t\t{{ 'thanks-for-buying' | translate | uppercase }}\n\t\t\t\t</h5>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12 text-center py-3\">\n\t\t\t\t<h4 class=\"thanks-details\">{{ 'thanks-details' | translate }}</h4>\n\t\t\t\t<h5 class=\"number\">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>\n\t\t\t\t<h5 class=\"pending\">\n\t\t\t\t\t{{ payments && payments[0]?.method?.code && isBalanceInAccount(payments[0].method.code)\n\t\t\t\t\t\t? ('balance-in-account-message' | translate)\n\t\t\t\t\t\t: ((params.payment_status || 'pending') | translate) }}\n\t\t\t\t</h5>\n\t\t\t\t<!-- <h5 *ngIf=\"!from_mp\">{{ ('will_contact' | translate) }}</h5> -->\n\n\t\t\t\t<!-- <a routerLink=\"/collection\"><button class=\"comprar\">{{ 'continue-shopping' | translate }}</button></a> -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>", styles: [""], dependencies: [{ kind: "component", type: BlocksEcComponent, selector: "app-blocks-ec", inputs: ["templates", "show_loading", "section", "blockFilters"] }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
50
51
  }
51
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SuccessEcComponent, decorators: [{
52
53
  type: Component,
53
- args: [{ selector: 'app-order-success-ec', standalone: true, imports: [BlocksEcComponent, LoadingFullEcComponent, TranslateModule, UpperCasePipe, CommonModule], template: "<div id=\"container \" class=\"flex-center generalContainer container-xl py-5\">\n\t@if(payments && payments[0].method.code){\n\t<div class=\"Main card my-2\">\n\t\t@if(this.blocks && this.blocks.length > 0){ \n\t\t\t@if(containsBlock(this.payments[0].method.code); as bloque) {\n\t\t\t\t<div class=\"wrap my-4 card-body\" [id]=\"bloque.code\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t\t\t\t<h5 [class]=\"bloque.code+'-title'\">{{ (bloque?.translations[locale]?.name ?\n\t\t\t\t\t\t\t\tbloque.translations[locale].name :\n\t\t\t\t\t\t\t\t'thanks-for-buying') | translate\n\t\t\t\t\t\t\t\t| uppercase }}</h5>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12 text-start\">\n\t\t\t\t\t\t\t<app-blocks-ec [section]=\"'info_metodo_pago'\" [blockFilters]=\"payments[0].method.code\">\n\t\t\t\t\t\t\t</app-blocks-ec>\n\t\t\t\t\t\t\t<div class=\"d-flex flex-column details\">\n\t\t\t\t\t\t\t\t<p class=\"card-text\">{{ ('number' | translate) + ': ' + params.external_reference }}</p>\n\t\t\t\t\t\t\t\t<p class=\"card-text\">{{((params.payment_status || 'pending') | translate)}}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}@else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t\t\t}\n\t\t} @else{\n\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t}\n\t</div>\n\t} @else {\n\t\t<app-loading-full-ec></app-loading-full-ec>\t\n\t}\n</div>\n\n<ng-template #notInfoToMethod let-params>\n\n\t<div class=\"wrap my-4 card-body\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t<h5 class=\"card-title titpage center-block text-center\">\n\t\t\t\t\t{{ 'thanks-for-buying' | translate | uppercase }}\n\t\t\t\t</h5>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12 text-center py-3\">\n\t\t\t\t<h4 class=\"thanks-details\">{{ 'thanks-details' | translate }}</h4>\n\t\t\t\t<h5 class=\"number\">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>\n\t\t\t\t<h5 class=\"pending\">{{ ((params.payment_status || 'pending') | translate) }}</h5>\n\t\t\t\t<!-- <h5 *ngIf=\"!from_mp\">{{ ('will_contact' | translate) }}</h5> -->\n\n\t\t\t\t<!-- <a routerLink=\"/collection\"><button class=\"comprar\">{{ 'continue-shopping' | translate }}</button></a> -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>" }]
54
+ args: [{ selector: 'app-order-success-ec', standalone: true, imports: [BlocksEcComponent, LoadingFullEcComponent, TranslateModule, UpperCasePipe, CommonModule], template: "<div id=\"container \" class=\"flex-center generalContainer container-xl py-5\">\n\t@if(payments && payments[0].method.code){\n\t<div class=\"Main card my-2\">\n\t\t@if(this.blocks && this.blocks.length > 0){ \n\t\t\t@if(containsBlock(this.payments[0].method.code); as bloque) {\n\t\t\t\t<div class=\"wrap my-4 card-body\" [id]=\"bloque.code\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t\t\t\t<h5 [class]=\"bloque.code+'-title'\">{{ (bloque?.translations[locale]?.name ?\n\t\t\t\t\t\t\t\tbloque.translations[locale].name :\n\t\t\t\t\t\t\t\t'thanks-for-buying') | translate\n\t\t\t\t\t\t\t\t| uppercase }}</h5>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12 text-start\">\n\t\t\t\t\t\t\t\t\t<app-blocks-ec [section]=\"'info_metodo_pago'\" [blockFilters]=\"payments[0].method.code\">\n\t\t\t\t\t\t\t\t\t</app-blocks-ec>\n\t\t\t\t\t\t\t\t\t<div class=\"d-flex flex-column details\">\n\t\t\t\t\t\t\t\t\t\t<p class=\"card-text\">{{ ('number' | translate) + ': ' + params.external_reference }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"card-text\">\n\t\t\t\t\t\t\t\t\t\t\t{{ isBalanceInAccount(payments[0].method.code)\n\t\t\t\t\t\t\t\t\t\t\t\t? ('balance-in-account-message' | translate)\n\t\t\t\t\t\t\t\t\t\t\t\t: ((params.payment_status || 'pending') | translate) }}\n\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}@else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t\t\t}\n\t\t} @else{\n\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t}\n\t</div>\n\t} @else {\n\t\t<app-loading-full-ec></app-loading-full-ec>\t\n\t}\n</div>\n\n<ng-template #notInfoToMethod let-params>\n\n\t<div class=\"wrap my-4 card-body\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t<h5 class=\"card-title titpage center-block text-center\">\n\t\t\t\t\t{{ 'thanks-for-buying' | translate | uppercase }}\n\t\t\t\t</h5>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12 text-center py-3\">\n\t\t\t\t<h4 class=\"thanks-details\">{{ 'thanks-details' | translate }}</h4>\n\t\t\t\t<h5 class=\"number\">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>\n\t\t\t\t<h5 class=\"pending\">\n\t\t\t\t\t{{ payments && payments[0]?.method?.code && isBalanceInAccount(payments[0].method.code)\n\t\t\t\t\t\t? ('balance-in-account-message' | translate)\n\t\t\t\t\t\t: ((params.payment_status || 'pending') | translate) }}\n\t\t\t\t</h5>\n\t\t\t\t<!-- <h5 *ngIf=\"!from_mp\">{{ ('will_contact' | translate) }}</h5> -->\n\n\t\t\t\t<!-- <a routerLink=\"/collection\"><button class=\"comprar\">{{ 'continue-shopping' | translate }}</button></a> -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>" }]
54
55
  }], ctorParameters: () => [] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VjY2Vzcy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9zdWNjZXNzLWVjL3N1Y2Nlc3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc3VjY2Vzcy1lYy9zdWNjZXNzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVXpELE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsVUFBVSxHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUM3RCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUMvQyxPQUFPLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2hDLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3hELGdCQUFnQixHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0QsY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFHdkQsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBRWhDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2YsUUFBUSxDQUFNO0lBQ2QsTUFBTSxDQUFNO0lBRW5COztPQUVNO0lBQ0ksdUJBQXVCLEdBQTJCLElBQUksQ0FBQztJQUVqRSxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQzVCLEdBQUcsQ0FBQyxFQUFFO1lBQ0YsNENBQTRDO1lBQzVDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ3hCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxNQUFNO2FBQ2pDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUNSLG9EQUFvRDtZQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUN2RCxDQUFDLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBRUQ7Ozs7V0FJSTtJQUNKLGFBQWEsQ0FBQyxTQUFpQixJQUFTLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUEsQ0FBQyxDQUFDO3dHQTdDN0Ysa0JBQWtCOzRGQUFsQixrQkFBa0IsZ0ZDakIvQixxbEZBMERjLDBERDNDSCxpQkFBaUIsNEhBQUUsc0JBQXNCLCtEQUFFLGVBQWUsdUZBQUUsYUFBYSxpREFBRSxZQUFZOzs0RkFFckYsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNDLHNCQUFzQixjQUNwQixJQUFJLFdBR1AsQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XG5pbXBvcnQgeyBCbG9ja3NFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jsb2Nrcy1lYyc7XG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJsb2Nrc1NlcnZpY2UsIENhcnRTZXJ2aWNlLCBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtb3JkZXItc3VjY2Vzcy1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlVXJsOiAnLi9zdWNjZXNzLWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vc3VjY2Vzcy1lYy5jb21wb25lbnQuc2NzcyddLFxuXHRpbXBvcnRzOiBbQmxvY2tzRWNDb21wb25lbnQsIExvYWRpbmdGdWxsRWNDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZSwgVXBwZXJDYXNlUGlwZSwgQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTdWNjZXNzRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHRwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSlcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKVxuXHRwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpXG5cdHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSlcblx0cHJpdmF0ZSBfY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UgPSBpbmplY3QoQ2hlY2tvdXRTZXJ2aWNlKVxuXHRwcml2YXRlIF9ibG9ja3NTZXJ2aWNlOiBCbG9ja3NTZXJ2aWNlID0gaW5qZWN0KEJsb2Nrc1NlcnZpY2UpO1xuXG5cblx0cHVibGljIGxvY2FsZSA9IHRoaXMuX2FwaUNvbnN0cy5MT0NBTEU7XG5cblx0cHVibGljIG9yZGVyRGV0YWlscyA9IHt9O1xuXHRwdWJsaWMgcGFyYW1zOiBhbnkgPSB7fTtcblx0cHVibGljIGZyb21fbXAgPSB0cnVlO1xuXHRwdWJsaWMgcGF5bWVudHM6IGFueTtcblx0cHVibGljIGJsb2NrczogYW55O1xuXG5cdC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiB2YXJpYWJsZSBwYXJhIHJlY2liaXIgdW4gdGVtcGxhdGUgZW4gY2FzbyBkZSBxdWUgc2UgcXVpZXJhIGNhbWJpYXIgbGEgaW5mb3JtYWNpb24gcG9yIGRlZmVjdG8uXG4gICAgICovXG4gICAgcHVibGljIG5vdEluZm9Ub01ldGhvZFRlbXBsYXRlOlRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3RvcigpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5vcmRlciQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdMTyBRVUUgTExFR0EgRU4gT1JERU4nLCByZXMpO1xuICAgICAgICAgICAgICAgIHJlcz8ubnVtYmVyID8gdGhpcy5wYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX3JlZmVyZW5jZTogcmVzLm51bWJlcixcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgICAgIC8vdGhpcy5wYXltZW50cyA9IFt7bWV0aG9kOntjb2RlOidiYW5rX3RyYW5zc2Zlcid9fV1cbiAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnRzID0gcmVzPy5wYXltZW50cyA/IHJlcy5wYXltZW50cyA6IG51bGxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLl9ibG9ja3NTZXJ2aWNlLmdldEJsb2NrcygnaW5mb19tZXRvZG9fcGFnbycpXG4gICAgICAgIHRoaXMuX2Jsb2Nrc1NlcnZpY2UuYmxvY2tzJC5zdWJzY3JpYmUocmVzID0+IHRoaXMuYmxvY2tzID0gcmVzKVxuXHR9XG5cblx0LyoqXG5cdFx0ICogQGRlc2NyaXB0aW9uIENoZXF1ZWEgc2kgZXhpc3RlIHVuIGJsb3F1ZSByZWNpYmlkbyBwb3IgcGFyYW1ldHJvLlxuXHRcdCAqIEBwYXJhbSBjb2RlQmxvY2sgY29kaWdvIGRlbCBibG9xdWUuXG5cdFx0ICogQHJldHVybnMgZWwgYmxvcXVlIHNpIGxvIGVuY29udHJvLlxuXHRcdCAqL1xuXHRjb250YWluc0Jsb2NrKGNvZGVCbG9jazogc3RyaW5nKTogYW55IHsgcmV0dXJuIHRoaXMuYmxvY2tzLmZpbmQoKGJsb2NrOmFueSkgPT4gYmxvY2suY29kZSA9PSBjb2RlQmxvY2spIH1cblxufVxuIiwiPGRpdiBpZD1cImNvbnRhaW5lciBcIiBjbGFzcz1cImZsZXgtY2VudGVyIGdlbmVyYWxDb250YWluZXIgY29udGFpbmVyLXhsIHB5LTVcIj5cblx0QGlmKHBheW1lbnRzICYmIHBheW1lbnRzWzBdLm1ldGhvZC5jb2RlKXtcblx0PGRpdiBjbGFzcz1cIk1haW4gY2FyZCBteS0yXCI+XG5cdFx0QGlmKHRoaXMuYmxvY2tzICYmIHRoaXMuYmxvY2tzLmxlbmd0aCA+IDApeyBcblx0XHRcdEBpZihjb250YWluc0Jsb2NrKHRoaXMucGF5bWVudHNbMF0ubWV0aG9kLmNvZGUpOyBhcyBibG9xdWUpIHtcblx0XHRcdFx0PGRpdiBjbGFzcz1cIndyYXAgbXktNCBjYXJkLWJvZHlcIiBbaWRdPVwiYmxvcXVlLmNvZGVcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHQ8aDUgW2NsYXNzXT1cImJsb3F1ZS5jb2RlKyctdGl0bGUnXCI+e3sgKGJsb3F1ZT8udHJhbnNsYXRpb25zW2xvY2FsZV0/Lm5hbWUgP1xuXHRcdFx0XHRcdFx0XHRcdGJsb3F1ZS50cmFuc2xhdGlvbnNbbG9jYWxlXS5uYW1lIDpcblx0XHRcdFx0XHRcdFx0XHQndGhhbmtzLWZvci1idXlpbmcnKSB8IHRyYW5zbGF0ZVxuXHRcdFx0XHRcdFx0XHRcdHwgdXBwZXJjYXNlIH19PC9oNT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLTEyIHRleHQtc3RhcnRcIj5cblx0XHRcdFx0XHRcdFx0PGFwcC1ibG9ja3MtZWMgW3NlY3Rpb25dPVwiJ2luZm9fbWV0b2RvX3BhZ28nXCIgW2Jsb2NrRmlsdGVyc109XCJwYXltZW50c1swXS5tZXRob2QuY29kZVwiPlxuXHRcdFx0XHRcdFx0XHQ8L2FwcC1ibG9ja3MtZWM+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZGV0YWlsc1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiY2FyZC10ZXh0XCI+e3sgKCdudW1iZXInIHwgdHJhbnNsYXRlKSArICc6ICcgKyBwYXJhbXMuZXh0ZXJuYWxfcmVmZXJlbmNlIH19PC9wPlxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiY2FyZC10ZXh0XCI+e3soKHBhcmFtcy5wYXltZW50X3N0YXR1cyB8fCAncGVuZGluZycpIHwgdHJhbnNsYXRlKX19PC9wPlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdH1AZWxzZSB7XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub3RJbmZvVG9NZXRob2RUZW1wbGF0ZSA/IG5vdEluZm9Ub01ldGhvZFRlbXBsYXRlIDogbm90SW5mb1RvTWV0aG9kOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcGFyYW1zIH1cIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdH1cblx0XHR9IEBlbHNle1xuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vdEluZm9Ub01ldGhvZFRlbXBsYXRlID8gbm90SW5mb1RvTWV0aG9kVGVtcGxhdGUgOiBub3RJbmZvVG9NZXRob2Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwYXJhbXMgfVwiPjwvbmctY29udGFpbmVyPlxuXHR9XG5cdDwvZGl2PlxuXHR9IEBlbHNlIHtcblx0XHQ8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XHRcblx0fVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbm90SW5mb1RvTWV0aG9kIGxldC1wYXJhbXM+XG5cblx0PGRpdiBjbGFzcz1cIndyYXAgbXktNCBjYXJkLWJvZHlcIj5cblx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC0xMlwiPlxuXHRcdFx0XHQ8aDUgY2xhc3M9XCJjYXJkLXRpdGxlIHRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyXCI+XG5cdFx0XHRcdFx0e3sgJ3RoYW5rcy1mb3ItYnV5aW5nJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fVxuXHRcdFx0XHQ8L2g1PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtMTIgdGV4dC1jZW50ZXIgcHktM1wiPlxuXHRcdFx0XHQ8aDQgY2xhc3M9XCJ0aGFua3MtZGV0YWlsc1wiPnt7ICd0aGFua3MtZGV0YWlscycgfCB0cmFuc2xhdGUgfX08L2g0PlxuXHRcdFx0XHQ8aDUgY2xhc3M9XCJudW1iZXJcIj57eyAoJ251bWJlcicgfCB0cmFuc2xhdGUpICsgJzogJyArIHBhcmFtcy5leHRlcm5hbF9yZWZlcmVuY2UgfX08L2g1PlxuXHRcdFx0XHQ8aDUgY2xhc3M9XCJwZW5kaW5nXCI+e3sgKChwYXJhbXMucGF5bWVudF9zdGF0dXMgfHwgJ3BlbmRpbmcnKSB8IHRyYW5zbGF0ZSkgfX08L2g1PlxuXHRcdFx0XHQ8IS0tIDxoNSAqbmdJZj1cIiFmcm9tX21wXCI+e3sgKCd3aWxsX2NvbnRhY3QnIHwgdHJhbnNsYXRlKSB9fTwvaDU+IC0tPlxuXG5cdFx0XHRcdDwhLS0gPGEgcm91dGVyTGluaz1cIi9jb2xsZWN0aW9uXCI+PGJ1dHRvbiBjbGFzcz1cImNvbXByYXJcIj57eyAnY29udGludWUtc2hvcHBpbmcnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+PC9hPiAtLT5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VjY2Vzcy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9zdWNjZXNzLWVjL3N1Y2Nlc3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc3VjY2Vzcy1lYy9zdWNjZXNzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVXpELE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsVUFBVSxHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUM3RCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUMvQyxPQUFPLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2hDLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3hELGdCQUFnQixHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0QsY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFHdkQsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBRWhDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2YsUUFBUSxDQUFNO0lBQ2QsTUFBTSxDQUFNO0lBRW5COztPQUVNO0lBQ0ksdUJBQXVCLEdBQTJCLElBQUksQ0FBQztJQUVqRSxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQzVCLEdBQUcsQ0FBQyxFQUFFO1lBQ0YsNENBQTRDO1lBQzVDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ3hCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxNQUFNO2FBQ2pDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUNSLG9EQUFvRDtZQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUN2RCxDQUFDLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBRUQ7Ozs7V0FJSTtJQUNKLGFBQWEsQ0FBQyxTQUFpQixJQUFTLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRXpHLGtCQUFrQixHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7d0dBL0MzRixrQkFBa0I7NEZBQWxCLGtCQUFrQixnRkNqQi9CLDgrRkFrRWMsMEREbkRILGlCQUFpQiw0SEFBRSxzQkFBc0IsK0RBQUUsZUFBZSx1RkFBRSxhQUFhLGlEQUFFLFlBQVk7OzRGQUVyRixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0Msc0JBQXNCLGNBQ3BCLElBQUksV0FHUCxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRpbmdGdWxsRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzLWVjJztcbmltcG9ydCB7IEJsb2Nrc0VjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmxvY2tzLWVjJztcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIFVwcGVyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmxvY2tzU2VydmljZSwgQ2FydFNlcnZpY2UsIENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1vcmRlci1zdWNjZXNzLWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGVVcmw6ICcuL3N1Y2Nlc3MtZWMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9zdWNjZXNzLWVjLmNvbXBvbmVudC5zY3NzJ10sXG5cdGltcG9ydHM6IFtCbG9ja3NFY0NvbXBvbmVudCwgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlLCBVcHBlckNhc2VQaXBlLCBDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFN1Y2Nlc3NFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdHByaXZhdGUgX2FwaUNvbnN0czogQXBpQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChBcGlDb25zdGFudHNTZXJ2aWNlKVxuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpXG5cdHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcilcblx0cHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKVxuXHRwcml2YXRlIF9jaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSA9IGluamVjdChDaGVja291dFNlcnZpY2UpXG5cdHByaXZhdGUgX2Jsb2Nrc1NlcnZpY2U6IEJsb2Nrc1NlcnZpY2UgPSBpbmplY3QoQmxvY2tzU2VydmljZSk7XG5cblxuXHRwdWJsaWMgbG9jYWxlID0gdGhpcy5fYXBpQ29uc3RzLkxPQ0FMRTtcblxuXHRwdWJsaWMgb3JkZXJEZXRhaWxzID0ge307XG5cdHB1YmxpYyBwYXJhbXM6IGFueSA9IHt9O1xuXHRwdWJsaWMgZnJvbV9tcCA9IHRydWU7XG5cdHB1YmxpYyBwYXltZW50czogYW55O1xuXHRwdWJsaWMgYmxvY2tzOiBhbnk7XG5cblx0LyoqXG4gICAgICogQGRlc2NyaXB0aW9uIHZhcmlhYmxlIHBhcmEgcmVjaWJpciB1biB0ZW1wbGF0ZSBlbiBjYXNvIGRlIHF1ZSBzZSBxdWllcmEgY2FtYmlhciBsYSBpbmZvcm1hY2lvbiBwb3IgZGVmZWN0by5cbiAgICAgKi9cbiAgICBwdWJsaWMgbm90SW5mb1RvTWV0aG9kVGVtcGxhdGU6VGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKCkgeyB9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fY2hlY2tvdXRTZXJ2aWNlLm9yZGVyJC5zdWJzY3JpYmUoXG4gICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ0xPIFFVRSBMTEVHQSBFTiBPUkRFTicsIHJlcyk7XG4gICAgICAgICAgICAgICAgcmVzPy5udW1iZXIgPyB0aGlzLnBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfcmVmZXJlbmNlOiByZXMubnVtYmVyLFxuICAgICAgICAgICAgICAgIH0gOiBudWxsXG4gICAgICAgICAgICAgICAgLy90aGlzLnBheW1lbnRzID0gW3ttZXRob2Q6e2NvZGU6J2JhbmtfdHJhbnNzZmVyJ319XVxuICAgICAgICAgICAgICAgIHRoaXMucGF5bWVudHMgPSByZXM/LnBheW1lbnRzID8gcmVzLnBheW1lbnRzIDogbnVsbFxuICAgICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuX2Jsb2Nrc1NlcnZpY2UuZ2V0QmxvY2tzKCdpbmZvX21ldG9kb19wYWdvJylcbiAgICAgICAgdGhpcy5fYmxvY2tzU2VydmljZS5ibG9ja3MkLnN1YnNjcmliZShyZXMgPT4gdGhpcy5ibG9ja3MgPSByZXMpXG5cdH1cblxuXHQvKipcblx0XHQgKiBAZGVzY3JpcHRpb24gQ2hlcXVlYSBzaSBleGlzdGUgdW4gYmxvcXVlIHJlY2liaWRvIHBvciBwYXJhbWV0cm8uXG5cdFx0ICogQHBhcmFtIGNvZGVCbG9jayBjb2RpZ28gZGVsIGJsb3F1ZS5cblx0XHQgKiBAcmV0dXJucyBlbCBibG9xdWUgc2kgbG8gZW5jb250cm8uXG5cdFx0ICovXG5cdGNvbnRhaW5zQmxvY2soY29kZUJsb2NrOiBzdHJpbmcpOiBhbnkgeyByZXR1cm4gdGhpcy5ibG9ja3MuZmluZCgoYmxvY2s6YW55KSA9PiBibG9jay5jb2RlID09IGNvZGVCbG9jaykgfVxuXG5cdGlzQmFsYW5jZUluQWNjb3VudCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYWxhbmNlX2luX2FjY291bnQnKTtcbn1cbiIsIjxkaXYgaWQ9XCJjb250YWluZXIgXCIgY2xhc3M9XCJmbGV4LWNlbnRlciBnZW5lcmFsQ29udGFpbmVyIGNvbnRhaW5lci14bCBweS01XCI+XG5cdEBpZihwYXltZW50cyAmJiBwYXltZW50c1swXS5tZXRob2QuY29kZSl7XG5cdDxkaXYgY2xhc3M9XCJNYWluIGNhcmQgbXktMlwiPlxuXHRcdEBpZih0aGlzLmJsb2NrcyAmJiB0aGlzLmJsb2Nrcy5sZW5ndGggPiAwKXsgXG5cdFx0XHRAaWYoY29udGFpbnNCbG9jayh0aGlzLnBheW1lbnRzWzBdLm1ldGhvZC5jb2RlKTsgYXMgYmxvcXVlKSB7XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwIG15LTQgY2FyZC1ib2R5XCIgW2lkXT1cImJsb3F1ZS5jb2RlXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0PGg1IFtjbGFzc109XCJibG9xdWUuY29kZSsnLXRpdGxlJ1wiPnt7IChibG9xdWU/LnRyYW5zbGF0aW9uc1tsb2NhbGVdPy5uYW1lID9cblx0XHRcdFx0XHRcdFx0XHRibG9xdWUudHJhbnNsYXRpb25zW2xvY2FsZV0ubmFtZSA6XG5cdFx0XHRcdFx0XHRcdFx0J3RoYW5rcy1mb3ItYnV5aW5nJykgfCB0cmFuc2xhdGVcblx0XHRcdFx0XHRcdFx0XHR8IHVwcGVyY2FzZSB9fTwvaDU+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC0xMiB0ZXh0LXN0YXJ0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWJsb2Nrcy1lYyBbc2VjdGlvbl09XCInaW5mb19tZXRvZG9fcGFnbydcIiBbYmxvY2tGaWx0ZXJzXT1cInBheW1lbnRzWzBdLm1ldGhvZC5jb2RlXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1ibG9ja3MtZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGRldGFpbHNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJjYXJkLXRleHRcIj57eyAoJ251bWJlcicgfCB0cmFuc2xhdGUpICsgJzogJyArIHBhcmFtcy5leHRlcm5hbF9yZWZlcmVuY2UgfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiY2FyZC10ZXh0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgaXNCYWxhbmNlSW5BY2NvdW50KHBheW1lbnRzWzBdLm1ldGhvZC5jb2RlKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PyAoJ2JhbGFuY2UtaW4tYWNjb3VudC1tZXNzYWdlJyB8IHRyYW5zbGF0ZSlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogKChwYXJhbXMucGF5bWVudF9zdGF0dXMgfHwgJ3BlbmRpbmcnKSB8IHRyYW5zbGF0ZSkgfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0fUBlbHNlIHtcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vdEluZm9Ub01ldGhvZFRlbXBsYXRlID8gbm90SW5mb1RvTWV0aG9kVGVtcGxhdGUgOiBub3RJbmZvVG9NZXRob2Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwYXJhbXMgfVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0fVxuXHRcdH0gQGVsc2V7XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm90SW5mb1RvTWV0aG9kVGVtcGxhdGUgPyBub3RJbmZvVG9NZXRob2RUZW1wbGF0ZSA6IG5vdEluZm9Ub01ldGhvZDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHBhcmFtcyB9XCI+PC9uZy1jb250YWluZXI+XG5cdH1cblx0PC9kaXY+XG5cdH0gQGVsc2Uge1xuXHRcdDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cdFxuXHR9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNub3RJbmZvVG9NZXRob2QgbGV0LXBhcmFtcz5cblxuXHQ8ZGl2IGNsYXNzPVwid3JhcCBteS00IGNhcmQtYm9keVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLTEyXCI+XG5cdFx0XHRcdDxoNSBjbGFzcz1cImNhcmQtdGl0bGUgdGl0cGFnZSBjZW50ZXItYmxvY2sgdGV4dC1jZW50ZXJcIj5cblx0XHRcdFx0XHR7eyAndGhhbmtzLWZvci1idXlpbmcnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XG5cdFx0XHRcdDwvaDU+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC0xMiB0ZXh0LWNlbnRlciBweS0zXCI+XG5cdFx0XHRcdDxoNCBjbGFzcz1cInRoYW5rcy1kZXRhaWxzXCI+e3sgJ3RoYW5rcy1kZXRhaWxzJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XG5cdFx0XHRcdDxoNSBjbGFzcz1cIm51bWJlclwiPnt7ICgnbnVtYmVyJyB8IHRyYW5zbGF0ZSkgKyAnOiAnICsgcGFyYW1zLmV4dGVybmFsX3JlZmVyZW5jZSB9fTwvaDU+XG5cdFx0XHRcdDxoNSBjbGFzcz1cInBlbmRpbmdcIj5cblx0XHRcdFx0XHR7eyBwYXltZW50cyAmJiBwYXltZW50c1swXT8ubWV0aG9kPy5jb2RlICYmIGlzQmFsYW5jZUluQWNjb3VudChwYXltZW50c1swXS5tZXRob2QuY29kZSlcblx0XHRcdFx0XHRcdD8gKCdiYWxhbmNlLWluLWFjY291bnQtbWVzc2FnZScgfCB0cmFuc2xhdGUpXG5cdFx0XHRcdFx0XHQ6ICgocGFyYW1zLnBheW1lbnRfc3RhdHVzIHx8ICdwZW5kaW5nJykgfCB0cmFuc2xhdGUpIH19XG5cdFx0XHRcdDwvaDU+XG5cdFx0XHRcdDwhLS0gPGg1ICpuZ0lmPVwiIWZyb21fbXBcIj57eyAoJ3dpbGxfY29udGFjdCcgfCB0cmFuc2xhdGUpIH19PC9oNT4gLS0+XG5cblx0XHRcdFx0PCEtLSA8YSByb3V0ZXJMaW5rPVwiL2NvbGxlY3Rpb25cIj48YnV0dG9uIGNsYXNzPVwiY29tcHJhclwiPnt7ICdjb250aW51ZS1zaG9wcGluZycgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj48L2E+IC0tPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -0,0 +1,79 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, computed, inject, Input } from '@angular/core';
3
+ import { toSignal } from '@angular/core/rxjs-interop';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { AuthService } from '../../ec-services/auth.service';
6
+ import { CartService } from '../../ec-services/cart.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@ngx-translate/core";
10
+ export class CreditAccountBannerEcComponent {
11
+ cartService = inject(CartService);
12
+ authService = inject(AuthService);
13
+ layout = 'inline';
14
+ title;
15
+ subtitle;
16
+ availableLabel;
17
+ limitLabel;
18
+ titleKey = 'credit-account-banner.title';
19
+ subtitleKey = 'credit-account-banner.subtitle';
20
+ availableLabelKey = 'credit-account-banner.available';
21
+ limitLabelKey = 'credit-account-banner.limit';
22
+ requireLogged = false;
23
+ balance = toSignal(this.cartService.balanceCustomer$, { initialValue: null });
24
+ loggedIn = toSignal(this.authService.loggedIn$, { initialValue: this.authService.isAuthenticated() });
25
+ showMax = computed(() => !!this.balance()?.showMax);
26
+ canShowAmounts = computed(() => !!this.balance()?.showPrice);
27
+ remainingCredits = computed(() => this.balance()?.remainingCredits ?? 0);
28
+ creditAmount = computed(() => this.balance()?.creditAmount ?? 0);
29
+ progress = computed(() => {
30
+ const credit = this.creditAmount();
31
+ const remaining = this.remainingCredits();
32
+ if (!credit)
33
+ return 0;
34
+ const percentage = (remaining / credit) * 100;
35
+ return Math.max(0, Math.min(100, percentage));
36
+ });
37
+ barColor = computed(() => {
38
+ const credit = this.creditAmount();
39
+ const remaining = this.remainingCredits();
40
+ if (!credit)
41
+ return '#6c757d';
42
+ const ratio = remaining / credit;
43
+ if (ratio >= 0.66)
44
+ return '#198754';
45
+ if (ratio >= 0.33)
46
+ return '#ffc107';
47
+ return '#dc3545';
48
+ });
49
+ shouldRender() {
50
+ return this.showMax() && (!this.requireLogged || this.loggedIn());
51
+ }
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreditAccountBannerEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CreditAccountBannerEcComponent, isStandalone: true, selector: "app-credit-account-banner-ec", inputs: { layout: "layout", title: "title", subtitle: "subtitle", availableLabel: "availableLabel", limitLabel: "limitLabel", titleKey: "titleKey", subtitleKey: "subtitleKey", availableLabelKey: "availableLabelKey", limitLabelKey: "limitLabelKey", requireLogged: "requireLogged" }, ngImport: i0, template: "@if (shouldRender()) {\n\t<div class=\"credits-banner\" [class.credits-inline]=\"layout === 'inline'\" [class.credits-mobile]=\"layout === 'mobile'\">\n\t\t<div class=\"d-flex align-items-center gap-2\">\n\t\t\t<div class=\"credits-icon d-flex align-items-center justify-content-center\">\n\t\t\t\t<span class=\"credits-icon-text\">$</span>\n\t\t\t</div>\n\t\t\t<div class=\"d-flex flex-column\">\n\t\t\t\t@if (layout === 'mobile') {\n\t\t\t\t\t<span class=\"credits-label text-uppercase mb-1\">{{ title || (titleKey | translate) }}</span>\n\t\t\t\t\t<span class=\"credits-title\">{{ subtitle || (subtitleKey | translate) }}</span>\n\t\t\t\t} @else {\n\t\t\t\t\t<span class=\"credits-title\">{{ title || (titleKey | translate) }}</span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"credits-content flex-grow-1\">\n\t\t\t@if (canShowAmounts()) {\n\t\t\t\t<div class=\"d-flex justify-content-between align-items-center flex-wrap gap-2 credits-summary\" [class.credits-mobile-values]=\"layout === 'mobile'\">\n\t\t\t\t\t<div class=\"credits-pill\" [class.credits-mobile-value]=\"layout === 'mobile'\">\n\t\t\t\t\t\t<small class=\"me-1 text-uppercase\">{{ availableLabel || (availableLabelKey | translate) }}</small>\n\t\t\t\t\t\t<span class=\"fw-700\">{{ remainingCredits() | number:'1.0-0' }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"credits-pill\" [class.credits-pill-light]=\"layout === 'inline'\" [class.credits-mobile-value]=\"layout === 'mobile'\" [class.text-end]=\"layout === 'mobile'\">\n\t\t\t\t\t\t<small class=\"me-1 text-uppercase\">{{ limitLabel || (limitLabelKey | translate) }}</small>\n\t\t\t\t\t\t<span class=\"fw-700\">{{ creditAmount() | number:'1.0-0' }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t<div class=\"credits-progress mt-1\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"credits-progress-fill\"\n\t\t\t\t\t[ngStyle]=\"{ width: progress() + '%', background: barColor() }\"\n\t\t\t\t\t[attr.aria-valuenow]=\"remainingCredits()\"\n\t\t\t\t\t[attr.aria-valuemin]=\"0\"\n\t\t\t\t\t[attr.aria-valuemax]=\"creditAmount()\"\n\t\t\t\t></div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n}\n", styles: [":host{--ec-credits-bg: linear-gradient(120deg, #0c1536 0%, #1b3080 100%);--ec-credits-radius: 14px;--ec-credits-padding: 10px 12px;--ec-credits-color: #fff;--ec-credits-shadow: 0 8px 22px rgba(12, 21, 54, .18);--ec-credits-border: 1px solid rgba(255, 255, 255, .08);--ec-credits-icon-bg: rgba(255, 255, 255, .08);--ec-credits-icon-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12);--ec-credits-pill-bg: rgba(255, 255, 255, .08);--ec-credits-pill-border: 1px solid rgba(255, 255, 255, .12);--ec-credits-pill-light-bg: rgba(255, 255, 255, .04);--ec-credits-pill-light-color: #d7def8;--ec-credits-progress-bg: rgba(255, 255, 255, .14);--ec-credits-progress-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06)}.credits-banner{background:var(--ec-credits-bg);border-radius:var(--ec-credits-radius);padding:var(--ec-credits-padding);color:var(--ec-credits-color);box-shadow:var(--ec-credits-shadow);border:var(--ec-credits-border);display:flex;align-items:center;gap:12px}.credits-icon{width:44px;height:44px;border-radius:12px;background:var(--ec-credits-icon-bg);box-shadow:var(--ec-credits-icon-shadow);flex:0 0 auto}.credits-icon-text{color:#fff;font-weight:800;font-size:20px;letter-spacing:.04em}.credits-label{color:#ffffffb8;font-size:11px;letter-spacing:.08em}.credits-title{color:#fff;font-weight:700;line-height:1.1;font-size:16px}.credits-content .credits-pill{background:var(--ec-credits-pill-bg);color:var(--ec-credits-color);border:var(--ec-credits-pill-border);border-radius:12px;padding:6px 12px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.credits-content .credits-pill-light{background:var(--ec-credits-pill-light-bg);color:var(--ec-credits-pill-light-color)}.credits-progress{background:var(--ec-credits-progress-bg);border-radius:999px;height:12px;overflow:hidden;box-shadow:var(--ec-credits-progress-shadow)}.credits-progress-fill{height:100%;border-radius:inherit;transition:width .35s ease}.credits-footnote{color:#ffffffc7}.credits-footnote small{color:inherit;opacity:.9;font-size:11px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-green{background-color:#198754}.dot-amber{background-color:#ffc107}.dot-red{background-color:#dc3545}@media (max-width: 768px){.credits-banner{padding:12px}.credits-footnote{gap:8px}}.credits-inline{min-width:280px;max-width:400px;height:68px;flex:0 0 auto;padding:8px 12px;overflow:hidden}.credits-inline .credits-icon{width:36px;height:36px;border-radius:10px}.credits-inline .credits-title{font-size:14px}.credits-inline .credits-label{font-size:10px}.credits-inline .credits-pill{padding:4px 10px}.credits-inline .credits-progress{height:8px}.credits-summary{flex-wrap:nowrap!important;gap:8px!important}.credits-mobile{width:100%;padding:12px;flex-direction:column;align-items:stretch}.credits-mobile .credits-progress{height:8px}.credits-mobile .credits-pill{padding:4px 10px}.credits-mobile-values{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;width:100%}.credits-mobile-value small{color:#ffffffb3;letter-spacing:.08em}.credits-mobile-value span{display:block;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CreditAccountBannerEcComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ selector: 'app-credit-account-banner-ec', standalone: true, imports: [CommonModule, TranslateModule], template: "@if (shouldRender()) {\n\t<div class=\"credits-banner\" [class.credits-inline]=\"layout === 'inline'\" [class.credits-mobile]=\"layout === 'mobile'\">\n\t\t<div class=\"d-flex align-items-center gap-2\">\n\t\t\t<div class=\"credits-icon d-flex align-items-center justify-content-center\">\n\t\t\t\t<span class=\"credits-icon-text\">$</span>\n\t\t\t</div>\n\t\t\t<div class=\"d-flex flex-column\">\n\t\t\t\t@if (layout === 'mobile') {\n\t\t\t\t\t<span class=\"credits-label text-uppercase mb-1\">{{ title || (titleKey | translate) }}</span>\n\t\t\t\t\t<span class=\"credits-title\">{{ subtitle || (subtitleKey | translate) }}</span>\n\t\t\t\t} @else {\n\t\t\t\t\t<span class=\"credits-title\">{{ title || (titleKey | translate) }}</span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"credits-content flex-grow-1\">\n\t\t\t@if (canShowAmounts()) {\n\t\t\t\t<div class=\"d-flex justify-content-between align-items-center flex-wrap gap-2 credits-summary\" [class.credits-mobile-values]=\"layout === 'mobile'\">\n\t\t\t\t\t<div class=\"credits-pill\" [class.credits-mobile-value]=\"layout === 'mobile'\">\n\t\t\t\t\t\t<small class=\"me-1 text-uppercase\">{{ availableLabel || (availableLabelKey | translate) }}</small>\n\t\t\t\t\t\t<span class=\"fw-700\">{{ remainingCredits() | number:'1.0-0' }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"credits-pill\" [class.credits-pill-light]=\"layout === 'inline'\" [class.credits-mobile-value]=\"layout === 'mobile'\" [class.text-end]=\"layout === 'mobile'\">\n\t\t\t\t\t\t<small class=\"me-1 text-uppercase\">{{ limitLabel || (limitLabelKey | translate) }}</small>\n\t\t\t\t\t\t<span class=\"fw-700\">{{ creditAmount() | number:'1.0-0' }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t<div class=\"credits-progress mt-1\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"credits-progress-fill\"\n\t\t\t\t\t[ngStyle]=\"{ width: progress() + '%', background: barColor() }\"\n\t\t\t\t\t[attr.aria-valuenow]=\"remainingCredits()\"\n\t\t\t\t\t[attr.aria-valuemin]=\"0\"\n\t\t\t\t\t[attr.aria-valuemax]=\"creditAmount()\"\n\t\t\t\t></div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n}\n", styles: [":host{--ec-credits-bg: linear-gradient(120deg, #0c1536 0%, #1b3080 100%);--ec-credits-radius: 14px;--ec-credits-padding: 10px 12px;--ec-credits-color: #fff;--ec-credits-shadow: 0 8px 22px rgba(12, 21, 54, .18);--ec-credits-border: 1px solid rgba(255, 255, 255, .08);--ec-credits-icon-bg: rgba(255, 255, 255, .08);--ec-credits-icon-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12);--ec-credits-pill-bg: rgba(255, 255, 255, .08);--ec-credits-pill-border: 1px solid rgba(255, 255, 255, .12);--ec-credits-pill-light-bg: rgba(255, 255, 255, .04);--ec-credits-pill-light-color: #d7def8;--ec-credits-progress-bg: rgba(255, 255, 255, .14);--ec-credits-progress-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06)}.credits-banner{background:var(--ec-credits-bg);border-radius:var(--ec-credits-radius);padding:var(--ec-credits-padding);color:var(--ec-credits-color);box-shadow:var(--ec-credits-shadow);border:var(--ec-credits-border);display:flex;align-items:center;gap:12px}.credits-icon{width:44px;height:44px;border-radius:12px;background:var(--ec-credits-icon-bg);box-shadow:var(--ec-credits-icon-shadow);flex:0 0 auto}.credits-icon-text{color:#fff;font-weight:800;font-size:20px;letter-spacing:.04em}.credits-label{color:#ffffffb8;font-size:11px;letter-spacing:.08em}.credits-title{color:#fff;font-weight:700;line-height:1.1;font-size:16px}.credits-content .credits-pill{background:var(--ec-credits-pill-bg);color:var(--ec-credits-color);border:var(--ec-credits-pill-border);border-radius:12px;padding:6px 12px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.credits-content .credits-pill-light{background:var(--ec-credits-pill-light-bg);color:var(--ec-credits-pill-light-color)}.credits-progress{background:var(--ec-credits-progress-bg);border-radius:999px;height:12px;overflow:hidden;box-shadow:var(--ec-credits-progress-shadow)}.credits-progress-fill{height:100%;border-radius:inherit;transition:width .35s ease}.credits-footnote{color:#ffffffc7}.credits-footnote small{color:inherit;opacity:.9;font-size:11px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-green{background-color:#198754}.dot-amber{background-color:#ffc107}.dot-red{background-color:#dc3545}@media (max-width: 768px){.credits-banner{padding:12px}.credits-footnote{gap:8px}}.credits-inline{min-width:280px;max-width:400px;height:68px;flex:0 0 auto;padding:8px 12px;overflow:hidden}.credits-inline .credits-icon{width:36px;height:36px;border-radius:10px}.credits-inline .credits-title{font-size:14px}.credits-inline .credits-label{font-size:10px}.credits-inline .credits-pill{padding:4px 10px}.credits-inline .credits-progress{height:8px}.credits-summary{flex-wrap:nowrap!important;gap:8px!important}.credits-mobile{width:100%;padding:12px;flex-direction:column;align-items:stretch}.credits-mobile .credits-progress{height:8px}.credits-mobile .credits-pill{padding:4px 10px}.credits-mobile-values{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;width:100%}.credits-mobile-value small{color:#ffffffb3;letter-spacing:.08em}.credits-mobile-value span{display:block;color:#fff}\n"] }]
58
+ }], propDecorators: { layout: [{
59
+ type: Input
60
+ }], title: [{
61
+ type: Input
62
+ }], subtitle: [{
63
+ type: Input
64
+ }], availableLabel: [{
65
+ type: Input
66
+ }], limitLabel: [{
67
+ type: Input
68
+ }], titleKey: [{
69
+ type: Input
70
+ }], subtitleKey: [{
71
+ type: Input
72
+ }], availableLabelKey: [{
73
+ type: Input
74
+ }], limitLabelKey: [{
75
+ type: Input
76
+ }], requireLogged: [{
77
+ type: Input
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LWFjY291bnQtYmFubmVyLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2NyZWRpdC1hY2NvdW50LWJhbm5lci1lYy9jcmVkaXQtYWNjb3VudC1iYW5uZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY3JlZGl0LWFjY291bnQtYmFubmVyLWVjL2NyZWRpdC1hY2NvdW50LWJhbm5lci1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFZN0QsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QixXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFMUMsTUFBTSxHQUE4QixRQUFRLENBQUM7SUFDN0MsS0FBSyxDQUFVO0lBQ2YsUUFBUSxDQUFVO0lBQ2xCLGNBQWMsQ0FBVTtJQUN4QixVQUFVLENBQVU7SUFFcEIsUUFBUSxHQUFXLDZCQUE2QixDQUFDO0lBQ2pELFdB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RyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBCYWxhbmNlQ3VzdG9tZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IHR5cGUgQ3JlZGl0QWNjb3VudEJhbm5lckxheW91dCA9ICdpbmxpbmUnIHwgJ21vYmlsZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1jcmVkaXQtYWNjb3VudC1iYW5uZXItZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuXHR0ZW1wbGF0ZVVybDogJy4vY3JlZGl0LWFjY291bnQtYmFubmVyLWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL2NyZWRpdC1hY2NvdW50LWJhbm5lci1lYy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgQ3JlZGl0QWNjb3VudEJhbm5lckVjQ29tcG9uZW50IHtcblx0cHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuXG5cdEBJbnB1dCgpIGxheW91dDogQ3JlZGl0QWNjb3VudEJhbm5lckxheW91dCA9ICdpbmxpbmUnO1xuXHRASW5wdXQoKSB0aXRsZT86IHN0cmluZztcblx0QElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG5cdEBJbnB1dCgpIGF2YWlsYWJsZUxhYmVsPzogc3RyaW5nO1xuXHRASW5wdXQoKSBsaW1pdExhYmVsPzogc3RyaW5nO1xuXG5cdEBJbnB1dCgpIHRpdGxlS2V5OiBzdHJpbmcgPSAnY3JlZGl0LWFjY291bnQtYmFubmVyLnRpdGxlJztcblx0QElucHV0KCkgc3VidGl0bGVLZXk6IHN0cmluZyA9ICdjcmVkaXQtYWNjb3VudC1iYW5uZXIuc3VidGl0bGUnO1xuXHRASW5wdXQoKSBhdmFpbGFibGVMYWJlbEtleTogc3RyaW5nID0gJ2NyZWRpdC1hY2NvdW50LWJhbm5lci5hdmFpbGFibGUnO1xuXHRASW5wdXQoKSBsaW1pdExhYmVsS2V5OiBzdHJpbmcgPSAnY3JlZGl0LWFjY291bnQtYmFubmVyLmxpbWl0Jztcblx0QElucHV0KCkgcmVxdWlyZUxvZ2dlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgYmFsYW5jZSA9IHRvU2lnbmFsPEJhbGFuY2VDdXN0b21lciB8IG51bGw+KHRoaXMuY2FydFNlcnZpY2UuYmFsYW5jZUN1c3RvbWVyJCwgeyBpbml0aWFsVmFsdWU6IG51bGwgfSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VkSW4gPSB0b1NpZ25hbCh0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZEluJCwgeyBpbml0aWFsVmFsdWU6IHRoaXMuYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCkgfSk7XG5cblx0cmVhZG9ubHkgc2hvd01heCA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5iYWxhbmNlKCk/LnNob3dNYXgpO1xuXHRyZWFkb25seSBjYW5TaG93QW1vdW50cyA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5iYWxhbmNlKCk/LnNob3dQcmljZSk7XG5cdHJlYWRvbmx5IHJlbWFpbmluZ0NyZWRpdHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJhbGFuY2UoKT8ucmVtYWluaW5nQ3JlZGl0cyA/PyAwKTtcblx0cmVhZG9ubHkgY3JlZGl0QW1vdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5iYWxhbmNlKCk/LmNyZWRpdEFtb3VudCA/PyAwKTtcblxuXHRyZWFkb25seSBwcm9ncmVzcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBjcmVkaXQgPSB0aGlzLmNyZWRpdEFtb3VudCgpO1xuXHRcdGNvbnN0IHJlbWFpbmluZyA9IHRoaXMucmVtYWluaW5nQ3JlZGl0cygpO1xuXHRcdGlmICghY3JlZGl0KSByZXR1cm4gMDtcblx0XHRjb25zdCBwZXJjZW50YWdlID0gKHJlbWFpbmluZyAvIGNyZWRpdCkgKiAxMDA7XG5cdFx0cmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgcGVyY2VudGFnZSkpO1xuXHR9KTtcblxuXHRyZWFkb25seSBiYXJDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBjcmVkaXQgPSB0aGlzLmNyZWRpdEFtb3VudCgpO1xuXHRcdGNvbnN0IHJlbWFpbmluZyA9IHRoaXMucmVtYWluaW5nQ3JlZGl0cygpO1xuXHRcdGlmICghY3JlZGl0KSByZXR1cm4gJyM2Yzc1N2QnO1xuXG5cdFx0Y29uc3QgcmF0aW8gPSByZW1haW5pbmcgLyBjcmVkaXQ7XG5cdFx0aWYgKHJhdGlvID49IDAuNjYpIHJldHVybiAnIzE5ODc1NCc7XG5cdFx0aWYgKHJhdGlvID49IDAuMzMpIHJldHVybiAnI2ZmYzEwNyc7XG5cdFx0cmV0dXJuICcjZGMzNTQ1Jztcblx0fSk7XG5cblx0c2hvdWxkUmVuZGVyKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnNob3dNYXgoKSAmJiAoIXRoaXMucmVxdWlyZUxvZ2dlZCB8fCB0aGlzLmxvZ2dlZEluKCkpO1xuXHR9XG59XG4iLCJAaWYgKHNob3VsZFJlbmRlcigpKSB7XG5cdDxkaXYgY2xhc3M9XCJjcmVkaXRzLWJhbm5lclwiIFtjbGFzcy5jcmVkaXRzLWlubGluZV09XCJsYXlvdXQgPT09ICdpbmxpbmUnXCIgW2NsYXNzLmNyZWRpdHMtbW9iaWxlXT1cImxheW91dCA9PT0gJ21vYmlsZSdcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNyZWRpdHMtaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjcmVkaXRzLWljb24tdGV4dFwiPiQ8L3NwYW4+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cblx0XHRcdFx0QGlmIChsYXlvdXQgPT09ICdtb2JpbGUnKSB7XG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjcmVkaXRzLWxhYmVsIHRleHQtdXBwZXJjYXNlIG1iLTFcIj57eyB0aXRsZSB8fCAodGl0bGVLZXkgfCB0cmFuc2xhdGUpIH19PC9zcGFuPlxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiY3JlZGl0cy10aXRsZVwiPnt7IHN1YnRpdGxlIHx8IChzdWJ0aXRsZUtleSB8IHRyYW5zbGF0ZSkgfX08L3NwYW4+XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiY3JlZGl0cy10aXRsZVwiPnt7IHRpdGxlIHx8ICh0aXRsZUtleSB8IHRyYW5zbGF0ZSkgfX08L3NwYW4+XG5cdFx0XHRcdH1cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cImNyZWRpdHMtY29udGVudCBmbGV4LWdyb3ctMVwiPlxuXHRcdFx0QGlmIChjYW5TaG93QW1vdW50cygpKSB7XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtMiBjcmVkaXRzLXN1bW1hcnlcIiBbY2xhc3MuY3JlZGl0cy1tb2JpbGUtdmFsdWVzXT1cImxheW91dCA9PT0gJ21vYmlsZSdcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY3JlZGl0cy1waWxsXCIgW2NsYXNzLmNyZWRpdHMtbW9iaWxlLXZhbHVlXT1cImxheW91dCA9PT0gJ21vYmlsZSdcIj5cblx0XHRcdFx0XHRcdDxzbWFsbCBjbGFzcz1cIm1lLTEgdGV4dC11cHBlcmNhc2VcIj57eyBhdmFpbGFibGVMYWJlbCB8fCAoYXZhaWxhYmxlTGFiZWxLZXkgfCB0cmFuc2xhdGUpIH19PC9zbWFsbD5cblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZnctNzAwXCI+e3sgcmVtYWluaW5nQ3JlZGl0cygpIHwgbnVtYmVyOicxLjAtMCcgfX08L3NwYW4+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNyZWRpdHMtcGlsbFwiIFtjbGFzcy5jcmVkaXRzLXBpbGwtbGlnaHRdPVwibGF5b3V0ID09PSAnaW5saW5lJ1wiIFtjbGFzcy5jcmVkaXRzLW1vYmlsZS12YWx1ZV09XCJsYXlvdXQgPT09ICdtb2JpbGUnXCIgW2NsYXNzLnRleHQtZW5kXT1cImxheW91dCA9PT0gJ21vYmlsZSdcIj5cblx0XHRcdFx0XHRcdDxzbWFsbCBjbGFzcz1cIm1lLTEgdGV4dC11cHBlcmNhc2VcIj57eyBsaW1pdExhYmVsIHx8IChsaW1pdExhYmVsS2V5IHwgdHJhbnNsYXRlKSB9fTwvc21hbGw+XG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZ3LTcwMFwiPnt7IGNyZWRpdEFtb3VudCgpIHwgbnVtYmVyOicxLjAtMCcgfX08L3NwYW4+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0fVxuXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY3JlZGl0cy1wcm9ncmVzcyBtdC0xXCI+XG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRjbGFzcz1cImNyZWRpdHMtcHJvZ3Jlc3MtZmlsbFwiXG5cdFx0XHRcdFx0W25nU3R5bGVdPVwieyB3aWR0aDogcHJvZ3Jlc3MoKSArICclJywgYmFja2dyb3VuZDogYmFyQ29sb3IoKSB9XCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLXZhbHVlbm93XT1cInJlbWFpbmluZ0NyZWRpdHMoKVwiXG5cdFx0XHRcdFx0W2F0dHIuYXJpYS12YWx1ZW1pbl09XCIwXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLXZhbHVlbWF4XT1cImNyZWRpdEFtb3VudCgpXCJcblx0XHRcdFx0PjwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxufVxuIl19