ng-easycommerce-v18 0.2.10 → 0.2.12

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.
package/README.md CHANGED
@@ -1,4 +1,8 @@
1
- # Version 0.2.6
1
+ # Version 0.2.12
2
+ - Se agrega logia al app-price para funcion de mostrar precios logeados o no
3
+ # Version 0.2.11
4
+ - se cambia el block-banner-full para personalizar las flechas
5
+ # Version 0.2.10
2
6
  - Se modifica las constantes de apiURL para probar.
3
7
  # Version 0.2.5
4
8
  - Se prueba el apiURL
@@ -22,12 +22,26 @@ export class BlockBannerFullEcComponent extends BlockEcComponent {
22
22
  * Datos del bloque que contiene a los banners
23
23
  */
24
24
  meta;
25
+ // =================== PERSONALIZACIÓN DE NAVEGACIÓN ===================
26
+ /**
27
+ * Personalización de las flechas de navegación
28
+ * Por defecto usa símbolos de texto, pero se pueden especificar imágenes
29
+ */
30
+ prevArrowImage; // undefined = usa símbolo de texto
31
+ nextArrowImage; // undefined = usa símbolo de texto
32
+ prevArrowText = '<';
33
+ nextArrowText = '>';
34
+ /**
35
+ * Opción para habilitar/deshabilitar la navegación personalizada
36
+ */
37
+ enableCustomNavigation = true;
38
+ // ====================================================================
25
39
  /**
26
40
  * Servicio para Analytics
27
41
  */
28
42
  analyticsService = inject(AnalyticsService);
29
43
  /**
30
- * Signal utlizado para guarda el contenedor del carrusel
44
+ * Signal utilizado para guardar el contenedor del carrusel
31
45
  */
32
46
  swiperElement = signal(null);
33
47
  /**
@@ -36,19 +50,21 @@ export class BlockBannerFullEcComponent extends BlockEcComponent {
36
50
  * @returns
37
51
  */
38
52
  getImage = (banner) => this.getBannerImage(banner);
53
+ document;
54
+ platformId = inject(PLATFORM_ID);
39
55
  /**
40
56
  * Se mappea los banners para sumarle el objeto de translations y que
41
57
  * sean mas amigables para su uso.
42
58
  */
43
59
  ngOnInit() {
44
- this.banners = this.banners.map((banner) => { return { ...banner, ...banner.translations[this.apiConsts.LOCALE] }; });
60
+ this.banners = this.banners.map((banner) => {
61
+ return { ...banner, ...banner.translations[this.apiConsts.LOCALE] };
62
+ });
45
63
  }
46
- document;
47
- platformId = inject(PLATFORM_ID);
48
64
  /**
49
- * Ejecuta el método `afterNextRender`para cargar las configuraciones necesarias
50
- * para el carrusel del banners. Esto debe ser asi debido a que ya debe estar presente
51
- * en el Dom el element `<swiper-container>` para poder configurarlo.
65
+ * Ejecuta el método `afterNextRender` para cargar las configuraciones necesarias
66
+ * para el carrusel de banners. Esto debe ser así debido a que ya debe estar presente
67
+ * en el DOM el elemento `<swiper-container>` para poder configurarlo.
52
68
  */
53
69
  constructor() {
54
70
  super();
@@ -56,21 +72,130 @@ export class BlockBannerFullEcComponent extends BlockEcComponent {
56
72
  this.document = document;
57
73
  }
58
74
  afterNextRender(() => {
59
- const swiperElemConstructor = this.document?.querySelector('#' + this.meta?.code);
75
+ this.initializeSwiperWithNavigation();
76
+ });
77
+ }
78
+ /**
79
+ * Inicializa el Swiper con navegación personalizada
80
+ */
81
+ initializeSwiperWithNavigation() {
82
+ const swiperElemConstructor = this.document?.querySelector('#' + this.meta?.code);
83
+ if (swiperElemConstructor) {
84
+ // Configurar el Swiper con las opciones base
60
85
  Object.assign(swiperElemConstructor, this.swiperOptions());
61
86
  this.swiperElement.set(swiperElemConstructor);
62
87
  this.swiperElement()?.initialize();
88
+ // Configurar navegación personalizada si está habilitada
89
+ if (this.enableCustomNavigation) {
90
+ setTimeout(() => {
91
+ this.setupCustomNavigation();
92
+ }, 200);
93
+ }
94
+ }
95
+ }
96
+ /**
97
+ * Configura la navegación personalizada del Swiper para banners
98
+ */
99
+ setupCustomNavigation() {
100
+ const prevButton = this.document?.getElementById(`${this.meta?.code}-prev`);
101
+ const nextButton = this.document?.getElementById(`${this.meta?.code}-next`);
102
+ const swiperElement = this.document?.getElementById(this.meta?.code);
103
+ if (prevButton && nextButton && swiperElement) {
104
+ console.log('Configurando navegación personalizada para banners:', this.meta?.code);
105
+ // Actualizar configuración del Swiper existente
106
+ this.updateSwiperForBanners(swiperElement);
107
+ // Configurar los event listeners para los botones
108
+ this.setupBannerNavigationEventListeners(prevButton, nextButton, swiperElement);
109
+ console.log('Event listeners configurados para navegación de banners');
110
+ }
111
+ else {
112
+ console.log('No se pudieron encontrar los elementos de navegación para banners:', {
113
+ prevButton: !!prevButton,
114
+ nextButton: !!nextButton,
115
+ swiperElement: !!swiperElement
116
+ });
117
+ }
118
+ }
119
+ /**
120
+ * Actualiza la configuración del Swiper específicamente para banners
121
+ */
122
+ updateSwiperForBanners(swiperElement) {
123
+ if (swiperElement.swiper) {
124
+ console.log('Actualizando configuración de Swiper para banners');
125
+ // Configuración específica para banners
126
+ swiperElement.swiper.params.slidesPerGroup = 1;
127
+ swiperElement.swiper.allowSlideNext = true;
128
+ swiperElement.swiper.allowSlidePrev = true;
129
+ // Actualizar también los breakpoints si existen
130
+ if (swiperElement.swiper.params.breakpoints) {
131
+ Object.keys(swiperElement.swiper.params.breakpoints).forEach(key => {
132
+ swiperElement.swiper.params.breakpoints[key].slidesPerGroup = 1;
133
+ });
134
+ }
135
+ swiperElement.swiper.update();
136
+ }
137
+ }
138
+ /**
139
+ * Configura los event listeners para los botones de navegación de banners
140
+ */
141
+ setupBannerNavigationEventListeners(prevButton, nextButton, swiperElement) {
142
+ // Remover event listeners existentes para evitar duplicados
143
+ const prevClone = prevButton.cloneNode(true);
144
+ const nextClone = nextButton.cloneNode(true);
145
+ prevButton.parentNode?.replaceChild(prevClone, prevButton);
146
+ nextButton.parentNode?.replaceChild(nextClone, nextButton);
147
+ // Agregar nuevos event listeners
148
+ prevClone.addEventListener('click', (e) => {
149
+ e.preventDefault();
150
+ e.stopPropagation();
151
+ console.log('Click en botón anterior (banners)');
152
+ if (swiperElement.swiper) {
153
+ swiperElement.swiper.slidePrev();
154
+ }
155
+ });
156
+ nextClone.addEventListener('click', (e) => {
157
+ e.preventDefault();
158
+ e.stopPropagation();
159
+ console.log('Click en botón siguiente (banners)');
160
+ if (swiperElement.swiper) {
161
+ swiperElement.swiper.slideNext();
162
+ }
63
163
  });
64
164
  }
65
165
  /**
66
- * Aplica el evento `select_promotion` junto con el banner que interactua.
166
+ * Aplica el evento `select_promotion` junto con el banner que interactúa.
67
167
  * @param banner
68
168
  */
69
169
  selectPromotion(banner) {
70
170
  this.analyticsService.callEvent('select_promotion', banner);
71
171
  }
172
+ /**
173
+ * Obtiene la configuración específica del Swiper para banners
174
+ * Sobrescribe la configuración base si es necesario
175
+ */
176
+ getBannerSwiperConfiguration() {
177
+ return {
178
+ slidesPerView: 1,
179
+ spaceBetween: 0,
180
+ slidesPerGroup: 1,
181
+ navigation: false, // Deshabilitamos la navegación por defecto
182
+ pagination: {
183
+ el: '.swiper-pagination',
184
+ clickable: true,
185
+ },
186
+ loop: true,
187
+ autoplay: {
188
+ delay: 5000,
189
+ disableOnInteraction: false,
190
+ },
191
+ effect: 'fade',
192
+ fadeEffect: {
193
+ crossFade: true
194
+ }
195
+ };
196
+ }
72
197
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BlockBannerFullEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BlockBannerFullEcComponent, isStandalone: true, selector: "app-block-banner-full-ec", inputs: { banners: "banners", meta: "meta" }, usesInheritance: true, ngImport: i0, template: "@if(banners.length > 0) {\r\n <section [ngClass]=\"trimClassBlock(meta?.code)+' container-fluid px-0'\"\r\n [style.background-color]=\"meta.styles?.backgroundColor\"\r\n [style.background-image]=\"meta.styles?.backgroundImage ? 'url(' + mediaUrl + meta.styles?.backgroundImage +')' : 'inherit'\">\r\n\r\n @if (banners.length == 1) {\r\n <!-- si es formato fijo -->\r\n <div class=\"row justify-content-center\">\r\n @let banner = banners[0];\r\n @if(!banners.styles?.button?.text){\r\n <!-- banner sin boton -->\r\n <a [href]=\"banner.url\" >\r\n <div class=\"item col-12\">\r\n <img class=\"img-fluid\" [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\">\r\n <div class=\"position-absolute w-100 h-100 start-0 top-0\">\r\n @if(banner.title){\r\n <h2 [class]=\"'item-title-full px-2 item-position-vertical-' + (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#fff' \">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n </a>\r\n }@else {\r\n <!-- banner fijo con boton -->\r\n <div class=\"item col-12\">\r\n <img class=\"img-fluid\" [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\">\r\n <div class=\"position-absolute w-100 h-100 start-0 top-0\">\r\n @if(banner.title){\r\n <h2 [class]=\"'item-title-full px-2 item-position-vertical-' + (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.subtitle){\r\n <p \r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n <div [class]=\"'item-position-vertical-' + (banner.styles?.button?.position)\">\r\n @if(banner.styles?.button?.text){\r\n <a href=\"{{banner.url}}\"\r\n [class]=\"'item-button-full btn btn-light '\">\r\n {{banner.styles.button.text}}\r\n </a> \r\n }\r\n \r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }@else {\r\n <!-- si es carrousel -->\r\n <!-- @if(swiperElement() != null){ -->\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (banner of banners; track $index) {\r\n <swiper-slide>\r\n <div class=\"item\">\r\n @if (!banner.styles?.button?.text) {\r\n <!-- banner sin boton -->\r\n @if(banner.url){\r\n <a [href]=\"banner.url\" class=\"\">\r\n <img [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\" class=\"img-fluid w-100\" />\r\n </a>\r\n }@else {\r\n <img [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\" class=\"img-fluid w-100\" />\r\n }\r\n }@else {\r\n <!-- banner con boton -->\r\n <img [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\" />\r\n <div class=\"position-absolute w-100 h-100 start-0 top-0\">\r\n @if(banner.title){\r\n <h2 [class]=\"'item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n <div [class]=\"'item-position-vertical-' + (banner.styles?.button?.position)\">\r\n @if(banner.styles?.button?.text){\r\n <a href=\"{{banner.url}}\" [class]=\"'item-button-full btn btn-light'\">\r\n {{banner.styles.button.text}}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </swiper-slide>\r\n }\r\n </swiper-container>\r\n <!-- } -->\r\n \r\n }\r\n </section>\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
198
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BlockBannerFullEcComponent, isStandalone: true, selector: "app-block-banner-full-ec", inputs: { banners: "banners", meta: "meta", prevArrowImage: "prevArrowImage", nextArrowImage: "nextArrowImage", prevArrowText: "prevArrowText", nextArrowText: "nextArrowText", enableCustomNavigation: "enableCustomNavigation" }, usesInheritance: true, ngImport: i0, template: "@if(banners.length > 0) {\r\n <section [ngClass]=\"trimClassBlock(meta?.code)+' container-fluid px-0'\"\r\n [style.background-color]=\"meta.styles?.backgroundColor\"\r\n [style.background-image]=\"meta.styles?.backgroundImage ? 'url(' + mediaUrl + meta.styles?.backgroundImage +')' : 'inherit'\">\r\n\r\n @if (banners.length == 1) {\r\n <!-- si es formato fijo -->\r\n <div class=\"row justify-content-center\">\r\n @let banner = banners[0];\r\n @if(!banners.styles?.button?.text){\r\n <!-- banner sin boton -->\r\n <a [href]=\"banner.url\" >\r\n <div class=\"item col-12\">\r\n <img class=\"img-fluid\" [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\">\r\n <div class=\"position-absolute w-100 h-100 start-0 top-0\">\r\n @if(banner.title){\r\n <h2 [class]=\"'item-title-full px-2 item-position-vertical-' + (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#fff' \">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n </a>\r\n }@else {\r\n <!-- banner fijo con boton -->\r\n <div class=\"item col-12\">\r\n <img class=\"img-fluid\" [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\">\r\n <div class=\"position-absolute w-100 h-100 start-0 top-0\">\r\n @if(banner.title){\r\n <h2 [class]=\"'item-title-full px-2 item-position-vertical-' + (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.subtitle){\r\n <p \r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n <div [class]=\"'item-position-vertical-' + (banner.styles?.button?.position)\">\r\n @if(banner.styles?.button?.text){\r\n <a href=\"{{banner.url}}\"\r\n [class]=\"'item-button-full btn btn-light '\">\r\n {{banner.styles.button.text}}\r\n </a> \r\n }\r\n \r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }@else {\r\n <!-- si es carrousel -->\r\n <!-- @if(swiperElement() != null){ -->\r\n <swiper-container init=\"false\" [id]=\"meta?.code\">\r\n @for (banner of banners; track $index) {\r\n <swiper-slide>\r\n <div class=\"item\">\r\n @if (!banner.styles?.button?.text) {\r\n <!-- banner sin boton -->\r\n @if(banner.url){\r\n <a [href]=\"banner.url\" class=\"\">\r\n <img [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\" class=\"img-fluid w-100\" />\r\n </a>\r\n }@else {\r\n <img [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\" class=\"img-fluid w-100\" />\r\n }\r\n }@else {\r\n <!-- banner con boton -->\r\n <img [src]=\"mediaBannerUrl + getImage(banner)\" alt=\"\" />\r\n <div class=\"position-absolute w-100 h-100 start-0 top-0\">\r\n @if(banner.title){\r\n <h2 [class]=\"'item-title-full px-2 item-position-vertical-'+ (banner.styles?.description?.position)\"\r\n [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \">\r\n {{banner.title}}\r\n </h2>\r\n }\r\n @if(banner.subtitle){\r\n <p [style.color]=\"(banner.styles?.description?.color) ? banner.styles?.description?.color : '#000' \"\r\n [class]=\"'px-4 item-subtitle-full item-position-vertical-' + (banner.styles?.description?.position)\">\r\n {{banner.subtitle}}\r\n </p>\r\n }\r\n <div [class]=\"'item-position-vertical-' + (banner.styles?.button?.position)\">\r\n @if(banner.styles?.button?.text){\r\n <a href=\"{{banner.url}}\" [class]=\"'item-button-full btn btn-light'\">\r\n {{banner.styles.button.text}}\r\n </a>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </swiper-slide>\r\n }\r\n </swiper-container>\r\n <!-- } -->\r\n \r\n }\r\n </section>\r\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
74
199
  }
75
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BlockBannerFullEcComponent, decorators: [{
76
201
  type: Component,
@@ -83,5 +208,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
83
208
  }], meta: [{
84
209
  type: Input,
85
210
  args: [{ required: true }]
211
+ }], prevArrowImage: [{
212
+ type: Input
213
+ }], nextArrowImage: [{
214
+ type: Input
215
+ }], prevArrowText: [{
216
+ type: Input
217
+ }], nextArrowText: [{
218
+ type: Input
219
+ }], enableCustomNavigation: [{
220
+ type: Input
86
221
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYmFubmVyLWZ1bGwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYmxvY2tzLWVjL2Jsb2NrLWJhbm5lci1mdWxsLWVjL2Jsb2NrLWJhbm5lci1mdWxsLWVjLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9jay1iYW5uZXItZnVsbC1lYy9ibG9jay1iYW5uZXItZnVsbC1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFlLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFFeEQsUUFBUSxFQUFFLENBQUM7QUFDWDs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBZ0I7SUFDL0Q7O09BRUc7SUFHQSxPQUFPLENBQU07SUFDaEI7O09BRUc7SUFDd0IsSUFBSSxDQUFNO0lBQ3JDOztPQUVHO0lBQ0ssZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDbkQ7O09BRUc7SUFDSCxhQUFhLEdBQUcsTUFBTSxDQUF5QixJQUFJLENBQUMsQ0FBQTtJQUNwRDs7OztPQUlHO0lBQ2EsUUFBUSxHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFOzs7T0FHRztJQUNILFFBQVE7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFILENBQUM7SUFDTyxRQUFRLENBQVk7SUFDcEIsVUFBVSxHQUFRLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUU3Qzs7OztPQUlHO0lBQ0g7UUFDQyxLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDekIsQ0FBQztRQUNELGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUNqRixNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFzQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFBO1lBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLHFCQUF3QyxDQUFDLENBQUE7WUFDaEUsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUNEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxNQUFXO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDNUQsQ0FBQzt3R0ExRFcsMEJBQTBCOzRGQUExQiwwQkFBMEIseUpDdkJ2QyxzM05BOEdDLHlERDVGVSxZQUFZOzs0RkFLViwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0MsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsV0FDMUIsQ0FBQyxzQkFBc0IsQ0FBQzt3REFVOUIsT0FBTztzQkFGVCxLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQUkwQixJQUFJO3NCQUE5QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgYWZ0ZXJSZW5kZXIsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBQTEFURk9STV9JRCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElCbG9jayB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBCbG9ja0VjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyByZWdpc3RlciwgU3dpcGVyQ29udGFpbmVyIH0gZnJvbSAnc3dpcGVyL2VsZW1lbnQvYnVuZGxlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5cclxucmVnaXN0ZXIoKTtcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcGFyYSBtYW5lamFyIGxvcyBiYW5uZXJzIGRlIHRpcG8gZnVsbFxyXG4gKiBAZXh0ZW5kcyB7QmxvY2tFY0NvbXBvbmVudH1cclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGNsYXNzIEJsb2NrQmFubmVyRnVsbEVjQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1ibG9jay1iYW5uZXItZnVsbC1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJMaW5rXSxcclxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2Jsb2NrLWJhbm5lci1mdWxsLWVjLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vYmxvY2stYmFubmVyLWZ1bGwtZWMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbG9ja0Jhbm5lckZ1bGxFY0NvbXBvbmVudCBleHRlbmRzIEJsb2NrRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdC8qKlxyXG5cdCAqIEJhbm5lcnMgdGlwbyBmdWxsXHJcblx0ICovXHJcblx0QElucHV0KHtcclxuXHRcdHJlcXVpcmVkOiB0cnVlXHJcblx0fSkgYmFubmVyczogYW55O1xyXG5cdC8qKlxyXG5cdCAqIERhdG9zIGRlbCBibG9xdWUgcXVlIGNvbnRpZW5lIGEgbG9zIGJhbm5lcnNcclxuXHQgKi9cclxuXHRASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBtZXRhOiBhbnk7XHJcblx0LyoqXHJcblx0ICogU2VydmljaW8gcGFyYSBBbmFseXRpY3NcclxuXHQgKi9cclxuXHRwcml2YXRlIGFuYWx5dGljc1NlcnZpY2UgPSBpbmplY3QoQW5hbHl0aWNzU2VydmljZSlcclxuXHQvKipcclxuXHQgKiBTaWduYWwgdXRsaXphZG8gcGFyYSBndWFyZGEgZWwgY29udGVuZWRvciBkZWwgY2FycnVzZWxcclxuXHQgKi9cclxuXHRzd2lwZXJFbGVtZW50ID0gc2lnbmFsPFN3aXBlckNvbnRhaW5lciB8IG51bGw+KG51bGwpXHJcblx0LyoqXHJcblx0ICogTcOpdG9kbyBvcmlnaW5hbCBlbjoge0BsaW5rIEJsb2NrRWNDb21wb25lbnR9XHJcblx0ICogQHBhcmFtIGJhbm5lciBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgb3ZlcnJpZGUgZ2V0SW1hZ2UgPSAoYmFubmVyOiBhbnkpID0+IHRoaXMuZ2V0QmFubmVySW1hZ2UoYmFubmVyKTtcclxuXHQvKipcclxuXHQgKiBTZSBtYXBwZWEgbG9zIGJhbm5lcnMgcGFyYSBzdW1hcmxlIGVsIG9iamV0byBkZSB0cmFuc2xhdGlvbnMgeSBxdWVcclxuXHQgKiBzZWFuIG1hcyBhbWlnYWJsZXMgcGFyYSBzdSB1c28uXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmJhbm5lcnMgPSB0aGlzLmJhbm5lcnMubWFwKChiYW5uZXI6IGFueSkgPT4geyByZXR1cm4geyAuLi5iYW5uZXIsIC4uLmJhbm5lci50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdHMuTE9DQUxFXSB9IH0pXHJcblx0fVxyXG5cdHByaXZhdGUgZG9jdW1lbnQ/OiBEb2N1bWVudDtcclxuXHRwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSA9IGluamVjdChQTEFURk9STV9JRClcclxuXHJcblx0LyoqXHJcblx0ICogRWplY3V0YSBlbCBtw6l0b2RvIGBhZnRlck5leHRSZW5kZXJgcGFyYSBjYXJnYXIgbGFzIGNvbmZpZ3VyYWNpb25lcyBuZWNlc2FyaWFzIFxyXG5cdCAqIHBhcmEgZWwgY2FycnVzZWwgZGVsIGJhbm5lcnMuIEVzdG8gZGViZSBzZXIgYXNpIGRlYmlkbyBhIHF1ZSB5YSBkZWJlIGVzdGFyIHByZXNlbnRlXHJcblx0ICogZW4gZWwgRG9tIGVsIGVsZW1lbnQgYDxzd2lwZXItY29udGFpbmVyPmAgcGFyYSBwb2RlciBjb25maWd1cmFybG8uXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRzdXBlcigpXHJcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG5cdFx0XHR0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnRcclxuXHRcdH1cclxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XHJcblx0XHRcdGNvbnN0IHN3aXBlckVsZW1Db25zdHJ1Y3RvciA9IHRoaXMuZG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJyMnICsgdGhpcy5tZXRhPy5jb2RlKVxyXG5cdFx0XHRPYmplY3QuYXNzaWduKHN3aXBlckVsZW1Db25zdHJ1Y3RvciEsIHRoaXMuc3dpcGVyT3B0aW9ucygpKVxyXG5cdFx0XHR0aGlzLnN3aXBlckVsZW1lbnQuc2V0KHN3aXBlckVsZW1Db25zdHJ1Y3RvciBhcyBTd2lwZXJDb250YWluZXIpXHJcblx0XHRcdHRoaXMuc3dpcGVyRWxlbWVudCgpPy5pbml0aWFsaXplKCk7XHJcblx0XHR9KVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBBcGxpY2EgZWwgZXZlbnRvIGBzZWxlY3RfcHJvbW90aW9uYCBqdW50byBjb24gZWwgYmFubmVyIHF1ZSBpbnRlcmFjdHVhLlxyXG5cdCAqIEBwYXJhbSBiYW5uZXIgXHJcblx0ICovXHJcblx0c2VsZWN0UHJvbW90aW9uKGJhbm5lcjogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCdzZWxlY3RfcHJvbW90aW9uJywgYmFubmVyKVxyXG5cdH1cclxufVxyXG4iLCJAaWYoYmFubmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJ0cmltQ2xhc3NCbG9jayhtZXRhPy5jb2RlKSsnIGNvbnRhaW5lci1mbHVpZCBweC0wJ1wiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwibWV0YS5zdHlsZXM/LmJhY2tncm91bmRDb2xvclwiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwibWV0YS5zdHlsZXM/LmJhY2tncm91bmRJbWFnZSA/ICd1cmwoJyArIG1lZGlhVXJsICsgbWV0YS5zdHlsZXM/LmJhY2tncm91bmRJbWFnZSArJyknIDogJ2luaGVyaXQnXCI+XHJcblxyXG4gICAgICAgIEBpZiAoYmFubmVycy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICA8IS0tIHNpIGVzIGZvcm1hdG8gZmlqbyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICBAbGV0IGJhbm5lciA9IGJhbm5lcnNbMF07XHJcbiAgICAgICAgICAgICAgICBAaWYoIWJhbm5lcnMuc3R5bGVzPy5idXR0b24/LnRleHQpe1xyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gYmFubmVyIHNpbiBib3RvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJiYW5uZXIudXJsXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbSBjb2wtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctZmx1aWRcIiBbc3JjXT1cIm1lZGlhQmFubmVyVXJsICsgZ2V0SW1hZ2UoYmFubmVyKVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHctMTAwIGgtMTAwIHN0YXJ0LTAgdG9wLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnRpdGxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnI2ZmZicgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIuc3VidGl0bGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnIzAwMCcgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidweC00IGl0ZW0tc3VidGl0bGUtZnVsbCBpdGVtLXBvc2l0aW9uLXZlcnRpY2FsLScgKyAoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LnBvc2l0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3VidGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBiYW5uZXIgZmlqbyBjb24gYm90b24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0gY29sLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctZmx1aWRcIiBbc3JjXT1cIm1lZGlhQmFubmVyVXJsICsgZ2V0SW1hZ2UoYmFubmVyKVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgaC0xMDAgc3RhcnQtMCB0b3AtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci50aXRsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCIoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yKSA/IGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvciA6ICcjMDAwJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnN1YnRpdGxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnIzAwMCcgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ3B4LTQgaXRlbS1zdWJ0aXRsZS1mdWxsIGl0ZW0tcG9zaXRpb24tdmVydGljYWwtJyArIChiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8ucG9zaXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnN1YnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmJ1dHRvbj8ucG9zaXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci5zdHlsZXM/LmJ1dHRvbj8udGV4dCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7YmFubmVyLnVybH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidpdGVtLWJ1dHRvbi1mdWxsIGJ0biBidG4tbGlnaHQgJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3R5bGVzLmJ1dHRvbi50ZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIDwhLS0gc2kgZXMgY2Fycm91c2VsIC0tPlxyXG4gICAgICAgICAgICA8IS0tICBAaWYoc3dpcGVyRWxlbWVudCgpICE9IG51bGwpeyAtLT5cclxuICAgICAgICAgICAgICAgIDxzd2lwZXItY29udGFpbmVyIGluaXQ9XCJmYWxzZVwiIFtpZF09XCJtZXRhPy5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChiYW5uZXIgb2YgYmFubmVyczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHN3aXBlci1zbGlkZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWJhbm5lci5zdHlsZXM/LmJ1dHRvbj8udGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYmFubmVyIHNpbiBib3RvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnVybCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImJhbm5lci51cmxcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhQmFubmVyVXJsICsgZ2V0SW1hZ2UoYmFubmVyKVwiIGFsdD1cIlwiIGNsYXNzPVwiaW1nLWZsdWlkIHctMTAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYUJhbm5lclVybCArIGdldEltYWdlKGJhbm5lcilcIiBhbHQ9XCJcIiAgY2xhc3M9XCJpbWctZmx1aWQgdy0xMDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBiYW5uZXIgY29uIGJvdG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYUJhbm5lclVybCArIGdldEltYWdlKGJhbm5lcilcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBoLTEwMCBzdGFydC0wIHRvcC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIudGl0bGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nKyAoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LnBvc2l0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIihiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IpID8gYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yIDogJyMwMDAnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci5zdWJ0aXRsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnIzAwMCcgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ3B4LTQgaXRlbS1zdWJ0aXRsZS1mdWxsIGl0ZW0tcG9zaXRpb24tdmVydGljYWwtJyArIChiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8ucG9zaXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3VidGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidpdGVtLXBvc2l0aW9uLXZlcnRpY2FsLScgKyAoYmFubmVyLnN0eWxlcz8uYnV0dG9uPy5wb3NpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIuc3R5bGVzPy5idXR0b24/LnRleHQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJ7e2Jhbm5lci51cmx9fVwiIFtjbGFzc109XCInaXRlbS1idXR0b24tZnVsbCBidG4gYnRuLWxpZ2h0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci5zdHlsZXMuYnV0dG9uLnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3dpcGVyLXNsaWRlPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3N3aXBlci1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gIH0gLS0+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIDwvc2VjdGlvbj5cclxufSJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYmFubmVyLWZ1bGwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYmxvY2tzLWVjL2Jsb2NrLWJhbm5lci1mdWxsLWVjL2Jsb2NrLWJhbm5lci1mdWxsLWVjLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9jay1iYW5uZXItZnVsbC1lYy9ibG9jay1iYW5uZXItZnVsbC1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFlLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFFeEQsUUFBUSxFQUFFLENBQUM7QUFFWDs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBZ0I7SUFDNUQ7O09BRUc7SUFHQSxPQUFPLENBQU07SUFFaEI7O09BRUc7SUFDd0IsSUFBSSxDQUFNO0lBRXJDLHdFQUF3RTtJQUN4RTs7O09BR0c7SUFDTSxjQUFjLENBQVUsQ0FBQyxtQ0FBbUM7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dGVyTmV4dFJlbmRlciwgYWZ0ZXJSZW5kZXIsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBQTEFURk9STV9JRCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElCbG9jayB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBCbG9ja0VjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyByZWdpc3RlciwgU3dpcGVyQ29udGFpbmVyIH0gZnJvbSAnc3dpcGVyL2VsZW1lbnQvYnVuZGxlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5cclxucmVnaXN0ZXIoKTtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHBhcmEgbWFuZWphciBsb3MgYmFubmVycyBkZSB0aXBvIGZ1bGxcclxuICogQGV4dGVuZHMge0Jsb2NrRWNDb21wb25lbnR9XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBjbGFzcyBCbG9ja0Jhbm5lckZ1bGxFY0NvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1ibG9jay1iYW5uZXItZnVsbC1lYycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTGlua10sXHJcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmxvY2stYmFubmVyLWZ1bGwtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2Jsb2NrLWJhbm5lci1mdWxsLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmxvY2tCYW5uZXJGdWxsRWNDb21wb25lbnQgZXh0ZW5kcyBCbG9ja0VjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIC8qKlxyXG4gICAgICogQmFubmVycyB0aXBvIGZ1bGxcclxuICAgICAqL1xyXG4gICAgQElucHV0KHtcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSkgYmFubmVyczogYW55O1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIERhdG9zIGRlbCBibG9xdWUgcXVlIGNvbnRpZW5lIGEgbG9zIGJhbm5lcnNcclxuICAgICAqL1xyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbWV0YTogYW55O1xyXG5cclxuICAgIC8vID09PT09PT09PT09PT09PT09PT0gUEVSU09OQUxJWkFDScOTTiBERSBOQVZFR0FDScOTTiA9PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKipcclxuICAgICAqIFBlcnNvbmFsaXphY2nDs24gZGUgbGFzIGZsZWNoYXMgZGUgbmF2ZWdhY2nDs25cclxuICAgICAqIFBvciBkZWZlY3RvIHVzYSBzw61tYm9sb3MgZGUgdGV4dG8sIHBlcm8gc2UgcHVlZGVuIGVzcGVjaWZpY2FyIGltw6FnZW5lc1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwcmV2QXJyb3dJbWFnZT86IHN0cmluZzsgLy8gdW5kZWZpbmVkID0gdXNhIHPDrW1ib2xvIGRlIHRleHRvXHJcbiAgICBASW5wdXQoKSBuZXh0QXJyb3dJbWFnZT86IHN0cmluZzsgLy8gdW5kZWZpbmVkID0gdXNhIHPDrW1ib2xvIGRlIHRleHRvXHJcbiAgICBASW5wdXQoKSBwcmV2QXJyb3dUZXh0OiBzdHJpbmcgPSAnPCc7XHJcbiAgICBASW5wdXQoKSBuZXh0QXJyb3dUZXh0OiBzdHJpbmcgPSAnPic7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGNpw7NuIHBhcmEgaGFiaWxpdGFyL2Rlc2hhYmlsaXRhciBsYSBuYXZlZ2FjacOzbiBwZXJzb25hbGl6YWRhXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGVuYWJsZUN1c3RvbU5hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXJ2aWNpbyBwYXJhIEFuYWx5dGljc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFuYWx5dGljc1NlcnZpY2UgPSBpbmplY3QoQW5hbHl0aWNzU2VydmljZSk7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogU2lnbmFsIHV0aWxpemFkbyBwYXJhIGd1YXJkYXIgZWwgY29udGVuZWRvciBkZWwgY2FycnVzZWxcclxuICAgICAqL1xyXG4gICAgc3dpcGVyRWxlbWVudCA9IHNpZ25hbDxTd2lwZXJDb250YWluZXIgfCBudWxsPihudWxsKTtcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBNw6l0b2RvIG9yaWdpbmFsIGVuOiB7QGxpbmsgQmxvY2tFY0NvbXBvbmVudH1cclxuICAgICAqIEBwYXJhbSBiYW5uZXIgXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgcHVibGljIG92ZXJyaWRlIGdldEltYWdlID0gKGJhbm5lcjogYW55KSA9PiB0aGlzLmdldEJhbm5lckltYWdlKGJhbm5lcik7XHJcbiAgICBcclxuICAgIHByaXZhdGUgZG9jdW1lbnQ/OiBEb2N1bWVudDtcclxuICAgIHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlIG1hcHBlYSBsb3MgYmFubmVycyBwYXJhIHN1bWFybGUgZWwgb2JqZXRvIGRlIHRyYW5zbGF0aW9ucyB5IHF1ZVxyXG4gICAgICogc2VhbiBtYXMgYW1pZ2FibGVzIHBhcmEgc3UgdXNvLlxyXG4gICAgICovXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmJhbm5lcnMgPSB0aGlzLmJhbm5lcnMubWFwKChiYW5uZXI6IGFueSkgPT4geyBcclxuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYmFubmVyLCAuLi5iYW5uZXIudHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RzLkxPQ0FMRV0gfSBcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVqZWN1dGEgZWwgbcOpdG9kbyBgYWZ0ZXJOZXh0UmVuZGVyYCBwYXJhIGNhcmdhciBsYXMgY29uZmlndXJhY2lvbmVzIG5lY2VzYXJpYXMgXHJcbiAgICAgKiBwYXJhIGVsIGNhcnJ1c2VsIGRlIGJhbm5lcnMuIEVzdG8gZGViZSBzZXIgYXPDrSBkZWJpZG8gYSBxdWUgeWEgZGViZSBlc3RhciBwcmVzZW50ZVxyXG4gICAgICogZW4gZWwgRE9NIGVsIGVsZW1lbnRvIGA8c3dpcGVyLWNvbnRhaW5lcj5gIHBhcmEgcG9kZXIgY29uZmlndXJhcmxvLlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplU3dpcGVyV2l0aE5hdmlnYXRpb24oKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaWNpYWxpemEgZWwgU3dpcGVyIGNvbiBuYXZlZ2FjacOzbiBwZXJzb25hbGl6YWRhXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVN3aXBlcldpdGhOYXZpZ2F0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHN3aXBlckVsZW1Db25zdHJ1Y3RvciA9IHRoaXMuZG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJyMnICsgdGhpcy5tZXRhPy5jb2RlKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAoc3dpcGVyRWxlbUNvbnN0cnVjdG9yKSB7XHJcbiAgICAgICAgICAgIC8vIENvbmZpZ3VyYXIgZWwgU3dpcGVyIGNvbiBsYXMgb3BjaW9uZXMgYmFzZVxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHN3aXBlckVsZW1Db25zdHJ1Y3RvciwgdGhpcy5zd2lwZXJPcHRpb25zKCkpO1xyXG4gICAgICAgICAgICB0aGlzLnN3aXBlckVsZW1lbnQuc2V0KHN3aXBlckVsZW1Db25zdHJ1Y3RvciBhcyBTd2lwZXJDb250YWluZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnN3aXBlckVsZW1lbnQoKT8uaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ29uZmlndXJhciBuYXZlZ2FjacOzbiBwZXJzb25hbGl6YWRhIHNpIGVzdMOhIGhhYmlsaXRhZGFcclxuICAgICAgICAgICAgaWYgKHRoaXMuZW5hYmxlQ3VzdG9tTmF2aWdhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR1cEN1c3RvbU5hdmlnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sIDIwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmEgbGEgbmF2ZWdhY2nDs24gcGVyc29uYWxpemFkYSBkZWwgU3dpcGVyIHBhcmEgYmFubmVyc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldHVwQ3VzdG9tTmF2aWdhdGlvbigpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBwcmV2QnV0dG9uID0gdGhpcy5kb2N1bWVudD8uZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5tZXRhPy5jb2RlfS1wcmV2YCk7XHJcbiAgICAgICAgY29uc3QgbmV4dEJ1dHRvbiA9IHRoaXMuZG9jdW1lbnQ/LmdldEVsZW1lbnRCeUlkKGAke3RoaXMubWV0YT8uY29kZX0tbmV4dGApO1xyXG4gICAgICAgIGNvbnN0IHN3aXBlckVsZW1lbnQgPSB0aGlzLmRvY3VtZW50Py5nZXRFbGVtZW50QnlJZCh0aGlzLm1ldGE/LmNvZGUpIGFzIGFueTtcclxuXHJcbiAgICAgICAgaWYgKHByZXZCdXR0b24gJiYgbmV4dEJ1dHRvbiAmJiBzd2lwZXJFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb25maWd1cmFuZG8gbmF2ZWdhY2nDs24gcGVyc29uYWxpemFkYSBwYXJhIGJhbm5lcnM6JywgdGhpcy5tZXRhPy5jb2RlKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIEFjdHVhbGl6YXIgY29uZmlndXJhY2nDs24gZGVsIFN3aXBlciBleGlzdGVudGVcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVTd2lwZXJGb3JCYW5uZXJzKHN3aXBlckVsZW1lbnQpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ29uZmlndXJhciBsb3MgZXZlbnQgbGlzdGVuZXJzIHBhcmEgbG9zIGJvdG9uZXNcclxuICAgICAgICAgICAgdGhpcy5zZXR1cEJhbm5lck5hdmlnYXRpb25FdmVudExpc3RlbmVycyhwcmV2QnV0dG9uLCBuZXh0QnV0dG9uLCBzd2lwZXJFbGVtZW50KTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFdmVudCBsaXN0ZW5lcnMgY29uZmlndXJhZG9zIHBhcmEgbmF2ZWdhY2nDs24gZGUgYmFubmVycycpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdObyBzZSBwdWRpZXJvbiBlbmNvbnRyYXIgbG9zIGVsZW1lbnRvcyBkZSBuYXZlZ2FjacOzbiBwYXJhIGJhbm5lcnM6Jywge1xyXG4gICAgICAgICAgICAgICAgcHJldkJ1dHRvbjogISFwcmV2QnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgbmV4dEJ1dHRvbjogISFuZXh0QnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgc3dpcGVyRWxlbWVudDogISFzd2lwZXJFbGVtZW50XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdHVhbGl6YSBsYSBjb25maWd1cmFjacOzbiBkZWwgU3dpcGVyIGVzcGVjw61maWNhbWVudGUgcGFyYSBiYW5uZXJzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlU3dpcGVyRm9yQmFubmVycyhzd2lwZXJFbGVtZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoc3dpcGVyRWxlbWVudC5zd2lwZXIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0FjdHVhbGl6YW5kbyBjb25maWd1cmFjacOzbiBkZSBTd2lwZXIgcGFyYSBiYW5uZXJzJyk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBDb25maWd1cmFjacOzbiBlc3BlY8OtZmljYSBwYXJhIGJhbm5lcnNcclxuICAgICAgICAgICAgc3dpcGVyRWxlbWVudC5zd2lwZXIucGFyYW1zLnNsaWRlc1Blckdyb3VwID0gMTtcclxuICAgICAgICAgICAgc3dpcGVyRWxlbWVudC5zd2lwZXIuYWxsb3dTbGlkZU5leHQgPSB0cnVlO1xyXG4gICAgICAgICAgICBzd2lwZXJFbGVtZW50LnN3aXBlci5hbGxvd1NsaWRlUHJldiA9IHRydWU7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBBY3R1YWxpemFyIHRhbWJpw6luIGxvcyBicmVha3BvaW50cyBzaSBleGlzdGVuXHJcbiAgICAgICAgICAgIGlmIChzd2lwZXJFbGVtZW50LnN3aXBlci5wYXJhbXMuYnJlYWtwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHN3aXBlckVsZW1lbnQuc3dpcGVyLnBhcmFtcy5icmVha3BvaW50cykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXBlckVsZW1lbnQuc3dpcGVyLnBhcmFtcy5icmVha3BvaW50c1trZXldLnNsaWRlc1Blckdyb3VwID0gMTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBzd2lwZXJFbGVtZW50LnN3aXBlci51cGRhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmEgbG9zIGV2ZW50IGxpc3RlbmVycyBwYXJhIGxvcyBib3RvbmVzIGRlIG5hdmVnYWNpw7NuIGRlIGJhbm5lcnNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXR1cEJhbm5lck5hdmlnYXRpb25FdmVudExpc3RlbmVycyhwcmV2QnV0dG9uOiBFbGVtZW50LCBuZXh0QnV0dG9uOiBFbGVtZW50LCBzd2lwZXJFbGVtZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZW1vdmVyIGV2ZW50IGxpc3RlbmVycyBleGlzdGVudGVzIHBhcmEgZXZpdGFyIGR1cGxpY2Fkb3NcclxuICAgICAgICBjb25zdCBwcmV2Q2xvbmUgPSBwcmV2QnV0dG9uLmNsb25lTm9kZSh0cnVlKTtcclxuICAgICAgICBjb25zdCBuZXh0Q2xvbmUgPSBuZXh0QnV0dG9uLmNsb25lTm9kZSh0cnVlKTtcclxuICAgICAgICBwcmV2QnV0dG9uLnBhcmVudE5vZGU/LnJlcGxhY2VDaGlsZChwcmV2Q2xvbmUsIHByZXZCdXR0b24pO1xyXG4gICAgICAgIG5leHRCdXR0b24ucGFyZW50Tm9kZT8ucmVwbGFjZUNoaWxkKG5leHRDbG9uZSwgbmV4dEJ1dHRvbik7XHJcblxyXG4gICAgICAgIC8vIEFncmVnYXIgbnVldm9zIGV2ZW50IGxpc3RlbmVyc1xyXG4gICAgICAgIHByZXZDbG9uZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0NsaWNrIGVuIGJvdMOzbiBhbnRlcmlvciAoYmFubmVycyknKTtcclxuICAgICAgICAgICAgaWYgKHN3aXBlckVsZW1lbnQuc3dpcGVyKSB7XHJcbiAgICAgICAgICAgICAgICBzd2lwZXJFbGVtZW50LnN3aXBlci5zbGlkZVByZXYoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBuZXh0Q2xvbmUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDbGljayBlbiBib3TDs24gc2lndWllbnRlIChiYW5uZXJzKScpO1xyXG4gICAgICAgICAgICBpZiAoc3dpcGVyRWxlbWVudC5zd2lwZXIpIHtcclxuICAgICAgICAgICAgICAgIHN3aXBlckVsZW1lbnQuc3dpcGVyLnNsaWRlTmV4dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcGxpY2EgZWwgZXZlbnRvIGBzZWxlY3RfcHJvbW90aW9uYCBqdW50byBjb24gZWwgYmFubmVyIHF1ZSBpbnRlcmFjdMO6YS5cclxuICAgICAqIEBwYXJhbSBiYW5uZXIgXHJcbiAgICAgKi9cclxuICAgIHNlbGVjdFByb21vdGlvbihiYW5uZXI6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3NlbGVjdF9wcm9tb3Rpb24nLCBiYW5uZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2J0aWVuZSBsYSBjb25maWd1cmFjacOzbiBlc3BlY8OtZmljYSBkZWwgU3dpcGVyIHBhcmEgYmFubmVyc1xyXG4gICAgICogU29icmVzY3JpYmUgbGEgY29uZmlndXJhY2nDs24gYmFzZSBzaSBlcyBuZWNlc2FyaW9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRCYW5uZXJTd2lwZXJDb25maWd1cmF0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEsXHJcbiAgICAgICAgICAgIHNwYWNlQmV0d2VlbjogMCxcclxuICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IDEsXHJcbiAgICAgICAgICAgIG5hdmlnYXRpb246IGZhbHNlLCAvLyBEZXNoYWJpbGl0YW1vcyBsYSBuYXZlZ2FjacOzbiBwb3IgZGVmZWN0b1xyXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICBlbDogJy5zd2lwZXItcGFnaW5hdGlvbicsXHJcbiAgICAgICAgICAgICAgICBjbGlja2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGxvb3A6IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9wbGF5OiB7XHJcbiAgICAgICAgICAgICAgICBkZWxheTogNTAwMCxcclxuICAgICAgICAgICAgICAgIGRpc2FibGVPbkludGVyYWN0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZWZmZWN0OiAnZmFkZScsXHJcbiAgICAgICAgICAgIGZhZGVFZmZlY3Q6IHtcclxuICAgICAgICAgICAgICAgIGNyb3NzRmFkZTogdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYoYmFubmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJ0cmltQ2xhc3NCbG9jayhtZXRhPy5jb2RlKSsnIGNvbnRhaW5lci1mbHVpZCBweC0wJ1wiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwibWV0YS5zdHlsZXM/LmJhY2tncm91bmRDb2xvclwiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwibWV0YS5zdHlsZXM/LmJhY2tncm91bmRJbWFnZSA/ICd1cmwoJyArIG1lZGlhVXJsICsgbWV0YS5zdHlsZXM/LmJhY2tncm91bmRJbWFnZSArJyknIDogJ2luaGVyaXQnXCI+XHJcblxyXG4gICAgICAgIEBpZiAoYmFubmVycy5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgICA8IS0tIHNpIGVzIGZvcm1hdG8gZmlqbyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICBAbGV0IGJhbm5lciA9IGJhbm5lcnNbMF07XHJcbiAgICAgICAgICAgICAgICBAaWYoIWJhbm5lcnMuc3R5bGVzPy5idXR0b24/LnRleHQpe1xyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gYmFubmVyIHNpbiBib3RvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJiYW5uZXIudXJsXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbSBjb2wtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctZmx1aWRcIiBbc3JjXT1cIm1lZGlhQmFubmVyVXJsICsgZ2V0SW1hZ2UoYmFubmVyKVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHctMTAwIGgtMTAwIHN0YXJ0LTAgdG9wLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnRpdGxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnI2ZmZicgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIuc3VidGl0bGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnIzAwMCcgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidweC00IGl0ZW0tc3VidGl0bGUtZnVsbCBpdGVtLXBvc2l0aW9uLXZlcnRpY2FsLScgKyAoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LnBvc2l0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3VidGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBiYW5uZXIgZmlqbyBjb24gYm90b24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0gY29sLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctZmx1aWRcIiBbc3JjXT1cIm1lZGlhQmFubmVyVXJsICsgZ2V0SW1hZ2UoYmFubmVyKVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgaC0xMDAgc3RhcnQtMCB0b3AtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci50aXRsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5wb3NpdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCIoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yKSA/IGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvciA6ICcjMDAwJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnN1YnRpdGxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnIzAwMCcgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ3B4LTQgaXRlbS1zdWJ0aXRsZS1mdWxsIGl0ZW0tcG9zaXRpb24tdmVydGljYWwtJyArIChiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8ucG9zaXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnN1YnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCInaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nICsgKGJhbm5lci5zdHlsZXM/LmJ1dHRvbj8ucG9zaXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci5zdHlsZXM/LmJ1dHRvbj8udGV4dCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7YmFubmVyLnVybH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidpdGVtLWJ1dHRvbi1mdWxsIGJ0biBidG4tbGlnaHQgJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3R5bGVzLmJ1dHRvbi50ZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIDwhLS0gc2kgZXMgY2Fycm91c2VsIC0tPlxyXG4gICAgICAgICAgICA8IS0tICBAaWYoc3dpcGVyRWxlbWVudCgpICE9IG51bGwpeyAtLT5cclxuICAgICAgICAgICAgICAgIDxzd2lwZXItY29udGFpbmVyIGluaXQ9XCJmYWxzZVwiIFtpZF09XCJtZXRhPy5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChiYW5uZXIgb2YgYmFubmVyczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHN3aXBlci1zbGlkZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWJhbm5lci5zdHlsZXM/LmJ1dHRvbj8udGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gYmFubmVyIHNpbiBib3RvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoYmFubmVyLnVybCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImJhbm5lci51cmxcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIm1lZGlhQmFubmVyVXJsICsgZ2V0SW1hZ2UoYmFubmVyKVwiIGFsdD1cIlwiIGNsYXNzPVwiaW1nLWZsdWlkIHctMTAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYUJhbm5lclVybCArIGdldEltYWdlKGJhbm5lcilcIiBhbHQ9XCJcIiAgY2xhc3M9XCJpbWctZmx1aWQgdy0xMDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBiYW5uZXIgY29uIGJvdG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZWRpYUJhbm5lclVybCArIGdldEltYWdlKGJhbm5lcilcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBoLTEwMCBzdGFydC0wIHRvcC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIudGl0bGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIFtjbGFzc109XCInaXRlbS10aXRsZS1mdWxsIHB4LTIgaXRlbS1wb3NpdGlvbi12ZXJ0aWNhbC0nKyAoYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LnBvc2l0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIihiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IpID8gYmFubmVyLnN0eWxlcz8uZGVzY3JpcHRpb24/LmNvbG9yIDogJyMwMDAnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFubmVyLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGJhbm5lci5zdWJ0aXRsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbc3R5bGUuY29sb3JdPVwiKGJhbm5lci5zdHlsZXM/LmRlc2NyaXB0aW9uPy5jb2xvcikgPyBiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8uY29sb3IgOiAnIzAwMCcgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ3B4LTQgaXRlbS1zdWJ0aXRsZS1mdWxsIGl0ZW0tcG9zaXRpb24tdmVydGljYWwtJyArIChiYW5uZXIuc3R5bGVzPy5kZXNjcmlwdGlvbj8ucG9zaXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tiYW5uZXIuc3VidGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidpdGVtLXBvc2l0aW9uLXZlcnRpY2FsLScgKyAoYmFubmVyLnN0eWxlcz8uYnV0dG9uPy5wb3NpdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihiYW5uZXIuc3R5bGVzPy5idXR0b24/LnRleHQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJ7e2Jhbm5lci51cmx9fVwiIFtjbGFzc109XCInaXRlbS1idXR0b24tZnVsbCBidG4gYnRuLWxpZ2h0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Jhbm5lci5zdHlsZXMuYnV0dG9uLnRleHR9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3dpcGVyLXNsaWRlPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L3N3aXBlci1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gIH0gLS0+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIDwvc2VjdGlvbj5cclxufSJdfQ==
@@ -70,7 +70,7 @@ export class BlocksEcComponent {
70
70
  }
71
71
  }
72
72
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BlocksEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BlocksEcComponent, isStandalone: true, selector: "app-blocks-ec", inputs: { templates: "templates", show_loading: "show_loading", section: "section", blockFilters: "blockFilters" }, ngImport: i0, template: "@if(blocks$ | async; as blocks){\r\n @if(blocks.length > 0){\r\n <div class=\"container-fluid px-0\">\r\n <div class=\"row\">\r\n @for (block of blocks; track $index) {\r\n @switch (block.contentType) {\r\n @case ('banner') {\r\n @switch(block.design){\r\n @case ('full') {\r\n <app-block-banner-full-ec [banners]=\"block.banners\" [meta]=\"block\" />\r\n }\r\n @case ('boxes') {\r\n <app-block-banner-box-ec [banners]=\"block.banners\" [meta]=\"block\"/>\r\n }\r\n }\r\n }\r\n @case ('html') {\r\n @if(showBlock(block)){\r\n <app-block-html-ec [html_content]=\"getHTMLContent(block)\" />\r\n }\r\n }\r\n @case ('products') {\r\n <app-block-products-ec [products]=\"block.products?.items\" [meta]=\"block\" />\r\n }\r\n @case ('contact_form') {\r\n @if(isNewsletter(block)){\r\n <app-block-newsletter-ec [block]=\"block.contactForm\" />\r\n } @else {\r\n <app-block-form-contact-ec [block]=\"block.contactForm\" />\r\n }\r\n }\r\n }\r\n }\r\n </div>\r\n </div>\r\n }\r\n}", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: BlockBannerFullEcComponent, selector: "app-block-banner-full-ec", inputs: ["banners", "meta"] }, { kind: "component", type: BlockBannerBoxEcComponent, selector: "app-block-banner-box-ec", inputs: ["banners", "meta"] }, { kind: "component", type: BlockHtmlEcComponent, selector: "app-block-html-ec", inputs: ["html_content"] }, { kind: "component", type: BlockProductsEcComponent, selector: "app-block-products-ec", inputs: ["prevArrowImage", "nextArrowImage", "prevArrowText", "nextArrowText", "appProduct", "products", "meta"] }, { kind: "component", type: BlockNewsletterEcComponent, selector: "app-block-newsletter-ec", inputs: ["block", "success_message", "subject"] }, { kind: "component", type: BlockFormContactEcComponent, selector: "app-block-form-contact-ec", inputs: ["block", "success_message", "redirect", "subject"] }] });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BlocksEcComponent, isStandalone: true, selector: "app-blocks-ec", inputs: { templates: "templates", show_loading: "show_loading", section: "section", blockFilters: "blockFilters" }, ngImport: i0, template: "@if(blocks$ | async; as blocks){\r\n @if(blocks.length > 0){\r\n <div class=\"container-fluid px-0\">\r\n <div class=\"row\">\r\n @for (block of blocks; track $index) {\r\n @switch (block.contentType) {\r\n @case ('banner') {\r\n @switch(block.design){\r\n @case ('full') {\r\n <app-block-banner-full-ec [banners]=\"block.banners\" [meta]=\"block\" />\r\n }\r\n @case ('boxes') {\r\n <app-block-banner-box-ec [banners]=\"block.banners\" [meta]=\"block\"/>\r\n }\r\n }\r\n }\r\n @case ('html') {\r\n @if(showBlock(block)){\r\n <app-block-html-ec [html_content]=\"getHTMLContent(block)\" />\r\n }\r\n }\r\n @case ('products') {\r\n <app-block-products-ec [products]=\"block.products?.items\" [meta]=\"block\" />\r\n }\r\n @case ('contact_form') {\r\n @if(isNewsletter(block)){\r\n <app-block-newsletter-ec [block]=\"block.contactForm\" />\r\n } @else {\r\n <app-block-form-contact-ec [block]=\"block.contactForm\" />\r\n }\r\n }\r\n }\r\n }\r\n </div>\r\n </div>\r\n }\r\n}", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: BlockBannerFullEcComponent, selector: "app-block-banner-full-ec", inputs: ["banners", "meta", "prevArrowImage", "nextArrowImage", "prevArrowText", "nextArrowText", "enableCustomNavigation"] }, { kind: "component", type: BlockBannerBoxEcComponent, selector: "app-block-banner-box-ec", inputs: ["banners", "meta"] }, { kind: "component", type: BlockHtmlEcComponent, selector: "app-block-html-ec", inputs: ["html_content"] }, { kind: "component", type: BlockProductsEcComponent, selector: "app-block-products-ec", inputs: ["prevArrowImage", "nextArrowImage", "prevArrowText", "nextArrowText", "appProduct", "products", "meta"] }, { kind: "component", type: BlockNewsletterEcComponent, selector: "app-block-newsletter-ec", inputs: ["block", "success_message", "subject"] }, { kind: "component", type: BlockFormContactEcComponent, selector: "app-block-form-contact-ec", inputs: ["block", "success_message", "redirect", "subject"] }] });
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BlocksEcComponent, decorators: [{
76
76
  type: Component,
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
96
96
  }], blockFilters: [{
97
97
  type: Input
98
98
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tzLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9ja3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYmxvY2tzLWVjL2Jsb2Nrcy1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOztBQUN0Rzs7Ozs7R0FLRztBQWlCSCxNQUFNLE9BQU8saUJBQWlCO0lBQzdCOztPQUVHO0lBQ0ssY0FBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQzs7O09BR0c7SUFDSyxhQUFhLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDcEQ7O09BRUc7SUFDSSxPQUFPLENBQW1DO0lBQ2pEOztPQUVHO0lBQ0ssV0FBVyxHQUFrQixJQUFJLENBQUM7SUFDMUM7OztPQUdHO0lBQ00sU0FBUyxDQUFvQjtJQUN0Qzs7T0FFRztJQUNNLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDdkM7O09BRUc7SUFDSCxJQUVPLE9BQU8sQ0FBQyxLQUFvQjtRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNRLFlBQVksR0FBb0IsSUFBSSxDQUFDO0lBQzlDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsS0FBVyxDQUFDO0lBQ3BCOzs7O09BSUc7SUFDSCxjQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUVoSCxZQUFZLENBQUMsS0FBVSxJQUFhLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUFBLENBQUM7SUFFckYsU0FBUyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVoRzs7S0FFSTtJQUNJLFVBQVU7UUFDakIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNGLENBQUM7d0dBMURXLGlCQUFpQjs0RkFBakIsaUJBQWlCLDZMQ2xDOUIsMHVEQW9DQyxxRERkQyxTQUFTLDhDQUVULDBCQUEwQixrR0FDMUIseUJBQXlCLGlHQUN6QixvQkFBb0Isd0ZBQ3BCLHdCQUF3QixvTEFDeEIsMEJBQTBCLHFIQUMxQiwyQkFBMkI7OzRGQUtoQixpQkFBaUI7a0JBaEI3QixTQUFTOytCQUNDLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1IsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQiwyQkFBMkI7cUJBQzNCO3dEQTBCUSxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUMsT0FBTztzQkFGYixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQUlRLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCbG9ja3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIEpzb25QaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSUJsb2NrIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEJsb2NrQmFubmVyRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi9ibG9jay1iYW5uZXItZnVsbC1lYy9ibG9jay1iYW5uZXItZnVsbC1lYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCbG9ja0Jhbm5lckJveEVjQ29tcG9uZW50IH0gZnJvbSBcIi4vYmxvY2stYmFubmVyLWJveC1lYy9ibG9jay1iYW5uZXItYm94LWVjLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCbG9ja0h0bWxFY0NvbXBvbmVudCB9IGZyb20gXCIuL2Jsb2NrLWh0bWwtZWMvYmxvY2staHRtbC1lYy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEJsb2NrUHJvZHVjdHNFY0NvbXBvbmVudCB9IGZyb20gXCIuL2Jsb2NrLXByb2R1Y3RzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCbG9ja05ld3NsZXR0ZXJFY0NvbXBvbmVudCB9IGZyb20gXCIuL2Jsb2NrLW5ld3NsZXR0ZXItZWMvYmxvY2stbmV3c2xldHRlci1lYy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmxvY2tGb3JtQ29udGFjdEVjQ29tcG9uZW50IH0gZnJvbSBcIi4vYmxvY2stZm9ybS1jb250YWN0LWVjL2Jsb2NrLWZvcm0tY29udGFjdC1lYy5jb21wb25lbnRcIjtcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcXVlIGVzIHV0aWxpemFkbyBwYXJhIG1hbmVqYXIgbG9zIGRpc3RpbnRvcyB0aXBvc1xyXG4gKiBkZSBibG9xdWVzIHkgZGlzdHJpYnVpcmxvcyBwb3IgbGEgYXBsaWNhY2nDs24uXHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBjbGFzcyBCbG9ja3NFY0NvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtYmxvY2tzLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdEFzeW5jUGlwZSxcclxuXHRcdEpzb25QaXBlLFxyXG5cdFx0QmxvY2tCYW5uZXJGdWxsRWNDb21wb25lbnQsXHJcblx0XHRCbG9ja0Jhbm5lckJveEVjQ29tcG9uZW50LFxyXG5cdFx0QmxvY2tIdG1sRWNDb21wb25lbnQsXHJcblx0XHRCbG9ja1Byb2R1Y3RzRWNDb21wb25lbnQsXHJcblx0XHRCbG9ja05ld3NsZXR0ZXJFY0NvbXBvbmVudCxcclxuXHRcdEJsb2NrRm9ybUNvbnRhY3RFY0NvbXBvbmVudFxyXG5cdF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2Jsb2Nrcy1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2Jsb2Nrcy1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEJsb2Nrc0VjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHQvKipcclxuXHQgKiBTZXJ2aWNpbyBkZSBCbG9xdWVzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfYmxvY2tzU2VydmljZSA9IGluamVjdChCbG9ja3NTZXJ2aWNlKTtcclxuXHQvKipcdHByaXZhdGUgX2Jsb2Nrc1NlcnZpY2UgPSBpbmplY3QoQmxvY2tzU2VydmljZSk7XHJcblxyXG5cdCAqIENvbnN0YW50ZXMgZGUgbGEgQVBJXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfYXBpQ29uc3RhbnRzID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdC8qKlxyXG5cdCAqIE9ic2VydmFibGUgZGUgYmxvcXVlc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBibG9ja3MkOiBPYnNlcnZhYmxlPElCbG9ja1tdPiB8IHVuZGVmaW5lZDtcclxuXHQvKipcclxuXHQgKiBOb21icmUgZGUgbGEgc2VjY2nDs24gcXVlIGFsYmVyZ2EgYSBsb3MgYmxvcXVlcy5cclxuXHQgKi9cclxuXHRwcml2YXRlIF9zdHJzZWN0aW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHQvKipcclxuXHQgKiBDb2xlY2Npw7NuIGRlIFRlbXBsYXRlcyBwYXJhIHJlZW1wbGF6YXIgZW4gbG9zIGRpc3RpbnRvcyB0aXBvc1xyXG5cdCAqIGRlIGJsb3F1ZSBwb3IgYmxvcXVlcyBsb2NhbGVzIGdlbmVyYWRvcyBlbiBlbCBmcm9udGVuZC5cclxuXHQgKi9cclxuXHRASW5wdXQoKSB0ZW1wbGF0ZXMhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdC8qKlxyXG5cdCAqIEluZGljYWRvciBwYXJhIGN1YW5kbyBzZSBlc3RlbiBjYXJnYW5kbyBsb3MgYmxvcXVlcy5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBzaG93X2xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQvKipcclxuXHQgKiBOb21icmUgZGUgbGEgc2VjY2nDs24gZGVsIGJsb3F1ZS4gXHJcblx0ICovXHJcblx0QElucHV0KHtcclxuXHRcdHJlcXVpcmVkOiB0cnVlLFxyXG5cdH0pIHNldCBzZWN0aW9uKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XHJcblx0XHR0aGlzLl9zdHJzZWN0aW9uID0gdmFsdWU7XHJcblx0XHR0aGlzLmxvYWRCbG9ja3MoKTtcclxuXHR9XHJcblx0QElucHV0KCkgYmxvY2tGaWx0ZXJzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQgeyB9XHJcblx0LyoqXHJcblx0ICogT2J0aWVuZSBlbCBjb250ZW5pZG8gaHRtbCBkZSB1biBibG9xdWUsIGVzdGUgbcOpdG9kbyBlcyB1c2FkbyBjdWFuZG8gZWwgYmxvcXVlIGVzIGRlIHRpcG8gKipIVE1MKipcclxuXHQgKiBAcGFyYW0gYmxvY2sgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0Z2V0SFRNTENvbnRlbnQgPSAoYmxvY2s6IElCbG9jaykgPT4gYmxvY2sudHJhbnNsYXRpb25zICYmIGJsb2NrLnRyYW5zbGF0aW9uc1t0aGlzLl9hcGlDb25zdGFudHMuTE9DQUxFXS5jb250ZW50O1xyXG5cclxuXHRpc05ld3NsZXR0ZXIoYmxvY2s6IGFueSk6IGJvb2xlYW4geyByZXR1cm4gYmxvY2suY29udGFjdEZvcm0uY29kZS5pbmNsdWRlcygnbmV3cycpIH07XHJcblxyXG5cdHNob3dCbG9jayA9IChibG9jazogSUJsb2NrKSA9PiB0aGlzLmJsb2NrRmlsdGVycyA/IHRoaXMuYmxvY2tGaWx0ZXJzLmluY2x1ZGVzKGJsb2NrLmNvZGUpIDogdHJ1ZVxyXG5cclxuXHQvKipcclxuICAgKiBDYXJnYSBsb3MgYmxvcXVlcyBkZSBsYSBzZWNjacOzbiBhY3R1YWwuXHJcbiAgICovXHJcblx0cHJpdmF0ZSBsb2FkQmxvY2tzKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuX3N0cnNlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5ibG9ja3MkID0gdGhpcy5fYmxvY2tzU2VydmljZS5nZXRCbG9ja3ModGhpcy5fc3Ryc2VjdGlvbik7XHJcblx0XHR9XHJcblx0fVxyXG59XHRcclxuIiwiQGlmKGJsb2NrcyQgfCBhc3luYzsgYXMgYmxvY2tzKXtcclxuICAgIEBpZihibG9ja3MubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBweC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGJsb2NrIG9mIGJsb2NrczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAoYmxvY2suY29udGVudFR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdiYW5uZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoKGJsb2NrLmRlc2lnbil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdmdWxsJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJsb2NrLWJhbm5lci1mdWxsLWVjIFtiYW5uZXJzXT1cImJsb2NrLmJhbm5lcnNcIiBbbWV0YV09XCJibG9ja1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnYm94ZXMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtYmxvY2stYmFubmVyLWJveC1lYyBbYmFubmVyc109XCJibG9jay5iYW5uZXJzXCIgW21ldGFdPVwiYmxvY2tcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnaHRtbCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihzaG93QmxvY2soYmxvY2spKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJsb2NrLWh0bWwtZWMgW2h0bWxfY29udGVudF09XCJnZXRIVE1MQ29udGVudChibG9jaylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgncHJvZHVjdHMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJsb2NrLXByb2R1Y3RzLWVjIFtwcm9kdWN0c109XCJibG9jay5wcm9kdWN0cz8uaXRlbXNcIiBbbWV0YV09XCJibG9ja1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdjb250YWN0X2Zvcm0nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXNOZXdzbGV0dGVyKGJsb2NrKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1ibG9jay1uZXdzbGV0dGVyLWVjIFtibG9ja109XCJibG9jay5jb250YWN0Rm9ybVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJsb2NrLWZvcm0tY29udGFjdC1lYyBbYmxvY2tdPVwiYmxvY2suY29udGFjdEZvcm1cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1cclxufSJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tzLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2Jsb2Nrcy1lYy9ibG9ja3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYmxvY2tzLWVjL2Jsb2Nrcy1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOztBQUN0Rzs7Ozs7R0FLRztBQWlCSCxNQUFNLE9BQU8saUJBQWlCO0lBQzdCOztPQUVHO0lBQ0ssY0FBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQzs7O09BR0c7SUFDSyxhQUFhLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDcEQ7O09BRUc7SUFDSSxPQUFPLENBQW1DO0lBQ2pEOztPQUVHO0lBQ0ssV0FBVyxHQUFrQixJQUFJLENBQUM7SUFDMUM7OztPQUdHO0lBQ00sU0FBUyxDQUFvQjtJQUN0Qzs7T0FFRztJQUNNLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDdkM7O09BRUc7SUFDSCxJQUVPLE9BQU8sQ0FBQyxLQUFvQjtRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNRLFlBQVksR0FBb0IsSUFBSSxDQUFDO0lBQzlDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVEsS0FBVyxDQUFDO0lBQ3BCOzs7O09BSUc7SUFDSCxjQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUVoSCxZQUFZLENBQUMsS0FBVSxJQUFhLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUFBLENBQUM7SUFFckYsU0FBUyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVoRzs7S0FFSTtJQUNJLFVBQVU7UUFDakIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNGLENBQUM7d0dBMURXLGlCQUFpQjs0RkFBakIsaUJBQWlCLDZMQ2xDOUIsMHVEQW9DQyxxRERkQyxTQUFTLDhDQUVULDBCQUEwQixrTUFDMUIseUJBQXlCLGlHQUN6QixvQkFBb0Isd0ZBQ3BCLHdCQUF3QixvTEFDeEIsMEJBQTBCLHFIQUMxQiwyQkFBMkI7OzRGQUtoQixpQkFBaUI7a0JBaEI3QixTQUFTOytCQUNDLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1IsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQiwyQkFBMkI7cUJBQzNCO3dEQTBCUSxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUMsT0FBTztzQkFGYixLQUFLO3VCQUFDO3dCQUNOLFFBQVEsRUFBRSxJQUFJO3FCQUNkO2dCQUlRLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCbG9ja3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIEpzb25QaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSUJsb2NrIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEJsb2NrQmFubmVyRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi9ibG9jay1iYW5uZXItZnVsbC1lYy9ibG9jay1iYW5uZXItZnVsbC1lYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCbG9ja0Jhbm5lckJveEVjQ29tcG9uZW50IH0gZnJvbSBcIi4vYmxvY2stYmFubmVyLWJveC1lYy9ibG9jay1iYW5uZXItYm94LWVjLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCbG9ja0h0bWxFY0NvbXBvbmVudCB9IGZyb20gXCIuL2Jsb2NrLWh0bWwtZWMvYmxvY2staHRtbC1lYy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEJsb2NrUHJvZHVjdHNFY0NvbXBvbmVudCB9IGZyb20gXCIuL2Jsb2NrLXByb2R1Y3RzLWVjL2Jsb2NrLXByb2R1Y3RzLWVjLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCbG9ja05ld3NsZXR0ZXJFY0NvbXBvbmVudCB9IGZyb20gXCIuL2Jsb2NrLW5ld3NsZXR0ZXItZWMvYmxvY2stbmV3c2xldHRlci1lYy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmxvY2tGb3JtQ29udGFjdEVjQ29tcG9uZW50IH0gZnJvbSBcIi4vYmxvY2stZm9ybS1jb250YWN0LWVjL2Jsb2NrLWZvcm0tY29udGFjdC1lYy5jb21wb25lbnRcIjtcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcXVlIGVzIHV0aWxpemFkbyBwYXJhIG1hbmVqYXIgbG9zIGRpc3RpbnRvcyB0aXBvc1xyXG4gKiBkZSBibG9xdWVzIHkgZGlzdHJpYnVpcmxvcyBwb3IgbGEgYXBsaWNhY2nDs24uXHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBjbGFzcyBCbG9ja3NFY0NvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtYmxvY2tzLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdEFzeW5jUGlwZSxcclxuXHRcdEpzb25QaXBlLFxyXG5cdFx0QmxvY2tCYW5uZXJGdWxsRWNDb21wb25lbnQsXHJcblx0XHRCbG9ja0Jhbm5lckJveEVjQ29tcG9uZW50LFxyXG5cdFx0QmxvY2tIdG1sRWNDb21wb25lbnQsXHJcblx0XHRCbG9ja1Byb2R1Y3RzRWNDb21wb25lbnQsXHJcblx0XHRCbG9ja05ld3NsZXR0ZXJFY0NvbXBvbmVudCxcclxuXHRcdEJsb2NrRm9ybUNvbnRhY3RFY0NvbXBvbmVudFxyXG5cdF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2Jsb2Nrcy1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2Jsb2Nrcy1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEJsb2Nrc0VjQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHQvKipcclxuXHQgKiBTZXJ2aWNpbyBkZSBCbG9xdWVzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfYmxvY2tzU2VydmljZSA9IGluamVjdChCbG9ja3NTZXJ2aWNlKTtcclxuXHQvKipcdHByaXZhdGUgX2Jsb2Nrc1NlcnZpY2UgPSBpbmplY3QoQmxvY2tzU2VydmljZSk7XHJcblxyXG5cdCAqIENvbnN0YW50ZXMgZGUgbGEgQVBJXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfYXBpQ29uc3RhbnRzID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdC8qKlxyXG5cdCAqIE9ic2VydmFibGUgZGUgYmxvcXVlc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBibG9ja3MkOiBPYnNlcnZhYmxlPElCbG9ja1tdPiB8IHVuZGVmaW5lZDtcclxuXHQvKipcclxuXHQgKiBOb21icmUgZGUgbGEgc2VjY2nDs24gcXVlIGFsYmVyZ2EgYSBsb3MgYmxvcXVlcy5cclxuXHQgKi9cclxuXHRwcml2YXRlIF9zdHJzZWN0aW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHQvKipcclxuXHQgKiBDb2xlY2Npw7NuIGRlIFRlbXBsYXRlcyBwYXJhIHJlZW1wbGF6YXIgZW4gbG9zIGRpc3RpbnRvcyB0aXBvc1xyXG5cdCAqIGRlIGJsb3F1ZSBwb3IgYmxvcXVlcyBsb2NhbGVzIGdlbmVyYWRvcyBlbiBlbCBmcm9udGVuZC5cclxuXHQgKi9cclxuXHRASW5wdXQoKSB0ZW1wbGF0ZXMhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdC8qKlxyXG5cdCAqIEluZGljYWRvciBwYXJhIGN1YW5kbyBzZSBlc3RlbiBjYXJnYW5kbyBsb3MgYmxvcXVlcy5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBzaG93X2xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHQvKipcclxuXHQgKiBOb21icmUgZGUgbGEgc2VjY2nDs24gZGVsIGJsb3F1ZS4gXHJcblx0ICovXHJcblx0QElucHV0KHtcclxuXHRcdHJlcXVpcmVkOiB0cnVlLFxyXG5cdH0pIHNldCBzZWN0aW9uKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XHJcblx0XHR0aGlzLl9zdHJzZWN0aW9uID0gdmFsdWU7XHJcblx0XHR0aGlzLmxvYWRCbG9ja3MoKTtcclxuXHR9XHJcblx0QElucHV0KCkgYmxvY2tGaWx0ZXJzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQgeyB9XHJcblx0LyoqXHJcblx0ICogT2J0aWVuZSBlbCBjb250ZW5pZG8gaHRtbCBkZSB1biBibG9xdWUsIGVzdGUgbcOpdG9kbyBlcyB1c2FkbyBjdWFuZG8gZWwgYmxvcXVlIGVzIGRlIHRpcG8gKipIVE1MKipcclxuXHQgKiBAcGFyYW0gYmxvY2sgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0Z2V0SFRNTENvbnRlbnQgPSAoYmxvY2s6IElCbG9jaykgPT4gYmxvY2sudHJhbnNsYXRpb25zICYmIGJsb2NrLnRyYW5zbGF0aW9uc1t0aGlzLl9hcGlDb25zdGFudHMuTE9DQUxFXS5jb250ZW50O1xyXG5cclxuXHRpc05ld3NsZXR0ZXIoYmxvY2s6IGFueSk6IGJvb2xlYW4geyByZXR1cm4gYmxvY2suY29udGFjdEZvcm0uY29kZS5pbmNsdWRlcygnbmV3cycpIH07XHJcblxyXG5cdHNob3dCbG9jayA9IChibG9jazogSUJsb2NrKSA9PiB0aGlzLmJsb2NrRmlsdGVycyA/IHRoaXMuYmxvY2tGaWx0ZXJzLmluY2x1ZGVzKGJsb2NrLmNvZGUpIDogdHJ1ZVxyXG5cclxuXHQvKipcclxuICAgKiBDYXJnYSBsb3MgYmxvcXVlcyBkZSBsYSBzZWNjacOzbiBhY3R1YWwuXHJcbiAgICovXHJcblx0cHJpdmF0ZSBsb2FkQmxvY2tzKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuX3N0cnNlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5ibG9ja3MkID0gdGhpcy5fYmxvY2tzU2VydmljZS5nZXRCbG9ja3ModGhpcy5fc3Ryc2VjdGlvbik7XHJcblx0XHR9XHJcblx0fVxyXG59XHRcclxuIiwiQGlmKGJsb2NrcyQgfCBhc3luYzsgYXMgYmxvY2tzKXtcclxuICAgIEBpZihibG9ja3MubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBweC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGJsb2NrIG9mIGJsb2NrczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAoYmxvY2suY29udGVudFR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdiYW5uZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoKGJsb2NrLmRlc2lnbil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdmdWxsJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJsb2NrLWJhbm5lci1mdWxsLWVjIFtiYW5uZXJzXT1cImJsb2NrLmJhbm5lcnNcIiBbbWV0YV09XCJibG9ja1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnYm94ZXMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtYmxvY2stYmFubmVyLWJveC1lYyBbYmFubmVyc109XCJibG9jay5iYW5uZXJzXCIgW21ldGFdPVwiYmxvY2tcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnaHRtbCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihzaG93QmxvY2soYmxvY2spKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJsb2NrLWh0bWwtZWMgW2h0bWxfY29udGVudF09XCJnZXRIVE1MQ29udGVudChibG9jaylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgncHJvZHVjdHMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJsb2NrLXByb2R1Y3RzLWVjIFtwcm9kdWN0c109XCJibG9jay5wcm9kdWN0cz8uaXRlbXNcIiBbbWV0YV09XCJibG9ja1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdjb250YWN0X2Zvcm0nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXNOZXdzbGV0dGVyKGJsb2NrKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1ibG9jay1uZXdzbGV0dGVyLWVjIFtibG9ja109XCJibG9jay5jb250YWN0Rm9ybVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJsb2NrLWZvcm0tY29udGFjdC1lYyBbYmxvY2tdPVwiYmxvY2suY29udGFjdEZvcm1cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1cclxufSJdfQ==
@@ -3,6 +3,7 @@ import { EcCurrencySymbolPipe } from "../../../ec-pipe/ec-currency-symbol.pipe";
3
3
  import { ChannelService } from '../../../ec-services';
4
4
  import { TranslateModule } from '@ngx-translate/core';
5
5
  import { CommonModule } from '@angular/common';
6
+ import { AuthService } from '../../../ec-services';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common";
8
9
  import * as i2 from "@ngx-translate/core";
@@ -28,13 +29,18 @@ export class PriceEcComponent {
28
29
  customTaxTemplate = null;
29
30
  customOnlyTaxLabelTemplate = null;
30
31
  _channelService = inject(ChannelService);
32
+ _authService = inject(AuthService);
31
33
  showTaxLegend = false;
32
34
  hideTaxes = false;
35
+ showPricesOnlyToLoggedUsers = false;
36
+ logged = false;
33
37
  ngOnInit() {
34
38
  this._channelService.channel$.subscribe(cfg => {
35
39
  this.showTaxLegend = !!cfg.showTaxLegend;
36
40
  this.hideTaxes = !!cfg.hideTaxes;
41
+ this.showPricesOnlyToLoggedUsers = !!cfg.showPricesOnlyToLoggedUsers;
37
42
  });
43
+ this.logged = this._authService.isAuthenticated();
38
44
  }
39
45
  /** Determina si mostrar la sección de impuestos */
40
46
  get shouldShowTaxes() {
@@ -53,11 +59,11 @@ export class PriceEcComponent {
53
59
  return !!value && value.split(' - ').length === 2;
54
60
  }
55
61
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PriceEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PriceEcComponent, isStandalone: true, selector: "app-price-ec", inputs: { price: "price", saleprice: "saleprice", basePrice: "basePrice", taxeAmount: "taxeAmount", taxes: "taxes", priceSize: "priceSize", showTaxLegendOnly: "showTaxLegendOnly", disableTaxInfo: "disableTaxInfo", customPriceTemplate: "customPriceTemplate", customSalePriceTemplate: "customSalePriceTemplate", customSimplePriceTemplate: "customSimplePriceTemplate", customSimpleSalePriceTemplate: "customSimpleSalePriceTemplate", customTaxTemplate: "customTaxTemplate", customOnlyTaxLabelTemplate: "customOnlyTaxLabelTemplate" }, ngImport: i0, template: "<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" class=\"\">\r\n {{\r\n saleprice!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n saleprice!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del>&nbsp;</del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>", styles: [".price-sm{font-size:13px}.price{font-size:18px}.line-height-custom{line-height:1.2}.lnth{text-decoration:line-through;color:gray}.taxes-section{margin-top:.5rem;border-radius:.5rem;font-size:.95rem;color:#333;line-height:1.4;max-width:400px}.taxes-title{font-weight:500;margin-bottom:.2rem;font-size:.7rem;color:#222}.taxes-list{list-style:none;padding:0;margin:0}.taxes-list li{display:flex;justify-content:space-between;margin-bottom:.1rem;font-size:.65rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
62
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PriceEcComponent, isStandalone: true, selector: "app-price-ec", inputs: { price: "price", saleprice: "saleprice", basePrice: "basePrice", taxeAmount: "taxeAmount", taxes: "taxes", priceSize: "priceSize", showTaxLegendOnly: "showTaxLegendOnly", disableTaxInfo: "disableTaxInfo", customPriceTemplate: "customPriceTemplate", customSalePriceTemplate: "customSalePriceTemplate", customSimplePriceTemplate: "customSimplePriceTemplate", customSimpleSalePriceTemplate: "customSimpleSalePriceTemplate", customTaxTemplate: "customTaxTemplate", customOnlyTaxLabelTemplate: "customOnlyTaxLabelTemplate" }, ngImport: i0, template: "@if (!showPricesOnlyToLoggedUsers || logged) {\r\n<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" class=\"\">\r\n {{\r\n saleprice!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n saleprice!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del>&nbsp;</del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>\r\n}", styles: [".price-sm{font-size:13px}.price{font-size:18px}.line-height-custom{line-height:1.2}.lnth{text-decoration:line-through;color:gray}.taxes-section{margin-top:.5rem;border-radius:.5rem;font-size:.95rem;color:#333;line-height:1.4;max-width:400px}.taxes-title{font-weight:500;margin-bottom:.2rem;font-size:.7rem;color:#222}.taxes-list{list-style:none;padding:0;margin:0}.taxes-list li{display:flex;justify-content:space-between;margin-bottom:.1rem;font-size:.65rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
57
63
  }
58
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PriceEcComponent, decorators: [{
59
65
  type: Component,
60
- args: [{ selector: 'app-price-ec', standalone: true, imports: [CommonModule, EcCurrencySymbolPipe, TranslateModule], template: "<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" class=\"\">\r\n {{\r\n saleprice!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n saleprice!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del>&nbsp;</del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>", styles: [".price-sm{font-size:13px}.price{font-size:18px}.line-height-custom{line-height:1.2}.lnth{text-decoration:line-through;color:gray}.taxes-section{margin-top:.5rem;border-radius:.5rem;font-size:.95rem;color:#333;line-height:1.4;max-width:400px}.taxes-title{font-weight:500;margin-bottom:.2rem;font-size:.7rem;color:#222}.taxes-list{list-style:none;padding:0;margin:0}.taxes-list li{display:flex;justify-content:space-between;margin-bottom:.1rem;font-size:.65rem}\n"] }]
66
+ args: [{ selector: 'app-price-ec', standalone: true, imports: [CommonModule, EcCurrencySymbolPipe, TranslateModule], template: "@if (!showPricesOnlyToLoggedUsers || logged) {\r\n<ng-container *ngIf=\"customSalePriceTemplate || customPriceTemplate; else defaultPriceBlock\">\r\n <ng-container *ngTemplateOutlet=\"customSalePriceTemplate || customPriceTemplate\">\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #defaultPriceBlock>\r\n <div class=\"price\">\r\n <!-- Con precio de oferta -->\r\n <div *ngIf=\"saleprice; else onlyPriceBlock\" class=\"line-height-custom\">\r\n\r\n <!-- Precio original como rango o tachado simple -->\r\n <div *ngIf=\"hasRange(price); else simplePriceDel\" class=\"price-whithSaleprice\">\r\n <del class=\"\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </del>\r\n </div>\r\n\r\n <!-- Oferta como rango o simple -->\r\n <div *ngIf=\"hasRange(saleprice); else simpleSalePrice\" class=\"\">\r\n {{\r\n saleprice!.split(' - ')[0] | ecCurrencySymbol\r\n }}\r\n {{\r\n saleprice!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </div>\r\n\r\n <!-- S\u00F3lo precio sin oferta -->\r\n <ng-template #onlyPriceBlock>\r\n <div *ngIf=\"hasRange(price); else simplePrice\" class=\"price-onlyPrice\">\r\n {{\r\n price!.split(' - ')[0] | ecCurrencySymbol\r\n }} -\r\n {{\r\n price!.split(' - ')[1] | ecCurrencySymbol\r\n }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price -->\r\n <ng-template #simplePrice>\r\n <ng-container *ngIf=\"customSimplePriceTemplate; else fallbackSimplePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimplePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimplePrice>\r\n <del>&nbsp;</del>\r\n <div class=\"price-simplePrice\">\r\n {{ price | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple price-del -->\r\n <ng-template #simplePriceDel>\r\n <div class=\"price-simpleDel\">\r\n <del class=\"\">{{ price | ecCurrencySymbol }}</del>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Fallback simple saleprice -->\r\n <ng-template #simpleSalePrice>\r\n <ng-container *ngIf=\"customSimpleSalePriceTemplate; else fallbackSimpleSalePrice\">\r\n <ng-container *ngTemplateOutlet=\"customSimpleSalePriceTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #fallbackSimpleSalePrice>\r\n <div class=\"price-simpleSaleprice\">\r\n {{ saleprice | ecCurrencySymbol }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Secci\u00F3n de impuestos -->\r\n<ng-container *ngIf=\"shouldShowTaxes\">\r\n <!-- S\u00F3lo leyenda -->\r\n <ng-container *ngIf=\"showTaxLegendOnly; else detailedTaxBlock\">\r\n <ng-container *ngIf=\"customOnlyTaxLabelTemplate; else defaultOnlyTaxLabel\">\r\n <ng-container *ngTemplateOutlet=\"customOnlyTaxLabelTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultOnlyTaxLabel>\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Detalle impuestos -->\r\n <ng-template #detailedTaxBlock>\r\n <ng-container *ngIf=\"customTaxTemplate; else defaultTaxBlock\">\r\n <ng-container *ngTemplateOutlet=\"customTaxTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #defaultTaxBlock>\r\n <div class=\"taxes-section\">\r\n <p class=\"taxes-title\">\r\n {{ 'price-without-national-taxes' | translate }}:\r\n {{ basePrice! | ecCurrencySymbol }}\r\n </p>\r\n <ul class=\"taxes-list\">\r\n <li>\r\n {{ taxes.Name }}: {{ taxeAmount | ecCurrencySymbol }}\r\n </li>\r\n </ul>\r\n </div>\r\n</ng-template>\r\n}", styles: [".price-sm{font-size:13px}.price{font-size:18px}.line-height-custom{line-height:1.2}.lnth{text-decoration:line-through;color:gray}.taxes-section{margin-top:.5rem;border-radius:.5rem;font-size:.95rem;color:#333;line-height:1.4;max-width:400px}.taxes-title{font-weight:500;margin-bottom:.2rem;font-size:.7rem;color:#222}.taxes-list{list-style:none;padding:0;margin:0}.taxes-list li{display:flex;justify-content:space-between;margin-bottom:.1rem;font-size:.65rem}\n"] }]
61
67
  }], propDecorators: { price: [{
62
68
  type: Input
63
69
  }], saleprice: [{
@@ -87,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
87
93
  }], customOnlyTaxLabelTemplate: [{
88
94
  type: Input
89
95
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvd2lkZ2V0cy1lYy9wcmljZS1lYy9wcmljZS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3ByaWNlLWVjL3ByaWNlLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFDL0M7O0dBRUc7QUFRSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFVBQVU7SUFDRCxLQUFLLENBQVU7SUFDZixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLFVBQVUsQ0FBVTtJQUNwQixLQUFLLEdBQXlDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFFbkYsV0FBVztJQUNGLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsaUJBQWlCLEdBQVksS0FBSyxDQUFDO0lBQ25DLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFFekMsd0NBQXdDO0lBQy9CLG1CQUFtQixHQUFzQyxJQUFJLENBQUM7SUFDOUQsdUJBQXVCLEdBQWtDLElBQUksQ0FBQztJQUM5RCx5QkFBeUIsR0FBZ0MsSUFBSSxDQUFDO0lBQzlELDZCQUE2QixHQUE0QixJQUFJLENBQUM7SUFDOUQsaUJBQWlCLEdBQXdDLElBQUksQ0FBQztJQUM5RCwwQkFBMEIsR0FBK0IsSUFBSSxDQUFDO0lBRS9ELGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDdEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUV6QixRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYztlQUNwQixJQUFJLENBQUMsYUFBYTtlQUNsQixDQUFDLElBQUksQ0FBQyxTQUFTO2VBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO2VBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLFFBQVEsQ0FBQyxLQUFjO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQzt3R0FqRFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsMGxCQ2Y3QiwrK0lBa0hjLHNnQkR2R0YsWUFBWSxxU0FBRSxvQkFBb0Isd0RBQUUsZUFBZTs7NEZBSWxELGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsQ0FBQzs4QkFNckQsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVjQ3VycmVuY3lTeW1ib2xQaXBlIH0gZnJvbSBcIi4uLy4uLy4uL2VjLXBpcGUvZWMtY3VycmVuY3ktc3ltYm9sLnBpcGVcIjtcclxuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG4vKipcclxuICogQ29tcG9uZW50ZSBwYXJhIG1hbmVqYXIgbGEgdmlzdGEgZGVsIHByZWNpbyBkZSB1biBwcm9kdWN0by5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXByaWNlLWVjJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEVjQ3VycmVuY3lTeW1ib2xQaXBlLCBUcmFuc2xhdGVNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmljZS1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3ByaWNlLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpY2VFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gUHJlY2lvc1xyXG4gIEBJbnB1dCgpIHByaWNlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNhbGVwcmljZT86IHN0cmluZztcclxuICBASW5wdXQoKSBiYXNlUHJpY2U/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGF4ZUFtb3VudD86IG51bWJlcjtcclxuICBASW5wdXQoKSB0YXhlczogeyBOYW1lOiBzdHJpbmc7IHRheGVBbW91bnQ6IG51bWJlciB9ID0geyBOYW1lOiAnJywgdGF4ZUFtb3VudDogMCB9O1xyXG5cclxuICAvLyBPcGNpb25lc1xyXG4gIEBJbnB1dCgpIHByaWNlU2l6ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dUYXhMZWdlbmRPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZVRheEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gVGVtcGxhdGVzIHBlcnNvbmFsaXphZG9zIChwcm95ZWNjacOzbilcclxuICBASW5wdXQoKSBjdXN0b21QcmljZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCAgICAgICAgICAgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVNhbGVQcmljZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCAgICAgICA9IG51bGw7XHJcbiAgQElucHV0KCkgY3VzdG9tU2ltcGxlUHJpY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgICAgID0gbnVsbDtcclxuICBASW5wdXQoKSBjdXN0b21TaW1wbGVTYWxlUHJpY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVRheFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCAgICAgICAgICAgICA9IG51bGw7XHJcbiAgQElucHV0KCkgY3VzdG9tT25seVRheExhYmVsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsICAgID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlID0gaW5qZWN0KENoYW5uZWxTZXJ2aWNlKTtcclxuICBwdWJsaWMgc2hvd1RheExlZ2VuZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoaWRlVGF4ZXMgPSBmYWxzZTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9jaGFubmVsU2VydmljZS5jaGFubmVsJC5zdWJzY3JpYmUoY2ZnID0+IHtcclxuICAgICAgdGhpcy5zaG93VGF4TGVnZW5kID0gISFjZmcuc2hvd1RheExlZ2VuZDtcclxuICAgICAgdGhpcy5oaWRlVGF4ZXMgICAgID0gISFjZmcuaGlkZVRheGVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogRGV0ZXJtaW5hIHNpIG1vc3RyYXIgbGEgc2VjY2nDs24gZGUgaW1wdWVzdG9zICovXHJcbiAgZ2V0IHNob3VsZFNob3dUYXhlcygpOiBib29sZWFuIHsgICAgXHJcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZVRheEluZm9cclxuICAgICAgICAmJiB0aGlzLnNob3dUYXhMZWdlbmRcclxuICAgICAgICAmJiAhdGhpcy5oaWRlVGF4ZXNcclxuICAgICAgICAmJiAhIXRoaXMuYmFzZVByaWNlXHJcbiAgICAgICAgJiYgISF0aGlzLnRheGVBbW91bnQ7XHJcbiAgfVxyXG5cclxuICAvKiogQ2xhc2UgQ1NTIGJhc2Ugc2Vnw7puIHRhbWHDsW8gKi9cclxuICBnZXQgcHJpY2VDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucHJpY2VTaXplID8gJ3ByaWNlLXNtJyA6ICdwcmljZSc7XHJcbiAgfVxyXG5cclxuICAvKiogSGVscGVyIHBhcmEgZGV0ZWN0YXIgcmFuZ29zICovXHJcbiAgaGFzUmFuZ2UodmFsdWU/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXZhbHVlICYmIHZhbHVlLnNwbGl0KCcgLSAnKS5sZW5ndGggPT09IDI7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21TYWxlUHJpY2VUZW1wbGF0ZSB8fCBjdXN0b21QcmljZVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRQcmljZUJsb2NrXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tU2FsZVByaWNlVGVtcGxhdGUgfHwgY3VzdG9tUHJpY2VUZW1wbGF0ZVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UHJpY2VCbG9jaz5cclxuICAgIDxkaXYgY2xhc3M9XCJwcmljZVwiPlxyXG4gICAgICAgIDwhLS0gQ29uIHByZWNpbyBkZSBvZmVydGEgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNhbGVwcmljZTsgZWxzZSBvbmx5UHJpY2VCbG9ja1wiIGNsYXNzPVwibGluZS1oZWlnaHQtY3VzdG9tXCI+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFByZWNpbyBvcmlnaW5hbCBjb21vIHJhbmdvIG8gdGFjaGFkbyBzaW1wbGUgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNSYW5nZShwcmljZSk7IGVsc2Ugc2ltcGxlUHJpY2VEZWxcIiBjbGFzcz1cInByaWNlLXdoaXRoU2FsZXByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGVsIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBwcmljZSEuc3BsaXQoJyAtICcpWzBdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBwcmljZSEuc3BsaXQoJyAtICcpWzFdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2RlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE9mZXJ0YSBjb21vIHJhbmdvIG8gc2ltcGxlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzUmFuZ2Uoc2FsZXByaWNlKTsgZWxzZSBzaW1wbGVTYWxlUHJpY2VcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIHNhbGVwcmljZSEuc3BsaXQoJyAtICcpWzBdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICBzYWxlcHJpY2UhLnNwbGl0KCcgLSAnKVsxXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFPDs2xvIHByZWNpbyBzaW4gb2ZlcnRhIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjb25seVByaWNlQmxvY2s+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNSYW5nZShwcmljZSk7IGVsc2Ugc2ltcGxlUHJpY2VcIiBjbGFzcz1cInByaWNlLW9ubHlQcmljZVwiPlxyXG4gICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIHByaWNlIS5zcGxpdCgnIC0gJylbMF0gfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgICAgICB9fSAtXHJcbiAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgcHJpY2UhLnNwbGl0KCcgLSAnKVsxXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDwhLS0gRmFsbGJhY2sgc2ltcGxlIHByaWNlIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlUHJpY2U+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21TaW1wbGVQcmljZVRlbXBsYXRlOyBlbHNlIGZhbGxiYWNrU2ltcGxlUHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21TaW1wbGVQcmljZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNmYWxsYmFja1NpbXBsZVByaWNlPlxyXG4gICAgICAgICAgICA8ZGVsPiZuYnNwOzwvZGVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utc2ltcGxlUHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IHByaWNlIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tIEZhbGxiYWNrIHNpbXBsZSBwcmljZS1kZWwgLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVQcmljZURlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXNpbXBsZURlbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRlbCBjbGFzcz1cIlwiPnt7IHByaWNlIHwgZWNDdXJyZW5jeVN5bWJvbCB9fTwvZGVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tIEZhbGxiYWNrIHNpbXBsZSBzYWxlcHJpY2UgLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVTYWxlUHJpY2U+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21TaW1wbGVTYWxlUHJpY2VUZW1wbGF0ZTsgZWxzZSBmYWxsYmFja1NpbXBsZVNhbGVQcmljZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVNpbXBsZVNhbGVQcmljZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNmYWxsYmFja1NpbXBsZVNhbGVQcmljZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXNpbXBsZVNhbGVwcmljZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgc2FsZXByaWNlIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIFNlY2Npw7NuIGRlIGltcHVlc3RvcyAtLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3VsZFNob3dUYXhlc1wiPlxyXG4gICAgPCEtLSBTw7NsbyBsZXllbmRhIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUYXhMZWdlbmRPbmx5OyBlbHNlIGRldGFpbGVkVGF4QmxvY2tcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tT25seVRheExhYmVsVGVtcGxhdGU7IGVsc2UgZGVmYXVsdE9ubHlUYXhMYWJlbFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tT25seVRheExhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRPbmx5VGF4TGFiZWw+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGF4ZXMtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdwcmljZS13aXRob3V0LW5hdGlvbmFsLXRheGVzJyB8IHRyYW5zbGF0ZSB9fTpcclxuICAgICAgICAgICAgICAgIHt7IGJhc2VQcmljZSEgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBEZXRhbGxlIGltcHVlc3RvcyAtLT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGV0YWlsZWRUYXhCbG9jaz5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tVGF4VGVtcGxhdGU7IGVsc2UgZGVmYXVsdFRheEJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21UYXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRUYXhCbG9jaz5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YXhlcy1zZWN0aW9uXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ0YXhlcy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7eyAncHJpY2Utd2l0aG91dC1uYXRpb25hbC10YXhlcycgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgIHt7IGJhc2VQcmljZSEgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cInRheGVzLWxpc3RcIj5cclxuICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAge3sgdGF4ZXMuTmFtZSB9fToge3sgdGF4ZUFtb3VudCB8IGVjQ3VycmVuY3lTeW1ib2wgfX1cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvd2lkZ2V0cy1lYy9wcmljZS1lYy9wcmljZS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL3ByaWNlLWVjL3ByaWNlLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBQ25EOztHQUVHO0FBUUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixVQUFVO0lBQ0QsS0FBSyxDQUFVO0lBQ2YsU0FBUyxDQUFVO0lBQ25CLFNBQVMsQ0FBVTtJQUNuQixVQUFVLENBQVU7SUFDcEIsS0FBSyxHQUF5QyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBRW5GLFdBQVc7SUFDRixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLGlCQUFpQixHQUFZLEtBQUssQ0FBQztJQUNuQyxjQUFjLEdBQVksS0FBSyxDQUFDO0lBRXpDLHdDQUF3QztJQUMvQixtQkFBbUIsR0FBc0MsSUFBSSxDQUFDO0lBQzlELHVCQUF1QixHQUFrQyxJQUFJLENBQUM7SUFDOUQseUJBQXlCLEdBQWdDLElBQUksQ0FBQztJQUM5RCw2QkFBNkIsR0FBNEIsSUFBSSxDQUFDO0lBQzlELGlCQUFpQixHQUF3QyxJQUFJLENBQUM7SUFDOUQsMEJBQTBCLEdBQStCLElBQUksQ0FBQztJQUUvRCxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsMkJBQTJCLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFdEIsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDckMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsTUFBTSxHQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjO2VBQ3BCLElBQUksQ0FBQyxhQUFhO2VBQ2xCLENBQUMsSUFBSSxDQUFDLFNBQVM7ZUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7ZUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQy9DLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsUUFBUSxDQUFDLEtBQWM7UUFDckIsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO3dHQXREVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiwwbEJDaEI3QixzaUpBb0hDLHNnQkR4R1csWUFBWSxxU0FBRSxvQkFBb0Isd0RBQUUsZUFBZTs7NEZBSWxELGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsQ0FBQzs4QkFNckQsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDZCQUE2QjtzQkFBckMsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVjQ3VycmVuY3lTeW1ib2xQaXBlIH0gZnJvbSBcIi4uLy4uLy4uL2VjLXBpcGUvZWMtY3VycmVuY3ktc3ltYm9sLnBpcGVcIjtcclxuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcGFyYSBtYW5lamFyIGxhIHZpc3RhIGRlbCBwcmVjaW8gZGUgdW4gcHJvZHVjdG8uXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wcmljZS1lYycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBFY0N1cnJlbmN5U3ltYm9sUGlwZSwgVHJhbnNsYXRlTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJpY2UtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcmljZS1lYy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFByaWNlRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIFByZWNpb3NcclxuICBASW5wdXQoKSBwcmljZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzYWxlcHJpY2U/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYmFzZVByaWNlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRheGVBbW91bnQ/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgdGF4ZXM6IHsgTmFtZTogc3RyaW5nOyB0YXhlQW1vdW50OiBudW1iZXIgfSA9IHsgTmFtZTogJycsIHRheGVBbW91bnQ6IDAgfTtcclxuXHJcbiAgLy8gT3BjaW9uZXNcclxuICBASW5wdXQoKSBwcmljZVNpemU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93VGF4TGVnZW5kT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVUYXhJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIFRlbXBsYXRlcyBwZXJzb25hbGl6YWRvcyAocHJveWVjY2nDs24pXHJcbiAgQElucHV0KCkgY3VzdG9tUHJpY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgICAgICAgICAgID0gbnVsbDtcclxuICBASW5wdXQoKSBjdXN0b21TYWxlUHJpY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgICAgICAgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVNpbXBsZVByaWNlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsICAgICA9IG51bGw7XHJcbiAgQElucHV0KCkgY3VzdG9tU2ltcGxlU2FsZVByaWNlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBjdXN0b21UYXhUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgICAgICAgICAgICAgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbU9ubHlUYXhMYWJlbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCAgICA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX2NoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSA9IGluamVjdChDaGFubmVsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuICBwdWJsaWMgc2hvd1RheExlZ2VuZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoaWRlVGF4ZXMgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzID0gZmFsc2U7XHJcbiAgcHVibGljIGxvZ2dlZCA9IGZhbHNlO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX2NoYW5uZWxTZXJ2aWNlLmNoYW5uZWwkLnN1YnNjcmliZShjZmcgPT4ge1xyXG4gICAgICB0aGlzLnNob3dUYXhMZWdlbmQgPSAhIWNmZy5zaG93VGF4TGVnZW5kO1xyXG4gICAgICB0aGlzLmhpZGVUYXhlcyAgICAgPSAhIWNmZy5oaWRlVGF4ZXM7XHJcbiAgICAgIHRoaXMuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzID0gISFjZmcuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzO1xyXG4gICAgfSk7XHJcbiAgIHRoaXMubG9nZ2VkPSB0aGlzLl9hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKiBEZXRlcm1pbmEgc2kgbW9zdHJhciBsYSBzZWNjacOzbiBkZSBpbXB1ZXN0b3MgKi9cclxuICBnZXQgc2hvdWxkU2hvd1RheGVzKCk6IGJvb2xlYW4geyAgICBcclxuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlVGF4SW5mb1xyXG4gICAgICAgICYmIHRoaXMuc2hvd1RheExlZ2VuZFxyXG4gICAgICAgICYmICF0aGlzLmhpZGVUYXhlc1xyXG4gICAgICAgICYmICEhdGhpcy5iYXNlUHJpY2VcclxuICAgICAgICAmJiAhIXRoaXMudGF4ZUFtb3VudDtcclxuICB9XHJcblxyXG4gIC8qKiBDbGFzZSBDU1MgYmFzZSBzZWfDum4gdGFtYcOxbyAqL1xyXG4gIGdldCBwcmljZUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmljZVNpemUgPyAncHJpY2Utc20nIDogJ3ByaWNlJztcclxuICB9XHJcblxyXG4gIC8qKiBIZWxwZXIgcGFyYSBkZXRlY3RhciByYW5nb3MgKi9cclxuICBoYXNSYW5nZSh2YWx1ZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdmFsdWUgJiYgdmFsdWUuc3BsaXQoJyAtICcpLmxlbmd0aCA9PT0gMjtcclxuICB9XHJcbn1cclxuIiwiQGlmICghc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzIHx8IGxvZ2dlZCkge1xyXG48bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tU2FsZVByaWNlVGVtcGxhdGUgfHwgY3VzdG9tUHJpY2VUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0UHJpY2VCbG9ja1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVNhbGVQcmljZVRlbXBsYXRlIHx8IGN1c3RvbVByaWNlVGVtcGxhdGVcIj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFByaWNlQmxvY2s+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJpY2VcIj5cclxuICAgICAgICA8IS0tIENvbiBwcmVjaW8gZGUgb2ZlcnRhIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzYWxlcHJpY2U7IGVsc2Ugb25seVByaWNlQmxvY2tcIiBjbGFzcz1cImxpbmUtaGVpZ2h0LWN1c3RvbVwiPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBQcmVjaW8gb3JpZ2luYWwgY29tbyByYW5nbyBvIHRhY2hhZG8gc2ltcGxlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzUmFuZ2UocHJpY2UpOyBlbHNlIHNpbXBsZVByaWNlRGVsXCIgY2xhc3M9XCJwcmljZS13aGl0aFNhbGVwcmljZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRlbCBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJpY2UhLnNwbGl0KCcgLSAnKVswXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJpY2UhLnNwbGl0KCcgLSAnKVsxXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9kZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBPZmVydGEgY29tbyByYW5nbyBvIHNpbXBsZSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc1JhbmdlKHNhbGVwcmljZSk7IGVsc2Ugc2ltcGxlU2FsZVByaWNlXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICBzYWxlcHJpY2UhLnNwbGl0KCcgLSAnKVswXSB8IGVjQ3VycmVuY3lTeW1ib2xcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgc2FsZXByaWNlIS5zcGxpdCgnIC0gJylbMV0gfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBTw7NsbyBwcmVjaW8gc2luIG9mZXJ0YSAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI29ubHlQcmljZUJsb2NrPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzUmFuZ2UocHJpY2UpOyBlbHNlIHNpbXBsZVByaWNlXCIgY2xhc3M9XCJwcmljZS1vbmx5UHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICBwcmljZSEuc3BsaXQoJyAtICcpWzBdIHwgZWNDdXJyZW5jeVN5bWJvbFxyXG4gICAgICAgICAgICAgICAgfX0gLVxyXG4gICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIHByaWNlIS5zcGxpdCgnIC0gJylbMV0gfCBlY0N1cnJlbmN5U3ltYm9sXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8IS0tIEZhbGxiYWNrIHNpbXBsZSBwcmljZSAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3NpbXBsZVByaWNlPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tU2ltcGxlUHJpY2VUZW1wbGF0ZTsgZWxzZSBmYWxsYmFja1NpbXBsZVByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tU2ltcGxlUHJpY2VUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaW1wbGVQcmljZT5cclxuICAgICAgICAgICAgPGRlbD4mbmJzcDs8L2RlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXNpbXBsZVByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPCEtLSBGYWxsYmFjayBzaW1wbGUgcHJpY2UtZGVsIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlUHJpY2VEZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1zaW1wbGVEZWxcIj5cclxuICAgICAgICAgICAgICAgIDxkZWwgY2xhc3M9XCJcIj57eyBwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX08L2RlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPCEtLSBGYWxsYmFjayBzaW1wbGUgc2FsZXByaWNlIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlU2FsZVByaWNlPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tU2ltcGxlU2FsZVByaWNlVGVtcGxhdGU7IGVsc2UgZmFsbGJhY2tTaW1wbGVTYWxlUHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21TaW1wbGVTYWxlUHJpY2VUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaW1wbGVTYWxlUHJpY2U+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1zaW1wbGVTYWxlcHJpY2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IHNhbGVwcmljZSB8IGVjQ3VycmVuY3lTeW1ib2wgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBTZWNjacOzbiBkZSBpbXB1ZXN0b3MgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG91bGRTaG93VGF4ZXNcIj5cclxuICAgIDwhLS0gU8OzbG8gbGV5ZW5kYSAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VGF4TGVnZW5kT25seTsgZWxzZSBkZXRhaWxlZFRheEJsb2NrXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbU9ubHlUYXhMYWJlbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRPbmx5VGF4TGFiZWxcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbU9ubHlUYXhMYWJlbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0T25seVRheExhYmVsPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInRheGVzLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAncHJpY2Utd2l0aG91dC1uYXRpb25hbC10YXhlcycgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgICAgICB7eyBiYXNlUHJpY2UhIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRGV0YWxsZSBpbXB1ZXN0b3MgLS0+XHJcbiAgICA8bmctdGVtcGxhdGUgI2RldGFpbGVkVGF4QmxvY2s+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbVRheFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUYXhCbG9ja1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tVGF4VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGF4QmxvY2s+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGF4ZXMtc2VjdGlvblwiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidGF4ZXMtdGl0bGVcIj5cclxuICAgICAgICAgICAge3sgJ3ByaWNlLXdpdGhvdXQtbmF0aW9uYWwtdGF4ZXMnIHwgdHJhbnNsYXRlIH19OlxyXG4gICAgICAgICAgICB7eyBiYXNlUHJpY2UhIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8dWwgY2xhc3M9XCJ0YXhlcy1saXN0XCI+XHJcbiAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgIHt7IHRheGVzLk5hbWUgfX06IHt7IHRheGVBbW91bnQgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG59Il19