ng-easycommerce-v18 0.3.23-beta.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +119 -111
  2. package/assets/decidirFormEc.html +514 -514
  3. package/assets/ec-i18n/ct.json +282 -282
  4. package/assets/ec-i18n/en.json +0 -0
  5. package/assets/ec-i18n/es.json +434 -434
  6. package/assets/ec-i18n/fr.json +0 -0
  7. package/assets/ec-i18n/gl.json +282 -282
  8. package/assets/ec-i18n/pr.json +282 -282
  9. package/assets/images/cards-occasional.svg +21 -21
  10. package/assets/recaptcha/recaptcha-site-keys.json +3 -3
  11. package/assets/recaptcha/recaptcha-sites-prod.json +38 -38
  12. package/assets/recaptcha/recaptcha-sites.json +52 -52
  13. package/esm2022/lib/api/connection.service.mjs +1 -1
  14. package/esm2022/lib/classes/checkout/steps.mjs +1 -1
  15. package/esm2022/lib/classes/component-helper.mjs +1 -1
  16. package/esm2022/lib/classes/filters/attributes-filter.mjs +1 -1
  17. package/esm2022/lib/classes/filters/category-filter.mjs +1 -1
  18. package/esm2022/lib/classes/filters/dynamics-filter.mjs +1 -1
  19. package/esm2022/lib/classes/filters/filter-factory.mjs +1 -1
  20. package/esm2022/lib/classes/filters/filter.mjs +1 -1
  21. package/esm2022/lib/classes/filters/index.mjs +1 -1
  22. package/esm2022/lib/classes/filters/price_range-filter.mjs +1 -1
  23. package/esm2022/lib/classes/filters/sort-filter.mjs +1 -1
  24. package/esm2022/lib/classes/index.mjs +1 -1
  25. package/esm2022/lib/classes/user.mjs +1 -1
  26. package/esm2022/lib/constants/api.constants.service.mjs +19 -15
  27. package/esm2022/lib/constants/core.constants.service.mjs +9 -3
  28. package/esm2022/lib/constants/index.mjs +1 -1
  29. package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +1 -1
  30. package/esm2022/lib/ec-components/abstractions-components/index.mjs +1 -1
  31. package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +17 -1
  32. package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +3 -3
  33. package/esm2022/lib/ec-components/account-ec/index.mjs +1 -1
  34. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +3 -3
  35. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +3 -3
  36. package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +3 -3
  37. package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +3 -3
  38. package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +3 -3
  39. package/esm2022/lib/ec-components/auth-ec/index.mjs +1 -1
  40. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +28 -18
  41. package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +27 -23
  42. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +3 -3
  43. package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +3 -3
  44. package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +3 -3
  45. package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +3 -3
  46. package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +3 -3
  47. package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +3 -3
  48. package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +3 -3
  49. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +7 -4
  50. package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +3 -3
  51. package/esm2022/lib/ec-components/blocks-ec/index.mjs +1 -1
  52. package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +3 -3
  53. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +3 -3
  54. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +3 -3
  55. package/esm2022/lib/ec-components/cart-ec/index.mjs +1 -1
  56. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +3 -3
  57. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +4 -11
  58. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +3 -3
  59. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +3 -3
  60. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +8 -4
  61. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +3 -3
  62. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.mjs +1 -1
  63. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +55 -46
  64. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +3 -3
  65. package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +3 -3
  66. package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +3 -3
  67. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +3 -3
  68. package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +3 -3
  69. package/esm2022/lib/ec-components/contact-ec/contact-ec.component.mjs +1 -1
  70. package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +3 -3
  71. package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +3 -3
  72. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +30 -7
  73. package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +3 -3
  74. package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +3 -3
  75. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +13 -7
  76. package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +3 -3
  77. package/esm2022/lib/ec-components/index.mjs +1 -1
  78. package/esm2022/lib/ec-components/price-range-filter/price-range-filter.component.mjs +3 -3
  79. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +12 -7
  80. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +3 -3
  81. package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +3 -3
  82. package/esm2022/lib/ec-components/reviews-ec/reviews-ec.component.mjs +3 -3
  83. package/esm2022/lib/ec-components/reviews-form-ec/reviews-form-ec.component.mjs +3 -3
  84. package/esm2022/lib/ec-components/section-container-ec/section-container-ec.component.mjs +3 -3
  85. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/index.mjs +1 -1
  86. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-email-ec/share-email-ec.component.mjs +3 -3
  87. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-facebook-ec/share-facebook-ec.component.mjs +3 -3
  88. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-pinterest-ec/share-pinterest-ec.component.mjs +3 -3
  89. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-twitter-ec/share-twitter-ec.component.mjs +3 -3
  90. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-whatsapp-ec/share-whatsapp-ec.component.mjs +3 -3
  91. package/esm2022/lib/ec-components/share-ec/share-ec.component.mjs +3 -3
  92. package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +3 -3
  93. package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +20 -11
  94. package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +3 -3
  95. package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +14 -8
  96. package/esm2022/lib/ec-components/widgets-ec/index.mjs +1 -1
  97. package/esm2022/lib/ec-components/widgets-ec/loading/index.mjs +1 -1
  98. package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +3 -3
  99. package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +3 -3
  100. package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +3 -3
  101. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +9 -9
  102. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +3 -3
  103. package/esm2022/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.mjs +3 -3
  104. package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +3 -3
  105. package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +19 -9
  106. package/esm2022/lib/ec-directive/index.mjs +1 -1
  107. package/esm2022/lib/ec-directive/product-off.directive.mjs +1 -1
  108. package/esm2022/lib/ec-directive/product-stock.directive.mjs +1 -1
  109. package/esm2022/lib/ec-guards/auth.guard.mjs +1 -1
  110. package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +1 -1
  111. package/esm2022/lib/ec-pipe/ec-safe-html.pipe.mjs +1 -1
  112. package/esm2022/lib/ec-pipe/index.mjs +1 -1
  113. package/esm2022/lib/ec-services/addressing.service.mjs +1 -1
  114. package/esm2022/lib/ec-services/analytics/analytics.service.mjs +1 -1
  115. package/esm2022/lib/ec-services/analytics/doppler.service.mjs +1 -1
  116. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +1 -1
  117. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -4
  118. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +3 -2
  119. package/esm2022/lib/ec-services/analytics/index.mjs +1 -1
  120. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +11 -11
  121. package/esm2022/lib/ec-services/auth.service.mjs +1 -1
  122. package/esm2022/lib/ec-services/auth.storage.service.mjs +1 -1
  123. package/esm2022/lib/ec-services/base-api.service.mjs +148 -0
  124. package/esm2022/lib/ec-services/blocks-repository.service.mjs +1 -1
  125. package/esm2022/lib/ec-services/blocks.service.mjs +1 -1
  126. package/esm2022/lib/ec-services/cart.service.mjs +1 -1
  127. package/esm2022/lib/ec-services/channel.service.mjs +1 -1
  128. package/esm2022/lib/ec-services/checkout.service.mjs +4 -2
  129. package/esm2022/lib/ec-services/currency.service.mjs +1 -1
  130. package/esm2022/lib/ec-services/filters.service.mjs +1 -1
  131. package/esm2022/lib/ec-services/form.service.mjs +1 -1
  132. package/esm2022/lib/ec-services/index.mjs +3 -1
  133. package/esm2022/lib/ec-services/local-storage.service.mjs +1 -1
  134. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +1 -1
  135. package/esm2022/lib/ec-services/options.service.mjs +1 -1
  136. package/esm2022/lib/ec-services/order-utility.service.mjs +1 -1
  137. package/esm2022/lib/ec-services/orders.service.mjs +1 -1
  138. package/esm2022/lib/ec-services/pagination.service.mjs +1 -1
  139. package/esm2022/lib/ec-services/parameters.service.mjs +1 -1
  140. package/esm2022/lib/ec-services/payment.service.mjs +1 -1
  141. package/esm2022/lib/ec-services/product-detail.service.mjs +1 -1
  142. package/esm2022/lib/ec-services/products.service.mjs +1 -1
  143. package/esm2022/lib/ec-services/re-captcha.service.mjs +1 -1
  144. package/esm2022/lib/ec-services/reviews.service.mjs +1 -1
  145. package/esm2022/lib/ec-services/runtime-config.service.mjs +219 -0
  146. package/esm2022/lib/ec-services/shipment.service.mjs +1 -1
  147. package/esm2022/lib/ec-services/stores.service.mjs +1 -1
  148. package/esm2022/lib/ec-services/test.service.mjs +1 -1
  149. package/esm2022/lib/ec-services/toast.service.mjs +1 -1
  150. package/esm2022/lib/interceptors/auth.interceptor.mjs +1 -1
  151. package/esm2022/lib/interceptors/index.mjs +2 -1
  152. package/esm2022/lib/interceptors/runtime-config.interceptor.mjs +41 -0
  153. package/esm2022/lib/interfaces/analytics/event-key.mjs +1 -1
  154. package/esm2022/lib/interfaces/analytics/facebook-pixel-data.mjs +1 -1
  155. package/esm2022/lib/interfaces/analytics/gtm-config.mjs +1 -1
  156. package/esm2022/lib/interfaces/analytics/index.mjs +1 -1
  157. package/esm2022/lib/interfaces/blocks.mjs +1 -1
  158. package/esm2022/lib/interfaces/checkout.mjs +1 -1
  159. package/esm2022/lib/interfaces/connection.mjs +1 -1
  160. package/esm2022/lib/interfaces/coupon.mjs +1 -1
  161. package/esm2022/lib/interfaces/currency.mjs +1 -1
  162. package/esm2022/lib/interfaces/deserializable.mjs +1 -1
  163. package/esm2022/lib/interfaces/environment.mjs +1 -1
  164. package/esm2022/lib/interfaces/faqs.mjs +1 -1
  165. package/esm2022/lib/interfaces/filter.mjs +1 -1
  166. package/esm2022/lib/interfaces/index.mjs +2 -1
  167. package/esm2022/lib/interfaces/options.mjs +1 -1
  168. package/esm2022/lib/interfaces/pagination.mjs +1 -1
  169. package/esm2022/lib/interfaces/parameter.mjs +1 -1
  170. package/esm2022/lib/interfaces/product.mjs +1 -1
  171. package/esm2022/lib/interfaces/runtime-config.mjs +2 -0
  172. package/esm2022/lib/interfaces/step.mjs +1 -1
  173. package/esm2022/lib/interfaces/storage.mjs +1 -1
  174. package/esm2022/lib/interfaces/store.mjs +1 -1
  175. package/esm2022/lib/interfaces/types/user.type.mjs +1 -1
  176. package/esm2022/lib/providers/index.mjs +2 -1
  177. package/esm2022/lib/providers/provideEnvironment.mjs +1 -1
  178. package/esm2022/lib/providers/provideRuntimeConfig.mjs +36 -0
  179. package/esm2022/lib/stores/currency.store.mjs +1 -1
  180. package/esm2022/public-api.mjs +1 -1
  181. package/fesm2022/ng-easycommerce-v18.mjs +851 -314
  182. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  183. package/lib/constants/api.constants.service.d.ts +1 -0
  184. package/lib/constants/core.constants.service.d.ts +5 -1
  185. package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +12 -0
  186. package/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.d.ts +2 -0
  187. package/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.d.ts +1 -1
  188. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +1 -0
  189. package/lib/ec-components/filters-ec/filters-ec.component.d.ts +12 -4
  190. package/lib/ec-services/base-api.service.d.ts +64 -0
  191. package/lib/ec-services/index.d.ts +2 -0
  192. package/lib/ec-services/runtime-config.service.d.ts +69 -0
  193. package/lib/interceptors/index.d.ts +1 -0
  194. package/lib/interceptors/runtime-config.interceptor.d.ts +7 -0
  195. package/lib/interfaces/environment.d.ts +1 -0
  196. package/lib/interfaces/filter.d.ts +1 -0
  197. package/lib/interfaces/index.d.ts +1 -0
  198. package/lib/interfaces/options.d.ts +2 -0
  199. package/lib/interfaces/runtime-config.d.ts +22 -0
  200. package/lib/providers/index.d.ts +1 -0
  201. package/lib/providers/provideRuntimeConfig.d.ts +13 -0
  202. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, inject, Input, Output, PLATFORM_ID } from '@angular/core';
1
+ import { Component, EventEmitter, inject, Input, Output, PLATFORM_ID, NgZone } from '@angular/core';
2
2
  import { PaymentService, ToastService } from '../../../../../ec-services';
3
3
  import { LoadingFullEcComponent } from '../../../../widgets-ec';
4
4
  import { isPlatformBrowser } from '@angular/common';
@@ -8,6 +8,7 @@ export class MpRedirectEcComponent {
8
8
  _toastService = inject(ToastService);
9
9
  platformId = inject(PLATFORM_ID);
10
10
  finished = false;
11
+ ngZone = inject(NgZone);
11
12
  method = null;
12
13
  total_amount = 0;
13
14
  allData;
@@ -30,10 +31,10 @@ export class MpRedirectEcComponent {
30
31
  this.windowRef = window;
31
32
  if ('BroadcastChannel' in window) {
32
33
  this.bc = new BroadcastChannel('mp_payment');
33
- this.bc.onmessage = (e) => this.onMpMessage(e?.data);
34
+ this.bc.onmessage = (e) => this.ngZone.run(() => this.onMpMessage(e?.data));
34
35
  }
35
- window.addEventListener('storage', this.onStorage);
36
- window.addEventListener('message', this.onWindowMessage);
36
+ window.addEventListener('storage', (e) => this.ngZone.run(() => this.onStorage(e)));
37
+ window.addEventListener('message', (e) => this.ngZone.run(() => this.onWindowMessage(e)));
37
38
  }
38
39
  this.getPreference();
39
40
  }
@@ -86,23 +87,29 @@ export class MpRedirectEcComponent {
86
87
  }, 1000);
87
88
  };
88
89
  onWindowMessage = (event) => {
89
- const data = event?.data;
90
- this.onMpMessage(data);
90
+ this.ngZone.run(() => {
91
+ const data = event?.data;
92
+ this.onMpMessage(data);
93
+ });
91
94
  };
92
95
  onStorage = (e) => {
93
- if (!e.key || !this.sid)
94
- return;
95
- if (e.key === `mp:state:${this.sid}` && e.newValue) {
96
- const state = e.newValue;
97
- this.finishWithState(state);
98
- }
96
+ this.ngZone.run(() => {
97
+ if (!e.key || !this.sid)
98
+ return;
99
+ if (e.key === `mp:state:${this.sid}` && e.newValue) {
100
+ const state = e.newValue;
101
+ this.finishWithState(state);
102
+ }
103
+ });
99
104
  };
100
105
  onMpMessage = (data) => {
101
- if (!data || data.type !== 'mp:state')
102
- return;
103
- if (data.sid !== this.sid)
104
- return;
105
- this.finishWithState(data.state);
106
+ this.ngZone.run(() => {
107
+ if (!data || data.type !== 'mp:state')
108
+ return;
109
+ if (data.sid !== this.sid)
110
+ return;
111
+ this.finishWithState(data.state);
112
+ });
106
113
  };
107
114
  checkLocalStorageOnce() {
108
115
  if (!this.sid)
@@ -113,32 +120,34 @@ export class MpRedirectEcComponent {
113
120
  }
114
121
  /** Cierra el flujo de pago con el estado final y notifica al padre. */
115
122
  finishWithState(state) {
116
- if (this.finished)
117
- return;
118
- this.finished = true;
119
- if (this.pollTimer)
120
- clearInterval(this.pollTimer);
121
- this.pollTimer = null;
122
- localStorage.removeItem(`mp:state:${this.sid}`);
123
- localStorage.removeItem('mp:sid');
124
- localStorage.removeItem('state');
125
- try {
126
- this.ventana && !this.ventana.closed && this.ventana.close();
127
- }
128
- catch { }
129
- this.ventana = null;
130
- if (state === 'success' || state === 'pending') {
131
- this.phase = 'finalizing';
132
- this.ready.emit(true);
133
- }
134
- else if (state === 'failure' || state === 'cancel') {
135
- this.phase = 'idle';
136
- this._toastService.show(state === 'cancel' ? 'Se canceló el pago con Mercado Pago' : 'payment-error');
137
- }
138
- else {
139
- this.phase = 'idle';
140
- this._toastService.show('payment-error');
141
- }
123
+ this.ngZone.run(() => {
124
+ if (this.finished)
125
+ return;
126
+ this.finished = true;
127
+ if (this.pollTimer)
128
+ clearInterval(this.pollTimer);
129
+ this.pollTimer = null;
130
+ localStorage.removeItem(`mp:state:${this.sid}`);
131
+ localStorage.removeItem('mp:sid');
132
+ localStorage.removeItem('state');
133
+ try {
134
+ this.ventana && !this.ventana.closed && this.ventana.close();
135
+ }
136
+ catch { }
137
+ this.ventana = null;
138
+ if (state === 'success' || state === 'pending') {
139
+ this.phase = 'finalizing';
140
+ this.ready.emit(true);
141
+ }
142
+ else if (state === 'failure' || state === 'cancel') {
143
+ this.phase = 'idle';
144
+ this._toastService.show(state === 'cancel' ? 'Se canceló el pago con Mercado Pago' : 'payment-error');
145
+ }
146
+ else {
147
+ this.phase = 'idle';
148
+ this._toastService.show('payment-error');
149
+ }
150
+ });
142
151
  }
143
152
  genSid() {
144
153
  return `mp_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
@@ -168,11 +177,11 @@ export class MpRedirectEcComponent {
168
177
  };
169
178
  renderMP = (_pref) => { };
170
179
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MpRedirectEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
171
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MpRedirectEcComponent, isStandalone: true, selector: "app-mp-redirect-ec", inputs: { method: "method", total_amount: "total_amount", allData: "allData" }, outputs: { ready: "ready" }, ngImport: i0, template: "<div class=\"text-center\">\r\n\t@if(url) {\r\n\r\n\t@if(isIdle) {\r\n\t<button (click)=\"iniciar()\" class=\"btn btn-outline-primary rounded-0 comprar mt-3\">Pagar</button>\r\n\t}\r\n\r\n\t@if(isPaying) {\r\n\t<div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\r\n\t\t<h3>Procesando el pago por Mercado Pago</h3>\r\n\t\t<h5>Record\u00E1 tocar \u201CVolver al sitio\u201D en Mercado Pago para finalizar.</h5>\r\n\t\t<app-loading-full-ec></app-loading-full-ec>\r\n\t</div>\r\n\r\n\t<div class=\"container-fluid\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<div class=\"col-5\">\r\n\t\t\t\t<hr>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"col-2 text-center\"><label>o</label></div>\r\n\t\t\t<div class=\"col-5\">\r\n\t\t\t\t<hr>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\r\n\t\t<button (click)=\"clickClose()\" class=\"btn btn-outline-secondary\">Cancelar pago</button>\r\n\t</div>\r\n\t}\r\n\r\n\t@if(isFinalizing) {\r\n\t<div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\r\n\t\t<h3>Confirmando pago y redirigiendo\u2026</h3>\r\n\t\t<h5>No cierres ni recargues esta p\u00E1gina.</h5>\r\n\t\t<app-loading-full-ec></app-loading-full-ec>\r\n\t</div>\r\n\t}\r\n\r\n\t} @else {\r\n\t<div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\r\n\t\t<app-loading-full-ec></app-loading-full-ec>\r\n\t</div>\r\n\t}\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }] });
180
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MpRedirectEcComponent, isStandalone: true, selector: "app-mp-redirect-ec", inputs: { method: "method", total_amount: "total_amount", allData: "allData" }, outputs: { ready: "ready" }, ngImport: i0, template: "<div class=\"text-center\">\n\t@if(url) {\n\n\t@if(isIdle) {\n\t<button (click)=\"iniciar()\" class=\"btn btn-outline-primary rounded-0 comprar mt-3\">Pagar</button>\n\t}\n\n\t@if(isPaying) {\n\t<div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\n\t\t<h3>Procesando el pago por Mercado Pago</h3>\n\t\t<h5>Record\u00E1 tocar \u201CVolver al sitio\u201D en Mercado Pago para finalizar.</h5>\n\t\t<app-loading-full-ec></app-loading-full-ec>\n\t</div>\n\n\t<div class=\"container-fluid\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-5\">\n\t\t\t\t<hr>\n\t\t\t</div>\n\t\t\t<div class=\"col-2 text-center\"><label>o</label></div>\n\t\t\t<div class=\"col-5\">\n\t\t\t\t<hr>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\n\t\t<button (click)=\"clickClose()\" class=\"btn btn-outline-secondary\">Cancelar pago</button>\n\t</div>\n\t}\n\n\t@if(isFinalizing) {\n\t<div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\n\t\t<h3>Confirmando pago y redirigiendo\u2026</h3>\n\t\t<h5>No cierres ni recargues esta p\u00E1gina.</h5>\n\t\t<app-loading-full-ec></app-loading-full-ec>\n\t</div>\n\t}\n\n\t} @else {\n\t<div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\n\t\t<app-loading-full-ec></app-loading-full-ec>\n\t</div>\n\t}\n</div>", styles: [""], dependencies: [{ kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }] });
172
181
  }
173
182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MpRedirectEcComponent, decorators: [{
174
183
  type: Component,
175
- args: [{ selector: 'app-mp-redirect-ec', standalone: true, imports: [LoadingFullEcComponent], template: "<div class=\"text-center\">\r\n\t@if(url) {\r\n\r\n\t@if(isIdle) {\r\n\t<button (click)=\"iniciar()\" class=\"btn btn-outline-primary rounded-0 comprar mt-3\">Pagar</button>\r\n\t}\r\n\r\n\t@if(isPaying) {\r\n\t<div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\r\n\t\t<h3>Procesando el pago por Mercado Pago</h3>\r\n\t\t<h5>Record\u00E1 tocar \u201CVolver al sitio\u201D en Mercado Pago para finalizar.</h5>\r\n\t\t<app-loading-full-ec></app-loading-full-ec>\r\n\t</div>\r\n\r\n\t<div class=\"container-fluid\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<div class=\"col-5\">\r\n\t\t\t\t<hr>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"col-2 text-center\"><label>o</label></div>\r\n\t\t\t<div class=\"col-5\">\r\n\t\t\t\t<hr>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\r\n\t\t<button (click)=\"clickClose()\" class=\"btn btn-outline-secondary\">Cancelar pago</button>\r\n\t</div>\r\n\t}\r\n\r\n\t@if(isFinalizing) {\r\n\t<div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\r\n\t\t<h3>Confirmando pago y redirigiendo\u2026</h3>\r\n\t\t<h5>No cierres ni recargues esta p\u00E1gina.</h5>\r\n\t\t<app-loading-full-ec></app-loading-full-ec>\r\n\t</div>\r\n\t}\r\n\r\n\t} @else {\r\n\t<div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\r\n\t\t<app-loading-full-ec></app-loading-full-ec>\r\n\t</div>\r\n\t}\r\n</div>" }]
184
+ args: [{ selector: 'app-mp-redirect-ec', standalone: true, imports: [LoadingFullEcComponent], template: "<div class=\"text-center\">\n\t@if(url) {\n\n\t@if(isIdle) {\n\t<button (click)=\"iniciar()\" class=\"btn btn-outline-primary rounded-0 comprar mt-3\">Pagar</button>\n\t}\n\n\t@if(isPaying) {\n\t<div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\n\t\t<h3>Procesando el pago por Mercado Pago</h3>\n\t\t<h5>Record\u00E1 tocar \u201CVolver al sitio\u201D en Mercado Pago para finalizar.</h5>\n\t\t<app-loading-full-ec></app-loading-full-ec>\n\t</div>\n\n\t<div class=\"container-fluid\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-5\">\n\t\t\t\t<hr>\n\t\t\t</div>\n\t\t\t<div class=\"col-2 text-center\"><label>o</label></div>\n\t\t\t<div class=\"col-5\">\n\t\t\t\t<hr>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\n\t\t<button (click)=\"clickClose()\" class=\"btn btn-outline-secondary\">Cancelar pago</button>\n\t</div>\n\t}\n\n\t@if(isFinalizing) {\n\t<div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\n\t\t<h3>Confirmando pago y redirigiendo\u2026</h3>\n\t\t<h5>No cierres ni recargues esta p\u00E1gina.</h5>\n\t\t<app-loading-full-ec></app-loading-full-ec>\n\t</div>\n\t}\n\n\t} @else {\n\t<div class=\"d-flex flex-column justify-content-center align-items-center mt-2\">\n\t\t<app-loading-full-ec></app-loading-full-ec>\n\t</div>\n\t}\n</div>" }]
176
185
  }], propDecorators: { method: [{
177
186
  type: Input
178
187
  }], total_amount: [{
@@ -182,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
182
191
  }], ready: [{
183
192
  type: Output
184
193
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXAtcmVkaXJlY3QtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvbXAtcmVkaXJlY3QtZWMvbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvbXAtcmVkaXJlY3QtZWMvbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBWXBELE1BQU0sT0FBTyxxQkFBcUI7SUFFekIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVoQixNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2QsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQU07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QiwyTENmbEMsMDhDQTRDTSwwREQvQkssc0JBQXNCOzs0RkFFcEIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNDLG9CQUFvQixjQUNsQixJQUFJLFdBR1AsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFTeEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUExBVEZPUk1fSUQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXltZW50U2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vd2lkZ2V0cy1lYyc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbnR5cGUgTXBTdGF0ZSA9ICdzdWNjZXNzJyB8ICdwZW5kaW5nJyB8ICdmYWlsdXJlJyB8ICdjYW5jZWwnO1xyXG50eXBlIFBoYXNlID0gJ2lkbGUnIHwgJ3BheWluZycgfCAnZmluYWxpemluZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1tcC1yZWRpcmVjdC1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL21wLXJlZGlyZWN0LWVjLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aW1wb3J0czogW0xvYWRpbmdGdWxsRWNDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNcFJlZGlyZWN0RWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG5cdHByaXZhdGUgX3BheW1lbnRTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuXHRwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRCk7XHJcblx0cHJpdmF0ZSBmaW5pc2hlZCA9IGZhbHNlO1xyXG5cclxuXHRASW5wdXQoKSBtZXRob2QgPSBudWxsO1xyXG5cdEBJbnB1dCgpIHRvdGFsX2Ftb3VudCA9IDA7XHJcblx0QElucHV0KCkgYWxsRGF0YTogYW55O1xyXG5cdEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcblx0cHJvdGVjdGVkIHByZWZlcmVuY2U6IGFueTtcclxuXHRwdWJsaWMgdXJsPzogc3RyaW5nO1xyXG5cclxuXHQvLyBGYXNlcyBkZSBVSVxyXG5cdHB1YmxpYyBwaGFzZTogUGhhc2UgPSAnaWRsZSc7XHJcblx0Z2V0IGlzSWRsZSgpIHsgcmV0dXJuIHRoaXMucGhhc2UgPT09ICdpZGxlJzsgfVxyXG5cdGdldCBpc1BheWluZygpIHsgcmV0dXJuIHRoaXMucGhhc2UgPT09ICdwYXlpbmcnOyB9XHJcblx0Z2V0IGlzRmluYWxpemluZygpIHsgcmV0dXJuIHRoaXMucGhhc2UgPT09ICdmaW5hbGl6aW5nJzsgfVxyXG5cclxuXHRwcml2YXRlIHZlbnRhbmE6IFdpbmRvdyB8IG51bGwgPSBudWxsO1xyXG5cdHByaXZhdGUgd2luZG93UmVmPzogV2luZG93O1xyXG5cdHByaXZhdGUgc2lkID0gJyc7XHJcblx0cHJpdmF0ZSBiYz86IEJyb2FkY2FzdENoYW5uZWw7XHJcblx0cHJpdmF0ZSBwb2xsVGltZXI/OiBhbnk7XHJcblx0cHJpdmF0ZSBwb2xsU3RhcnRlZEF0ID0gMDtcclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG5cdFx0XHR0aGlzLndpbmRvd1JlZiA9IHdpbmRvdztcclxuXHJcblx0XHRcdGlmICgnQnJvYWRjYXN0Q2hhbm5lbCcgaW4gd2luZG93KSB7XHJcblx0XHRcdFx0dGhpcy5iYyA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCdtcF9wYXltZW50Jyk7XHJcblx0XHRcdFx0dGhpcy5iYy5vbm1lc3NhZ2UgPSAoZTogTWVzc2FnZUV2ZW50KSA9PiB0aGlzLm9uTXBNZXNzYWdlKGU/LmRhdGEpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIHRoaXMub25TdG9yYWdlKTtcclxuXHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm9uV2luZG93TWVzc2FnZSk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5nZXRQcmVmZXJlbmNlKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG5cdFx0dGhpcy5iYz8uY2xvc2UoKTtcclxuXHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgdGhpcy5vblN0b3JhZ2UpO1xyXG5cdFx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm9uV2luZG93TWVzc2FnZSk7XHJcblx0XHRpZiAodGhpcy5wb2xsVGltZXIpIGNsZWFySW50ZXJ2YWwodGhpcy5wb2xsVGltZXIpO1xyXG5cdH1cclxuXHJcblx0LyoqIENhbmNlbGEgbWFudWFsbWVudGUgZWwgcGFnbyB5IGZpbmFsaXphIGVsIGZsdWpvIGNvbiBlc3RhZG8gXCJjYW5jZWxcIi4gKi9cclxuXHRjbGlja0Nsb3NlID0gKCkgPT4ge1xyXG5cdFx0aWYgKHRoaXMuZmluaXNoZWQpIHJldHVybjtcclxuXHRcdHRoaXMuZmluaXNoV2l0aFN0YXRlKCdjYW5jZWwnKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEluaWNpYSBlbCBwYWdvIGFicmllbmRvIGBpbml0X3BvaW50YCBlbiB1bmEgdmVudGFuYS9wZXN0YcOxYSBudWV2YS5cclxuXHQgKiBHZW5lcmEgdW4gU0lEIHkgbG8gcGVyc2lzdGUgcGFyYSBjYXNhciBsYSByZXNwdWVzdGEgZGVsIGNhdGNoLlxyXG5cdCAqIFNpIGVsIHBvcHVwIGVzIGJsb3F1ZWFkbywgaGFjZSBmYWxsYmFjayBuYXZlZ2FuZG8gZW4gbGEgbWlzbWEgcGVzdGHDsWEuXHJcblx0ICovXHJcblx0aW5pY2lhciA9ICgpID0+IHtcclxuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAhdGhpcy53aW5kb3dSZWYgfHwgIXRoaXMudXJsKSByZXR1cm47XHJcblxyXG5cdFx0dGhpcy5waGFzZSA9ICdwYXlpbmcnO1xyXG5cdFx0dGhpcy5zaWQgPSB0aGlzLmdlblNpZCgpO1xyXG5cdFx0Y29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnVybCk7XHJcblxyXG5cdFx0bG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21wOnNpZCcsIHRoaXMuc2lkKTtcclxuXHJcblx0XHR0aGlzLnZlbnRhbmEgPSB0aGlzLndpbmRvd1JlZi5vcGVuKHRoaXMudXJsLCAnX2JsYW5rJyk7XHJcblxyXG5cdFx0Ly8gcG9wdXAgYmxvcXVlYWRvIOKGkiBmYWxsYmFjayBhIG5hdmVnYWNpw7NuIGVuIG1pc21hIHBlc3Rhw7FhXHJcblx0XHRpZiAoIXRoaXMudmVudGFuYSB8fCB0aGlzLnZlbnRhbmEuY2xvc2VkKSB7XHJcblx0XHRcdHRoaXMud2luZG93UmVmLmxvY2F0aW9uLmhyZWYgPSB0aGlzLnVybDtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIHBvbGxpbmcgZGUgw7psdGltbyByZWN1cnNvIChoYXN0YSAxMCBtaW51dG9zKVxyXG5cdFx0dGhpcy5wb2xsU3RhcnRlZEF0ID0gRGF0ZS5ub3coKTtcclxuXHRcdGlmICh0aGlzLnBvbGxUaW1lcikgY2xlYXJJbnRlcnZhbCh0aGlzLnBvbGxUaW1lcik7XHJcblx0XHR0aGlzLnBvbGxUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcclxuXHRcdFx0aWYgKERhdGUubm93KCkgLSB0aGlzLnBvbGxTdGFydGVkQXQgPiAxMCAqIDYwICogMTAwMCkge1xyXG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy5wb2xsVGltZXIpO1xyXG5cdFx0XHRcdHRoaXMucG9sbFRpbWVyID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLnBoYXNlID0gJ2lkbGUnO1xyXG5cdFx0XHRcdHRoaXMucHJvY2Vzc0Vycm9yKCdUaWVtcG8gZGUgZXNwZXJhIGFnb3RhZG8gYWwgcHJvY2VzYXIgZWwgcGFnby4nKTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5jaGVja0xvY2FsU3RvcmFnZU9uY2UoKTtcclxuXHRcdH0sIDEwMDApO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBvbldpbmRvd01lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xyXG5cdFx0Y29uc3QgZGF0YSA9IGV2ZW50Py5kYXRhO1xyXG5cdFx0dGhpcy5vbk1wTWVzc2FnZShkYXRhKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgb25TdG9yYWdlID0gKGU6IFN0b3JhZ2VFdmVudCkgPT4ge1xyXG5cdFx0aWYgKCFlLmtleSB8fCAhdGhpcy5zaWQpIHJldHVybjtcclxuXHRcdGlmIChlLmtleSA9PT0gYG1wOnN0YXRlOiR7dGhpcy5zaWR9YCAmJiBlLm5ld1ZhbHVlKSB7XHJcblx0XHRcdGNvbnN0IHN0YXRlID0gZS5uZXdWYWx1ZSBhcyBNcFN0YXRlO1xyXG5cdFx0XHR0aGlzLmZpbmlzaFdpdGhTdGF0ZShzdGF0ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG9uTXBNZXNzYWdlID0gKGRhdGE6IGFueSkgPT4ge1xyXG5cdFx0aWYgKCFkYXRhIHx8IGRhdGEudHlwZSAhPT0gJ21wOnN0YXRlJykgcmV0dXJuO1xyXG5cdFx0aWYgKGRhdGEuc2lkICE9PSB0aGlzLnNpZCkgcmV0dXJuO1xyXG5cdFx0dGhpcy5maW5pc2hXaXRoU3RhdGUoZGF0YS5zdGF0ZSBhcyBNcFN0YXRlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY2hlY2tMb2NhbFN0b3JhZ2VPbmNlKCkge1xyXG5cdFx0aWYgKCF0aGlzLnNpZCkgcmV0dXJuO1xyXG5cdFx0Y29uc3Qgc3RhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgbXA6c3RhdGU6JHt0aGlzLnNpZH1gKSBhcyBNcFN0YXRlIHwgbnVsbDtcclxuXHRcdGlmIChzdGF0ZSkgdGhpcy5maW5pc2hXaXRoU3RhdGUoc3RhdGUpO1xyXG5cdH1cclxuXHJcblx0LyoqIENpZXJyYSBlbCBmbHVqbyBkZSBwYWdvIGNvbiBlbCBlc3RhZG8gZmluYWwgeSBub3RpZmljYSBhbCBwYWRyZS4gKi9cclxuXHRwcml2YXRlIGZpbmlzaFdpdGhTdGF0ZShzdGF0ZTogTXBTdGF0ZSkge1xyXG5cdFx0aWYgKHRoaXMuZmluaXNoZWQpIHJldHVybjtcclxuXHRcdHRoaXMuZmluaXNoZWQgPSB0cnVlO1xyXG5cclxuXHRcdGlmICh0aGlzLnBvbGxUaW1lcikgY2xlYXJJbnRlcnZhbCh0aGlzLnBvbGxUaW1lcik7XHJcblx0XHR0aGlzLnBvbGxUaW1lciA9IG51bGw7XHJcblxyXG5cdFx0bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYG1wOnN0YXRlOiR7dGhpcy5zaWR9YCk7XHJcblx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbXA6c2lkJyk7XHJcblx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKTtcclxuXHJcblx0XHR0cnkgeyB0aGlzLnZlbnRhbmEgJiYgIXRoaXMudmVudGFuYS5jbG9zZWQgJiYgdGhpcy52ZW50YW5hLmNsb3NlKCk7IH0gY2F0Y2ggeyB9XHJcblx0XHR0aGlzLnZlbnRhbmEgPSBudWxsO1xyXG5cclxuXHRcdGlmIChzdGF0ZSA9PT0gJ3N1Y2Nlc3MnIHx8IHN0YXRlID09PSAncGVuZGluZycpIHtcclxuXHRcdFx0dGhpcy5waGFzZSA9ICdmaW5hbGl6aW5nJztcclxuXHRcdFx0dGhpcy5yZWFkeS5lbWl0KHRydWUpO1xyXG5cdFx0fSBlbHNlIGlmIChzdGF0ZSA9PT0gJ2ZhaWx1cmUnIHx8IHN0YXRlID09PSAnY2FuY2VsJykge1xyXG5cdFx0XHR0aGlzLnBoYXNlID0gJ2lkbGUnO1xyXG5cdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdyhzdGF0ZSA9PT0gJ2NhbmNlbCcgPyAnU2UgY2FuY2Vsw7MgZWwgcGFnbyBjb24gTWVyY2FkbyBQYWdvJyA6ICdwYXltZW50LWVycm9yJyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnBoYXNlID0gJ2lkbGUnO1xyXG5cdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygncGF5bWVudC1lcnJvcicpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBnZW5TaWQoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBgbXBfJHtEYXRlLm5vdygpfV8ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDkpfWA7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHByb2Nlc3NFcnJvciA9IChtc2c6IHN0cmluZykgPT4ge1xyXG5cdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3cobXNnIHx8ICdwYXltZW50LWVycm9yJyk7XHJcblx0fVxyXG5cclxuXHQvKiogTGltcGlhIHBvc2libGVzIHJlc2lkdW9zIGRlIGVzdGFkbyBlbiBzdG9yYWdlcy4gKi9cclxuXHRjbGVhclN0b3JhZ2VTdGF0ZSA9ICgpID0+IHtcclxuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG5cdFx0bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJyk7XHJcblx0XHRjb25zdCBzaWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbXA6c2lkJyk7XHJcblx0XHRpZiAoc2lkKSBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShgbXA6c3RhdGU6JHtzaWR9YCk7XHJcblx0fVxyXG5cclxuXHQvKiogT2J0aWVuZSBsYSBwcmVmZXJlbmNpYSBlIGluaWNpYWxpemEgYHVybGAgKGluaXRfcG9pbnQpLiAqL1xyXG5cdHByaXZhdGUgZ2V0UHJlZmVyZW5jZSA9ICgpOiB2b2lkID0+IHtcclxuXHRcdHRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldFByZWZlcmVuY2UodGhpcy5hbGxEYXRhKS50aGVuKFxyXG5cdFx0XHQocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5wcmVmZXJlbmNlID0gcmVzO1xyXG5cdFx0XHRcdHRoaXMudXJsID0gdGhpcy5wcmVmZXJlbmNlPy5pbml0X3BvaW50O1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyTVAodGhpcy5wcmVmZXJlbmNlKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0KCkgPT4gdGhpcy5zZXRFcnJvcignb3BlcmF0aW9uLWVycm9yJylcclxuXHRcdCk7XHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSBzZXRFcnJvciA9IChtZXNzYWdlOiBhbnkpID0+IHtcclxuXHRcdC8vdGhpcy5lcnJvciA9IG1lc3NhZ2U7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHJlbmRlck1QID0gKF9wcmVmOiBhbnkpOiB2b2lkID0+IHsgLyogbm9vcCAqLyB9O1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG5cdEBpZih1cmwpIHtcclxuXHJcblx0QGlmKGlzSWRsZSkge1xyXG5cdDxidXR0b24gKGNsaWNrKT1cImluaWNpYXIoKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC0wIGNvbXByYXIgbXQtM1wiPlBhZ2FyPC9idXR0b24+XHJcblx0fVxyXG5cclxuXHRAaWYoaXNQYXlpbmcpIHtcclxuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c2l0ZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cclxuXHRcdDxoMz5Qcm9jZXNhbmRvIGVsIHBhZ28gcG9yIE1lcmNhZG8gUGFnbzwvaDM+XHJcblx0XHQ8aDU+UmVjb3Jkw6EgdG9jYXIg4oCcVm9sdmVyIGFsIHNpdGlv4oCdIGVuIE1lcmNhZG8gUGFnbyBwYXJhIGZpbmFsaXphci48L2g1PlxyXG5cdFx0PGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtNVwiPlxyXG5cdFx0XHRcdDxocj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMiB0ZXh0LWNlbnRlclwiPjxsYWJlbD5vPC9sYWJlbD48L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC01XCI+XHJcblx0XHRcdFx0PGhyPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cclxuXHRcdDxidXR0b24gKGNsaWNrKT1cImNsaWNrQ2xvc2UoKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiPkNhbmNlbGFyIHBhZ288L2J1dHRvbj5cclxuXHQ8L2Rpdj5cclxuXHR9XHJcblxyXG5cdEBpZihpc0ZpbmFsaXppbmcpIHtcclxuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c2l0ZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cclxuXHRcdDxoMz5Db25maXJtYW5kbyBwYWdvIHkgcmVkaXJpZ2llbmRv4oCmPC9oMz5cclxuXHRcdDxoNT5ObyBjaWVycmVzIG5pIHJlY2FyZ3VlcyBlc3RhIHDDoWdpbmEuPC9oNT5cclxuXHRcdDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cclxuXHQ8L2Rpdj5cclxuXHR9XHJcblxyXG5cdH0gQGVsc2Uge1xyXG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiPlxyXG5cdFx0PGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxyXG5cdDwvZGl2PlxyXG5cdH1cclxuPC9kaXY+Il19
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXAtcmVkaXJlY3QtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvbXAtcmVkaXJlY3QtZWMvbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvbXAtcmVkaXJlY3QtZWMvbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVlwRCxNQUFNLE9BQU8scUJBQXFCO0lBRXpCLGVBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyQyxVQUFVLEdBQVEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2QixNQUFNLEdBQUcs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QUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFBO0lBRUQsOERBQThEO0lBQ3RELGFBQWEsR0FBRyxHQUFTLEVBQUU7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDcEQsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxFQUNELEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FDdEMsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVNLFFBQVEsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO1FBQ25DLHVCQUF1QjtJQUN4QixDQUFDLENBQUE7SUFFTyxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQVEsRUFBRSxHQUFjLENBQUMsQ0FBQzt3R0FqTTVDLHFCQUFxQjs0RkFBckIscUJBQXFCLDJMQ2ZsQyxrM0NBNENNLDBERC9CSyxzQkFBc0I7OzRGQUVwQixxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0Msb0JBQW9CLGNBQ2xCLElBQUksV0FHUCxDQUFDLHNCQUFzQixDQUFDOzhCQVV4QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBQTEFURk9STV9JRCwgT25EZXN0cm95LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vd2lkZ2V0cy1lYyc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbnR5cGUgTXBTdGF0ZSA9ICdzdWNjZXNzJyB8ICdwZW5kaW5nJyB8ICdmYWlsdXJlJyB8ICdjYW5jZWwnO1xudHlwZSBQaGFzZSA9ICdpZGxlJyB8ICdwYXlpbmcnIHwgJ2ZpbmFsaXppbmcnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtbXAtcmVkaXJlY3QtZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZVVybDogJy4vbXAtcmVkaXJlY3QtZWMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9tcC1yZWRpcmVjdC1lYy5jb21wb25lbnQuc2NzcyddLFxuXHRpbXBvcnRzOiBbTG9hZGluZ0Z1bGxFY0NvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTXBSZWRpcmVjdEVjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG5cdHByaXZhdGUgX3BheW1lbnRTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG5cdHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblx0cHJpdmF0ZSBmaW5pc2hlZCA9IGZhbHNlO1xuXHRwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG5cdEBJbnB1dCgpIG1ldGhvZCA9IG51bGw7XG5cdEBJbnB1dCgpIHRvdGFsX2Ftb3VudCA9IDA7XG5cdEBJbnB1dCgpIGFsbERhdGE6IGFueTtcblx0QE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdHByb3RlY3RlZCBwcmVmZXJlbmNlOiBhbnk7XG5cdHB1YmxpYyB1cmw/OiBzdHJpbmc7XG5cblx0Ly8gRmFzZXMgZGUgVUlcblx0cHVibGljIHBoYXNlOiBQaGFzZSA9ICdpZGxlJztcblx0Z2V0IGlzSWRsZSgpIHsgcmV0dXJuIHRoaXMucGhhc2UgPT09ICdpZGxlJzsgfVxuXHRnZXQgaXNQYXlpbmcoKSB7IHJldHVybiB0aGlzLnBoYXNlID09PSAncGF5aW5nJzsgfVxuXHRnZXQgaXNGaW5hbGl6aW5nKCkgeyByZXR1cm4gdGhpcy5waGFzZSA9PT0gJ2ZpbmFsaXppbmcnOyB9XG5cblx0cHJpdmF0ZSB2ZW50YW5hOiBXaW5kb3cgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSB3aW5kb3dSZWY/OiBXaW5kb3c7XG5cdHByaXZhdGUgc2lkID0gJyc7XG5cdHByaXZhdGUgYmM/OiBCcm9hZGNhc3RDaGFubmVsO1xuXHRwcml2YXRlIHBvbGxUaW1lcj86IGFueTtcblx0cHJpdmF0ZSBwb2xsU3RhcnRlZEF0ID0gMDtcblxuXHRuZ09uSW5pdCgpIHtcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXHRcdFx0dGhpcy53aW5kb3dSZWYgPSB3aW5kb3c7XG5cblx0XHRcdGlmICgnQnJvYWRjYXN0Q2hhbm5lbCcgaW4gd2luZG93KSB7XG5cdFx0XHRcdHRoaXMuYmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgnbXBfcGF5bWVudCcpO1xuXHRcdFx0XHR0aGlzLmJjLm9ubWVzc2FnZSA9IChlOiBNZXNzYWdlRXZlbnQpID0+XG5cdFx0XHRcdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25NcE1lc3NhZ2UoZT8uZGF0YSkpO1xuXHRcdFx0fVxuXG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIChlKSA9PlxuXHRcdFx0XHR0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vblN0b3JhZ2UoZSBhcyBTdG9yYWdlRXZlbnQpKVxuXHRcdFx0KTtcblx0XHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGUpID0+XG5cdFx0XHRcdHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uV2luZG93TWVzc2FnZShlIGFzIE1lc3NhZ2VFdmVudCkpXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHRoaXMuZ2V0UHJlZmVyZW5jZSgpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cdFx0dGhpcy5iYz8uY2xvc2UoKTtcblx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIHRoaXMub25TdG9yYWdlKTtcblx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMub25XaW5kb3dNZXNzYWdlKTtcblx0XHRpZiAodGhpcy5wb2xsVGltZXIpIGNsZWFySW50ZXJ2YWwodGhpcy5wb2xsVGltZXIpO1xuXHR9XG5cblx0LyoqIENhbmNlbGEgbWFudWFsbWVudGUgZWwgcGFnbyB5IGZpbmFsaXphIGVsIGZsdWpvIGNvbiBlc3RhZG8gXCJjYW5jZWxcIi4gKi9cblx0Y2xpY2tDbG9zZSA9ICgpID0+IHtcblx0XHRpZiAodGhpcy5maW5pc2hlZCkgcmV0dXJuO1xuXHRcdHRoaXMuZmluaXNoV2l0aFN0YXRlKCdjYW5jZWwnKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbmljaWEgZWwgcGFnbyBhYnJpZW5kbyBgaW5pdF9wb2ludGAgZW4gdW5hIHZlbnRhbmEvcGVzdGHDsWEgbnVldmEuXG5cdCAqIEdlbmVyYSB1biBTSUQgeSBsbyBwZXJzaXN0ZSBwYXJhIGNhc2FyIGxhIHJlc3B1ZXN0YSBkZWwgY2F0Y2guXG5cdCAqIFNpIGVsIHBvcHVwIGVzIGJsb3F1ZWFkbywgaGFjZSBmYWxsYmFjayBuYXZlZ2FuZG8gZW4gbGEgbWlzbWEgcGVzdGHDsWEuXG5cdCAqL1xuXHRpbmljaWFyID0gKCkgPT4ge1xuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAhdGhpcy53aW5kb3dSZWYgfHwgIXRoaXMudXJsKSByZXR1cm47XG5cblx0XHR0aGlzLnBoYXNlID0gJ3BheWluZyc7XG5cdFx0dGhpcy5zaWQgPSB0aGlzLmdlblNpZCgpO1xuXHRcdGNvbnN0IHVybCA9IG5ldyBVUkwodGhpcy51cmwpO1xuXG5cdFx0bG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21wOnNpZCcsIHRoaXMuc2lkKTtcblxuXHRcdHRoaXMudmVudGFuYSA9IHRoaXMud2luZG93UmVmLm9wZW4odGhpcy51cmwsICdfYmxhbmsnKTtcblxuXHRcdC8vIHBvcHVwIGJsb3F1ZWFkbyDihpIgZmFsbGJhY2sgYSBuYXZlZ2FjacOzbiBlbiBtaXNtYSBwZXN0YcOxYVxuXHRcdGlmICghdGhpcy52ZW50YW5hIHx8IHRoaXMudmVudGFuYS5jbG9zZWQpIHtcblx0XHRcdHRoaXMud2luZG93UmVmLmxvY2F0aW9uLmhyZWYgPSB0aGlzLnVybDtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBwb2xsaW5nIGRlIMO6bHRpbW8gcmVjdXJzbyAoaGFzdGEgMTAgbWludXRvcylcblx0XHR0aGlzLnBvbGxTdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuXHRcdGlmICh0aGlzLnBvbGxUaW1lcikgY2xlYXJJbnRlcnZhbCh0aGlzLnBvbGxUaW1lcik7XG5cdFx0dGhpcy5wb2xsVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRpZiAoRGF0ZS5ub3coKSAtIHRoaXMucG9sbFN0YXJ0ZWRBdCA+IDEwICogNjAgKiAxMDAwKSB7XG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy5wb2xsVGltZXIpO1xuXHRcdFx0XHR0aGlzLnBvbGxUaW1lciA9IG51bGw7XG5cdFx0XHRcdHRoaXMucGhhc2UgPSAnaWRsZSc7XG5cdFx0XHRcdHRoaXMucHJvY2Vzc0Vycm9yKCdUaWVtcG8gZGUgZXNwZXJhIGFnb3RhZG8gYWwgcHJvY2VzYXIgZWwgcGFnby4nKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5jaGVja0xvY2FsU3RvcmFnZU9uY2UoKTtcblx0XHR9LCAxMDAwKTtcblx0fVxuXG5cdHByaXZhdGUgb25XaW5kb3dNZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcblx0XHR0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuXHRcdFx0Y29uc3QgZGF0YSA9IGV2ZW50Py5kYXRhO1xuXHRcdFx0dGhpcy5vbk1wTWVzc2FnZShkYXRhKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgb25TdG9yYWdlID0gKGU6IFN0b3JhZ2VFdmVudCkgPT4ge1xuXHRcdHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG5cdFx0XHRpZiAoIWUua2V5IHx8ICF0aGlzLnNpZCkgcmV0dXJuO1xuXHRcdFx0aWYgKGUua2V5ID09PSBgbXA6c3RhdGU6JHt0aGlzLnNpZH1gICYmIGUubmV3VmFsdWUpIHtcblx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBlLm5ld1ZhbHVlIGFzIE1wU3RhdGU7XG5cdFx0XHRcdHRoaXMuZmluaXNoV2l0aFN0YXRlKHN0YXRlKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgb25NcE1lc3NhZ2UgPSAoZGF0YTogYW55KSA9PiB7XG5cdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcblx0XHRcdGlmICghZGF0YSB8fCBkYXRhLnR5cGUgIT09ICdtcDpzdGF0ZScpIHJldHVybjtcblx0XHRcdGlmIChkYXRhLnNpZCAhPT0gdGhpcy5zaWQpIHJldHVybjtcblx0XHRcdHRoaXMuZmluaXNoV2l0aFN0YXRlKGRhdGEuc3RhdGUgYXMgTXBTdGF0ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNoZWNrTG9jYWxTdG9yYWdlT25jZSgpIHtcblx0XHRpZiAoIXRoaXMuc2lkKSByZXR1cm47XG5cdFx0Y29uc3Qgc3RhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgbXA6c3RhdGU6JHt0aGlzLnNpZH1gKSBhcyBNcFN0YXRlIHwgbnVsbDtcblx0XHRpZiAoc3RhdGUpIHRoaXMuZmluaXNoV2l0aFN0YXRlKHN0YXRlKTtcblx0fVxuXG5cdC8qKiBDaWVycmEgZWwgZmx1am8gZGUgcGFnbyBjb24gZWwgZXN0YWRvIGZpbmFsIHkgbm90aWZpY2EgYWwgcGFkcmUuICovXG5cdHByaXZhdGUgZmluaXNoV2l0aFN0YXRlKHN0YXRlOiBNcFN0YXRlKSB7XG5cdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmZpbmlzaGVkKSByZXR1cm47XG5cdFx0XHR0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcblxuXHRcdFx0aWYgKHRoaXMucG9sbFRpbWVyKSBjbGVhckludGVydmFsKHRoaXMucG9sbFRpbWVyKTtcblx0XHRcdHRoaXMucG9sbFRpbWVyID0gbnVsbDtcblxuXHRcdFx0bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYG1wOnN0YXRlOiR7dGhpcy5zaWR9YCk7XG5cdFx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnbXA6c2lkJyk7XG5cdFx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3RhdGUnKTtcblxuXHRcdFx0dHJ5IHsgdGhpcy52ZW50YW5hICYmICF0aGlzLnZlbnRhbmEuY2xvc2VkICYmIHRoaXMudmVudGFuYS5jbG9zZSgpOyB9IGNhdGNoIHsgfVxuXHRcdFx0dGhpcy52ZW50YW5hID0gbnVsbDtcblxuXHRcdFx0aWYgKHN0YXRlID09PSAnc3VjY2VzcycgfHwgc3RhdGUgPT09ICdwZW5kaW5nJykge1xuXHRcdFx0XHR0aGlzLnBoYXNlID0gJ2ZpbmFsaXppbmcnO1xuXHRcdFx0XHR0aGlzLnJlYWR5LmVtaXQodHJ1ZSk7XG5cdFx0XHR9IGVsc2UgaWYgKHN0YXRlID09PSAnZmFpbHVyZScgfHwgc3RhdGUgPT09ICdjYW5jZWwnKSB7XG5cdFx0XHRcdHRoaXMucGhhc2UgPSAnaWRsZSc7XG5cdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KHN0YXRlID09PSAnY2FuY2VsJyA/ICdTZSBjYW5jZWzDsyBlbCBwYWdvIGNvbiBNZXJjYWRvIFBhZ28nIDogJ3BheW1lbnQtZXJyb3InKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMucGhhc2UgPSAnaWRsZSc7XG5cdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdwYXltZW50LWVycm9yJyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGdlblNpZCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgbXBfJHtEYXRlLm5vdygpfV8ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDkpfWA7XG5cdH1cblxuXHRwcml2YXRlIHByb2Nlc3NFcnJvciA9IChtc2c6IHN0cmluZykgPT4ge1xuXHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KG1zZyB8fCAncGF5bWVudC1lcnJvcicpO1xuXHR9XG5cblx0LyoqIExpbXBpYSBwb3NpYmxlcyByZXNpZHVvcyBkZSBlc3RhZG8gZW4gc3RvcmFnZXMuICovXG5cdGNsZWFyU3RvcmFnZVN0YXRlID0gKCkgPT4ge1xuXHRcdGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXHRcdGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdGF0ZScpO1xuXHRcdGNvbnN0IHNpZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtcDpzaWQnKTtcblx0XHRpZiAoc2lkKSBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShgbXA6c3RhdGU6JHtzaWR9YCk7XG5cdH1cblxuXHQvKiogT2J0aWVuZSBsYSBwcmVmZXJlbmNpYSBlIGluaWNpYWxpemEgYHVybGAgKGluaXRfcG9pbnQpLiAqL1xuXHRwcml2YXRlIGdldFByZWZlcmVuY2UgPSAoKTogdm9pZCA9PiB7XG5cdFx0dGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0UHJlZmVyZW5jZSh0aGlzLmFsbERhdGEpLnRoZW4oXG5cdFx0XHQocmVzKSA9PiB7XG5cdFx0XHRcdHRoaXMucHJlZmVyZW5jZSA9IHJlcztcblx0XHRcdFx0dGhpcy51cmwgPSB0aGlzLnByZWZlcmVuY2U/LmluaXRfcG9pbnQ7XG5cdFx0XHRcdHRoaXMucmVuZGVyTVAodGhpcy5wcmVmZXJlbmNlKTtcblx0XHRcdH0sXG5cdFx0XHQoKSA9PiB0aGlzLnNldEVycm9yKCdvcGVyYXRpb24tZXJyb3InKVxuXHRcdCk7XG5cdH07XG5cblx0cHJpdmF0ZSBzZXRFcnJvciA9IChtZXNzYWdlOiBhbnkpID0+IHtcblx0XHQvL3RoaXMuZXJyb3IgPSBtZXNzYWdlO1xuXHR9XG5cblx0cHJpdmF0ZSByZW5kZXJNUCA9IChfcHJlZjogYW55KTogdm9pZCA9PiB7IC8qIG5vb3AgKi8gfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuXHRAaWYodXJsKSB7XG5cblx0QGlmKGlzSWRsZSkge1xuXHQ8YnV0dG9uIChjbGljayk9XCJpbmljaWFyKClcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHJvdW5kZWQtMCBjb21wcmFyIG10LTNcIj5QYWdhcjwvYnV0dG9uPlxuXHR9XG5cblx0QGlmKGlzUGF5aW5nKSB7XG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzaXRmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiPlxuXHRcdDxoMz5Qcm9jZXNhbmRvIGVsIHBhZ28gcG9yIE1lcmNhZG8gUGFnbzwvaDM+XG5cdFx0PGg1PlJlY29yZMOhIHRvY2FyIOKAnFZvbHZlciBhbCBzaXRpb+KAnSBlbiBNZXJjYWRvIFBhZ28gcGFyYSBmaW5hbGl6YXIuPC9oNT5cblx0XHQ8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cblx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTVcIj5cblx0XHRcdFx0PGhyPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTIgdGV4dC1jZW50ZXJcIj48bGFiZWw+bzwvbGFiZWw+PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTVcIj5cblx0XHRcdFx0PGhyPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiPlxuXHRcdDxidXR0b24gKGNsaWNrKT1cImNsaWNrQ2xvc2UoKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiPkNhbmNlbGFyIHBhZ288L2J1dHRvbj5cblx0PC9kaXY+XG5cdH1cblxuXHRAaWYoaXNGaW5hbGl6aW5nKSB7XG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzaXRmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgbXQtMlwiPlxuXHRcdDxoMz5Db25maXJtYW5kbyBwYWdvIHkgcmVkaXJpZ2llbmRv4oCmPC9oMz5cblx0XHQ8aDU+Tm8gY2llcnJlcyBuaSByZWNhcmd1ZXMgZXN0YSBww6FnaW5hLjwvaDU+XG5cdFx0PGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxuXHQ8L2Rpdj5cblx0fVxuXG5cdH0gQGVsc2Uge1xuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cblx0XHQ8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XG5cdDwvZGl2PlxuXHR9XG48L2Rpdj4iXX0=
@@ -11,14 +11,14 @@ export class OfflineEcComponent {
11
11
  ngOnInit() {
12
12
  }
13
13
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OfflineEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OfflineEcComponent, isStandalone: true, selector: "app-offline-ec", inputs: { method: "method", verifyValidate: "verifyValidate", setLoading: "setLoading" }, ngImport: i0, template: "<p id=\"faqs\" class=\"qt px-5\">{{ method.description }}</p>\r\n<p class=\"px-5\">{{ method.instructions }}</p>\r\n<div class=\"end-button\">\r\n\t<button class=\"btn btn-outline-primary\" (click)=\"setLoading() && verifyValidate()\">{{\r\n\t\t('pay-with-offline'| translate) }}</button>\r\n</div>\r\n<!-- @if(loading$ | async; as loading){\r\n @if(loading){\r\n <div class=\"mt-2\">\r\n <app-loading-inline-ec></app-loading-inline-ec>\r\n </div>\r\n }\r\n} -->", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OfflineEcComponent, isStandalone: true, selector: "app-offline-ec", inputs: { method: "method", verifyValidate: "verifyValidate", setLoading: "setLoading" }, ngImport: i0, template: "<p id=\"faqs\" class=\"qt px-5\">{{ method.description }}</p>\n<p class=\"px-5\">{{ method.instructions }}</p>\n<div class=\"end-button\">\n\t<button class=\"btn btn-outline-primary\" (click)=\"setLoading() && verifyValidate()\">{{\n\t\t('pay-with-offline'| translate) }}</button>\n</div>\n<!-- @if(loading$ | async; as loading){\n @if(loading){\n <div class=\"mt-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n }\n} -->", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OfflineEcComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'app-offline-ec', standalone: true, imports: [
19
19
  LoadingInlineEcComponent,
20
20
  TranslateModule
21
- ], template: "<p id=\"faqs\" class=\"qt px-5\">{{ method.description }}</p>\r\n<p class=\"px-5\">{{ method.instructions }}</p>\r\n<div class=\"end-button\">\r\n\t<button class=\"btn btn-outline-primary\" (click)=\"setLoading() && verifyValidate()\">{{\r\n\t\t('pay-with-offline'| translate) }}</button>\r\n</div>\r\n<!-- @if(loading$ | async; as loading){\r\n @if(loading){\r\n <div class=\"mt-2\">\r\n <app-loading-inline-ec></app-loading-inline-ec>\r\n </div>\r\n }\r\n} -->" }]
21
+ ], template: "<p id=\"faqs\" class=\"qt px-5\">{{ method.description }}</p>\n<p class=\"px-5\">{{ method.instructions }}</p>\n<div class=\"end-button\">\n\t<button class=\"btn btn-outline-primary\" (click)=\"setLoading() && verifyValidate()\">{{\n\t\t('pay-with-offline'| translate) }}</button>\n</div>\n<!-- @if(loading$ | async; as loading){\n @if(loading){\n <div class=\"mt-2\">\n <app-loading-inline-ec></app-loading-inline-ec>\n </div>\n }\n} -->" }]
22
22
  }], ctorParameters: () => [], propDecorators: { method: [{
23
23
  type: Input,
24
24
  args: [{
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
29
29
  }], setLoading: [{
30
30
  type: Input
31
31
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9wYXltZW50LWVjL3BheW1lbnQtbWV0aG9kcy9vZmZsaW5lLWVjL29mZmxpbmUtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvb2ZmbGluZS1lYy9vZmZsaW5lLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBWXRELE1BQU0sT0FBTyxrQkFBa0I7SUFHM0IsTUFBTSxDQUFNO0lBQ04sY0FBYyxDQUFNO0lBQ3BCLFVBQVUsQ0FBTTtJQUN6QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzt3R0FUVyxrQkFBa0I7NEZBQWxCLGtCQUFrQixvS0NkL0IsdWRBWUsseUREREgsZUFBZTs7NEZBR0osa0JBQWtCO2tCQVY5QixTQUFTOytCQUNDLGdCQUFnQixjQUNkLElBQUksV0FHUDt3QkFDUix3QkFBd0I7d0JBQ3hCLGVBQWU7cUJBQ2Y7d0RBS0UsTUFBTTtzQkFGUixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQUNRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2FkaW5nSW5saW5lRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi93aWRnZXRzLWVjJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1vZmZsaW5lLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9vZmZsaW5lLWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9vZmZsaW5lLWVjLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aW1wb3J0czogW1xyXG5cdFx0TG9hZGluZ0lubGluZUVjQ29tcG9uZW50LFxyXG5cdFx0VHJhbnNsYXRlTW9kdWxlXHJcblx0XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT2ZmbGluZUVjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRASW5wdXQoe1xyXG5cdFx0cmVxdWlyZWQ6IHRydWUsXHJcblx0fSkgbWV0aG9kOiBhbnk7XHJcblx0QElucHV0KCkgdmVyaWZ5VmFsaWRhdGU6IGFueTtcclxuXHRASW5wdXQoKSBzZXRMb2FkaW5nOiBhbnk7XHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0fVxyXG5cclxufVxyXG4iLCI8cCBpZD1cImZhcXNcIiBjbGFzcz1cInF0IHB4LTVcIj57eyBtZXRob2QuZGVzY3JpcHRpb24gfX08L3A+XHJcbjxwIGNsYXNzPVwicHgtNVwiPnt7IG1ldGhvZC5pbnN0cnVjdGlvbnMgfX08L3A+XHJcbjxkaXYgY2xhc3M9XCJlbmQtYnV0dG9uXCI+XHJcblx0PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cInNldExvYWRpbmcoKSAmJiB2ZXJpZnlWYWxpZGF0ZSgpXCI+e3tcclxuXHRcdCgncGF5LXdpdGgtb2ZmbGluZSd8IHRyYW5zbGF0ZSkgfX08L2J1dHRvbj5cclxuPC9kaXY+XHJcbjwhLS0gQGlmKGxvYWRpbmckIHwgYXN5bmM7IGFzIGxvYWRpbmcpe1xyXG4gIEBpZihsb2FkaW5nKXtcclxuICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxyXG4gICAgPGFwcC1sb2FkaW5nLWlubGluZS1lYz48L2FwcC1sb2FkaW5nLWlubGluZS1lYz5cclxuICA8L2Rpdj5cclxuICB9XHJcbn0gLS0+Il19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9wYXltZW50LWVjL3BheW1lbnQtbWV0aG9kcy9vZmZsaW5lLWVjL29mZmxpbmUtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LW1ldGhvZHMvb2ZmbGluZS1lYy9vZmZsaW5lLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBWXRELE1BQU0sT0FBTyxrQkFBa0I7SUFHM0IsTUFBTSxDQUFNO0lBQ04sY0FBYyxDQUFNO0lBQ3BCLFVBQVUsQ0FBTTtJQUN6QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzt3R0FUVyxrQkFBa0I7NEZBQWxCLGtCQUFrQixvS0NkL0IsK2JBWUsseUREREgsZUFBZTs7NEZBR0osa0JBQWtCO2tCQVY5QixTQUFTOytCQUNDLGdCQUFnQixjQUNkLElBQUksV0FHUDt3QkFDUix3QkFBd0I7d0JBQ3hCLGVBQWU7cUJBQ2Y7d0RBS0UsTUFBTTtzQkFGUixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQUNRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGluZ0lubGluZUVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vd2lkZ2V0cy1lYyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLW9mZmxpbmUtZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZVVybDogJy4vb2ZmbGluZS1lYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL29mZmxpbmUtZWMuY29tcG9uZW50LnNjc3MnXSxcblx0aW1wb3J0czogW1xuXHRcdExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCxcblx0XHRUcmFuc2xhdGVNb2R1bGVcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBPZmZsaW5lRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHRASW5wdXQoe1xuXHRcdHJlcXVpcmVkOiB0cnVlLFxuXHR9KSBtZXRob2Q6IGFueTtcblx0QElucHV0KCkgdmVyaWZ5VmFsaWRhdGU6IGFueTtcblx0QElucHV0KCkgc2V0TG9hZGluZzogYW55O1xuXHRjb25zdHJ1Y3RvcigpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHR9XG5cbn1cbiIsIjxwIGlkPVwiZmFxc1wiIGNsYXNzPVwicXQgcHgtNVwiPnt7IG1ldGhvZC5kZXNjcmlwdGlvbiB9fTwvcD5cbjxwIGNsYXNzPVwicHgtNVwiPnt7IG1ldGhvZC5pbnN0cnVjdGlvbnMgfX08L3A+XG48ZGl2IGNsYXNzPVwiZW5kLWJ1dHRvblwiPlxuXHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwic2V0TG9hZGluZygpICYmIHZlcmlmeVZhbGlkYXRlKClcIj57e1xuXHRcdCgncGF5LXdpdGgtb2ZmbGluZSd8IHRyYW5zbGF0ZSkgfX08L2J1dHRvbj5cbjwvZGl2PlxuPCEtLSBAaWYobG9hZGluZyQgfCBhc3luYzsgYXMgbG9hZGluZyl7XG4gIEBpZihsb2FkaW5nKXtcbiAgPGRpdiBjbGFzcz1cIm10LTJcIj5cbiAgICA8YXBwLWxvYWRpbmctaW5saW5lLWVjPjwvYXBwLWxvYWRpbmctaW5saW5lLWVjPlxuICA8L2Rpdj5cbiAgfVxufSAtLT4iXX0=
@@ -137,10 +137,10 @@ export class ShipmentEcComponent {
137
137
  this._checkoutService.next();
138
138
  }
139
139
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShipmentEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
140
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ShipmentEcComponent, isStandalone: true, selector: "app-shipment-ec", ngImport: i0, template: "<div class=\"container-fluid\">\r\n\t<div class=\"col-12\">\r\n\t\t<div class=\"card text-center\">\r\n\t\t\t<div class=\"card-header text-dark\">\r\n\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\r\n\t\t\t\t@if(methods$ | async; as methods){\r\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\r\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\r\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\r\n\t\t\t\t\t\t\t\t@for(method of filterMethods(methods); track $index){\r\n\t\t\t\t\t\t\t\t<button [disabled]=\"buttonsDisabled\" type=\"button\"\r\n\t\t\t\t\t\t\t\t\t[class]=\"'btn btn-outline-secondary mx-1 mb-1' + (isMethodActive(method.code) ? ' active' : '')\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"setMethod(method)\">\r\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}@else {\r\n\t\t\t\t\t<div class=\"d-flex flex-row w-100 justify-content-center mt-2\">\r\n\t\t\t\t\t\t<h5 class=\"text-secondary\">{{'no-shipment-methods'|translate}}</h5>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"card-body\">\r\n\t\t\t\t@if(moreInfoInMethod && methodSelect && methodSelect.description){\r\n <div class=\"row justify-content-center mb-2\">\r\n <div class=\"col-12 col-md-6 col-lg-4 d-flex flex-column mb-2\" [id]=\"methodSelect.code\">\r\n @for(line of methodSelect.description.split('\\r\\n'); track $index; let i=$index){\r\n <span [id]=\"methodSelect.code+'-'+i\" [class]=\"'line-'+i\">{{line}}</span>\r\n\t\t\t\t\t }\r\n </div>\r\n </div>}\r\n\t\t\t\t@if(costs$ | async; as costs){\r\n<!-- \t\t\t\t @if(costs){ -->\r\n <div class=\"row justify-content-center\">\r\n @if(!loadingInternal){\r\n\t\t\t\t\t\t@for(cost of costs; track $index; let y = $index){\r\n <div class=\"col-auto text-dark\">\r\n\t\t\t\t\t\t\t@if(cost.contracts.length > 0){\r\n\t\t\t\t\t\t\t\t@if(costs.length > 1){\r\n\t\t\t\t\t\t\t\t\t<span><b>{{ cost.name | translate }}</b></span>\r\n\t\t\t\t\t\t\t\t\t<hr />\r\n\t\t\t\t\t\t\t\t}@else{\r\n\t\t\t\t\t\t\t\t\t<span><b>{{ methodSelect.name | translate }}</b></span>\r\n\t\t\t\t\t\t\t\t\t<hr />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@for(contract of cost.contracts; track $index; let i = $index){\r\n <div class=\"option\">\r\n <div class=\"form-check current-contract\">\r\n <input class=\"form-check-input\" [checked]=\"(y === 0 && i === 0) ? true : contract.selected\" type=\"radio\" name=\"card\" [id]=\"cost.name + i\"\r\n value=\"dark\" (click)=\"verifyValidate(costs,cost.name, contract)\">\r\n <label class=\"form-check-label\" [for]=\"cost.name + i\" aria-label=\"Dark grey\">\r\n @if(validName(contract.name)){\r\n\t\t\t\t\t\t\t\t\t\t\t<span\r\n [class]=\"(cost.name == 'home_delivery') ? 'shipment-contractname home_delivery' : 'shipment-contractname' \">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{ contract.name | translate }}\r\n\t\t\t\t\t\t\t\t\t\t\t</span>}\r\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.computed){\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span><br class=\"shipment-contractname\">{{ contract.computed | translate }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<br class=\"shipment-contractname\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.detail){\r\n <div class=\"contract-detail\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t@for(line of contract.detail.split(' - '); track $index; let i = $index){\r\n <div [class]=\"'contrat-item-'+i\">\r\n @if(i == 0){<span><b>{{ line }}</b></span>}\r\n @if(i > 0){<span class=\"inside-detail\">{{ line }}</span>}\r\n </div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n </div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.price > 0){\r\n <span [class]=\"'inside-detail ' + ( costos?.amount == 0 ? ' free ' : '') \">\r\n @if(!contract.computed){<br class=\"shipment-contractname\">}\r\n {{ ('price'|translate) + ': ' + (contract.price | ecCurrencySymbol) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n <br>\r\n </label>\r\n </div>\r\n </div>\r\n\t\t\t\t\t\t\t\t}\r\n \r\n\t\t\t\t\t\t\t}\r\n </div>\r\n\t\t\t\t\t\t}\r\n }@else {\r\n\t\t\t\t\t\t<app-loading-full-ec></app-loading-full-ec>\r\n\t\t\t\t\t}\r\n </div>\r\n\t\t\t\t}\r\n\t\t\t\t\r\n </div>\r\n\r\n\t\t</div>\r\n\t\t<div class=\"row d-flex flex-row\">\r\n\t\t\t<div class=\"col-12 d-flex justify-content-between\">\r\n\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\r\n\t\t\t\t<button type=\"submit\" (click)=\"next()\" [disabled]=\"!enabledConfirmButton\" class=\"btn btn-primary text-white\">{{(isLastOne\r\n\t\t\t\t\t? 'finish-checkout' :'ready-form') | translate}}\r\n\t\t\t\t\t<!-- {{(allready_data ? 'update' : (isLastOne ? 'finish-checkout' : 'ready-form')) | translate}} -->\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }] });
140
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ShipmentEcComponent, isStandalone: true, selector: "app-shipment-ec", ngImport: i0, template: "<div class=\"container-fluid\">\n\t<div class=\"col-12\">\n\t\t<div class=\"card text-center\">\n\t\t\t<div class=\"card-header text-dark\">\n\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t@if(methods$ | async; as methods){\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 filterMethods(methods); track $index){\n\t\t\t\t\t\t\t\t<button [disabled]=\"buttonsDisabled\" type=\"button\"\n\t\t\t\t\t\t\t\t\t[class]=\"'btn btn-outline-secondary mx-1 mb-1' + (isMethodActive(method.code) ? ' active' : '')\"\n\t\t\t\t\t\t\t\t\t(click)=\"setMethod(method)\">\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}@else {\n\t\t\t\t\t<div class=\"d-flex flex-row w-100 justify-content-center mt-2\">\n\t\t\t\t\t\t<h5 class=\"text-secondary\">{{'no-shipment-methods'|translate}}</h5>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"card-body\">\n\t\t\t\t@if(moreInfoInMethod && methodSelect && methodSelect.description){\n <div class=\"row justify-content-center mb-2\">\n <div class=\"col-12 col-md-6 col-lg-4 d-flex flex-column mb-2\" [id]=\"methodSelect.code\">\n @for(line of methodSelect.description.split('\\r\\n'); track $index; let i=$index){\n <span [id]=\"methodSelect.code+'-'+i\" [class]=\"'line-'+i\">{{line}}</span>\n\t\t\t\t\t }\n </div>\n </div>}\n\t\t\t\t@if(costs$ | async; as costs){\n<!-- \t\t\t\t @if(costs){ -->\n <div class=\"row justify-content-center\">\n @if(!loadingInternal){\n\t\t\t\t\t\t@for(cost of costs; track $index; let y = $index){\n <div class=\"col-auto text-dark\">\n\t\t\t\t\t\t\t@if(cost.contracts.length > 0){\n\t\t\t\t\t\t\t\t@if(costs.length > 1){\n\t\t\t\t\t\t\t\t\t<span><b>{{ cost.name | translate }}</b></span>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t}@else{\n\t\t\t\t\t\t\t\t\t<span><b>{{ methodSelect.name | translate }}</b></span>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t@for(contract of cost.contracts; track $index; let i = $index){\n <div class=\"option\">\n <div class=\"form-check current-contract\">\n <input class=\"form-check-input\" [checked]=\"(y === 0 && i === 0) ? true : contract.selected\" type=\"radio\" name=\"card\" [id]=\"cost.name + i\"\n value=\"dark\" (click)=\"verifyValidate(costs,cost.name, contract)\">\n <label class=\"form-check-label\" [for]=\"cost.name + i\" aria-label=\"Dark grey\">\n @if(validName(contract.name)){\n\t\t\t\t\t\t\t\t\t\t\t<span\n [class]=\"(cost.name == 'home_delivery') ? 'shipment-contractname home_delivery' : 'shipment-contractname' \">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ contract.name | translate }}\n\t\t\t\t\t\t\t\t\t\t\t</span>}\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.computed){\n\t\t\t\t\t\t\t\t\t\t\t\t<span><br class=\"shipment-contractname\">{{ contract.computed | translate }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<br class=\"shipment-contractname\">\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.detail){\n <div class=\"contract-detail\">\n\t\t\t\t\t\t\t\t\t\t\t\t@for(line of contract.detail.split(' - '); track $index; let i = $index){\n <div [class]=\"'contrat-item-'+i\">\n @if(i == 0){<span><b>{{ line }}</b></span>}\n @if(i > 0){<span class=\"inside-detail\">{{ line }}</span>}\n </div>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n </div>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.price > 0){\n <span [class]=\"'inside-detail ' + ( costos?.amount == 0 ? ' free ' : '') \">\n @if(!contract.computed){<br class=\"shipment-contractname\">}\n {{ ('price'|translate) + ': ' + (contract.price | ecCurrencySymbol) }}</span>\n\t\t\t\t\t\t\t\t\t\t\t}\n <br>\n </label>\n </div>\n </div>\n\t\t\t\t\t\t\t\t}\n \n\t\t\t\t\t\t\t}\n </div>\n\t\t\t\t\t\t}\n }@else {\n\t\t\t\t\t\t<app-loading-full-ec></app-loading-full-ec>\n\t\t\t\t\t}\n </div>\n\t\t\t\t}\n\t\t\t\t\n </div>\n\n\t\t</div>\n\t\t<div class=\"row d-flex flex-row\">\n\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t<button type=\"submit\" (click)=\"next()\" [disabled]=\"!enabledConfirmButton\" class=\"btn btn-primary text-white\">{{(isLastOne\n\t\t\t\t\t? 'finish-checkout' :'ready-form') | translate}}\n\t\t\t\t\t<!-- {{(allready_data ? 'update' : (isLastOne ? 'finish-checkout' : 'ready-form')) | translate}} -->\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n</div>", styles: [""], dependencies: [{ kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }] });
141
141
  }
142
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShipmentEcComponent, decorators: [{
143
143
  type: Component,
144
- args: [{ selector: 'app-shipment-ec', standalone: true, imports: [LoadingFullEcComponent, TranslateModule, AsyncPipe, EcCurrencySymbolPipe, JsonPipe], template: "<div class=\"container-fluid\">\r\n\t<div class=\"col-12\">\r\n\t\t<div class=\"card text-center\">\r\n\t\t\t<div class=\"card-header text-dark\">\r\n\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\r\n\t\t\t\t@if(methods$ | async; as methods){\r\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\r\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\r\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\r\n\t\t\t\t\t\t\t\t@for(method of filterMethods(methods); track $index){\r\n\t\t\t\t\t\t\t\t<button [disabled]=\"buttonsDisabled\" type=\"button\"\r\n\t\t\t\t\t\t\t\t\t[class]=\"'btn btn-outline-secondary mx-1 mb-1' + (isMethodActive(method.code) ? ' active' : '')\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"setMethod(method)\">\r\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}@else {\r\n\t\t\t\t\t<div class=\"d-flex flex-row w-100 justify-content-center mt-2\">\r\n\t\t\t\t\t\t<h5 class=\"text-secondary\">{{'no-shipment-methods'|translate}}</h5>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"card-body\">\r\n\t\t\t\t@if(moreInfoInMethod && methodSelect && methodSelect.description){\r\n <div class=\"row justify-content-center mb-2\">\r\n <div class=\"col-12 col-md-6 col-lg-4 d-flex flex-column mb-2\" [id]=\"methodSelect.code\">\r\n @for(line of methodSelect.description.split('\\r\\n'); track $index; let i=$index){\r\n <span [id]=\"methodSelect.code+'-'+i\" [class]=\"'line-'+i\">{{line}}</span>\r\n\t\t\t\t\t }\r\n </div>\r\n </div>}\r\n\t\t\t\t@if(costs$ | async; as costs){\r\n<!-- \t\t\t\t @if(costs){ -->\r\n <div class=\"row justify-content-center\">\r\n @if(!loadingInternal){\r\n\t\t\t\t\t\t@for(cost of costs; track $index; let y = $index){\r\n <div class=\"col-auto text-dark\">\r\n\t\t\t\t\t\t\t@if(cost.contracts.length > 0){\r\n\t\t\t\t\t\t\t\t@if(costs.length > 1){\r\n\t\t\t\t\t\t\t\t\t<span><b>{{ cost.name | translate }}</b></span>\r\n\t\t\t\t\t\t\t\t\t<hr />\r\n\t\t\t\t\t\t\t\t}@else{\r\n\t\t\t\t\t\t\t\t\t<span><b>{{ methodSelect.name | translate }}</b></span>\r\n\t\t\t\t\t\t\t\t\t<hr />\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t@for(contract of cost.contracts; track $index; let i = $index){\r\n <div class=\"option\">\r\n <div class=\"form-check current-contract\">\r\n <input class=\"form-check-input\" [checked]=\"(y === 0 && i === 0) ? true : contract.selected\" type=\"radio\" name=\"card\" [id]=\"cost.name + i\"\r\n value=\"dark\" (click)=\"verifyValidate(costs,cost.name, contract)\">\r\n <label class=\"form-check-label\" [for]=\"cost.name + i\" aria-label=\"Dark grey\">\r\n @if(validName(contract.name)){\r\n\t\t\t\t\t\t\t\t\t\t\t<span\r\n [class]=\"(cost.name == 'home_delivery') ? 'shipment-contractname home_delivery' : 'shipment-contractname' \">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{ contract.name | translate }}\r\n\t\t\t\t\t\t\t\t\t\t\t</span>}\r\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.computed){\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span><br class=\"shipment-contractname\">{{ contract.computed | translate }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<br class=\"shipment-contractname\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.detail){\r\n <div class=\"contract-detail\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t@for(line of contract.detail.split(' - '); track $index; let i = $index){\r\n <div [class]=\"'contrat-item-'+i\">\r\n @if(i == 0){<span><b>{{ line }}</b></span>}\r\n @if(i > 0){<span class=\"inside-detail\">{{ line }}</span>}\r\n </div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n </div>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.price > 0){\r\n <span [class]=\"'inside-detail ' + ( costos?.amount == 0 ? ' free ' : '') \">\r\n @if(!contract.computed){<br class=\"shipment-contractname\">}\r\n {{ ('price'|translate) + ': ' + (contract.price | ecCurrencySymbol) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n <br>\r\n </label>\r\n </div>\r\n </div>\r\n\t\t\t\t\t\t\t\t}\r\n \r\n\t\t\t\t\t\t\t}\r\n </div>\r\n\t\t\t\t\t\t}\r\n }@else {\r\n\t\t\t\t\t\t<app-loading-full-ec></app-loading-full-ec>\r\n\t\t\t\t\t}\r\n </div>\r\n\t\t\t\t}\r\n\t\t\t\t\r\n </div>\r\n\r\n\t\t</div>\r\n\t\t<div class=\"row d-flex flex-row\">\r\n\t\t\t<div class=\"col-12 d-flex justify-content-between\">\r\n\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\r\n\t\t\t\t<button type=\"submit\" (click)=\"next()\" [disabled]=\"!enabledConfirmButton\" class=\"btn btn-primary text-white\">{{(isLastOne\r\n\t\t\t\t\t? 'finish-checkout' :'ready-form') | translate}}\r\n\t\t\t\t\t<!-- {{(allready_data ? 'update' : (isLastOne ? 'finish-checkout' : 'ready-form')) | translate}} -->\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n</div>" }]
144
+ args: [{ selector: 'app-shipment-ec', standalone: true, imports: [LoadingFullEcComponent, TranslateModule, AsyncPipe, EcCurrencySymbolPipe, JsonPipe], template: "<div class=\"container-fluid\">\n\t<div class=\"col-12\">\n\t\t<div class=\"card text-center\">\n\t\t\t<div class=\"card-header text-dark\">\n\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t@if(methods$ | async; as methods){\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 filterMethods(methods); track $index){\n\t\t\t\t\t\t\t\t<button [disabled]=\"buttonsDisabled\" type=\"button\"\n\t\t\t\t\t\t\t\t\t[class]=\"'btn btn-outline-secondary mx-1 mb-1' + (isMethodActive(method.code) ? ' active' : '')\"\n\t\t\t\t\t\t\t\t\t(click)=\"setMethod(method)\">\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}@else {\n\t\t\t\t\t<div class=\"d-flex flex-row w-100 justify-content-center mt-2\">\n\t\t\t\t\t\t<h5 class=\"text-secondary\">{{'no-shipment-methods'|translate}}</h5>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"card-body\">\n\t\t\t\t@if(moreInfoInMethod && methodSelect && methodSelect.description){\n <div class=\"row justify-content-center mb-2\">\n <div class=\"col-12 col-md-6 col-lg-4 d-flex flex-column mb-2\" [id]=\"methodSelect.code\">\n @for(line of methodSelect.description.split('\\r\\n'); track $index; let i=$index){\n <span [id]=\"methodSelect.code+'-'+i\" [class]=\"'line-'+i\">{{line}}</span>\n\t\t\t\t\t }\n </div>\n </div>}\n\t\t\t\t@if(costs$ | async; as costs){\n<!-- \t\t\t\t @if(costs){ -->\n <div class=\"row justify-content-center\">\n @if(!loadingInternal){\n\t\t\t\t\t\t@for(cost of costs; track $index; let y = $index){\n <div class=\"col-auto text-dark\">\n\t\t\t\t\t\t\t@if(cost.contracts.length > 0){\n\t\t\t\t\t\t\t\t@if(costs.length > 1){\n\t\t\t\t\t\t\t\t\t<span><b>{{ cost.name | translate }}</b></span>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t}@else{\n\t\t\t\t\t\t\t\t\t<span><b>{{ methodSelect.name | translate }}</b></span>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t@for(contract of cost.contracts; track $index; let i = $index){\n <div class=\"option\">\n <div class=\"form-check current-contract\">\n <input class=\"form-check-input\" [checked]=\"(y === 0 && i === 0) ? true : contract.selected\" type=\"radio\" name=\"card\" [id]=\"cost.name + i\"\n value=\"dark\" (click)=\"verifyValidate(costs,cost.name, contract)\">\n <label class=\"form-check-label\" [for]=\"cost.name + i\" aria-label=\"Dark grey\">\n @if(validName(contract.name)){\n\t\t\t\t\t\t\t\t\t\t\t<span\n [class]=\"(cost.name == 'home_delivery') ? 'shipment-contractname home_delivery' : 'shipment-contractname' \">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ contract.name | translate }}\n\t\t\t\t\t\t\t\t\t\t\t</span>}\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.computed){\n\t\t\t\t\t\t\t\t\t\t\t\t<span><br class=\"shipment-contractname\">{{ contract.computed | translate }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<br class=\"shipment-contractname\">\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.detail){\n <div class=\"contract-detail\">\n\t\t\t\t\t\t\t\t\t\t\t\t@for(line of contract.detail.split(' - '); track $index; let i = $index){\n <div [class]=\"'contrat-item-'+i\">\n @if(i == 0){<span><b>{{ line }}</b></span>}\n @if(i > 0){<span class=\"inside-detail\">{{ line }}</span>}\n </div>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n </div>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t@if(contract.price > 0){\n <span [class]=\"'inside-detail ' + ( costos?.amount == 0 ? ' free ' : '') \">\n @if(!contract.computed){<br class=\"shipment-contractname\">}\n {{ ('price'|translate) + ': ' + (contract.price | ecCurrencySymbol) }}</span>\n\t\t\t\t\t\t\t\t\t\t\t}\n <br>\n </label>\n </div>\n </div>\n\t\t\t\t\t\t\t\t}\n \n\t\t\t\t\t\t\t}\n </div>\n\t\t\t\t\t\t}\n }@else {\n\t\t\t\t\t\t<app-loading-full-ec></app-loading-full-ec>\n\t\t\t\t\t}\n </div>\n\t\t\t\t}\n\t\t\t\t\n </div>\n\n\t\t</div>\n\t\t<div class=\"row d-flex flex-row\">\n\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t<button type=\"submit\" (click)=\"next()\" [disabled]=\"!enabledConfirmButton\" class=\"btn btn-primary text-white\">{{(isLastOne\n\t\t\t\t\t? 'finish-checkout' :'ready-form') | translate}}\n\t\t\t\t\t<!-- {{(allready_data ? 'update' : (isLastOne ? 'finish-checkout' : 'ready-form')) | translate}} -->\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n</div>" }]
145
145
  }], ctorParameters: () => [] });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc2hpcG1lbnQtZWMvc2hpcG1lbnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc2hpcG1lbnQtZWMvc2hpcG1lbnQtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVV4RCxNQUFNLE9BQU8sbUJBQW1CO0lBRXBCLGdCQUFnQixHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0QsZ0JBQWdCLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUU1RCxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUMxQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUNoRCxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztJQUVyQyxj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LENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUk7UUFDQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDaEMsQ0FBQzt3R0F0SlEsbUJBQW1COzRGQUFuQixtQkFBbUIsMkVDZmhDLG82TEE0R00sMEREL0ZRLHNCQUFzQiwrREFBRSxlQUFlLHVGQUFFLFNBQVMseUNBQUUsb0JBQW9COzs0RkFFekUsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGlCQUFpQixjQUNmLElBQUksV0FHUCxDQUFDLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UsIFNoaXBtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgRWNDdXJyZW5jeVN5bWJvbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9lYy1waXBlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1zaGlwbWVudC1lYycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NoaXBtZW50LWVjLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NoaXBtZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBpbXBvcnRzOiBbTG9hZGluZ0Z1bGxFY0NvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlLCBBc3luY1BpcGUsIEVjQ3VycmVuY3lTeW1ib2xQaXBlLCBKc29uUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNoaXBtZW50RWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIHByaXZhdGUgX3NoaXBtZW50U2VydmljZTogU2hpcG1lbnRTZXJ2aWNlID0gaW5qZWN0KFNoaXBtZW50U2VydmljZSlcclxuICAgIHByaXZhdGUgX2NoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlID0gaW5qZWN0KENoZWNrb3V0U2VydmljZSlcclxuXHJcbiAgICBwdWJsaWMgbWV0aG9kcyQgPSB0aGlzLl9zaGlwbWVudFNlcnZpY2UubWV0aG9kcyQ7XHJcbiAgICBwdWJsaWMgaXNMYXN0U3RlcCQgPSB0aGlzLl9jaGVja291dFNlcnZpY2UuaXNMYXN0U3RlcCQ7XHJcbiAgICBwdWJsaWMgc3RhdGUkID0gdGhpcy5fc2hpcG1lbnRTZXJ2aWNlLnN0YXRlJDtcclxuXHJcbiAgICBwcml2YXRlIF9oaWRkZW5NZXRob2RzOiBzdHJpbmdbXSA9IFsnVVBTJ11cclxuICAgIHB1YmxpYyBidXR0b25zRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICAgcHVibGljIG1ldGhvZFNlbGVjdDogYW55OyAvLyBFc3RlIGd1YXJkYXLDoSBlbCBvYmpldG8gY29tcGxldG8gZGVsIG3DqXRvZG9cclxuICAgIHB1YmxpYyBzZWxlY3RlZE1ldGhvZENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsOyAvLyA8LS0gQcOxYWRpZG8gcGFyYSB0cmFja2luZ1xyXG4gICAgcHVibGljIGxvYWRpbmdJbnRlcm5hbDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgICBwdWJsaWMgbW9yZUluZm9Jbk1ldGhvZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNvc3RvczogYW55ID0gbnVsbFxyXG4gICAgcHVibGljIGNvc3RzJDogT2JzZXJ2YWJsZTxhbnlbXT4gPSB0aGlzLl9zaGlwbWVudFNlcnZpY2UuY29zdHMkO1xyXG4gICAgcHVibGljIGlzTGFzdE9uZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGVuYWJsZWRDb25maXJtQnV0dG9uOiBib29sZWFuID0gZmFsc2VcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmlzTGFzdFN0ZXAkLnN1YnNjcmliZShyZXMgPT4gdGhpcy5pc0xhc3RPbmUgPSByZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCc9PT0gU0hJUE1FTlQgQ09NUE9ORU5UIElOSVQgPT09Jyk7XHJcbiAgICAgICAgdGhpcy5fc2hpcG1lbnRTZXJ2aWNlLmdldFNoaXBtZW50TWV0aG9kcygpO1xyXG5cclxuICAgICAgICB0aGlzLl9jaGVja291dFNlcnZpY2UuYXNzb2NpYXRlZERhdGEkLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb3N0b3MgPSBkYXRhICYmIGRhdGEuZmluZCgodmFsdWU6IGFueSkgPT4gdmFsdWUudHlwZSA9PSBcInNoaXBtZW50XCIpIHx8IG51bGxcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICAvLyBTdXNjcmlwY2nDs24gYWwgZXN0YWRvIHBhcmEgb2J0ZW5lciBlbCBtw6l0b2RvIHNlbGVjY2lvbmFkb1xyXG4gICAgICAgIHRoaXMuc3RhdGUkLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEubWV0aG9kKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTWV0aG9kQ29kZSA9IHJlcy5kYXRhLm1ldGhvZDsgLy8gPC0tIFRyYWNraW5nIGRlbCBtw6l0b2RvIHNlbGVjY2lvbmFkb1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIE9idGVuZXIgZWwgb2JqZXRvIGNvbXBsZXRvIGRlbCBtw6l0b2RvIGJhc2FkbyBlbiBlbCBjw7NkaWdvXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1ldGhvZHMkLnN1YnNjcmliZShtZXRob2RzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kcyAmJiBtZXRob2RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm91bmRNZXRob2QgPSBtZXRob2RzLmZpbmQoKG1ldGhvZDogYW55KSA9PiBtZXRob2QuY29kZSA9PT0gcmVzLmRhdGEubWV0aG9kKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kTWV0aG9kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGhvZFNlbGVjdCA9IGZvdW5kTWV0aG9kO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5tb3JlSW5mb0luTWV0aG9kID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJNZXRob2RzKG1ldGhvZHM6IGFueSkge1xyXG4gICAgICAgIHJldHVybiBtZXRob2RzLmZpbHRlcigobWV0aG9kOiBhbnkpID0+ICF0aGlzLl9oaWRkZW5NZXRob2RzLmluY2x1ZGVzKG1ldGhvZC5uYW1lKSlcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbWJpbmEgbGFzIGZ1bmNpb25lcyBkZSBzZXRBY3RpdmUgeSBzZXRNZXRob2QgcGFyYSB1bmEgbWVqb3IgZXhwZXJpZW5jaWFcclxuICAgICAqIEBwYXJhbSBtZXRob2QgTcOpdG9kbyBkZSBlbnbDrW8gc2VsZWNjaW9uYWRvXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgRXZlbnRvIGRlbCBib3TDs24gY2xpY2tlYWRvXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHNlbGVjdE1ldGhvZChtZXRob2Q6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIC8vIE1hbmVqYXIgbGEgY2xhc2UgYWN0aXZlXHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVCdXR0b24oZXZlbnQpO1xyXG5cclxuICAgICAgICAvLyBFc3RhYmxlY2VyIGVsIG3DqXRvZG9cclxuICAgICAgICBhd2FpdCB0aGlzLnNldE1ldGhvZChtZXRob2QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFuZWphIGxhIGNsYXNlIC5hY3RpdmUgZGUgbG9zIGJvdG9uZXNcclxuICAgICAqIEBwYXJhbSBldmVudCBFdmVudG8gZGVsIGJvdMOzbiBjbGlja2VhZG9cclxuICAgICAqL1xyXG4gICAgc2V0QWN0aXZlQnV0dG9uKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCBwYXJlbnQgPSBldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcclxuXHJcbiAgICAgICAgLy8gUmVtb3ZlciBhY3RpdmUgZGUgdG9kb3MgbG9zIGJvdG9uZXNcclxuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcclxuICAgICAgICAgICAgaWYgKGJ1dHRvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSB7XHJcbiAgICAgICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQcOxYWRpciBhY3RpdmUgYWwgYm90w7NuIGNsaWNrZWFkb1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTcOpdG9kbyBvcmlnaW5hbCBtYW50ZW5pZG8gcGFyYSBjb21wYXRpYmlsaWRhZFxyXG4gICAgICovXHJcbiAgICBzZXRBY3RpdmUoJGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLnNldEFjdGl2ZUJ1dHRvbigkZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2kgdW4gbcOpdG9kbyBlc3TDoSBhY3Rpdm8gYmFzYWRvIGVuIHN1IGPDs2RpZ29cclxuICAgICAqIEBwYXJhbSBtZXRob2RDb2RlIEPDs2RpZ28gZGVsIG3DqXRvZG8gZGUgZW52w61vXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIHNpIGVsIG3DqXRvZG8gZXN0w6Egc2VsZWNjaW9uYWRvXHJcbiAgICAgKi9cclxuICAgIGlzTWV0aG9kQWN0aXZlKG1ldGhvZENvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTWV0aG9kQ29kZSA9PT0gbWV0aG9kQ29kZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRNZXRob2QobWV0aG9kOiBhbnkpIHtcclxuICAgICAgICAvLyBHdWFyZGFyIGVsIG9iamV0byBjb21wbGV0byBkZWwgbcOpdG9kb1xyXG4gICAgICAgIHRoaXMubWV0aG9kU2VsZWN0ID0gbWV0aG9kO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNZXRob2RDb2RlID0gbWV0aG9kLmNvZGU7IC8vIDwtLSBBY3R1YWxpemFyIHRyYWNraW5nXHJcbiAgICAgICAgdGhpcy5sb2FkaW5nSW50ZXJuYWwgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBEZXNoYWJpbGl0YXIgdG9kb3MgbG9zIGJvdG9uZXNcclxuICAgICAgICB0aGlzLmJ1dHRvbnNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lbmFibGVkQ29uZmlybUJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyBFbnZpYXIgc29sbyBlbCBjw7NkaWdvIGFsIHNlcnZpY2lvIChjb21vIGVzdGFiYSBhbnRlcylcclxuICAgICAgICB0aGlzLl9zaGlwbWVudFNlcnZpY2Uuc2V0TWV0aG9kKG1ldGhvZC5jb2RlKS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0ludGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZENvbmZpcm1CdXR0b24gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nSW50ZXJuYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5idXR0b25zRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZE5hbWUobmFtZTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIGlzTmFOKG5hbWUpO1xyXG4gICAgfVxyXG4gICAgZW1pdFJlc3VsdCA9IChtZXRob2RfbmFtZTogc3RyaW5nLCBjb250cmFjdF9kYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBjb250cmFjdF9kYXRhID0ge1xyXG4gICAgICAgICAgICAuLi5jb250cmFjdF9kYXRhLFxyXG4gICAgICAgICAgICBzaGlwcGluZ19tZXRob2RfY29udHJhY3Q6IG1ldGhvZF9uYW1lICsgJ18nICsgY29udHJhY3RfZGF0YS5uYW1lLFxyXG4gICAgICAgICAgICBzaGlwcGluZ19tZXRob2RfYnJhbmNoX2NvZGU6IG1ldGhvZF9uYW1lID09IFwiYnJhbmNoX2RlbGl2ZXJ5XCIgPyBjb250cmFjdF9kYXRhLnN1Y3Vyc2FsX2lkIDogY29udHJhY3RfZGF0YS5uYW1lLFxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9zaGlwbWVudFNlcnZpY2Uuc2V0Q29udHJhY3QoY29udHJhY3RfZGF0YSk7XHJcbiAgICB9XHJcbiAgICB2ZXJpZnlWYWxpZGF0ZShjb3N0czogYW55W10sIGNvbnRyYWN0OiBhbnksIGRhdGE6IGFueSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvc3RzLmZvckVhY2goKGNvc3Q6IGFueSkgPT4gY29zdC5jb250cmFjdHMuZm9yRWFjaCgoY286IGFueSkgPT4gY28uc2VsZWN0ZWQgPSBmYWxzZSkpXHJcbiAgICAgICAgICAgIGNvc3RzLmZpbmQoKGNvc3Q6IGFueSkgPT4gY29zdC5uYW1lID09IGNvbnRyYWN0KS5jb250cmFjdHMuZmluZCgoY29udHJhOiBhbnkpID0+IGNvbnRyYS5uYW1lID09IGRhdGEubmFtZSkuc2VsZWN0ZWQgPSB0cnVlXHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvciBhbCBidXNjYXIgY29udHJhdG9cIiwgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmVtaXRSZXN1bHQoY29udHJhY3QsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGdvQmFjaygpIHtcclxuICAgICAgICB0aGlzLl9jaGVja291dFNlcnZpY2UuYmFjaygpO1xyXG4gICAgfVxyXG4gICAgbmV4dCgpIHtcclxuICAgICAgICB0aGlzLl9jaGVja291dFNlcnZpY2UubmV4dCgpXHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG5cdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjYXJkIHRleHQtY2VudGVyXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciB0ZXh0LWRhcmtcIj5cclxuXHRcdFx0XHQ8aDQ+e3sgJ3NlbGVjdC1tZXRob2QnIHwgdHJhbnNsYXRlIH19PC9oND5cclxuXHRcdFx0XHRAaWYobWV0aG9kcyQgfCBhc3luYzsgYXMgbWV0aG9kcyl7XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiYnRuLXRvb2xiYXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiIHJvbGU9XCJ0b29sYmFyXCIgYXJpYS1sYWJlbD1cIkVudmlvcyB0b29sYmFyXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiR3J1cG8gYm90b25lcyBlbnZpb1wiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24tY29udGVudC1zdGFydCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtd3JhcFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0QGZvcihtZXRob2Qgb2YgZmlsdGVyTWV0aG9kcyhtZXRob2RzKTsgdHJhY2sgJGluZGV4KXtcclxuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gW2Rpc2FibGVkXT1cImJ1dHRvbnNEaXNhYmxlZFwiIHR5cGU9XCJidXR0b25cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbY2xhc3NdPVwiJ2J0biBidG4tb3V0bGluZS1zZWNvbmRhcnkgbXgtMSBtYi0xJyArIChpc01ldGhvZEFjdGl2ZShtZXRob2QuY29kZSkgPyAnIGFjdGl2ZScgOiAnJylcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwic2V0TWV0aG9kKG1ldGhvZClcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbWV0aG9kLm5hbWUgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1AZWxzZSB7XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IHctMTAwIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtMlwiPlxyXG5cdFx0XHRcdFx0XHQ8aDUgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPnt7J25vLXNoaXBtZW50LW1ldGhvZHMnfHRyYW5zbGF0ZX19PC9oNT5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuXHRcdFx0XHRAaWYobW9yZUluZm9Jbk1ldGhvZCAmJiBtZXRob2RTZWxlY3QgJiYgbWV0aG9kU2VsZWN0LmRlc2NyaXB0aW9uKXtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBjb2wtbGctNCBkLWZsZXggZmxleC1jb2x1bW4gbWItMlwiIFtpZF09XCJtZXRob2RTZWxlY3QuY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQGZvcihsaW5lIG9mIG1ldGhvZFNlbGVjdC5kZXNjcmlwdGlvbi5zcGxpdCgnXFxyXFxuJyk7IHRyYWNrICRpbmRleDsgbGV0IGk9JGluZGV4KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cIm1ldGhvZFNlbGVjdC5jb2RlKyctJytpXCIgW2NsYXNzXT1cIidsaW5lLScraVwiPnt7bGluZX19PC9zcGFuPlxyXG5cdFx0XHRcdFx0ICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj59XHJcblx0XHRcdFx0QGlmKGNvc3RzJCB8IGFzeW5jOyBhcyBjb3N0cyl7XHJcbjwhLS0gXHRcdFx0XHQgQGlmKGNvc3RzKXsgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYoIWxvYWRpbmdJbnRlcm5hbCl7XHJcblx0XHRcdFx0XHRcdEBmb3IoY29zdCBvZiBjb3N0czsgdHJhY2sgJGluZGV4OyBsZXQgeSA9ICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byB0ZXh0LWRhcmtcIj5cclxuXHRcdFx0XHRcdFx0XHRAaWYoY29zdC5jb250cmFjdHMubGVuZ3RoID4gMCl7XHJcblx0XHRcdFx0XHRcdFx0XHRAaWYoY29zdHMubGVuZ3RoID4gMSl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuPjxiPnt7IGNvc3QubmFtZSB8IHRyYW5zbGF0ZSB9fTwvYj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxociAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0fUBlbHNle1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3Bhbj48Yj57eyBtZXRob2RTZWxlY3QubmFtZSB8IHRyYW5zbGF0ZSB9fTwvYj48L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxociAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0QGZvcihjb250cmFjdCBvZiBjb3N0LmNvbnRyYWN0czsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBjdXJyZW50LWNvbnRyYWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgW2NoZWNrZWRdPVwiKHkgPT09IDAgJiYgaSA9PT0gMCkgPyB0cnVlIDogY29udHJhY3Quc2VsZWN0ZWRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiY2FyZFwiIFtpZF09XCJjb3N0Lm5hbWUgKyBpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImRhcmtcIiAoY2xpY2spPVwidmVyaWZ5VmFsaWRhdGUoY29zdHMsY29zdC5uYW1lLCBjb250cmFjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBbZm9yXT1cImNvc3QubmFtZSArIGlcIiBhcmlhLWxhYmVsPVwiRGFyayBncmV5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKHZhbGlkTmFtZShjb250cmFjdC5uYW1lKSl7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiKGNvc3QubmFtZSA9PSAnaG9tZV9kZWxpdmVyeScpID8gJ3NoaXBtZW50LWNvbnRyYWN0bmFtZSBob21lX2RlbGl2ZXJ5JyA6ICdzaGlwbWVudC1jb250cmFjdG5hbWUnIFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBjb250cmFjdC5uYW1lIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3NwYW4+fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmKGNvbnRyYWN0LmNvbXB1dGVkKXtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4+PGJyIGNsYXNzPVwic2hpcG1lbnQtY29udHJhY3RuYW1lXCI+e3sgY29udHJhY3QuY29tcHV0ZWQgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnIgY2xhc3M9XCJzaGlwbWVudC1jb250cmFjdG5hbWVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmKGNvbnRyYWN0LmRldGFpbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyYWN0LWRldGFpbFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRAZm9yKGxpbmUgb2YgY29udHJhY3QuZGV0YWlsLnNwbGl0KCcgLSAnKTsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidjb250cmF0LWl0ZW0tJytpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoaSA9PSAwKXs8c3Bhbj48Yj57eyBsaW5lIH19PC9iPjwvc3Bhbj59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoaSA+IDApezxzcGFuIGNsYXNzPVwiaW5zaWRlLWRldGFpbFwiPnt7IGxpbmUgfX08L3NwYW4+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmKGNvbnRyYWN0LnByaWNlID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidpbnNpZGUtZGV0YWlsICcgKyAoIGNvc3Rvcz8uYW1vdW50ID09IDAgPyAnIGZyZWUgJyA6ICcnKSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFjb250cmFjdC5jb21wdXRlZCl7PGJyIGNsYXNzPVwic2hpcG1lbnQtY29udHJhY3RuYW1lXCI+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAoJ3ByaWNlJ3x0cmFuc2xhdGUpICsgJzogJyArIChjb250cmFjdC5wcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcblx0XHRcdFx0XHRcdFx0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG4gICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcblx0XHRcdFx0XHRcdDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cclxuXHRcdFx0XHRcdH1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBmbGV4LXJvd1wiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGV4dC13aGl0ZVwiIChjbGljayk9XCJnb0JhY2soKVwiPnt7J2JhY2snfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcblx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cIm5leHQoKVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZENvbmZpcm1CdXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlXCI+e3soaXNMYXN0T25lXHJcblx0XHRcdFx0XHQ/ICdmaW5pc2gtY2hlY2tvdXQnIDoncmVhZHktZm9ybScpIHwgdHJhbnNsYXRlfX1cclxuXHRcdFx0XHRcdDwhLS0ge3soYWxscmVhZHlfZGF0YSA/ICd1cGRhdGUnIDogKGlzTGFzdE9uZSA/ICdmaW5pc2gtY2hlY2tvdXQnIDogJ3JlYWR5LWZvcm0nKSkgfCB0cmFuc2xhdGV9fSAgLS0+XHJcblx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc2hpcG1lbnQtZWMvc2hpcG1lbnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc2hpcG1lbnQtZWMvc2hpcG1lbnQtZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVV4RCxNQUFNLE9BQU8sbUJBQW1CO0lBRXBCLGdCQUFnQixHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0QsZ0JBQWdCLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUU1RCxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUMxQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUNoRCxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztJQUVyQyxj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LENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUk7UUFDQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDaEMsQ0FBQzt3R0F0SlEsbUJBQW1COzRGQUFuQixtQkFBbUIsMkVDZmhDLDRzTEE0R00sMEREL0ZRLHNCQUFzQiwrREFBRSxlQUFlLHVGQUFFLFNBQVMseUNBQUUsb0JBQW9COzs0RkFFekUsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGlCQUFpQixjQUNmLElBQUksV0FHUCxDQUFDLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IExvYWRpbmdGdWxsRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzLWVjJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlLCBTaGlwbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFY0N1cnJlbmN5U3ltYm9sUGlwZSB9IGZyb20gJy4uLy4uLy4uL2VjLXBpcGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1zaGlwbWVudC1lYycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2hpcG1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NoaXBtZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW0xvYWRpbmdGdWxsRWNDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZSwgQXN5bmNQaXBlLCBFY0N1cnJlbmN5U3ltYm9sUGlwZSwgSnNvblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFNoaXBtZW50RWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHJpdmF0ZSBfc2hpcG1lbnRTZXJ2aWNlOiBTaGlwbWVudFNlcnZpY2UgPSBpbmplY3QoU2hpcG1lbnRTZXJ2aWNlKVxuICAgIHByaXZhdGUgX2NoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlID0gaW5qZWN0KENoZWNrb3V0U2VydmljZSlcblxuICAgIHB1YmxpYyBtZXRob2RzJCA9IHRoaXMuX3NoaXBtZW50U2VydmljZS5tZXRob2RzJDtcbiAgICBwdWJsaWMgaXNMYXN0U3RlcCQgPSB0aGlzLl9jaGVja291dFNlcnZpY2UuaXNMYXN0U3RlcCQ7XG4gICAgcHVibGljIHN0YXRlJCA9IHRoaXMuX3NoaXBtZW50U2VydmljZS5zdGF0ZSQ7XG5cbiAgICBwcml2YXRlIF9oaWRkZW5NZXRob2RzOiBzdHJpbmdbXSA9IFsnVVBTJ11cbiAgICBwdWJsaWMgYnV0dG9uc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2VcbiAgICBwdWJsaWMgbWV0aG9kU2VsZWN0OiBhbnk7IC8vIEVzdGUgZ3VhcmRhcsOhIGVsIG9iamV0byBjb21wbGV0byBkZWwgbcOpdG9kb1xuICAgIHB1YmxpYyBzZWxlY3RlZE1ldGhvZENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsOyAvLyA8LS0gQcOxYWRpZG8gcGFyYSB0cmFja2luZ1xuICAgIHB1YmxpYyBsb2FkaW5nSW50ZXJuYWw6IGJvb2xlYW4gPSBmYWxzZVxuICAgIHB1YmxpYyBtb3JlSW5mb0luTWV0aG9kOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGNvc3RvczogYW55ID0gbnVsbFxuICAgIHB1YmxpYyBjb3N0cyQ6IE9ic2VydmFibGU8YW55W10+ID0gdGhpcy5fc2hpcG1lbnRTZXJ2aWNlLmNvc3RzJDtcbiAgICBwdWJsaWMgaXNMYXN0T25lOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGVuYWJsZWRDb25maXJtQnV0dG9uOiBib29sZWFuID0gZmFsc2VcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmlzTGFzdFN0ZXAkLnN1YnNjcmliZShyZXMgPT4gdGhpcy5pc0xhc3RPbmUgPSByZXMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zb2xlLmxvZygnPT09IFNISVBNRU5UIENPTVBPTkVOVCBJTklUID09PScpO1xuICAgICAgICB0aGlzLl9zaGlwbWVudFNlcnZpY2UuZ2V0U2hpcG1lbnRNZXRob2RzKCk7XG5cbiAgICAgICAgdGhpcy5fY2hlY2tvdXRTZXJ2aWNlLmFzc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvc3RvcyA9IGRhdGEgJiYgZGF0YS5maW5kKCh2YWx1ZTogYW55KSA9PiB2YWx1ZS50eXBlID09IFwic2hpcG1lbnRcIikgfHwgbnVsbFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFN1c2NyaXBjacOzbiBhbCBlc3RhZG8gcGFyYSBvYnRlbmVyIGVsIG3DqXRvZG8gc2VsZWNjaW9uYWRvXG4gICAgICAgIHRoaXMuc3RhdGUkLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhLm1ldGhvZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNZXRob2RDb2RlID0gcmVzLmRhdGEubWV0aG9kOyAvLyA8LS0gVHJhY2tpbmcgZGVsIG3DqXRvZG8gc2VsZWNjaW9uYWRvXG5cbiAgICAgICAgICAgICAgICAvLyBPYnRlbmVyIGVsIG9iamV0byBjb21wbGV0byBkZWwgbcOpdG9kbyBiYXNhZG8gZW4gZWwgY8OzZGlnb1xuICAgICAgICAgICAgICAgIHRoaXMubWV0aG9kcyQuc3Vic2NyaWJlKG1ldGhvZHMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kcyAmJiBtZXRob2RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvdW5kTWV0aG9kID0gbWV0aG9kcy5maW5kKChtZXRob2Q6IGFueSkgPT4gbWV0aG9kLmNvZGUgPT09IHJlcy5kYXRhLm1ldGhvZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm91bmRNZXRob2QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGhvZFNlbGVjdCA9IGZvdW5kTWV0aG9kO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubW9yZUluZm9Jbk1ldGhvZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZmlsdGVyTWV0aG9kcyhtZXRob2RzOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIG1ldGhvZHMuZmlsdGVyKChtZXRob2Q6IGFueSkgPT4gIXRoaXMuX2hpZGRlbk1ldGhvZHMuaW5jbHVkZXMobWV0aG9kLm5hbWUpKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbWJpbmEgbGFzIGZ1bmNpb25lcyBkZSBzZXRBY3RpdmUgeSBzZXRNZXRob2QgcGFyYSB1bmEgbWVqb3IgZXhwZXJpZW5jaWFcbiAgICAgKiBAcGFyYW0gbWV0aG9kIE3DqXRvZG8gZGUgZW52w61vIHNlbGVjY2lvbmFkb1xuICAgICAqIEBwYXJhbSBldmVudCBFdmVudG8gZGVsIGJvdMOzbiBjbGlja2VhZG9cbiAgICAgKi9cbiAgICBhc3luYyBzZWxlY3RNZXRob2QobWV0aG9kOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICAgICAgLy8gTWFuZWphciBsYSBjbGFzZSBhY3RpdmVcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVCdXR0b24oZXZlbnQpO1xuXG4gICAgICAgIC8vIEVzdGFibGVjZXIgZWwgbcOpdG9kb1xuICAgICAgICBhd2FpdCB0aGlzLnNldE1ldGhvZChtZXRob2QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hbmVqYSBsYSBjbGFzZSAuYWN0aXZlIGRlIGxvcyBib3RvbmVzXG4gICAgICogQHBhcmFtIGV2ZW50IEV2ZW50byBkZWwgYm90w7NuIGNsaWNrZWFkb1xuICAgICAqL1xuICAgIHNldEFjdGl2ZUJ1dHRvbihldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuXG4gICAgICAgIC8vIFJlbW92ZXIgYWN0aXZlIGRlIHRvZG9zIGxvcyBib3RvbmVzXG4gICAgICAgIGZvciAoY29uc3QgYnV0dG9uIG9mIHBhcmVudCkge1xuICAgICAgICAgICAgaWYgKGJ1dHRvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBw7FhZGlyIGFjdGl2ZSBhbCBib3TDs24gY2xpY2tlYWRvXG4gICAgICAgIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE3DqXRvZG8gb3JpZ2luYWwgbWFudGVuaWRvIHBhcmEgY29tcGF0aWJpbGlkYWRcbiAgICAgKi9cbiAgICBzZXRBY3RpdmUoJGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVCdXR0b24oJGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWZXJpZmljYSBzaSB1biBtw6l0b2RvIGVzdMOhIGFjdGl2byBiYXNhZG8gZW4gc3UgY8OzZGlnb1xuICAgICAqIEBwYXJhbSBtZXRob2RDb2RlIEPDs2RpZ28gZGVsIG3DqXRvZG8gZGUgZW52w61vXG4gICAgICogQHJldHVybnMgdHJ1ZSBzaSBlbCBtw6l0b2RvIGVzdMOhIHNlbGVjY2lvbmFkb1xuICAgICAqL1xuICAgIGlzTWV0aG9kQWN0aXZlKG1ldGhvZENvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPT09IG1ldGhvZENvZGU7XG4gICAgfVxuXG4gICAgc2V0TWV0aG9kKG1ldGhvZDogYW55KSB7XG4gICAgICAgIC8vIEd1YXJkYXIgZWwgb2JqZXRvIGNvbXBsZXRvIGRlbCBtw6l0b2RvXG4gICAgICAgIHRoaXMubWV0aG9kU2VsZWN0ID0gbWV0aG9kO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTWV0aG9kQ29kZSA9IG1ldGhvZC5jb2RlOyAvLyA8LS0gQWN0dWFsaXphciB0cmFja2luZ1xuICAgICAgICB0aGlzLmxvYWRpbmdJbnRlcm5hbCA9IHRydWU7XG5cbiAgICAgICAgLy8gRGVzaGFiaWxpdGFyIHRvZG9zIGxvcyBib3RvbmVzXG4gICAgICAgIHRoaXMuYnV0dG9uc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbmFibGVkQ29uZmlybUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgICAgIC8vIEVudmlhciBzb2xvIGVsIGPDs2RpZ28gYWwgc2VydmljaW8gKGNvbW8gZXN0YWJhIGFudGVzKVxuICAgICAgICB0aGlzLl9zaGlwbWVudFNlcnZpY2Uuc2V0TWV0aG9kKG1ldGhvZC5jb2RlKS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdJbnRlcm5hbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lbmFibGVkQ29uZmlybUJ1dHRvbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdJbnRlcm5hbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5idXR0b25zRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFsaWROYW1lKG5hbWU6IGFueSkge1xuICAgICAgICByZXR1cm4gaXNOYU4obmFtZSk7XG4gICAgfVxuICAgIGVtaXRSZXN1bHQgPSAobWV0aG9kX25hbWU6IHN0cmluZywgY29udHJhY3RfZGF0YTogYW55KSA9PiB7XG4gICAgICAgIGNvbnRyYWN0X2RhdGEgPSB7XG4gICAgICAgICAgICAuLi5jb250cmFjdF9kYXRhLFxuICAgICAgICAgICAgc2hpcHBpbmdfbWV0aG9kX2NvbnRyYWN0OiBtZXRob2RfbmFtZSArICdfJyArIGNvbnRyYWN0X2RhdGEubmFtZSxcbiAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9icmFuY2hfY29kZTogbWV0aG9kX25hbWUgPT0gXCJicmFuY2hfZGVsaXZlcnlcIiA/IGNvbnRyYWN0X2RhdGEuc3VjdXJzYWxfaWQgOiBjb250cmFjdF9kYXRhLm5hbWUsXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2hpcG1lbnRTZXJ2aWNlLnNldENvbnRyYWN0KGNvbnRyYWN0X2RhdGEpO1xuICAgIH1cbiAgICB2ZXJpZnlWYWxpZGF0ZShjb3N0czogYW55W10sIGNvbnRyYWN0OiBhbnksIGRhdGE6IGFueSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29zdHMuZm9yRWFjaCgoY29zdDogYW55KSA9PiBjb3N0LmNvbnRyYWN0cy5mb3JFYWNoKChjbzogYW55KSA9PiBjby5zZWxlY3RlZCA9IGZhbHNlKSlcbiAgICAgICAgICAgIGNvc3RzLmZpbmQoKGNvc3Q6IGFueSkgPT4gY29zdC5uYW1lID09IGNvbnRyYWN0KS5jb250cmFjdHMuZmluZCgoY29udHJhOiBhbnkpID0+IGNvbnRyYS5uYW1lID09IGRhdGEubmFtZSkuc2VsZWN0ZWQgPSB0cnVlXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yIGFsIGJ1c2NhciBjb250cmF0b1wiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0UmVzdWx0KGNvbnRyYWN0LCBkYXRhKTtcbiAgICB9XG5cbiAgICBnb0JhY2soKSB7XG4gICAgICAgIHRoaXMuX2NoZWNrb3V0U2VydmljZS5iYWNrKCk7XG4gICAgfVxuICAgIG5leHQoKSB7XG4gICAgICAgIHRoaXMuX2NoZWNrb3V0U2VydmljZS5uZXh0KClcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XG5cdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2FyZCB0ZXh0LWNlbnRlclwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHRleHQtZGFya1wiPlxuXHRcdFx0XHQ8aDQ+e3sgJ3NlbGVjdC1tZXRob2QnIHwgdHJhbnNsYXRlIH19PC9oND5cblx0XHRcdFx0QGlmKG1ldGhvZHMkIHwgYXN5bmM7IGFzIG1ldGhvZHMpe1xuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgcm9sZT1cInRvb2xiYXJcIiBhcmlhLWxhYmVsPVwiRW52aW9zIHRvb2xiYXJcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiR3J1cG8gYm90b25lcyBlbnZpb1wiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cblx0XHRcdFx0XHRcdFx0XHRAZm9yKG1ldGhvZCBvZiBmaWx0ZXJNZXRob2RzKG1ldGhvZHMpOyB0cmFjayAkaW5kZXgpe1xuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gW2Rpc2FibGVkXT1cImJ1dHRvbnNEaXNhYmxlZFwiIHR5cGU9XCJidXR0b25cIlxuXHRcdFx0XHRcdFx0XHRcdFx0W2NsYXNzXT1cIididG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IG14LTEgbWItMScgKyAoaXNNZXRob2RBY3RpdmUobWV0aG9kLmNvZGUpID8gJyBhY3RpdmUnIDogJycpXCJcblx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJzZXRNZXRob2QobWV0aG9kKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbWV0aG9kLm5hbWUgfCB0cmFuc2xhdGUgfX1cblx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdH1AZWxzZSB7XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyB3LTEwMCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTJcIj5cblx0XHRcdFx0XHRcdDxoNSBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+e3snbm8tc2hpcG1lbnQtbWV0aG9kcyd8dHJhbnNsYXRlfX08L2g1PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHR9XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cblx0XHRcdFx0QGlmKG1vcmVJbmZvSW5NZXRob2QgJiYgbWV0aG9kU2VsZWN0ICYmIG1ldGhvZFNlbGVjdC5kZXNjcmlwdGlvbil7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBjb2wtbGctNCBkLWZsZXggZmxleC1jb2x1bW4gbWItMlwiIFtpZF09XCJtZXRob2RTZWxlY3QuY29kZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBmb3IobGluZSBvZiBtZXRob2RTZWxlY3QuZGVzY3JpcHRpb24uc3BsaXQoJ1xcclxcbicpOyB0cmFjayAkaW5kZXg7IGxldCBpPSRpbmRleCl7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwibWV0aG9kU2VsZWN0LmNvZGUrJy0nK2lcIiBbY2xhc3NdPVwiJ2xpbmUtJytpXCI+e3tsaW5lfX08L3NwYW4+XG5cdFx0XHRcdFx0ICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2Pn1cblx0XHRcdFx0QGlmKGNvc3RzJCB8IGFzeW5jOyBhcyBjb3N0cyl7XG48IS0tIFx0XHRcdFx0IEBpZihjb3N0cyl7IC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYoIWxvYWRpbmdJbnRlcm5hbCl7XG5cdFx0XHRcdFx0XHRAZm9yKGNvc3Qgb2YgY29zdHM7IHRyYWNrICRpbmRleDsgbGV0IHkgPSAkaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHRleHQtZGFya1wiPlxuXHRcdFx0XHRcdFx0XHRAaWYoY29zdC5jb250cmFjdHMubGVuZ3RoID4gMCl7XG5cdFx0XHRcdFx0XHRcdFx0QGlmKGNvc3RzLmxlbmd0aCA+IDEpe1xuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4+PGI+e3sgY29zdC5uYW1lIHwgdHJhbnNsYXRlIH19PC9iPjwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdDxociAvPlxuXHRcdFx0XHRcdFx0XHRcdH1AZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuPjxiPnt7IG1ldGhvZFNlbGVjdC5uYW1lIHwgdHJhbnNsYXRlIH19PC9iPjwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdDxociAvPlxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRAZm9yKGNvbnRyYWN0IG9mIGNvc3QuY29udHJhY3RzOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgY3VycmVudC1jb250cmFjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiBbY2hlY2tlZF09XCIoeSA9PT0gMCAmJiBpID09PSAwKSA/IHRydWUgOiBjb250cmFjdC5zZWxlY3RlZFwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJjYXJkXCIgW2lkXT1cImNvc3QubmFtZSArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImRhcmtcIiAoY2xpY2spPVwidmVyaWZ5VmFsaWRhdGUoY29zdHMsY29zdC5uYW1lLCBjb250cmFjdClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgW2Zvcl09XCJjb3N0Lm5hbWUgKyBpXCIgYXJpYS1sYWJlbD1cIkRhcmsgZ3JleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYodmFsaWROYW1lKGNvbnRyYWN0Lm5hbWUpKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIihjb3N0Lm5hbWUgPT0gJ2hvbWVfZGVsaXZlcnknKSA/ICdzaGlwbWVudC1jb250cmFjdG5hbWUgaG9tZV9kZWxpdmVyeScgOiAnc2hpcG1lbnQtY29udHJhY3RuYW1lJyBcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGNvbnRyYWN0Lm5hbWUgfCB0cmFuc2xhdGUgfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3NwYW4+fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdEBpZihjb250cmFjdC5jb21wdXRlZCl7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3Bhbj48YnIgY2xhc3M9XCJzaGlwbWVudC1jb250cmFjdG5hbWVcIj57eyBjb250cmFjdC5jb21wdXRlZCB8IHRyYW5zbGF0ZSB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnIgY2xhc3M9XCJzaGlwbWVudC1jb250cmFjdG5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmKGNvbnRyYWN0LmRldGFpbCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250cmFjdC1kZXRhaWxcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdEBmb3IobGluZSBvZiBjb250cmFjdC5kZXRhaWwuc3BsaXQoJyAtICcpOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidjb250cmF0LWl0ZW0tJytpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGkgPT0gMCl7PHNwYW4+PGI+e3sgbGluZSB9fTwvYj48L3NwYW4+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihpID4gMCl7PHNwYW4gY2xhc3M9XCJpbnNpZGUtZGV0YWlsXCI+e3sgbGluZSB9fTwvc3Bhbj59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdEBpZihjb250cmFjdC5wcmljZSA+IDApe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ2luc2lkZS1kZXRhaWwgJyArICggY29zdG9zPy5hbW91bnQgPT0gMCA/ICcgZnJlZSAnIDogJycpIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFjb250cmFjdC5jb21wdXRlZCl7PGJyIGNsYXNzPVwic2hpcG1lbnQtY29udHJhY3RuYW1lXCI+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgKCdwcmljZSd8dHJhbnNsYXRlKSArICc6ICcgKyAoY29udHJhY3QucHJpY2UgfCBlY0N1cnJlbmN5U3ltYm9sKSB9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0XHRcdFx0XHRcdFx0fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cdFx0XHRcdFx0XHR9XG4gICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XG5cdFx0XHRcdFx0XHQ8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XG5cdFx0XHRcdFx0fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuICAgICAgICAgICAgPC9kaXY+XG5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBmbGV4LXJvd1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cblx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+e3snYmFjayd8dHJhbnNsYXRlfX08L2J1dHRvbj5cblx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cIm5leHQoKVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZENvbmZpcm1CdXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlXCI+e3soaXNMYXN0T25lXG5cdFx0XHRcdFx0PyAnZmluaXNoLWNoZWNrb3V0JyA6J3JlYWR5LWZvcm0nKSB8IHRyYW5zbGF0ZX19XG5cdFx0XHRcdFx0PCEtLSB7eyhhbGxyZWFkeV9kYXRhID8gJ3VwZGF0ZScgOiAoaXNMYXN0T25lID8gJ2ZpbmlzaC1jaGVja291dCcgOiAncmVhZHktZm9ybScpKSB8IHRyYW5zbGF0ZX19ICAtLT5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cbjwvZGl2PiJdfQ==
@@ -17,7 +17,7 @@ export class StepContainerEcComponent {
17
17
  this._checkoutService.back();
18
18
  }
19
19
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepContainerEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepContainerEcComponent, isStandalone: true, selector: "app-step-container-ec", inputs: { steps: "steps" }, ngImport: i0, template: "<div>\r\n @for(step of steps; track $index; let x=$index){\r\n <div [id]=\"'test-l-'+step.priority\" class=\"content\">\r\n <!-- <app-step-ec [step_id]=\"step.step\" [id_step]=\"x+1\" [previousStep]=\"steps[x-1] ? steps[x-1].name : step.name\" [nextStep]=\"steps[x+1] ? next : endCheckout\" [goBack]=\"goBack\" [lastStep]=\"steps[x+1] ? false : true\">\r\n </app-step-ec> -->\r\n @switch (step.name) {\r\n @case ('address') {\r\n @if(step.state == 'ready') {\r\n <app-dataform-ec />\r\n }\r\n }\r\n @case ('payment') {\r\n @if(step.state == 'ready') {\r\n <app-payment-ec />\r\n }\r\n }\r\n @case ('shipment') {\r\n @if(step.state == 'ready') {\r\n <app-shipment-ec />\r\n }\r\n }\r\n }\r\n </div>\r\n }\r\n <!-- <div class=\"row d-flex flex-row\">\r\n <div class=\"col-6 d-flex justify-content-start\">\r\n <button type=\"button\" class=\"btn btn-primary text-white\" (click)=\"back()\">Anterior</button>\r\n </div>\r\n <div class=\"col-6 d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-primary text-white\" (click)=\"next()\">Siguiente</button>\r\n </div>\r\n </div> -->\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: DataformEcComponent, selector: "app-dataform-ec" }, { kind: "component", type: ShipmentEcComponent, selector: "app-shipment-ec" }, { kind: "component", type: PaymentEcComponent, selector: "app-payment-ec" }] });
20
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepContainerEcComponent, isStandalone: true, selector: "app-step-container-ec", inputs: { steps: "steps" }, ngImport: i0, template: "<div>\n @for(step of steps; track $index; let x=$index){\n <div [id]=\"'test-l-'+step.priority\" class=\"content\">\n <!-- <app-step-ec [step_id]=\"step.step\" [id_step]=\"x+1\" [previousStep]=\"steps[x-1] ? steps[x-1].name : step.name\" [nextStep]=\"steps[x+1] ? next : endCheckout\" [goBack]=\"goBack\" [lastStep]=\"steps[x+1] ? false : true\">\n </app-step-ec> -->\n @switch (step.name) {\n @case ('address') {\n @if(step.state == 'ready') {\n <app-dataform-ec />\n }\n }\n @case ('payment') {\n @if(step.state == 'ready') {\n <app-payment-ec />\n }\n }\n @case ('shipment') {\n @if(step.state == 'ready') {\n <app-shipment-ec />\n }\n }\n }\n </div>\n }\n <!-- <div class=\"row d-flex flex-row\">\n <div class=\"col-6 d-flex justify-content-start\">\n <button type=\"button\" class=\"btn btn-primary text-white\" (click)=\"back()\">Anterior</button>\n </div>\n <div class=\"col-6 d-flex justify-content-end\">\n <button type=\"button\" class=\"btn btn-primary text-white\" (click)=\"next()\">Siguiente</button>\n </div>\n </div> -->\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: DataformEcComponent, selector: "app-dataform-ec" }, { kind: "component", type: ShipmentEcComponent, selector: "app-shipment-ec" }, { kind: "component", type: PaymentEcComponent, selector: "app-payment-ec" }] });
21
21
  }
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepContainerEcComponent, decorators: [{
23
23
  type: Component,
@@ -25,11 +25,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
25
25
  DataformEcComponent,
26
26
  ShipmentEcComponent,
27
27
  PaymentEcComponent
28
- ], template: "<div>\r\n @for(step of steps; track $index; let x=$index){\r\n <div [id]=\"'test-l-'+step.priority\" class=\"content\">\r\n <!-- <app-step-ec [step_id]=\"step.step\" [id_step]=\"x+1\" [previousStep]=\"steps[x-1] ? steps[x-1].name : step.name\" [nextStep]=\"steps[x+1] ? next : endCheckout\" [goBack]=\"goBack\" [lastStep]=\"steps[x+1] ? false : true\">\r\n </app-step-ec> -->\r\n @switch (step.name) {\r\n @case ('address') {\r\n @if(step.state == 'ready') {\r\n <app-dataform-ec />\r\n }\r\n }\r\n @case ('payment') {\r\n @if(step.state == 'ready') {\r\n <app-payment-ec />\r\n }\r\n }\r\n @case ('shipment') {\r\n @if(step.state == 'ready') {\r\n <app-shipment-ec />\r\n }\r\n }\r\n }\r\n </div>\r\n }\r\n <!-- <div class=\"row d-flex flex-row\">\r\n <div class=\"col-6 d-flex justify-content-start\">\r\n <button type=\"button\" class=\"btn btn-primary text-white\" (click)=\"back()\">Anterior</button>\r\n </div>\r\n <div class=\"col-6 d-flex justify-content-end\">\r\n <button type=\"button\" class=\"btn btn-primary text-white\" (click)=\"next()\">Siguiente</button>\r\n </div>\r\n </div> -->\r\n</div>\r\n" }]
28
+ ], template: "<div>\n @for(step of steps; track $index; let x=$index){\n <div [id]=\"'test-l-'+step.priority\" class=\"content\">\n <!-- <app-step-ec [step_id]=\"step.step\" [id_step]=\"x+1\" [previousStep]=\"steps[x-1] ? steps[x-1].name : step.name\" [nextStep]=\"steps[x+1] ? next : endCheckout\" [goBack]=\"goBack\" [lastStep]=\"steps[x+1] ? false : true\">\n </app-step-ec> -->\n @switch (step.name) {\n @case ('address') {\n @if(step.state == 'ready') {\n <app-dataform-ec />\n }\n }\n @case ('payment') {\n @if(step.state == 'ready') {\n <app-payment-ec />\n }\n }\n @case ('shipment') {\n @if(step.state == 'ready') {\n <app-shipment-ec />\n }\n }\n }\n </div>\n }\n <!-- <div class=\"row d-flex flex-row\">\n <div class=\"col-6 d-flex justify-content-start\">\n <button type=\"button\" class=\"btn btn-primary text-white\" (click)=\"back()\">Anterior</button>\n </div>\n <div class=\"col-6 d-flex justify-content-end\">\n <button type=\"button\" class=\"btn btn-primary text-white\" (click)=\"next()\">Siguiente</button>\n </div>\n </div> -->\n</div>\n" }]
29
29
  }], ctorParameters: () => [], propDecorators: { steps: [{
30
30
  type: Input,
31
31
  args: [{
32
32
  required: true,
33
33
  }]
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1jb250YWluZXItZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc3RlcC1jb250YWluZXItZWMvc3RlcC1jb250YWluZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc3RlcC1jb250YWluZXItZWMvc3RlcC1jb250YWluZXItZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFheEUsTUFBTSxPQUFPLHdCQUF3QjtJQUM1QixnQkFBZ0IsR0FBb0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBSWpFLEtBQUssQ0FBVTtJQUVsQjtRQUNDLG9DQUFvQztJQUNyQyxDQUFDO0lBRUQsSUFBSTtRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRUQsSUFBSTtRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM3QixDQUFDO3dHQWpCVyx3QkFBd0I7NEZBQXhCLHdCQUF3Qiw2R0NuQnJDLG85Q0FpQ0EsMEREckJFLG1CQUFtQiw0REFDbkIsbUJBQW1CLDREQUNuQixrQkFBa0I7OzRGQUtQLHdCQUF3QjtrQkFYcEMsU0FBUzsrQkFDQyx1QkFBdUIsY0FDckIsSUFBSSxXQUNQO3dCQUNSLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ2xCO3dEQVNFLEtBQUs7c0JBRlAsS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJU3RlcCB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFN0ZXAgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzJztcclxuaW1wb3J0IHsgRGF0YWZvcm1FY0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGFmb3JtLWVjL2RhdGFmb3JtLWVjLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoaXBtZW50RWNDb21wb25lbnQgfSBmcm9tICcuLi9zaGlwbWVudC1lYy9zaGlwbWVudC1lYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYXltZW50RWNDb21wb25lbnQgfSBmcm9tICcuLi9wYXltZW50LWVjL3BheW1lbnQtZWMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLXN0ZXAtY29udGFpbmVyLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdERhdGFmb3JtRWNDb21wb25lbnQsXHJcblx0XHRTaGlwbWVudEVjQ29tcG9uZW50LFxyXG5cdFx0UGF5bWVudEVjQ29tcG9uZW50XHJcblx0XSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc3RlcC1jb250YWluZXItZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9zdGVwLWNvbnRhaW5lci1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0ZXBDb250YWluZXJFY0NvbXBvbmVudCB7XHJcblx0cHJpdmF0ZSBfY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UgPSBpbmplY3QoQ2hlY2tvdXRTZXJ2aWNlKTtcclxuXHJcblx0QElucHV0KHtcclxuXHRcdHJlcXVpcmVkOiB0cnVlLFxyXG5cdH0pIHN0ZXBzITogU3RlcFtdO1xyXG5cdFxyXG5cdGNvbnN0cnVjdG9yKCl7XHJcblx0XHQvLyBjb25zb2xlLmxvZygnc3RlcC1jb250YWluZXItZWMnKTtcclxuXHR9XHJcblxyXG5cdG5leHQoKXtcclxuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5uZXh0KClcclxuXHR9XHJcblxyXG5cdGJhY2soKSB7XHJcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UuYmFjaygpXHJcblx0fVxyXG5cclxufVxyXG4iLCI8ZGl2PlxyXG4gICAgQGZvcihzdGVwIG9mIHN0ZXBzOyB0cmFjayAkaW5kZXg7IGxldCB4PSRpbmRleCl7XHJcbiAgICAgICAgPGRpdiBbaWRdPVwiJ3Rlc3QtbC0nK3N0ZXAucHJpb3JpdHlcIiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgICAgPCEtLSA8YXBwLXN0ZXAtZWMgW3N0ZXBfaWRdPVwic3RlcC5zdGVwXCIgW2lkX3N0ZXBdPVwieCsxXCIgW3ByZXZpb3VzU3RlcF09XCJzdGVwc1t4LTFdID8gc3RlcHNbeC0xXS5uYW1lIDogc3RlcC5uYW1lXCIgIFtuZXh0U3RlcF09XCJzdGVwc1t4KzFdID8gbmV4dCA6IGVuZENoZWNrb3V0XCIgW2dvQmFja109XCJnb0JhY2tcIiBbbGFzdFN0ZXBdPVwic3RlcHNbeCsxXSA/IGZhbHNlIDogdHJ1ZVwiPlxyXG4gICAgICAgICA8L2FwcC1zdGVwLWVjPiAgIC0tPlxyXG4gICAgICAgICAgICBAc3dpdGNoIChzdGVwLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgIEBjYXNlICgnYWRkcmVzcycpIHtcclxuICAgICAgICAgICAgICAgICAgICBAaWYoc3RlcC5zdGF0ZSA9PSAncmVhZHknKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1kYXRhZm9ybS1lYyAvPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBjYXNlICgncGF5bWVudCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBAaWYoc3RlcC5zdGF0ZSA9PSAncmVhZHknKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1wYXltZW50LWVjIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdzaGlwbWVudCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBAaWYoc3RlcC5zdGF0ZSA9PSAncmVhZHknKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1zaGlwbWVudC1lYyAvPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBmbGV4LXJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtd2hpdGVcIiAoY2xpY2spPVwiYmFjaygpXCI+QW50ZXJpb3I8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGV4dC13aGl0ZVwiIChjbGljayk9XCJuZXh0KClcIj5TaWd1aWVudGU8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuPC9kaXY+XHJcbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1jb250YWluZXItZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc3RlcC1jb250YWluZXItZWMvc3RlcC1jb250YWluZXItZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc3RlcC1jb250YWluZXItZWMvc3RlcC1jb250YWluZXItZWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFheEUsTUFBTSxPQUFPLHdCQUF3QjtJQUM1QixnQkFBZ0IsR0FBb0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBSWpFLEtBQUssQ0FBVTtJQUVsQjtRQUNDLG9DQUFvQztJQUNyQyxDQUFDO0lBRUQsSUFBSTtRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRUQsSUFBSTtRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM3QixDQUFDO3dHQWpCVyx3QkFBd0I7NEZBQXhCLHdCQUF3Qiw2R0NuQnJDLGs1Q0FpQ0EsMEREckJFLG1CQUFtQiw0REFDbkIsbUJBQW1CLDREQUNuQixrQkFBa0I7OzRGQUtQLHdCQUF3QjtrQkFYcEMsU0FBUzsrQkFDQyx1QkFBdUIsY0FDckIsSUFBSSxXQUNQO3dCQUNSLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ2xCO3dEQVNFLEtBQUs7c0JBRlAsS0FBSzt1QkFBQzt3QkFDTixRQUFRLEVBQUUsSUFBSTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVN0ZXAgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IFN0ZXAgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzJztcbmltcG9ydCB7IERhdGFmb3JtRWNDb21wb25lbnQgfSBmcm9tICcuLi9kYXRhZm9ybS1lYy9kYXRhZm9ybS1lYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2hpcG1lbnRFY0NvbXBvbmVudCB9IGZyb20gJy4uL3NoaXBtZW50LWVjL3NoaXBtZW50LWVjLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXltZW50RWNDb21wb25lbnQgfSBmcm9tICcuLi9wYXltZW50LWVjL3BheW1lbnQtZWMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLXN0ZXAtY29udGFpbmVyLWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1xuXHRcdERhdGFmb3JtRWNDb21wb25lbnQsXG5cdFx0U2hpcG1lbnRFY0NvbXBvbmVudCxcblx0XHRQYXltZW50RWNDb21wb25lbnRcblx0XSxcblx0dGVtcGxhdGVVcmw6ICcuL3N0ZXAtY29udGFpbmVyLWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL3N0ZXAtY29udGFpbmVyLWVjLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBTdGVwQ29udGFpbmVyRWNDb21wb25lbnQge1xuXHRwcml2YXRlIF9jaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSA9IGluamVjdChDaGVja291dFNlcnZpY2UpO1xuXG5cdEBJbnB1dCh7XG5cdFx0cmVxdWlyZWQ6IHRydWUsXG5cdH0pIHN0ZXBzITogU3RlcFtdO1xuXHRcblx0Y29uc3RydWN0b3IoKXtcblx0XHQvLyBjb25zb2xlLmxvZygnc3RlcC1jb250YWluZXItZWMnKTtcblx0fVxuXG5cdG5leHQoKXtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UubmV4dCgpXG5cdH1cblxuXHRiYWNrKCkge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5iYWNrKClcblx0fVxuXG59XG4iLCI8ZGl2PlxuICAgIEBmb3Ioc3RlcCBvZiBzdGVwczsgdHJhY2sgJGluZGV4OyBsZXQgeD0kaW5kZXgpe1xuICAgICAgICA8ZGl2IFtpZF09XCIndGVzdC1sLScrc3RlcC5wcmlvcml0eVwiIGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgPCEtLSA8YXBwLXN0ZXAtZWMgW3N0ZXBfaWRdPVwic3RlcC5zdGVwXCIgW2lkX3N0ZXBdPVwieCsxXCIgW3ByZXZpb3VzU3RlcF09XCJzdGVwc1t4LTFdID8gc3RlcHNbeC0xXS5uYW1lIDogc3RlcC5uYW1lXCIgIFtuZXh0U3RlcF09XCJzdGVwc1t4KzFdID8gbmV4dCA6IGVuZENoZWNrb3V0XCIgW2dvQmFja109XCJnb0JhY2tcIiBbbGFzdFN0ZXBdPVwic3RlcHNbeCsxXSA/IGZhbHNlIDogdHJ1ZVwiPlxuICAgICAgICAgPC9hcHAtc3RlcC1lYz4gICAtLT5cbiAgICAgICAgICAgIEBzd2l0Y2ggKHN0ZXAubmFtZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlICgnYWRkcmVzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmKHN0ZXAuc3RhdGUgPT0gJ3JlYWR5Jykge1xuICAgICAgICAgICAgICAgICAgICA8YXBwLWRhdGFmb3JtLWVjIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdwYXltZW50Jykge1xuICAgICAgICAgICAgICAgICAgICBAaWYoc3RlcC5zdGF0ZSA9PSAncmVhZHknKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtcGF5bWVudC1lYyAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnc2hpcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZihzdGVwLnN0YXRlID09ICdyZWFkeScpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1zaGlwbWVudC1lYyAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBmbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGV4dC13aGl0ZVwiIChjbGljayk9XCJiYWNrKClcIj5BbnRlcmlvcjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlXCIgKGNsaWNrKT1cIm5leHQoKVwiPlNpZ3VpZW50ZTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG48L2Rpdj5cbiJdfQ==