ng-miam 3.4.6 → 3.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/bundles/ng-miam.umd.js +844 -668
  2. package/bundles/ng-miam.umd.js.map +1 -1
  3. package/bundles/ng-miam.umd.min.js +1 -1
  4. package/bundles/ng-miam.umd.min.js.map +1 -1
  5. package/esm2015/lib/_components/abstracts/abstract-recipe-card.component.js +13 -3
  6. package/esm2015/lib/_models/index.js +2 -1
  7. package/esm2015/lib/_models/ingredient.js +3 -3
  8. package/esm2015/lib/_models/recipe.js +2 -1
  9. package/esm2015/lib/_models/tag.js +22 -0
  10. package/esm2015/lib/_services/groceries-lists.service.js +10 -13
  11. package/esm2015/lib/_services/index.js +2 -1
  12. package/esm2015/lib/_services/recipes.service.js +13 -8
  13. package/esm2015/lib/_services/tags.service.js +29 -0
  14. package/esm2015/lib/_web-components/basket-preview/basket-preview-block/basket-preview-block.component.js +2 -2
  15. package/esm2015/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.js +162 -172
  16. package/esm2015/lib/_web-components/basket-preview/replace-item/replace-item.component.js +23 -34
  17. package/esm2015/lib/_web-components/catalog-list/catalog-list.component.js +2 -2
  18. package/esm2015/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.js +97 -85
  19. package/esm2015/lib/_web-components/order-button/order-button.component.js +1 -1
  20. package/esm2015/lib/_web-components/recipe-card/recipe-card.component.js +96 -81
  21. package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +268 -194
  22. package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +3 -3
  23. package/esm2015/lib/_web-components/recipes-history/recipes-history.component.js +4 -2
  24. package/fesm2015/ng-miam.js +787 -654
  25. package/fesm2015/ng-miam.js.map +1 -1
  26. package/lib/_components/abstracts/abstract-recipe-card.component.d.ts +2 -0
  27. package/lib/_models/index.d.ts +1 -0
  28. package/lib/_models/ingredient.d.ts +1 -1
  29. package/lib/_models/tag.d.ts +15 -0
  30. package/lib/_services/context.service.d.ts +1 -1
  31. package/lib/_services/groceries-lists.service.d.ts +2 -2
  32. package/lib/_services/index.d.ts +1 -0
  33. package/lib/_services/recipes.service.d.ts +4 -2
  34. package/lib/_services/tags.service.d.ts +14 -0
  35. package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts +1 -2
  36. package/lib/_web-components/recipe-card/recipe-card.component.d.ts +1 -1
  37. package/lib/_web-components/recipe-details/recipe-details.component.d.ts +6 -2
  38. package/package.json +1 -1
@@ -16,54 +16,55 @@ import * as i6 from "../../_components/recipe-pricing/recipe-pricing.component";
16
16
  import * as i7 from "../../_components/like-button/like-button.component";
17
17
  import * as i8 from "../../_components/skeleton/skeleton.component";
18
18
  import * as i9 from "../../_components/counter-input/counter-input.component";
19
- import * as i10 from "../../_components/cors-overlay/cors-overlay.component";
20
- import * as i11 from "../../_utils/pipes/capitalize-first-letter/capitalize-first-letter.pipe";
19
+ import * as i10 from "../loader/loader.component";
20
+ import * as i11 from "../../_components/cors-overlay/cors-overlay.component";
21
+ import * as i12 from "../../_utils/pipes/capitalize-first-letter/capitalize-first-letter.pipe";
21
22
  function RecipeCardComponent_div_0_div_4_div_3_Template(rf, ctx) { if (rf & 1) {
22
- i0.ɵɵelementStart(0, "div", 35);
23
+ i0.ɵɵelementStart(0, "div", 36);
23
24
  i0.ɵɵtext(1, "D\u00E9j\u00E0 ajout\u00E9e");
24
25
  i0.ɵɵelementEnd();
25
26
  } }
26
27
  function RecipeCardComponent_div_0_div_4_div_5_Template(rf, ctx) { if (rf & 1) {
27
- i0.ɵɵelementStart(0, "div", 36);
28
- i0.ɵɵelement(1, "ng-miam-icon", 37);
28
+ i0.ɵɵelementStart(0, "div", 37);
29
+ i0.ɵɵelement(1, "ng-miam-icon", 38);
29
30
  i0.ɵɵelementEnd();
30
31
  } if (rf & 2) {
31
- const ctx_r18 = i0.ɵɵnextContext(3);
32
+ const ctx_r21 = i0.ɵɵnextContext(3);
32
33
  i0.ɵɵadvance(1);
33
- i0.ɵɵproperty("iconName", ctx_r18.icon.Video)("width", 100)("height", 100);
34
+ i0.ɵɵproperty("iconName", ctx_r21.icon.Video)("width", 100)("height", 100);
34
35
  } }
35
36
  function RecipeCardComponent_div_0_div_4_ng_miam_like_button_7_Template(rf, ctx) { if (rf & 1) {
36
- i0.ɵɵelement(0, "ng-miam-like-button", 38);
37
+ i0.ɵɵelement(0, "ng-miam-like-button", 39);
37
38
  } if (rf & 2) {
38
- const ctx_r19 = i0.ɵɵnextContext(3);
39
- i0.ɵɵproperty("recipe", ctx_r19.recipe);
39
+ const ctx_r22 = i0.ɵɵnextContext(3);
40
+ i0.ɵɵproperty("recipe", ctx_r22.recipe);
40
41
  } }
41
42
  function RecipeCardComponent_div_0_div_4_img_11_Template(rf, ctx) { if (rf & 1) {
42
- i0.ɵɵelement(0, "img", 39);
43
+ i0.ɵɵelement(0, "img", 40);
43
44
  } if (rf & 2) {
44
- const ctx_r20 = i0.ɵɵnextContext(3);
45
- i0.ɵɵproperty("src", ctx_r20.recipe.filigraneLogoUrl, i0.ɵɵsanitizeUrl);
45
+ const ctx_r23 = i0.ɵɵnextContext(3);
46
+ i0.ɵɵproperty("src", ctx_r23.recipe.filigraneLogoUrl, i0.ɵɵsanitizeUrl);
46
47
  } }
47
48
  function RecipeCardComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
48
- const _r22 = i0.ɵɵgetCurrentView();
49
- i0.ɵɵelementStart(0, "div", 26);
50
- i0.ɵɵlistener("click", function RecipeCardComponent_div_0_div_4_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(2); return ctx_r21.openRecipe(); });
51
- i0.ɵɵelement(1, "img", 27);
52
- i0.ɵɵelement(2, "div", 28);
53
- i0.ɵɵtemplate(3, RecipeCardComponent_div_0_div_4_div_3_Template, 2, 0, "div", 29);
49
+ const _r25 = i0.ɵɵgetCurrentView();
50
+ i0.ɵɵelementStart(0, "div", 27);
51
+ i0.ɵɵlistener("click", function RecipeCardComponent_div_0_div_4_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(2); return ctx_r24.openRecipe(); });
52
+ i0.ɵɵelement(1, "img", 28);
53
+ i0.ɵɵelement(2, "div", 29);
54
+ i0.ɵɵtemplate(3, RecipeCardComponent_div_0_div_4_div_3_Template, 2, 0, "div", 30);
54
55
  i0.ɵɵpipe(4, "async");
55
- i0.ɵɵtemplate(5, RecipeCardComponent_div_0_div_4_div_5_Template, 2, 3, "div", 30);
56
- i0.ɵɵelementStart(6, "div", 31);
57
- i0.ɵɵtemplate(7, RecipeCardComponent_div_0_div_4_ng_miam_like_button_7_Template, 1, 1, "ng-miam-like-button", 32);
56
+ i0.ɵɵtemplate(5, RecipeCardComponent_div_0_div_4_div_5_Template, 2, 3, "div", 31);
57
+ i0.ɵɵelementStart(6, "div", 32);
58
+ i0.ɵɵtemplate(7, RecipeCardComponent_div_0_div_4_ng_miam_like_button_7_Template, 1, 1, "ng-miam-like-button", 33);
58
59
  i0.ɵɵpipe(8, "async");
59
- i0.ɵɵelementStart(9, "ng-miam-icon", 33);
60
- i0.ɵɵlistener("click", function RecipeCardComponent_div_0_div_4_Template_ng_miam_icon_click_9_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r23 = i0.ɵɵnextContext(2); return ctx_r23.openCalendar($event); });
60
+ i0.ɵɵelementStart(9, "ng-miam-icon", 34);
61
+ i0.ɵɵlistener("click", function RecipeCardComponent_div_0_div_4_Template_ng_miam_icon_click_9_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r26 = i0.ɵɵnextContext(2); return ctx_r26.openCalendar($event); });
61
62
  i0.ɵɵelementEnd();
62
- i0.ɵɵelementStart(10, "ng-miam-icon", 33);
63
- i0.ɵɵlistener("click", function RecipeCardComponent_div_0_div_4_Template_ng_miam_icon_click_10_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r24 = i0.ɵɵnextContext(2); return ctx_r24.shareRecipe($event); });
63
+ i0.ɵɵelementStart(10, "ng-miam-icon", 34);
64
+ i0.ɵɵlistener("click", function RecipeCardComponent_div_0_div_4_Template_ng_miam_icon_click_10_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r27 = i0.ɵɵnextContext(2); return ctx_r27.shareRecipe($event); });
64
65
  i0.ɵɵelementEnd();
65
66
  i0.ɵɵelementEnd();
66
- i0.ɵɵtemplate(11, RecipeCardComponent_div_0_div_4_img_11_Template, 1, 1, "img", 34);
67
+ i0.ɵɵtemplate(11, RecipeCardComponent_div_0_div_4_img_11_Template, 1, 1, "img", 35);
67
68
  i0.ɵɵelementEnd();
68
69
  } if (rf & 2) {
69
70
  const ctx_r3 = i0.ɵɵnextContext(2);
@@ -84,19 +85,19 @@ function RecipeCardComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
84
85
  i0.ɵɵproperty("ngIf", ctx_r3.recipe.filigraneLogoUrl);
85
86
  } }
86
87
  function RecipeCardComponent_div_0_ng_template_5_Template(rf, ctx) { if (rf & 1) {
87
- i0.ɵɵelement(0, "ng-miam-skeleton", 40);
88
+ i0.ɵɵelement(0, "ng-miam-skeleton", 41);
88
89
  } if (rf & 2) {
89
90
  const ctx_r5 = i0.ɵɵnextContext(2);
90
91
  i0.ɵɵproperty("type", ctx_r5.skeleton.Picture);
91
92
  } }
92
93
  function RecipeCardComponent_div_0_div_8_Template(rf, ctx) { if (rf & 1) {
93
- const _r26 = i0.ɵɵgetCurrentView();
94
+ const _r29 = i0.ɵɵgetCurrentView();
94
95
  i0.ɵɵelementStart(0, "div");
95
- i0.ɵɵelementStart(1, "div", 41);
96
- i0.ɵɵlistener("click", function RecipeCardComponent_div_0_div_8_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(2); return ctx_r25.openRecipe(); });
96
+ i0.ɵɵelementStart(1, "div", 42);
97
+ i0.ɵɵlistener("click", function RecipeCardComponent_div_0_div_8_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return ctx_r28.openRecipe(); });
97
98
  i0.ɵɵtext(2);
98
99
  i0.ɵɵelementEnd();
99
- i0.ɵɵelementStart(3, "div", 42);
100
+ i0.ɵɵelementStart(3, "div", 43);
100
101
  i0.ɵɵtext(4);
101
102
  i0.ɵɵpipe(5, "capitalizeFirstLetter");
102
103
  i0.ɵɵelementEnd();
@@ -109,15 +110,15 @@ function RecipeCardComponent_div_0_div_8_Template(rf, ctx) { if (rf & 1) {
109
110
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 2, ctx_r6.ingredientsConcatName));
110
111
  } }
111
112
  function RecipeCardComponent_div_0_ng_template_9_Template(rf, ctx) { if (rf & 1) {
112
- i0.ɵɵelement(0, "ng-miam-skeleton", 40);
113
+ i0.ɵɵelement(0, "ng-miam-skeleton", 41);
113
114
  } if (rf & 2) {
114
115
  const ctx_r8 = i0.ɵɵnextContext(2);
115
116
  i0.ɵɵproperty("type", ctx_r8.skeleton.Text);
116
117
  } }
117
118
  function RecipeCardComponent_div_0_div_12_Template(rf, ctx) { if (rf & 1) {
118
- i0.ɵɵelementStart(0, "div", 43);
119
- i0.ɵɵelement(1, "ng-miam-icon", 44);
120
- i0.ɵɵelementStart(2, "span", 45);
119
+ i0.ɵɵelementStart(0, "div", 44);
120
+ i0.ɵɵelement(1, "ng-miam-icon", 45);
121
+ i0.ɵɵelementStart(2, "span", 46);
121
122
  i0.ɵɵtext(3);
122
123
  i0.ɵɵelementEnd();
123
124
  i0.ɵɵelementEnd();
@@ -130,43 +131,43 @@ function RecipeCardComponent_div_0_div_12_Template(rf, ctx) { if (rf & 1) {
130
131
  } }
131
132
  function RecipeCardComponent_div_0_div_13_ng_container_2_Template(rf, ctx) { if (rf & 1) {
132
133
  i0.ɵɵelementContainerStart(0);
133
- i0.ɵɵelement(1, "ng-miam-icon", 49);
134
+ i0.ɵɵelement(1, "ng-miam-icon", 50);
134
135
  i0.ɵɵelementContainerEnd();
135
136
  } if (rf & 2) {
136
- const ctx_r27 = i0.ɵɵnextContext(3);
137
+ const ctx_r30 = i0.ɵɵnextContext(3);
137
138
  i0.ɵɵadvance(1);
138
- i0.ɵɵproperty("width", 32)("height", 16)("iconName", ctx_r27.icon.DifficultyLow);
139
+ i0.ɵɵproperty("width", 32)("height", 16)("iconName", ctx_r30.icon.DifficultyLow);
139
140
  } }
140
141
  function RecipeCardComponent_div_0_div_13_ng_container_3_Template(rf, ctx) { if (rf & 1) {
141
142
  i0.ɵɵelementContainerStart(0);
142
- i0.ɵɵelement(1, "ng-miam-icon", 49);
143
+ i0.ɵɵelement(1, "ng-miam-icon", 50);
143
144
  i0.ɵɵelementContainerEnd();
144
145
  } if (rf & 2) {
145
- const ctx_r28 = i0.ɵɵnextContext(3);
146
+ const ctx_r31 = i0.ɵɵnextContext(3);
146
147
  i0.ɵɵadvance(1);
147
- i0.ɵɵproperty("width", 32)("height", 16)("iconName", ctx_r28.icon.DifficultyMedium);
148
+ i0.ɵɵproperty("width", 32)("height", 16)("iconName", ctx_r31.icon.DifficultyMedium);
148
149
  } }
149
150
  function RecipeCardComponent_div_0_div_13_ng_container_4_Template(rf, ctx) { if (rf & 1) {
150
151
  i0.ɵɵelementContainerStart(0);
151
- i0.ɵɵelement(1, "ng-miam-icon", 49);
152
+ i0.ɵɵelement(1, "ng-miam-icon", 50);
152
153
  i0.ɵɵelementContainerEnd();
153
154
  } if (rf & 2) {
154
- const ctx_r29 = i0.ɵɵnextContext(3);
155
+ const ctx_r32 = i0.ɵɵnextContext(3);
155
156
  i0.ɵɵadvance(1);
156
- i0.ɵɵproperty("width", 32)("height", 16)("iconName", ctx_r29.icon.DifficultyHight);
157
+ i0.ɵɵproperty("width", 32)("height", 16)("iconName", ctx_r32.icon.DifficultyHight);
157
158
  } }
158
159
  function RecipeCardComponent_div_0_div_13_ng_container_5_Template(rf, ctx) { if (rf & 1) {
159
160
  i0.ɵɵelementContainer(0);
160
161
  } }
161
162
  function RecipeCardComponent_div_0_div_13_Template(rf, ctx) { if (rf & 1) {
162
- i0.ɵɵelementStart(0, "div", 43);
163
- i0.ɵɵelementContainerStart(1, 46);
164
- i0.ɵɵtemplate(2, RecipeCardComponent_div_0_div_13_ng_container_2_Template, 2, 3, "ng-container", 47);
165
- i0.ɵɵtemplate(3, RecipeCardComponent_div_0_div_13_ng_container_3_Template, 2, 3, "ng-container", 47);
166
- i0.ɵɵtemplate(4, RecipeCardComponent_div_0_div_13_ng_container_4_Template, 2, 3, "ng-container", 47);
167
- i0.ɵɵtemplate(5, RecipeCardComponent_div_0_div_13_ng_container_5_Template, 1, 0, "ng-container", 48);
163
+ i0.ɵɵelementStart(0, "div", 44);
164
+ i0.ɵɵelementContainerStart(1, 47);
165
+ i0.ɵɵtemplate(2, RecipeCardComponent_div_0_div_13_ng_container_2_Template, 2, 3, "ng-container", 48);
166
+ i0.ɵɵtemplate(3, RecipeCardComponent_div_0_div_13_ng_container_3_Template, 2, 3, "ng-container", 48);
167
+ i0.ɵɵtemplate(4, RecipeCardComponent_div_0_div_13_ng_container_4_Template, 2, 3, "ng-container", 48);
168
+ i0.ɵɵtemplate(5, RecipeCardComponent_div_0_div_13_ng_container_5_Template, 1, 0, "ng-container", 49);
168
169
  i0.ɵɵelementContainerEnd();
169
- i0.ɵɵelementStart(6, "span", 45);
170
+ i0.ɵɵelementStart(6, "span", 46);
170
171
  i0.ɵɵtext(7);
171
172
  i0.ɵɵelementEnd();
172
173
  i0.ɵɵelementEnd();
@@ -184,29 +185,29 @@ function RecipeCardComponent_div_0_div_13_Template(rf, ctx) { if (rf & 1) {
184
185
  i0.ɵɵtextInterpolate(ctx_r10.recipe == null ? null : ctx_r10.recipe.difficultyLabel);
185
186
  } }
186
187
  function RecipeCardComponent_div_0_ng_template_14_Template(rf, ctx) { if (rf & 1) {
187
- i0.ɵɵelement(0, "ng-miam-skeleton", 40);
188
+ i0.ɵɵelement(0, "ng-miam-skeleton", 41);
188
189
  } if (rf & 2) {
189
190
  const ctx_r12 = i0.ɵɵnextContext(2);
190
191
  i0.ɵɵproperty("type", ctx_r12.skeleton == null ? null : ctx_r12.skeleton.IconWithInfo);
191
192
  } }
192
193
  function RecipeCardComponent_div_0_div_21_div_5_Template(rf, ctx) { if (rf & 1) {
193
- i0.ɵɵelementStart(0, "div", 54);
194
+ i0.ɵɵelementStart(0, "div", 55);
194
195
  i0.ɵɵtext(1);
195
196
  i0.ɵɵelementEnd();
196
197
  } if (rf & 2) {
197
- const ctx_r31 = i0.ɵɵnextContext(3);
198
+ const ctx_r34 = i0.ɵɵnextContext(3);
198
199
  i0.ɵɵadvance(1);
199
- i0.ɵɵtextInterpolate1(" + ", ctx_r31.recipe.modifiedIngredients.length - 2, " ");
200
+ i0.ɵɵtextInterpolate1(" + ", ctx_r34.recipe.modifiedIngredients.length - 2, " ");
200
201
  } }
201
202
  function RecipeCardComponent_div_0_div_21_Template(rf, ctx) { if (rf & 1) {
202
- i0.ɵɵelementStart(0, "div", 50);
203
- i0.ɵɵelementStart(1, "div", 51);
204
- i0.ɵɵelement(2, "img", 52);
203
+ i0.ɵɵelementStart(0, "div", 51);
204
+ i0.ɵɵelementStart(1, "div", 52);
205
+ i0.ɵɵelement(2, "img", 53);
205
206
  i0.ɵɵelementEnd();
206
- i0.ɵɵelementStart(3, "div", 51);
207
- i0.ɵɵelement(4, "img", 52);
207
+ i0.ɵɵelementStart(3, "div", 52);
208
+ i0.ɵɵelement(4, "img", 53);
208
209
  i0.ɵɵelementEnd();
209
- i0.ɵɵtemplate(5, RecipeCardComponent_div_0_div_21_div_5_Template, 2, 1, "div", 53);
210
+ i0.ɵɵtemplate(5, RecipeCardComponent_div_0_div_21_div_5_Template, 2, 1, "div", 54);
210
211
  i0.ɵɵelementEnd();
211
212
  } if (rf & 2) {
212
213
  const ctx_r13 = i0.ɵɵnextContext(2);
@@ -218,10 +219,10 @@ function RecipeCardComponent_div_0_div_21_Template(rf, ctx) { if (rf & 1) {
218
219
  i0.ɵɵproperty("ngIf", ctx_r13.recipe.modifiedIngredients.length > 2);
219
220
  } }
220
221
  function RecipeCardComponent_div_0_div_22_Template(rf, ctx) { if (rf & 1) {
221
- const _r33 = i0.ɵɵgetCurrentView();
222
- i0.ɵɵelementStart(0, "div", 55);
223
- i0.ɵɵelementStart(1, "ng-miam-counter-input", 56);
224
- i0.ɵɵlistener("counterChange", function RecipeCardComponent_div_0_div_22_Template_ng_miam_counter_input_counterChange_1_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(2); return ctx_r32.updateGuests($event); });
222
+ const _r36 = i0.ɵɵgetCurrentView();
223
+ i0.ɵɵelementStart(0, "div", 56);
224
+ i0.ɵɵelementStart(1, "ng-miam-counter-input", 57);
225
+ i0.ɵɵlistener("counterChange", function RecipeCardComponent_div_0_div_22_Template_ng_miam_counter_input_counterChange_1_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r35 = i0.ɵɵnextContext(2); return ctx_r35.updateGuests($event); });
225
226
  i0.ɵɵelementEnd();
226
227
  i0.ɵɵelementEnd();
227
228
  } if (rf & 2) {
@@ -230,13 +231,24 @@ function RecipeCardComponent_div_0_div_22_Template(rf, ctx) { if (rf & 1) {
230
231
  i0.ɵɵproperty("counter", ctx_r14.recipe.modifiedGuests);
231
232
  } }
232
233
  function RecipeCardComponent_div_0_ng_template_23_Template(rf, ctx) { if (rf & 1) {
233
- i0.ɵɵelement(0, "ng-miam-skeleton", 40);
234
+ i0.ɵɵelement(0, "ng-miam-skeleton", 41);
234
235
  } if (rf & 2) {
235
236
  const ctx_r16 = i0.ɵɵnextContext(2);
236
237
  i0.ɵɵproperty("type", ctx_r16.skeleton == null ? null : ctx_r16.skeleton.IconWithInfo);
237
238
  } }
239
+ function RecipeCardComponent_div_0_ng_miam_icon_30_Template(rf, ctx) { if (rf & 1) {
240
+ i0.ɵɵelement(0, "ng-miam-icon", 58);
241
+ i0.ɵɵpipe(1, "async");
242
+ } if (rf & 2) {
243
+ const ctx_r17 = i0.ɵɵnextContext(2);
244
+ var tmp_2_0 = null;
245
+ i0.ɵɵproperty("width", 24)("height", 24)("iconName", ((tmp_2_0 = i0.ɵɵpipeBind1(1, 3, ctx_r17.groceriesListsService.list$)) == null ? null : tmp_2_0.hasRecipe(ctx_r17.recipe == null ? null : ctx_r17.recipe.id)) ? ctx_r17.icon.CheckList : ctx_r17.icon.Cart);
246
+ } }
247
+ function RecipeCardComponent_div_0_ng_template_31_Template(rf, ctx) { if (rf & 1) {
248
+ i0.ɵɵelement(0, "ng-miam-loader");
249
+ } }
238
250
  function RecipeCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
239
- const _r35 = i0.ɵɵgetCurrentView();
251
+ const _r38 = i0.ɵɵgetCurrentView();
240
252
  i0.ɵɵelementStart(0, "div", 2);
241
253
  i0.ɵɵelementStart(1, "div", 3);
242
254
  i0.ɵɵelementStart(2, "span");
@@ -257,7 +269,7 @@ function RecipeCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
257
269
  i0.ɵɵelementStart(17, "div", 14);
258
270
  i0.ɵɵelementStart(18, "div", 15);
259
271
  i0.ɵɵelementStart(19, "div", 16);
260
- i0.ɵɵlistener("click", function RecipeCardComponent_div_0_Template_div_click_19_listener() { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return ctx_r34.toggleHelper(); });
272
+ i0.ɵɵlistener("click", function RecipeCardComponent_div_0_Template_div_click_19_listener() { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(); return ctx_r37.toggleHelper(); });
261
273
  i0.ɵɵelement(20, "ng-miam-icon", 17);
262
274
  i0.ɵɵelementEnd();
263
275
  i0.ɵɵtemplate(21, RecipeCardComponent_div_0_div_21_Template, 6, 3, "div", 18);
@@ -271,9 +283,9 @@ function RecipeCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
271
283
  i0.ɵɵelementEnd();
272
284
  i0.ɵɵelementStart(28, "div");
273
285
  i0.ɵɵelementStart(29, "button", 24);
274
- i0.ɵɵlistener("click", function RecipeCardComponent_div_0_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r35); const ctx_r36 = i0.ɵɵnextContext(); return ctx_r36.clickPrimary(); });
275
- i0.ɵɵelement(30, "ng-miam-icon", 25);
276
- i0.ɵɵpipe(31, "async");
286
+ i0.ɵɵlistener("click", function RecipeCardComponent_div_0_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r38); const ctx_r39 = i0.ɵɵnextContext(); return ctx_r39.clickPrimary(); });
287
+ i0.ɵɵtemplate(30, RecipeCardComponent_div_0_ng_miam_icon_30_Template, 2, 5, "ng-miam-icon", 25);
288
+ i0.ɵɵtemplate(31, RecipeCardComponent_div_0_ng_template_31_Template, 1, 0, "ng-template", null, 26, i0.ɵɵtemplateRefExtractor);
277
289
  i0.ɵɵelementEnd();
278
290
  i0.ɵɵelementEnd();
279
291
  i0.ɵɵelementEnd();
@@ -285,8 +297,8 @@ function RecipeCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
285
297
  const _r7 = i0.ɵɵreference(10);
286
298
  const _r11 = i0.ɵɵreference(15);
287
299
  const _r15 = i0.ɵɵreference(24);
300
+ const _r18 = i0.ɵɵreference(32);
288
301
  const ctx_r0 = i0.ɵɵnextContext();
289
- var tmp_20_0 = null;
290
302
  i0.ɵɵadvance(3);
291
303
  i0.ɵɵtextInterpolate1(" ", ctx_r0.headerText, "");
292
304
  i0.ɵɵadvance(1);
@@ -308,7 +320,7 @@ function RecipeCardComponent_div_0_Template(rf, ctx) { if (rf & 1) {
308
320
  i0.ɵɵadvance(2);
309
321
  i0.ɵɵproperty("disabled", !ctx_r0.recipe);
310
322
  i0.ɵɵadvance(1);
311
- i0.ɵɵproperty("width", 24)("height", 24)("iconName", ((tmp_20_0 = i0.ɵɵpipeBind1(31, 21, ctx_r0.groceriesListsService.list$)) == null ? null : tmp_20_0.hasRecipe(ctx_r0.recipe == null ? null : ctx_r0.recipe.id)) ? ctx_r0.icon.CheckList : ctx_r0.icon.Cart);
323
+ i0.ɵɵproperty("ngIf", !ctx_r0.addButtonLoading)("ngIfElse", _r18);
312
324
  } }
313
325
  function RecipeCardComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
314
326
  i0.ɵɵelement(0, "ng-miam-cors-overlay");
@@ -375,11 +387,14 @@ export class RecipeCardComponent extends AbstractRecipeCardComponent {
375
387
  }
376
388
  }
377
389
  clickPrimary() {
378
- this.primaryButtonClicked$.emit();
379
- this.addRecipe();
390
+ if (!this.addButtonLoading) {
391
+ const wasAdded = !this.groceriesListsService.list$.value.hasRecipe(this.recipe.id);
392
+ this.addRecipe();
393
+ this.primaryButtonClicked$.emit(wasAdded);
394
+ }
380
395
  }
381
396
  loadRecipe() {
382
- this.recipeService.get(this.recipeId, { include: ['ingredients', 'recipe-steps', 'recipe-status', 'recipe-type', 'sponsors'] }).pipe(skipWhile(result => result.is_loading), catchError(err => {
397
+ this.recipeService.get(this.recipeId, { include: ['ingredients', 'recipe-steps', 'recipe-status', 'recipe-type', 'sponsors', 'tags'] }).pipe(skipWhile(result => result.is_loading), catchError(err => {
383
398
  this.hide.emit();
384
399
  return of(err);
385
400
  })).subscribe(result => {
@@ -392,12 +407,12 @@ export class RecipeCardComponent extends AbstractRecipeCardComponent {
392
407
  }
393
408
  }
394
409
  RecipeCardComponent.ɵfac = function RecipeCardComponent_Factory(t) { return new (t || RecipeCardComponent)(i0.ɵɵdirectiveInject(ChangeDetectorRef), i0.ɵɵdirectiveInject(RecipesService), i0.ɵɵdirectiveInject(RecipeEventsService), i0.ɵɵdirectiveInject(GroceriesListsService), i0.ɵɵdirectiveInject(UserService), i0.ɵɵdirectiveInject(PointOfSalesService), i0.ɵɵdirectiveInject(ContextService), i0.ɵɵdirectiveInject(i1.AnalyticsService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
395
- RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent, selectors: [["ng-miam-recipe-card"]], inputs: { recipeId: "recipeId", recipe: "recipe" }, outputs: { removedFromFavorite: "removedFromFavorite", displayed: "displayed", guestsChanged: "guestsChanged" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 3, vars: 1, consts: [["class", "miam-recipe-card", 4, "ngIf"], ["cors", ""], [1, "miam-recipe-card"], [1, "miam-recipe-card__header"], ["class", "miam-recipe-card__picture", 3, "click", 4, "ngIf", "ngIfElse"], ["pictSkeleton", ""], [1, "miam-recipe-card__attributes"], [4, "ngIf", "ngIfElse"], ["textSkeleton", ""], [1, "miam-recipe-card__attributes__infos"], ["class", "miam-recipe-card__attributes__info ", 4, "ngIf", "ngIfElse"], ["class", "miam-recipe-card__attributes__info", 4, "ngIf", "ngIfElse"], ["skeletonInfo", ""], [1, "miam-recipe-card__attributes__control"], [1, "miam-recipe-card__control__left__col"], [1, "miam-recipe-card__left__col__custom"], [1, "miam-recipe-card__help", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "width", "height", "iconName"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], ["class", "miam-recipe-card__left__col__counter", 4, "ngIf", "ngIfElse"], ["skeletoncounter", ""], [1, "miam-recipe-card__control__right__col"], [1, "miam-recipe-card__right__col__price"], [3, "recipe", "serves"], [1, "m-button-fab-primary", 3, "disabled", "click"], ["primaryColor", "#fff", 3, "width", "height", "iconName"], [1, "miam-recipe-card__picture", 3, "click"], ["loading", "lazy", 3, "src"], [1, "miam-recipe-card__picture__gradient"], ["class", "miam-recipe-card__picture__tag", 4, "ngIf"], ["class", "miam-recipe-card__picture__video", 4, "ngIf"], [1, "miam-recipe-card__picture__actions"], ["class", "miam-recipe-card__actions__icon miam-noPadding", 3, "recipe", 4, "ngIf"], ["primaryColor", "var(--m-color-primary)", 1, "miam-recipe-card__actions__icon", 3, "iconName", "click"], ["class", "miam-recipe-card__picture__sponsor", 3, "src", 4, "ngIf"], [1, "miam-recipe-card__picture__tag"], [1, "miam-recipe-card__picture__video"], ["primaryColor", "var(--m-color-primary)", 3, "iconName", "width", "height"], [1, "miam-recipe-card__actions__icon", "miam-noPadding", 3, "recipe"], [1, "miam-recipe-card__picture__sponsor", 3, "src"], [3, "type"], [1, "miam-recipe-card__attributes__title", 3, "click"], [1, "miam-recipe-card__attributes__ingredients"], [1, "miam-recipe-card__attributes__info"], [3, "iconName"], [1, "miam-recipe-card__info__label"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["primaryColor", "var(--m-color-secondary)", 3, "width", "height", "iconName"], [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], [3, "src"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__left__col__counter"], [3, "counter", "counterChange"]], template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
396
- i0.ɵɵtemplate(0, RecipeCardComponent_div_0_Template, 32, 23, "div", 0);
410
+ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent, selectors: [["ng-miam-recipe-card"]], inputs: { recipeId: "recipeId", recipe: "recipe" }, outputs: { removedFromFavorite: "removedFromFavorite", displayed: "displayed", guestsChanged: "guestsChanged" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 3, vars: 1, consts: [["class", "miam-recipe-card", 4, "ngIf"], ["cors", ""], [1, "miam-recipe-card"], [1, "miam-recipe-card__header"], ["class", "miam-recipe-card__picture", 3, "click", 4, "ngIf", "ngIfElse"], ["pictSkeleton", ""], [1, "miam-recipe-card__attributes"], [4, "ngIf", "ngIfElse"], ["textSkeleton", ""], [1, "miam-recipe-card__attributes__infos"], ["class", "miam-recipe-card__attributes__info ", 4, "ngIf", "ngIfElse"], ["class", "miam-recipe-card__attributes__info", 4, "ngIf", "ngIfElse"], ["skeletonInfo", ""], [1, "miam-recipe-card__attributes__control"], [1, "miam-recipe-card__control__left__col"], [1, "miam-recipe-card__left__col__custom"], [1, "miam-recipe-card__help", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "width", "height", "iconName"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], ["class", "miam-recipe-card__left__col__counter", 4, "ngIf", "ngIfElse"], ["skeletoncounter", ""], [1, "miam-recipe-card__control__right__col"], [1, "miam-recipe-card__right__col__price"], [3, "recipe", "serves"], [1, "m-button-fab-primary", 3, "disabled", "click"], ["primaryColor", "#fff", 3, "width", "height", "iconName", 4, "ngIf", "ngIfElse"], ["addLoader", ""], [1, "miam-recipe-card__picture", 3, "click"], ["loading", "lazy", 3, "src"], [1, "miam-recipe-card__picture__gradient"], ["class", "miam-recipe-card__picture__tag", 4, "ngIf"], ["class", "miam-recipe-card__picture__video", 4, "ngIf"], [1, "miam-recipe-card__picture__actions"], ["class", "miam-recipe-card__actions__icon miam-noPadding", 3, "recipe", 4, "ngIf"], ["primaryColor", "var(--m-color-primary)", 1, "miam-recipe-card__actions__icon", 3, "iconName", "click"], ["class", "miam-recipe-card__picture__sponsor", 3, "src", 4, "ngIf"], [1, "miam-recipe-card__picture__tag"], [1, "miam-recipe-card__picture__video"], ["primaryColor", "var(--m-color-primary)", 3, "iconName", "width", "height"], [1, "miam-recipe-card__actions__icon", "miam-noPadding", 3, "recipe"], [1, "miam-recipe-card__picture__sponsor", 3, "src"], [3, "type"], [1, "miam-recipe-card__attributes__title", 3, "click"], [1, "miam-recipe-card__attributes__ingredients"], [1, "miam-recipe-card__attributes__info"], [3, "iconName"], [1, "miam-recipe-card__info__label"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["primaryColor", "var(--m-color-secondary)", 3, "width", "height", "iconName"], [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], [3, "src"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__left__col__counter"], [3, "counter", "counterChange"], ["primaryColor", "#fff", 3, "width", "height", "iconName"]], template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
411
+ i0.ɵɵtemplate(0, RecipeCardComponent_div_0_Template, 33, 20, "div", 0);
397
412
  i0.ɵɵtemplate(1, RecipeCardComponent_ng_template_1_Template, 1, 0, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
398
413
  } if (rf & 2) {
399
414
  i0.ɵɵproperty("ngIf", ctx.isloaded);
400
- } }, directives: [i4.NgIf, i5.IconComponent, i6.RecipePricingComponent, i7.LikeButtonComponent, i8.SkeletonComponent, i4.NgSwitch, i4.NgSwitchCase, i4.NgSwitchDefault, i9.CounterInputComponent, i10.CORSOverlayComponent], pipes: [i4.AsyncPipe, i11.CapitalizeFirstLetterPipe], styles: [".miam-flex-column,.miam-recipe-card .miam-recipe-card__attributes,.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions{display:flex;flex-direction:column;justify-content:space-around}.miam-flex-row{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin:auto}.miam-recipe-card{background-color:var(--m-color-white);border-radius:var(--m-border-radius);box-shadow:var(--m-shadow-small);display:flex;flex-direction:column;height:100%;min-height:470px;position:relative;width:320px}.miam-recipe-card .miam-recipe-card__header{display:none}.miam-recipe-card .miam-recipe-card__picture{-webkit-tap-highlight-color:transparent;cursor:pointer;height:240px;position:relative}.miam-recipe-card .miam-recipe-card__picture img{-o-object-fit:cover;object-fit:cover;transition:var(--m-default-transition);z-index:var(--m-z-index-position-absolute-low)}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__gradient,.miam-recipe-card .miam-recipe-card__picture img{border-top-left-radius:var(--m-border-radius);border-top-right-radius:var(--m-border-radius);height:100%;position:absolute;width:100%}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__gradient{background:linear-gradient(180deg,transparent 57.92%,rgba(0,0,0,.75) 100%,rgba(0,0,0,.75) 0);content:\"\"}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__video{left:calc(50% - 50px);position:absolute;top:calc(50% - 50px)}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__tag{background-color:var(--m-color-primary-light);border-radius:5px;bottom:16px;color:var(--m-color-primary);font-weight:500;left:16px;padding:8px;position:absolute;text-transform:uppercase}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions{position:absolute;right:16px;top:8px;z-index:var(--m-z-index-position-absolute-high)}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions .miam-recipe-card__actions__icon{-o-object-fit:contain;background-color:var(--m-color-white);border-radius:var(--m-border-radius-circle);box-shadow:var(--m-shadow-small);margin:0 0 16px;object-fit:contain;padding:8px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions .miam-recipe-card__actions__icon .icon-container{margin:0}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions .miam-recipe-card__actions__icon.miam-noPadding{padding:0}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__sponsor{-o-object-fit:contain;bottom:16px;height:auto;max-height:72px;max-width:96px;object-fit:contain;position:absolute;right:16px;width:auto}.miam-recipe-card .miam-recipe-card__attributes{flex:1 1;justify-content:space-between;padding:8px 16px 16px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__title{-webkit-box-orient:vertical;-webkit-line-clamp:2;-webkit-tap-highlight-color:transparent;color:var(--m-color-slate);cursor:pointer;display:-webkit-box;font-size:20px;font-weight:700;font-weight:500;letter-spacing:normal;line-height:30;line-height:1.5;margin:0 8px 8px 0;overflow:hidden;text-align:left;text-overflow:ellipsis;transition:var(--m-default-transition)}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__title:hover{color:var(--m-color-primary);text-decoration:underline}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__ingredients{-webkit-box-orient:vertical;-webkit-line-clamp:1;color:var(--m-color-grey-text);display:-webkit-box;font-size:14px;font-weight:300;overflow:hidden;text-overflow:ellipsis}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__infos{display:flex;flex-direction:row;padding:8px 0}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__infos .miam-recipe-card__attributes__info{display:flex;flex-direction:row;margin:0 16px 0 0}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__infos .miam-recipe-card__attributes__info .miam-recipe-card__info__label{font-size:14px;margin-left:8px;text-transform:capitalize}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control{align-items:center;display:flex;justify-content:space-between}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col{display:flex;flex-direction:column-reverse}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__counter{align-items:center;display:flex}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__counter ng-miam-counter-input .miam-counter-input__icon{margin-right:8px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__custom{align-items:flex-end;display:flex;height:48px;justify-content:flex-start}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__custom .icon-container{cursor:pointer}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col{align-items:center;display:flex;flex-direction:column;min-width:60px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col .miam-recipe-card__right__col__price{height:48px}@media (max-width:1023px){.miam-recipe-card{min-height:unset}.miam-recipe-card .miam-recipe-card__picture{height:164px}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__gradient{background:linear-gradient(0deg,rgba(0,0,0,.2),rgba(0,0,0,.2))}.miam-recipe-card .miam-recipe-card__attributes{padding:8px 16px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__title{color:#fff;font-weight:700;height:72px;margin-left:calc(15% - 16px);position:absolute;text-align:center;top:52px;width:70%}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__ingredients{display:none}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col{flex-direction:row;justify-content:space-between;width:100%}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__counter{align-items:flex-end;padding-bottom:4px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col{margin-top:12px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col .miam-recipe-card__right__col__price{height:48px;position:absolute;top:172px}}"], encapsulation: 2, changeDetection: 0 });
415
+ } }, directives: [i4.NgIf, i5.IconComponent, i6.RecipePricingComponent, i7.LikeButtonComponent, i8.SkeletonComponent, i4.NgSwitch, i4.NgSwitchCase, i4.NgSwitchDefault, i9.CounterInputComponent, i10.LoaderComponent, i11.CORSOverlayComponent], pipes: [i4.AsyncPipe, i12.CapitalizeFirstLetterPipe], styles: [".miam-flex-column,.miam-recipe-card .miam-recipe-card__attributes,.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions{display:flex;flex-direction:column;justify-content:space-around}.miam-flex-row{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin:auto}.miam-recipe-card{background-color:var(--m-color-white);border-radius:var(--m-border-radius);box-shadow:var(--m-shadow-small);display:flex;flex-direction:column;height:100%;min-height:470px;position:relative;width:320px}.miam-recipe-card .miam-recipe-card__header{display:none}.miam-recipe-card .miam-recipe-card__picture{-webkit-tap-highlight-color:transparent;cursor:pointer;height:240px;position:relative}.miam-recipe-card .miam-recipe-card__picture img{-o-object-fit:cover;object-fit:cover;transition:var(--m-default-transition);z-index:var(--m-z-index-position-absolute-low)}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__gradient,.miam-recipe-card .miam-recipe-card__picture img{border-top-left-radius:var(--m-border-radius);border-top-right-radius:var(--m-border-radius);height:100%;position:absolute;width:100%}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__gradient{background:linear-gradient(180deg,transparent 57.92%,rgba(0,0,0,.75) 100%,rgba(0,0,0,.75) 0);content:\"\"}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__video{left:calc(50% - 50px);position:absolute;top:calc(50% - 50px)}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__tag{background-color:var(--m-color-primary-light);border-radius:5px;bottom:16px;color:var(--m-color-primary);font-weight:500;left:16px;padding:8px;position:absolute;text-transform:uppercase}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions{position:absolute;right:16px;top:8px;z-index:var(--m-z-index-position-absolute-high)}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions .miam-recipe-card__actions__icon{-o-object-fit:contain;background-color:var(--m-color-white);border-radius:var(--m-border-radius-circle);box-shadow:var(--m-shadow-small);margin:0 0 16px;object-fit:contain;padding:8px;width:-webkit-max-content;width:-moz-max-content;width:max-content}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions .miam-recipe-card__actions__icon .icon-container{margin:0}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__actions .miam-recipe-card__actions__icon.miam-noPadding{padding:0}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__sponsor{-o-object-fit:contain;bottom:16px;height:auto;max-height:72px;max-width:96px;object-fit:contain;position:absolute;right:16px;width:auto}.miam-recipe-card .miam-recipe-card__attributes{flex:1 1;justify-content:space-between;padding:8px 16px 16px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__title{-webkit-box-orient:vertical;-webkit-line-clamp:2;-webkit-tap-highlight-color:transparent;color:var(--m-color-slate);cursor:pointer;display:-webkit-box;font-size:20px;font-weight:700;font-weight:500;letter-spacing:normal;line-height:30;line-height:1.5;margin:0 8px 8px 0;overflow:hidden;text-align:left;text-overflow:ellipsis;transition:var(--m-default-transition)}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__title:hover{color:var(--m-color-primary);text-decoration:underline}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__ingredients{-webkit-box-orient:vertical;-webkit-line-clamp:1;color:var(--m-color-grey-text);display:-webkit-box;font-size:14px;font-weight:300;overflow:hidden;text-overflow:ellipsis}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__infos{display:flex;flex-direction:row;padding:8px 0}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__infos .miam-recipe-card__attributes__info{display:flex;flex-direction:row;margin:0 16px 0 0}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__infos .miam-recipe-card__attributes__info .miam-recipe-card__info__label{font-size:14px;margin-left:8px;text-transform:capitalize}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control{align-items:center;display:flex;justify-content:space-between}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col{display:flex;flex-direction:column-reverse}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__counter{align-items:center;display:flex}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__counter ng-miam-counter-input .miam-counter-input__icon{margin-right:8px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__custom{align-items:flex-end;display:flex;height:48px;justify-content:flex-start}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__custom .icon-container{cursor:pointer}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col{align-items:center;display:flex;flex-direction:column;min-width:60px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col .miam-recipe-card__right__col__price{height:48px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col button .loader{border:var(--m-loader-thickness) solid transparent;border-top:var(--m-loader-thickness) solid var(--m-color-white);height:24px;width:24px}@media (max-width:1023px){.miam-recipe-card{min-height:unset}.miam-recipe-card .miam-recipe-card__picture{height:164px}.miam-recipe-card .miam-recipe-card__picture .miam-recipe-card__picture__gradient{background:linear-gradient(0deg,rgba(0,0,0,.2),rgba(0,0,0,.2))}.miam-recipe-card .miam-recipe-card__attributes{padding:8px 16px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__title{color:#fff;font-weight:700;height:72px;margin-left:calc(15% - 16px);position:absolute;text-align:center;top:52px;width:70%}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__ingredients{display:none}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col{flex-direction:row;justify-content:space-between;width:100%}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__left__col .miam-recipe-card__left__col__counter{align-items:flex-end;padding-bottom:4px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col{margin-top:12px}.miam-recipe-card .miam-recipe-card__attributes .miam-recipe-card__attributes__control .miam-recipe-card__control__right__col .miam-recipe-card__right__col__price{height:48px;position:absolute;top:172px}}"], encapsulation: 2, changeDetection: 0 });
401
416
  /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(RecipeCardComponent, [{
402
417
  type: Component,
403
418
  args: [{
@@ -439,4 +454,4 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
439
454
  }], guestsChanged: [{
440
455
  type: Output
441
456
  }] }); })();
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZC9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUNQdEIsK0JBQWlIO0lBQUEsMkNBQWE7SUFBQSxpQkFBTTs7O0lBRXBJLCtCQUNFO0lBQUEsbUNBQXdIO0lBQzFILGlCQUFNOzs7SUFEVSxlQUF1QjtJQUF2Qiw2Q0FBdUIsY0FBQSxlQUFBOzs7SUFJckMsMENBQTBKOzs7SUFBeEMsdUNB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QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOztzQkFjSSxNQUFNO3VCQUFDLGlCQUFpQjs7c0JBQ3hCLE1BQU07dUJBQUMsY0FBYzs7c0JBQ3JCLE1BQU07dUJBQUMsbUJBQW1COztzQkFDMUIsTUFBTTt1QkFBQyxxQkFBcUI7O3NCQUM1QixNQUFNO3VCQUFDLFdBQVc7O3NCQUNsQixNQUFNO3VCQUFDLG1CQUFtQjs7c0JBQzFCLE1BQU07dUJBQUMsY0FBYztnRkFqQmYsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNJLG1CQUFtQjtrQkFBNUIsTUFBTTtZQUNHLFNBQVM7a0JBQWxCLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBJbmplY3QsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RSZWNpcGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2Fic3RyYWN0LXJlY2lwZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGVzU2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSwgUmVjaXBlRXZlbnRzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGlzIGlzIGFuIGFuZ3VsYXIgY29tcG9uZW50IGRlc2lnbiB0byBiZSBhIHdlYiBjb21wb25lbnRcbiAqIHRoYXQncyB3aHkgd2UgdXNlIG9uUHVzaFN0cmF0ZWdpZSB3aXRoIHRoZSBjaGFuZ2VEZXRldGVjdG9yUmVmXG4gKiB0byBhdm9pZCBjb21tb24gaXNzdWVcbiAqIGd1aWRlIC0+IGh0dHBzOi8vbmV0YmFzYWwuY29tL2EtY29tcHJlaGVuc2l2ZS1ndWlkZS10by1hbmd1bGFyLW9ucHVzaC1jaGFuZ2UtZGV0ZWN0aW9uLXN0cmF0ZWd5LTViYWM0OTMwNzRhNFxuICogYW5kIGFsc293IHdlIHVzZSBTaGFkb3dEb20gdG8gcHJvdGVjdCBzdHlsZSBvZiBvdXIgY29tcG9uZW50XG4gKiBhbmQgYWxzb3cgc3R5bGUgb2YgdGhlIHBhcmVudCBhcGxpY2F0aW9uIHRoYXQgd2lsbCB1c2UgaXRcbiAqIGRvYyAtPiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0VuY2Fwc3VsYXRpb25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2FyZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UmVjaXBlQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBAT3V0cHV0KCkgcmVtb3ZlZEZyb21GYXZvcml0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBndWVzdHNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgaXNsb2FkZWQgPSBmYWxzZTtcbiAgY2FyZFR5cGUgPSAnc3VnZ2VzdGlvbi1jYXJkJztcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChSZWNpcGVzU2VydmljZSkgcmVjaXBlU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgQEluamVjdChSZWNpcGVFdmVudHNTZXJ2aWNlKSByZWNpcGVFdmVudHNTZXJ2aWNlOiBSZWNpcGVFdmVudHNTZXJ2aWNlLFxuICAgIEBJbmplY3QoR3JvY2VyaWVzTGlzdHNTZXJ2aWNlKSBncm9jZXJpZXNMaXN0c1NlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBASW5qZWN0KFVzZXJTZXJ2aWNlKSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgQEluamVjdChQb2ludE9mU2FsZXNTZXJ2aWNlKSBwb2ludE9mU2FsZXNTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIEBJbmplY3QoQ29udGV4dFNlcnZpY2UpIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZlxuICAgICkge1xuICAgIHN1cGVyKGNkciwgcmVjaXBlU2VydmljZSwgcmVjaXBlRXZlbnRzU2VydmljZSwgZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCB1c2VyU2VydmljZSwgcG9pbnRPZlNhbGVzU2VydmljZSwgY29udGV4dFNlcnZpY2UsXG4gICAgICBhbmFseXRpY3NTZXJ2aWNlLCBlbGVtZW50KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5ZWRSZWNpcGVDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgdGhpcy5yZWNpcGVXYXNMb2FkZWQoKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5yZWNpcGVJZCkge1xuICAgICAgdGhpcy5sb2FkUmVjaXBlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVjaXBlV2FzTG9hZGVkKCkge1xuICAgIHRoaXMuaW5pdEluZ3JlZGllbnRzU3RyaW5nKCk7XG4gICAgdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMgfHw9ICt0aGlzLnJlY2lwZS5ndWVzdHM7XG4gICAgdGhpcy5pc2xvYWRlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmVtb3ZlRnJvbUZhdm9yaXRlKCkge1xuICAgIHRoaXMucmVtb3ZlZEZyb21GYXZvcml0ZS5lbWl0KHRoaXMucmVjaXBlKTtcbiAgfVxuXG4gIG9wZW5SZWNpcGUoKSB7XG4gICAgY29uc3QgdmlkZW9FdmVudCA9IHRoaXMuY29udGV4dFNlcnZpY2UudmlkZW9SZWNpcGVzRW5hYmxlZCAmJiB0aGlzLnJlY2lwZS52aWRlb0lkO1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoJ2Rpc3BsYXktcmVjaXBlJywgdmlkZW9FdmVudCA/IGAke3RoaXMuY2FyZFR5cGV9L3ZpZGVvYCA6IHRoaXMuY2FyZFR5cGUpO1xuICAgIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5T2JqZWN0KHRoaXMucmVjaXBlLCB7IGd1ZXN0cyA6IHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzIH0pO1xuICAgIHRoaXMuZGlzcGxheWVkLmVtaXQoKTtcbiAgfVxuXG4gIHVwZGF0ZUd1ZXN0cyhjb3VudCkge1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gY291bnQ7XG4gICAgaWYgKHRoaXMucmVjaXBlSWQpIHsgdGhpcy5fdXBkYXRlQmFza2V0KCk7IH0gLy8gSWYgcmVjaXBlIHdhcyBsb2FkZWQgaGVyZSwgd2UgbmVlZCB0byBwcm9jZXNzIGJhc2tldCB1cGRhdGVzIGhlcmVcbiAgICB0aGlzLmd1ZXN0c0NoYW5nZWQuZW1pdChjb3VudCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgX3VwZGF0ZUJhc2tldCgpIHtcbiAgICAvLyBJZiByZWNpcGUgYWxyZWFkeSBpbiBiYXNrZXQsIHVwZGF0ZSB0aGUgbnVtYmVyIG9mIGd1ZXN0cyBzbyB0aGF0IHRoZSBwcmljaW5nIGdldHMgdXBkYXRlZCBhcyB3ZWxsXG4gICAgLy8gKGRpc3BsYXkgPSBmYWxzZSBzbyB0aGF0IHRoZSByZWNpcGUgZGV0YWlscyBkb24ndCBzaG93IHVwKVxuICAgIGlmICh0aGlzLmdyb2Nlcmllc0xpc3RzU2VydmljZS5saXN0JC52YWx1ZS5oYXNSZWNpcGUodGhpcy5yZWNpcGVJZCkpe1xuICAgICAgdGhpcy5hZGRSZWNpcGUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGNsaWNrUHJpbWFyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnByaW1hcnlCdXR0b25DbGlja2VkJC5lbWl0KCk7XG4gICAgdGhpcy5hZGRSZWNpcGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFJlY2lwZSgpIHtcbiAgICAgICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmdldCh0aGlzLnJlY2lwZUlkLFxuICAgICAgICAgIHsgaW5jbHVkZTogWydpbmdyZWRpZW50cycsICdyZWNpcGUtc3RlcHMnLCAncmVjaXBlLXN0YXR1cycsICdyZWNpcGUtdHlwZScsICdzcG9uc29ycycgXSB9XG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgY2F0Y2hFcnJvciggZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgICAgIH0pLFxuICAgICAgKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy5yZWNpcGUgPSByZXN1bHQ7XG4gICAgICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgICAgIHRoaXMucmVjaXBlV2FzTG9hZGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9J2lzbG9hZGVkJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRcIj5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19oZWFkZXJcIj5cbiAgICA8c3Bhbj4ge3toZWFkZXJUZXh0fX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwicmVjaXBlIGVsc2UgcGljdFNrZWxldG9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlXCIgKGNsaWNrKT1cIm9wZW5SZWNpcGUoKVwiPlxuICAgIDwhLS0gUGljdHVyZSAtLT5cbiAgICA8aW1nIFtzcmNdPVwicmVjaXBlPy5hdHRyaWJ1dGVzWydtZWRpYS11cmwnXVwiIGxvYWRpbmc9XCJsYXp5XCI+XG4gICAgPCEtLSBHcmFkaWVudCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fZ3JhZGllbnRcIj48L2Rpdj5cbiAgICA8IS0tIETDqWrDoCBham91dMOpZSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiKGdyb2Nlcmllc0xpc3RzU2VydmljZS5saXN0JCB8IGFzeW5jKT8uaGFzUmVjaXBlKHJlY2lwZT8uaWQpXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlX190YWdcIj5Ew6lqw6AgIGFqb3V0w6llPC9kaXY+XG4gICAgPCEtLSBWaWRlbyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udGV4dFNlcnZpY2UudmlkZW9SZWNpcGVzRW5hYmxlZCAmJiByZWNpcGU/LnZpZGVvSWRcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX3ZpZGVvXCI+XG4gICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLlZpZGVvXCIgW3dpZHRoXT1cIjEwMFwiIFtoZWlnaHRdPVwiMTAwXCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJz48L25nLW1pYW0taWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIExpa2UsIHNoYXJlICYgY2FsZW5kYXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX2FjdGlvbnNcIj5cbiAgICAgIDxuZy1taWFtLWxpa2UtYnV0dG9uICpuZ0lmPVwidXNlclNlcnZpY2UuaXNMb2dnZWQkIHwgYXN5bmNcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX2ljb24gbWlhbS1ub1BhZGRpbmdcIiBbcmVjaXBlXT0ncmVjaXBlJz48L25nLW1pYW0tbGlrZS1idXR0b24+XG4gICAgICA8bmctbWlhbS1pY29uIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYWN0aW9uc19faWNvblwiIChjbGljayk9J29wZW5DYWxlbmRhcigkZXZlbnQpJ1xuICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbi5DYWxlbmRhclwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1wcmltYXJ5KSc+PC9uZy1taWFtLWljb24+XG4gICAgICA8bmctbWlhbS1pY29uIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYWN0aW9uc19faWNvblwiIChjbGljayk9J3NoYXJlUmVjaXBlKCRldmVudCknXG4gICAgICAgIFtpY29uTmFtZV09XCJpY29uLlNoYXJlXCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJz48L25nLW1pYW0taWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFNwb25zb3IgbG9nbyAtLT5cbiAgICA8aW1nICpuZ0lmPVwicmVjaXBlLmZpbGlncmFuZUxvZ29VcmxcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX3Nwb25zb3JcIiBbc3JjXT1yZWNpcGUuZmlsaWdyYW5lTG9nb1VybD5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjcGljdFNrZWxldG9uPlxuICAgIDxuZy1taWFtLXNrZWxldG9uIFt0eXBlXT0nc2tlbGV0b24uUGljdHVyZSc+PC9uZy1taWFtLXNrZWxldG9uPlxuICA8L25nLXRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUgZWxzZSB0ZXh0U2tlbGV0b25cIj5cbiAgICAgIDwhLS0gVGl0bGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc19fdGl0bGVcIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgICAgIHt7cmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBJbmdyZWRpZW50cyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmdyZWRpZW50c1wiPnt7aW5ncmVkaWVudHNDb25jYXROYW1lIHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3RleHRTa2VsZXRvbj5cbiAgICAgIDxuZy1taWFtLXNrZWxldG9uIFt0eXBlXT0nc2tlbGV0b24uVGV4dCc+PC9uZy1taWFtLXNrZWxldG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2luZm9zXCI+XG4gICAgICA8IS0tIFRvdGFsIHRpbWUgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGUgZWxzZSBza2VsZXRvbkluZm8nIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc19faW5mbyAgXCI+XG4gICAgICAgIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uVGltZVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9fX2xhYmVsXCI+e3sgcmVjaXBlPy50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gRGlmZmljdWx0eSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9J3JlY2lwZSBlbHNlIHNrZWxldG9uSW5mbycgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmZvXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlY2lwZT8uZGlmZmljdWx0eUxhYmVsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZhY2lsZSdcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjMyXCIgW2hlaWdodF09XCIxNlwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1zZWNvbmRhcnkpJ1xuICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbi5EaWZmaWN1bHR5TG93XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21veWVuJ1wiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMzJcIiBbaGVpZ2h0XT1cIjE2XCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXNlY29uZGFyeSknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlNZWRpdW1cIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGlmZmljaWxlJ1wiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMzJcIiBbaGVpZ2h0XT1cIjE2XCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXNlY29uZGFyeSknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlIaWdodFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIj57e3JlY2lwZT8uZGlmZmljdWx0eUxhYmVsfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25JbmZvPlxuICAgICAgICA8bmctbWlhbS1za2VsZXRvbiBbdHlwZV09J3NrZWxldG9uPy5JY29uV2l0aEluZm8nPjwvbmctbWlhbS1za2VsZXRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2NvbnRyb2xcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250cm9sX19sZWZ0X19jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2xlZnRfX2NvbF9fY3VzdG9tXCI+XG4gICAgICAgICAgPCEtLSBIZWxwZXIgLS0+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwidG9nZ2xlSGVscGVyKClcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2hlbHBcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1wcmltYXJ5KSdcbiAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkhlbHBcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIEluZ3JlZGllbnQgcGljdHVyZXMgLS0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5kaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkcyAmJiByZWNpcGU/Lm1vZGlmaWVkSW5ncmVkaWVudHM/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZXNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZVwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW5ncmVkaWVudFBpY3R1cmUocmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHNbMF0pXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZVwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW5ncmVkaWVudFBpY3R1cmUocmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHNbMV0pXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fbW9yZVwiICpuZ0lmPVwicmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID4gMlwiPlxuICAgICAgICAgICAgICArIHt7cmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMn19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ291bnRlciBpbnB1dCAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj0ncmVjaXBlIGVsc2Ugc2tlbGV0b25jb3VudGVyJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2xlZnRfX2NvbF9fY291bnRlclwiPlxuICAgICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXQgW2NvdW50ZXJdPVwicmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCIgKGNvdW50ZXJDaGFuZ2UpPVwidXBkYXRlR3Vlc3RzKCRldmVudClcIj48L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25jb3VudGVyPlxuICAgICAgICAgIDxuZy1taWFtLXNrZWxldG9uIFt0eXBlXT0nc2tlbGV0b24/Lkljb25XaXRoSW5mbyc+PC9uZy1taWFtLXNrZWxldG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY29udHJvbF9fcmlnaHRfX2NvbFwiPlxuICAgICAgICA8IS0tIFByaWNlIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmlnaHRfX2NvbF9fcHJpY2VcIj5cbiAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZyBbcmVjaXBlXT1cInJlY2lwZVwiIFtzZXJ2ZXNdPVwicmVjaXBlPy5tb2RpZmllZEd1ZXN0c1wiPjwvbmctbWlhbS1yZWNpcGUtcHJpY2luZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQWRkIHRvIGJhc2tldCAtLT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09JyFyZWNpcGUnIChjbGljayk9XCJjbGlja1ByaW1hcnkoKVwiICBjbGFzcz1cIm0tYnV0dG9uLWZhYi1wcmltYXJ5XCI+XG4gICAgICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBwcmltYXJ5Q29sb3I9JyNmZmYnIFtpY29uTmFtZV09XCIoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLmxpc3QkIHwgYXN5bmMpPy5oYXNSZWNpcGUocmVjaXBlPy5pZCkgPyBpY29uLkNoZWNrTGlzdCAgOmljb24uQ2FydFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNjb3JzPlxuICA8bmctbWlhbS1jb3JzLW92ZXJsYXk+PC9uZy1taWFtLWNvcnMtb3ZlcmxheT5cbjwvbmctdGVtcGxhdGU+Il19
457
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZC9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0lDUHRCLCtCQUFpSDtJQUFBLDJDQUFhO0lBQUEsaUJBQU07OztJQUVwSSwrQkFDRTtJQUFBLG1DQUF3SDtJQUMxSCxpQkFBTTs7O0lBRFUsZUFBdUI7SUFBdkIsNkNBQXVCLGNBQUEsZUFBQTs7O0lBSXJDLDBDQUEwSjs7O0lBQXhDLHVD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QUNYLG1CQUFtQix3QkFDbkIsY0FBYzt3REFsQmIsbUJBQW1CO1FDckNoQyxzRUFDRTtRQTBIRixxSEFDRTs7UUE1SEcsbUNBQWdCOztrRERxQ1IsbUJBQW1CO2NBUi9CLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixXQUFXLEVBQUUsOEJBQThCO2dCQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztnQkFDM0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOztzQkFjSSxNQUFNO3VCQUFDLGlCQUFpQjs7c0JBQ3hCLE1BQU07dUJBQUMsY0FBYzs7c0JBQ3JCLE1BQU07dUJBQUMsbUJBQW1COztzQkFDMUIsTUFBTTt1QkFBQyxxQkFBcUI7O3NCQUM1QixNQUFNO3VCQUFDLFdBQVc7O3NCQUNsQixNQUFNO3VCQUFDLG1CQUFtQjs7c0JBQzFCLE1BQU07dUJBQUMsY0FBYztnRkFqQmYsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNJLG1CQUFtQjtrQkFBNUIsTUFBTTtZQUNHLFNBQVM7a0JBQWxCLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBJbmplY3QsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RSZWNpcGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2Fic3RyYWN0LXJlY2lwZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGVzU2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSwgUmVjaXBlRXZlbnRzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGlzIGlzIGFuIGFuZ3VsYXIgY29tcG9uZW50IGRlc2lnbiB0byBiZSBhIHdlYiBjb21wb25lbnRcbiAqIHRoYXQncyB3aHkgd2UgdXNlIG9uUHVzaFN0cmF0ZWdpZSB3aXRoIHRoZSBjaGFuZ2VEZXRldGVjdG9yUmVmXG4gKiB0byBhdm9pZCBjb21tb24gaXNzdWVcbiAqIGd1aWRlIC0+IGh0dHBzOi8vbmV0YmFzYWwuY29tL2EtY29tcHJlaGVuc2l2ZS1ndWlkZS10by1hbmd1bGFyLW9ucHVzaC1jaGFuZ2UtZGV0ZWN0aW9uLXN0cmF0ZWd5LTViYWM0OTMwNzRhNFxuICogYW5kIGFsc293IHdlIHVzZSBTaGFkb3dEb20gdG8gcHJvdGVjdCBzdHlsZSBvZiBvdXIgY29tcG9uZW50XG4gKiBhbmQgYWxzb3cgc3R5bGUgb2YgdGhlIHBhcmVudCBhcGxpY2F0aW9uIHRoYXQgd2lsbCB1c2UgaXRcbiAqIGRvYyAtPiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0VuY2Fwc3VsYXRpb25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2FyZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UmVjaXBlQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBAT3V0cHV0KCkgcmVtb3ZlZEZyb21GYXZvcml0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBndWVzdHNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgaXNsb2FkZWQgPSBmYWxzZTtcbiAgY2FyZFR5cGUgPSAnc3VnZ2VzdGlvbi1jYXJkJztcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChSZWNpcGVzU2VydmljZSkgcmVjaXBlU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgQEluamVjdChSZWNpcGVFdmVudHNTZXJ2aWNlKSByZWNpcGVFdmVudHNTZXJ2aWNlOiBSZWNpcGVFdmVudHNTZXJ2aWNlLFxuICAgIEBJbmplY3QoR3JvY2VyaWVzTGlzdHNTZXJ2aWNlKSBncm9jZXJpZXNMaXN0c1NlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBASW5qZWN0KFVzZXJTZXJ2aWNlKSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgQEluamVjdChQb2ludE9mU2FsZXNTZXJ2aWNlKSBwb2ludE9mU2FsZXNTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIEBJbmplY3QoQ29udGV4dFNlcnZpY2UpIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZlxuICAgICkge1xuICAgIHN1cGVyKGNkciwgcmVjaXBlU2VydmljZSwgcmVjaXBlRXZlbnRzU2VydmljZSwgZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCB1c2VyU2VydmljZSwgcG9pbnRPZlNhbGVzU2VydmljZSwgY29udGV4dFNlcnZpY2UsXG4gICAgICBhbmFseXRpY3NTZXJ2aWNlLCBlbGVtZW50KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5ZWRSZWNpcGVDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgdGhpcy5yZWNpcGVXYXNMb2FkZWQoKTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5yZWNpcGVJZCkge1xuICAgICAgdGhpcy5sb2FkUmVjaXBlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVjaXBlV2FzTG9hZGVkKCkge1xuICAgIHRoaXMuaW5pdEluZ3JlZGllbnRzU3RyaW5nKCk7XG4gICAgdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMgfHw9ICt0aGlzLnJlY2lwZS5ndWVzdHM7XG4gICAgdGhpcy5pc2xvYWRlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmVtb3ZlRnJvbUZhdm9yaXRlKCkge1xuICAgIHRoaXMucmVtb3ZlZEZyb21GYXZvcml0ZS5lbWl0KHRoaXMucmVjaXBlKTtcbiAgfVxuXG4gIG9wZW5SZWNpcGUoKSB7XG4gICAgY29uc3QgdmlkZW9FdmVudCA9IHRoaXMuY29udGV4dFNlcnZpY2UudmlkZW9SZWNpcGVzRW5hYmxlZCAmJiB0aGlzLnJlY2lwZS52aWRlb0lkO1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoJ2Rpc3BsYXktcmVjaXBlJywgdmlkZW9FdmVudCA/IGAke3RoaXMuY2FyZFR5cGV9L3ZpZGVvYCA6IHRoaXMuY2FyZFR5cGUpO1xuICAgIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5T2JqZWN0KHRoaXMucmVjaXBlLCB7IGd1ZXN0cyA6IHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzIH0pO1xuICAgIHRoaXMuZGlzcGxheWVkLmVtaXQoKTtcbiAgfVxuXG4gIHVwZGF0ZUd1ZXN0cyhjb3VudCkge1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gY291bnQ7XG4gICAgaWYgKHRoaXMucmVjaXBlSWQpIHsgdGhpcy5fdXBkYXRlQmFza2V0KCk7IH0gLy8gSWYgcmVjaXBlIHdhcyBsb2FkZWQgaGVyZSwgd2UgbmVlZCB0byBwcm9jZXNzIGJhc2tldCB1cGRhdGVzIGhlcmVcbiAgICB0aGlzLmd1ZXN0c0NoYW5nZWQuZW1pdChjb3VudCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgX3VwZGF0ZUJhc2tldCgpIHtcbiAgICAvLyBJZiByZWNpcGUgYWxyZWFkeSBpbiBiYXNrZXQsIHVwZGF0ZSB0aGUgbnVtYmVyIG9mIGd1ZXN0cyBzbyB0aGF0IHRoZSBwcmljaW5nIGdldHMgdXBkYXRlZCBhcyB3ZWxsXG4gICAgLy8gKGRpc3BsYXkgPSBmYWxzZSBzbyB0aGF0IHRoZSByZWNpcGUgZGV0YWlscyBkb24ndCBzaG93IHVwKVxuICAgIGlmICh0aGlzLmdyb2Nlcmllc0xpc3RzU2VydmljZS5saXN0JC52YWx1ZS5oYXNSZWNpcGUodGhpcy5yZWNpcGVJZCkpe1xuICAgICAgdGhpcy5hZGRSZWNpcGUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGNsaWNrUHJpbWFyeSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWRkQnV0dG9uTG9hZGluZykge1xuICAgICAgY29uc3Qgd2FzQWRkZWQgPSAhdGhpcy5ncm9jZXJpZXNMaXN0c1NlcnZpY2UubGlzdCQudmFsdWUuaGFzUmVjaXBlKHRoaXMucmVjaXBlLmlkKTtcbiAgICAgIHRoaXMuYWRkUmVjaXBlKCk7XG4gICAgICB0aGlzLnByaW1hcnlCdXR0b25DbGlja2VkJC5lbWl0KHdhc0FkZGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRSZWNpcGUoKSB7XG4gICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmdldCh0aGlzLnJlY2lwZUlkLFxuICAgICAgeyBpbmNsdWRlOiBbJ2luZ3JlZGllbnRzJywgJ3JlY2lwZS1zdGVwcycsICdyZWNpcGUtc3RhdHVzJywgJ3JlY2lwZS10eXBlJywgJ3Nwb25zb3JzJywgJ3RhZ3MnIF0gfVxuICAgICAgKS5waXBlKFxuICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgIGNhdGNoRXJyb3IoIGVyciA9PiB7XG4gICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICB9KSxcbiAgICApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy5yZWNpcGUgPSByZXN1bHQ7XG4gICAgICBpZiAodGhpcy5yZWNpcGUpIHtcbiAgICAgICAgdGhpcy5yZWNpcGVXYXNMb2FkZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj0naXNsb2FkZWQnIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZFwiPlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2hlYWRlclwiPlxuICAgIDxzcGFuPiB7e2hlYWRlclRleHR9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJyZWNpcGUgZWxzZSBwaWN0U2tlbGV0b25cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVcIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgPCEtLSBQaWN0dXJlIC0tPlxuICAgIDxpbWcgW3NyY109XCJyZWNpcGU/LmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXCIgbG9hZGluZz1cImxhenlcIj5cbiAgICA8IS0tIEdyYWRpZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlX19ncmFkaWVudFwiPjwvZGl2PlxuICAgIDwhLS0gRMOpasOgIGFqb3V0w6llIC0tPlxuICAgIDxkaXYgKm5nSWY9XCIoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLmxpc3QkIHwgYXN5bmMpPy5oYXNSZWNpcGUocmVjaXBlPy5pZClcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX3RhZ1wiPkTDqWrDoCAgYWpvdXTDqWU8L2Rpdj5cbiAgICA8IS0tIFZpZGVvIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJjb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHJlY2lwZT8udmlkZW9JZFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fdmlkZW9cIj5cbiAgICAgIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uVmlkZW9cIiBbd2lkdGhdPVwiMTAwXCIgW2hlaWdodF09XCIxMDBcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItcHJpbWFyeSknPjwvbmctbWlhbS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gTGlrZSwgc2hhcmUgJiBjYWxlbmRhciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fYWN0aW9uc1wiPlxuICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b24gKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luY1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYWN0aW9uc19faWNvbiBtaWFtLW5vUGFkZGluZ1wiIFtyZWNpcGVdPSdyZWNpcGUnPjwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgIDxuZy1taWFtLWljb24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCIgKGNsaWNrKT0nb3BlbkNhbGVuZGFyKCRldmVudCknXG4gICAgICAgIFtpY29uTmFtZV09XCJpY29uLkNhbGVuZGFyXCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJz48L25nLW1pYW0taWNvbj5cbiAgICAgIDxuZy1taWFtLWljb24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCIgKGNsaWNrKT0nc2hhcmVSZWNpcGUoJGV2ZW50KSdcbiAgICAgICAgW2ljb25OYW1lXT1cImljb24uU2hhcmVcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItcHJpbWFyeSknPjwvbmctbWlhbS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gU3BvbnNvciBsb2dvIC0tPlxuICAgIDxpbWcgKm5nSWY9XCJyZWNpcGUuZmlsaWdyYW5lTG9nb1VybFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fc3BvbnNvclwiIFtzcmNdPXJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNwaWN0U2tlbGV0b24+XG4gICAgPG5nLW1pYW0tc2tlbGV0b24gW3R5cGVdPSdza2VsZXRvbi5QaWN0dXJlJz48L25nLW1pYW0tc2tlbGV0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzXCI+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZSBlbHNlIHRleHRTa2VsZXRvblwiPlxuICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX190aXRsZVwiIChjbGljayk9XCJvcGVuUmVjaXBlKClcIj5cbiAgICAgICAge3tyZWNpcGU/LmF0dHJpYnV0ZXNbJ3RpdGxlJ119fVxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIEluZ3JlZGllbnRzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2luZ3JlZGllbnRzXCI+e3tpbmdyZWRpZW50c0NvbmNhdE5hbWUgfCBjYXBpdGFsaXplRmlyc3RMZXR0ZXJ9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dFNrZWxldG9uPlxuICAgICAgPG5nLW1pYW0tc2tlbGV0b24gW3R5cGVdPSdza2VsZXRvbi5UZXh0Jz48L25nLW1pYW0tc2tlbGV0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc19faW5mb3NcIj5cbiAgICAgIDwhLS0gVG90YWwgdGltZSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9J3JlY2lwZSBlbHNlIHNrZWxldG9uSW5mbycgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmZvICBcIj5cbiAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5UaW1lXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIj57eyByZWNpcGU/LnRvdGFsVGltZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBEaWZmaWN1bHR5IC0tPlxuICAgICAgPGRpdiAqbmdJZj0ncmVjaXBlIGVsc2Ugc2tlbGV0b25JbmZvJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2luZm9cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicmVjaXBlPy5kaWZmaWN1bHR5TGFiZWxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmFjaWxlJ1wiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMzJcIiBbaGVpZ2h0XT1cIjE2XCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXNlY29uZGFyeSknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlMb3dcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbW95ZW4nXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCIzMlwiIFtoZWlnaHRdPVwiMTZcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3Itc2Vjb25kYXJ5KSdcbiAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImljb24uRGlmZmljdWx0eU1lZGl1bVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkaWZmaWNpbGUnXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1pY29uIFt3aWR0aF09XCIzMlwiIFtoZWlnaHRdPVwiMTZcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3Itc2Vjb25kYXJ5KSdcbiAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImljb24uRGlmZmljdWx0eUhpZ2h0XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmZvX19sYWJlbFwiPnt7cmVjaXBlPy5kaWZmaWN1bHR5TGFiZWx9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbkluZm8+XG4gICAgICAgIDxuZy1taWFtLXNrZWxldG9uIFt0eXBlXT0nc2tlbGV0b24/Lkljb25XaXRoSW5mbyc+PC9uZy1taWFtLXNrZWxldG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc19fY29udHJvbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRyb2xfX2xlZnRfX2NvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fbGVmdF9fY29sX19jdXN0b21cIj5cbiAgICAgICAgICA8IS0tIEhlbHBlciAtLT5cbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJ0b2dnbGVIZWxwZXIoKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faGVscFwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMjRcIiBbaGVpZ2h0XT1cIjI0XCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJ1xuICAgICAgICAgICAgW2ljb25OYW1lXT1cImljb24uSGVscFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gSW5ncmVkaWVudCBwaWN0dXJlcyAtLT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLmRpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzICYmIHJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50cz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1swXSlcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1sxXSlcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19tb3JlXCIgKm5nSWY9XCJyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggPiAyXCI+XG4gICAgICAgICAgICAgICsge3tyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggLSAyfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBDb3VudGVyIGlucHV0IC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGUgZWxzZSBza2VsZXRvbmNvdW50ZXInIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fbGVmdF9fY29sX19jb3VudGVyXCI+XG4gICAgICAgICAgPG5nLW1pYW0tY291bnRlci1pbnB1dCBbY291bnRlcl09XCJyZWNpcGUubW9kaWZpZWRHdWVzdHNcIiAoY291bnRlckNoYW5nZSk9XCJ1cGRhdGVHdWVzdHMoJGV2ZW50KVwiPjwvbmctbWlhbS1jb3VudGVyLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbmNvdW50ZXI+XG4gICAgICAgICAgPG5nLW1pYW0tc2tlbGV0b24gW3R5cGVdPSdza2VsZXRvbj8uSWNvbldpdGhJbmZvJz48L25nLW1pYW0tc2tlbGV0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250cm9sX19yaWdodF9fY29sXCI+XG4gICAgICAgIDwhLS0gUHJpY2UgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yaWdodF9fY29sX19wcmljZVwiPlxuICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcmljaW5nIFtyZWNpcGVdPVwicmVjaXBlXCIgW3NlcnZlc109XCJyZWNpcGU/Lm1vZGlmaWVkR3Vlc3RzXCI+PC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBBZGQgdG8gYmFza2V0IC0tPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT0nIXJlY2lwZScgKGNsaWNrKT1cImNsaWNrUHJpbWFyeSgpXCIgIGNsYXNzPVwibS1idXR0b24tZmFiLXByaW1hcnlcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gKm5nSWY9XCIhYWRkQnV0dG9uTG9hZGluZyBlbHNlIGFkZExvYWRlclwiIFt3aWR0aF09XCIyNFwiIFtoZWlnaHRdPVwiMjRcIiBwcmltYXJ5Q29sb3I9JyNmZmYnXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCIoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLmxpc3QkIHwgYXN5bmMpPy5oYXNSZWNpcGUocmVjaXBlPy5pZCkgPyBpY29uLkNoZWNrTGlzdCAgOmljb24uQ2FydFwiPlxuICAgICAgICAgICAgPC9uZy1taWFtLWljb24+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2FkZExvYWRlcj5cbiAgICAgICAgICAgICAgPG5nLW1pYW0tbG9hZGVyPjwvbmctbWlhbS1sb2FkZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNjb3JzPlxuICA8bmctbWlhbS1jb3JzLW92ZXJsYXk+PC9uZy1taWFtLWNvcnMtb3ZlcmxheT5cbjwvbmctdGVtcGxhdGU+Il19