ng-miam 9.2.0 → 9.2.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.
- package/bundles/ng-miam.umd.js +927 -634
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +1 -1
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_components/accordion/accordion.component.js +2 -2
- package/esm2015/lib/_components/addon-link/addon-link.component.js +3 -3
- package/esm2015/lib/_components/counter-input/counter-input.component.js +14 -12
- package/esm2015/lib/_components/guests-dropdown/guests-dropdown.component.js +8 -5
- package/esm2015/lib/_components/icon/icon.component.js +2 -2
- package/esm2015/lib/_components/like-button/like-button.component.js +6 -5
- package/esm2015/lib/_components/modal/modal.component.js +39 -36
- package/esm2015/lib/_components/no-pos-selected/no-pos-selected.component.js +2 -2
- package/esm2015/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.js +15 -6
- package/esm2015/lib/_components/product-card/product-card-skeleton/product-card-skeleton.component.js +1 -1
- package/esm2015/lib/_components/product-card/product-card.component.js +25 -7
- package/esm2015/lib/_components/products-picker/products-picker.component.js +2 -2
- package/esm2015/lib/_components/recipe-promotion-badge/recipe-promotion-badge.component.js +2 -2
- package/esm2015/lib/_components/sponsor-blocks/sponsor-image-and-text-block/sponsor-image-and-text-block.component.js +4 -4
- package/esm2015/lib/_components/sponsor-blocks/sponsor-logo-block/sponsor-logo-block.component.js +4 -4
- package/esm2015/lib/_components/sponsor-blocks/sponsor-picture-block/sponsor-picture-block.component.js +3 -3
- package/esm2015/lib/_components/sponsor-blocks/sponsor-small-picture-block/sponsor-small-picture-block.component.js +3 -3
- package/esm2015/lib/_components/sponsor-blocks/sponsor-text-and-image-block/sponsor-text-and-image-block.component.js +4 -4
- package/esm2015/lib/_models/basket-actions/basket-action.js +2 -2
- package/esm2015/lib/_services/basket-recipe-cleanup.service.js +62 -0
- package/esm2015/lib/_services/basket-transfer.service.js +3 -2
- package/esm2015/lib/_services/baskets-synchronizing/baskets-synchronizer.service.js +9 -3
- package/esm2015/lib/_services/context.service.js +17 -13
- package/esm2015/lib/_services/interceptor.service.js +10 -3
- package/esm2015/lib/_services/recipe-details.service.js +22 -7
- package/esm2015/lib/_services/recipes.service.js +5 -5
- package/esm2015/lib/_services/store-locator.service.js +10 -3
- package/esm2015/lib/_services/store-out-of-stock.service.js +57 -0
- package/esm2015/lib/_services/user.service.js +3 -3
- package/esm2015/lib/_types/builded/mealz-interface.js +1 -1
- package/esm2015/lib/_web-components/basket-preview/basket-preview-block/basket-preview-block.component.js +3 -2
- package/esm2015/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.js +130 -122
- package/esm2015/lib/_web-components/basket-preview/basket-preview-product/basket-preview-product.component.js +44 -34
- package/esm2015/lib/_web-components/basket-preview/replace-item/replace-item.component.js +14 -7
- package/esm2015/lib/_web-components/list-scan/files-inputs/files-inputs.component.js +2 -2
- package/esm2015/lib/_web-components/meals-planner/meals-planner-form/meals-planner-form.component.js +13 -13
- package/esm2015/lib/_web-components/no-supplier-onboarding/no-supplier-onboarding.component.js +8 -12
- package/esm2015/lib/_web-components/preferences/preferences-search/preferences-search.component.js +2 -2
- package/esm2015/lib/_web-components/preferences/preferences.component.js +28 -28
- package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +118 -97
- package/esm2015/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.js +21 -14
- package/esm2015/lib/_web-components/recipe-catalog/catalog-article-card/catalog-article-card.component.js +9 -8
- package/esm2015/lib/_web-components/recipe-catalog/catalog-category/catalog-category.component.js +10 -8
- package/esm2015/lib/_web-components/recipe-catalog/catalog-header/catalog-header.component.js +3 -3
- package/esm2015/lib/_web-components/recipe-catalog/catalog-toolbar/catalog-toolbar.component.js +14 -10
- package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +42 -37
- package/esm2015/lib/_web-components/recipe-details/last-order-modal/last-order-modal.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-details/recipe-addon/recipe-addon.component.js +4 -3
- package/esm2015/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.js +16 -13
- package/esm2015/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.js +4 -3
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +98 -103
- package/esm2015/lib/_web-components/recipe-details/store-locator-link/store-locator-link.component.js +8 -7
- package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +7 -2
- package/esm2015/lib/environments/environment.js +2 -2
- package/esm2015/lib/environments/environment.prod.js +2 -2
- package/esm2015/lib/environments/version.js +2 -2
- package/esm2015/lib/ng-miam.module.js +4 -1
- package/fesm2015/ng-miam.js +882 -627
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_components/components.module.d.ts +2 -1
- package/lib/_components/components.module.d.ts.map +1 -1
- package/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.d.ts +7 -3
- package/lib/_components/product-card/out-of-stock-overlay/out-of-stock-overlay.component.d.ts.map +1 -1
- package/lib/_components/product-card/product-card.component.d.ts +2 -0
- package/lib/_components/product-card/product-card.component.d.ts.map +1 -1
- package/lib/_models/basket-actions/basket-action.d.ts.map +1 -1
- package/lib/_services/basket-recipe-cleanup.service.d.ts +21 -0
- package/lib/_services/basket-recipe-cleanup.service.d.ts.map +1 -0
- package/lib/_services/basket-transfer.service.d.ts.map +1 -1
- package/lib/_services/baskets-synchronizing/baskets-synchronizer.service.d.ts +1 -1
- package/lib/_services/baskets-synchronizing/baskets-synchronizer.service.d.ts.map +1 -1
- package/lib/_services/context.service.d.ts +3 -1
- package/lib/_services/context.service.d.ts.map +1 -1
- package/lib/_services/interceptor.service.d.ts +1 -0
- package/lib/_services/interceptor.service.d.ts.map +1 -1
- package/lib/_services/recipe-details.service.d.ts +8 -2
- package/lib/_services/recipe-details.service.d.ts.map +1 -1
- package/lib/_services/recipes.service.d.ts +2 -6
- package/lib/_services/recipes.service.d.ts.map +1 -1
- package/lib/_services/store-locator.service.d.ts +1 -0
- package/lib/_services/store-locator.service.d.ts.map +1 -1
- package/lib/_services/store-out-of-stock.service.d.ts +13 -0
- package/lib/_services/store-out-of-stock.service.d.ts.map +1 -0
- package/lib/_services/user.service.d.ts +2 -2
- package/lib/_services/user.service.d.ts.map +1 -1
- package/lib/_types/builded/mealz-interface.d.ts +4 -0
- package/lib/_types/builded/mealz-interface.d.ts.map +1 -1
- package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts +1 -0
- package/lib/_web-components/basket-preview/replace-item/replace-item.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.d.ts +1 -0
- package/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.d.ts +1 -1
- package/lib/_web-components/recipe-cards/recipe-card-cta/recipe-card-cta.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-details/recipe-details.component.d.ts +1 -1
- package/lib/_web-components/recipe-details/recipe-details.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-modal/recipe-modal.component.d.ts.map +1 -1
- package/lib/environments/version.d.ts +1 -1
- package/lib/ng-miam.module.d.ts.map +1 -1
- package/miam-style.css +1 -1
- package/package.json +1 -1
|
@@ -34,29 +34,30 @@ function RecipeDetailsComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
34
34
|
i0.ɵɵelement(0, "div", 7);
|
|
35
35
|
} }
|
|
36
36
|
function RecipeDetailsComponent_div_0_div_2_ng_miam_like_button_10_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
-
i0.ɵɵelement(0, "ng-miam-like-button",
|
|
37
|
+
i0.ɵɵelement(0, "ng-miam-like-button", 39);
|
|
38
38
|
} if (rf & 2) {
|
|
39
39
|
const ctx_r7 = i0.ɵɵnextContext(3);
|
|
40
40
|
i0.ɵɵproperty("recipe", ctx_r7.recipeDetailsService.recipe)("originTrace", ctx_r7.eventTrace);
|
|
41
41
|
} }
|
|
42
42
|
function RecipeDetailsComponent_div_0_div_2_img_13_Template(rf, ctx) { if (rf & 1) {
|
|
43
43
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
44
|
-
i0.ɵɵelementStart(0, "img",
|
|
44
|
+
i0.ɵɵelementStart(0, "img", 40);
|
|
45
45
|
i0.ɵɵlistener("error", function RecipeDetailsComponent_div_0_div_2_img_13_Template_img_error_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(3); return ($event.target["src"] = ctx_r19.contextService.defaultRecipePicture); });
|
|
46
46
|
i0.ɵɵelementEnd();
|
|
47
47
|
} if (rf & 2) {
|
|
48
48
|
const ctx_r8 = i0.ɵɵnextContext(3);
|
|
49
49
|
i0.ɵɵproperty("src", ctx_r8.recipeDetailsService.recipe == null ? null : ctx_r8.recipeDetailsService.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
|
|
50
|
+
i0.ɵɵattribute("alt", "Photo de la recette " + (ctx_r8.recipeDetailsService.recipe == null ? null : ctx_r8.recipeDetailsService.recipe.attributes["title"]));
|
|
50
51
|
} }
|
|
51
52
|
function RecipeDetailsComponent_div_0_div_2_youtube_player_14_Template(rf, ctx) { if (rf & 1) {
|
|
52
|
-
i0.ɵɵelement(0, "youtube-player",
|
|
53
|
+
i0.ɵɵelement(0, "youtube-player", 41);
|
|
53
54
|
} if (rf & 2) {
|
|
54
55
|
const ctx_r9 = i0.ɵɵnextContext(3);
|
|
55
56
|
i0.ɵɵproperty("videoId", ctx_r9.recipeDetailsService.recipe.videoId)("width", ctx_r9.playerWidth)("height", ctx_r9.playerHeight)("playerVars", ctx_r9.playerVars);
|
|
56
57
|
} }
|
|
57
58
|
function RecipeDetailsComponent_div_0_div_2_div_15_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
-
i0.ɵɵelementStart(0, "div",
|
|
59
|
-
i0.ɵɵelement(1, "img",
|
|
59
|
+
i0.ɵɵelementStart(0, "div", 42);
|
|
60
|
+
i0.ɵɵelement(1, "img", 43);
|
|
60
61
|
i0.ɵɵelementEnd();
|
|
61
62
|
} if (rf & 2) {
|
|
62
63
|
const ctx_r10 = i0.ɵɵnextContext(3);
|
|
@@ -65,7 +66,7 @@ function RecipeDetailsComponent_div_0_div_2_div_15_Template(rf, ctx) { if (rf &
|
|
|
65
66
|
} }
|
|
66
67
|
function RecipeDetailsComponent_div_0_div_2_ng_miam_addon_link_17_Template(rf, ctx) { if (rf & 1) {
|
|
67
68
|
const _r22 = i0.ɵɵgetCurrentView();
|
|
68
|
-
i0.ɵɵelementStart(0, "ng-miam-addon-link",
|
|
69
|
+
i0.ɵɵelementStart(0, "ng-miam-addon-link", 44);
|
|
69
70
|
i0.ɵɵlistener("showAddon", function RecipeDetailsComponent_div_0_div_2_ng_miam_addon_link_17_Template_ng_miam_addon_link_showAddon_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(3); return ctx_r21.toggleAddon(); });
|
|
70
71
|
i0.ɵɵelementEnd();
|
|
71
72
|
} if (rf & 2) {
|
|
@@ -74,14 +75,14 @@ function RecipeDetailsComponent_div_0_div_2_ng_miam_addon_link_17_Template(rf, c
|
|
|
74
75
|
} }
|
|
75
76
|
function RecipeDetailsComponent_div_0_div_2_div_19_Template(rf, ctx) { if (rf & 1) {
|
|
76
77
|
const _r24 = i0.ɵɵgetCurrentView();
|
|
77
|
-
i0.ɵɵelementStart(0, "div",
|
|
78
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
78
79
|
i0.ɵɵpipe(1, "async");
|
|
79
|
-
i0.ɵɵelementStart(2, "button",
|
|
80
|
+
i0.ɵɵelementStart(2, "button", 46);
|
|
80
81
|
i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_2_div_19_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(3); return ctx_r23.toggleLastOrderModal(); });
|
|
81
|
-
i0.ɵɵelement(3, "img",
|
|
82
|
-
i0.ɵɵelementStart(4, "div",
|
|
82
|
+
i0.ɵɵelement(3, "img", 47);
|
|
83
|
+
i0.ɵɵelementStart(4, "div", 48);
|
|
83
84
|
i0.ɵɵelementStart(5, "span");
|
|
84
|
-
i0.ɵɵi18n(6,
|
|
85
|
+
i0.ɵɵi18n(6, 49);
|
|
85
86
|
i0.ɵɵelementEnd();
|
|
86
87
|
i0.ɵɵelementStart(7, "span");
|
|
87
88
|
i0.ɵɵtext(8);
|
|
@@ -96,7 +97,7 @@ function RecipeDetailsComponent_div_0_div_2_div_19_Template(rf, ctx) { if (rf &
|
|
|
96
97
|
i0.ɵɵtextInterpolate(ctx_r12.recipeDetailsService.orderHistoryDate);
|
|
97
98
|
} }
|
|
98
99
|
function RecipeDetailsComponent_div_0_div_2_ng_miam_like_button_28_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
-
i0.ɵɵelement(0, "ng-miam-like-button",
|
|
100
|
+
i0.ɵɵelement(0, "ng-miam-like-button", 39);
|
|
100
101
|
} if (rf & 2) {
|
|
101
102
|
const ctx_r13 = i0.ɵɵnextContext(3);
|
|
102
103
|
i0.ɵɵproperty("recipe", ctx_r13.recipeDetailsService.recipe)("originTrace", ctx_r13.eventTrace);
|
|
@@ -108,9 +109,9 @@ const _c5 = function (a0) { return { "hidden": a0 }; };
|
|
|
108
109
|
function RecipeDetailsComponent_div_0_div_2_ng_container_33_Template(rf, ctx) { if (rf & 1) {
|
|
109
110
|
const _r26 = i0.ɵɵgetCurrentView();
|
|
110
111
|
i0.ɵɵelementContainerStart(0);
|
|
111
|
-
i0.ɵɵelement(1, "ng-miam-recipe-details-infos",
|
|
112
|
-
i0.ɵɵelementStart(2, "div",
|
|
113
|
-
i0.ɵɵelementStart(3, "ng-miam-slider-tabs",
|
|
112
|
+
i0.ɵɵelement(1, "ng-miam-recipe-details-infos", 50);
|
|
113
|
+
i0.ɵɵelementStart(2, "div", 51);
|
|
114
|
+
i0.ɵɵelementStart(3, "ng-miam-slider-tabs", 52);
|
|
114
115
|
i0.ɵɵlistener("selectedTabIndexChange", function RecipeDetailsComponent_div_0_div_2_ng_container_33_Template_ng_miam_slider_tabs_selectedTabIndexChange_3_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(3); return ctx_r25.selectTab($event); });
|
|
115
116
|
i0.ɵɵelementEnd();
|
|
116
117
|
i0.ɵɵelementEnd();
|
|
@@ -126,7 +127,7 @@ function RecipeDetailsComponent_div_0_div_2_ng_container_33_Template(rf, ctx) {
|
|
|
126
127
|
} }
|
|
127
128
|
function RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_products_picker_1_Template(rf, ctx) { if (rf & 1) {
|
|
128
129
|
const _r30 = i0.ɵɵgetCurrentView();
|
|
129
|
-
i0.ɵɵelementStart(0, "ng-miam-products-picker",
|
|
130
|
+
i0.ɵɵelementStart(0, "ng-miam-products-picker", 55);
|
|
130
131
|
i0.ɵɵlistener("closeModal", function RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_products_picker_1_Template_ng_miam_products_picker_closeModal_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(4); return ctx_r29.close(); })("guestsChange", function RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_products_picker_1_Template_ng_miam_products_picker_guestsChange_0_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r31 = i0.ɵɵnextContext(4); return ctx_r31.updateGuests($event); });
|
|
131
132
|
i0.ɵɵelementEnd();
|
|
132
133
|
} if (rf & 2) {
|
|
@@ -135,7 +136,7 @@ function RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_products_pic
|
|
|
135
136
|
} }
|
|
136
137
|
function RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_no_pos_selected_2_Template(rf, ctx) { if (rf & 1) {
|
|
137
138
|
const _r33 = i0.ɵɵgetCurrentView();
|
|
138
|
-
i0.ɵɵelementStart(0, "ng-miam-no-pos-selected",
|
|
139
|
+
i0.ɵɵelementStart(0, "ng-miam-no-pos-selected", 56);
|
|
139
140
|
i0.ɵɵlistener("posSelected", function RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_no_pos_selected_2_Template_ng_miam_no_pos_selected_posSelected_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(4); return ctx_r32.checkPos(); });
|
|
140
141
|
i0.ɵɵelementEnd();
|
|
141
142
|
} if (rf & 2) {
|
|
@@ -144,8 +145,8 @@ function RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_no_pos_selec
|
|
|
144
145
|
} }
|
|
145
146
|
function RecipeDetailsComponent_div_0_div_2_ng_container_34_Template(rf, ctx) { if (rf & 1) {
|
|
146
147
|
i0.ɵɵelementContainerStart(0);
|
|
147
|
-
i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_products_picker_1_Template, 1, 1, "ng-miam-products-picker",
|
|
148
|
-
i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_no_pos_selected_2_Template, 1, 1, "ng-miam-no-pos-selected",
|
|
148
|
+
i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_products_picker_1_Template, 1, 1, "ng-miam-products-picker", 53);
|
|
149
|
+
i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_2_ng_container_34_ng_miam_no_pos_selected_2_Template, 1, 1, "ng-miam-no-pos-selected", 54);
|
|
149
150
|
i0.ɵɵelementContainerEnd();
|
|
150
151
|
} if (rf & 2) {
|
|
151
152
|
const ctx_r16 = i0.ɵɵnextContext(3);
|
|
@@ -155,31 +156,31 @@ function RecipeDetailsComponent_div_0_div_2_ng_container_34_Template(rf, ctx) {
|
|
|
155
156
|
i0.ɵɵproperty("ngIf", ctx_r16.recipeDetailsService.noPosDisplay || ctx_r16.recipeDetailsService.invalidPosDisplay);
|
|
156
157
|
} }
|
|
157
158
|
function RecipeDetailsComponent_div_0_div_2_div_35_div_3_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
-
i0.ɵɵelement(0, "div",
|
|
159
|
+
i0.ɵɵelement(0, "div", 71);
|
|
159
160
|
} }
|
|
160
161
|
function RecipeDetailsComponent_div_0_div_2_div_35_div_3_ng_template_11_Template(rf, ctx) { if (rf & 1) {
|
|
161
|
-
i0.ɵɵelement(0, "img",
|
|
162
|
+
i0.ɵɵelement(0, "img", 72);
|
|
162
163
|
} }
|
|
163
164
|
function RecipeDetailsComponent_div_0_div_2_div_35_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
164
165
|
const _r39 = i0.ɵɵgetCurrentView();
|
|
165
|
-
i0.ɵɵelementStart(0, "div",
|
|
166
|
-
i0.ɵɵelementStart(1, "div",
|
|
167
|
-
i0.ɵɵelementStart(2, "span",
|
|
168
|
-
i0.ɵɵi18n(3,
|
|
166
|
+
i0.ɵɵelementStart(0, "div", 61);
|
|
167
|
+
i0.ɵɵelementStart(1, "div", 62);
|
|
168
|
+
i0.ɵɵelementStart(2, "span", 63);
|
|
169
|
+
i0.ɵɵi18n(3, 64);
|
|
169
170
|
i0.ɵɵelementEnd();
|
|
170
|
-
i0.ɵɵelementStart(4, "span",
|
|
171
|
-
i0.ɵɵi18n(5,
|
|
171
|
+
i0.ɵɵelementStart(4, "span", 65);
|
|
172
|
+
i0.ɵɵi18n(5, 66);
|
|
172
173
|
i0.ɵɵelementEnd();
|
|
173
174
|
i0.ɵɵelementEnd();
|
|
174
|
-
i0.ɵɵelementStart(6, "button",
|
|
175
|
+
i0.ɵɵelementStart(6, "button", 67);
|
|
175
176
|
i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_2_div_35_div_3_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r39); const ctx_r38 = i0.ɵɵnextContext(4); return ctx_r38.orderAgain(ctx_r38.eventTrace); });
|
|
176
177
|
i0.ɵɵpipe(7, "async");
|
|
177
|
-
i0.ɵɵtemplate(8, RecipeDetailsComponent_div_0_div_2_div_35_div_3_div_8_Template, 1, 0, "div",
|
|
178
|
+
i0.ɵɵtemplate(8, RecipeDetailsComponent_div_0_div_2_div_35_div_3_div_8_Template, 1, 0, "div", 68);
|
|
178
179
|
i0.ɵɵpipe(9, "async");
|
|
179
180
|
i0.ɵɵpipe(10, "async");
|
|
180
|
-
i0.ɵɵtemplate(11, RecipeDetailsComponent_div_0_div_2_div_35_div_3_ng_template_11_Template, 1, 0, "ng-template", null,
|
|
181
|
+
i0.ɵɵtemplate(11, RecipeDetailsComponent_div_0_div_2_div_35_div_3_ng_template_11_Template, 1, 0, "ng-template", null, 69, i0.ɵɵtemplateRefExtractor);
|
|
181
182
|
i0.ɵɵelementStart(13, "span");
|
|
182
|
-
i0.ɵɵi18n(14,
|
|
183
|
+
i0.ɵɵi18n(14, 70);
|
|
183
184
|
i0.ɵɵelementEnd();
|
|
184
185
|
i0.ɵɵelementEnd();
|
|
185
186
|
i0.ɵɵelementEnd();
|
|
@@ -192,10 +193,10 @@ function RecipeDetailsComponent_div_0_div_2_div_35_div_3_Template(rf, ctx) { if
|
|
|
192
193
|
i0.ɵɵproperty("ngIf", ctx_r34.recipeDetailsService.ingredientToBasketLoading$.value || i0.ɵɵpipeBind1(9, 5, ctx_r34.recipeDetailsService.updateIngredientFromBasketLoading$) || i0.ɵɵpipeBind1(10, 7, ctx_r34.basketSynchroService.hasPendingActions()))("ngIfElse", _r36);
|
|
193
194
|
} }
|
|
194
195
|
function RecipeDetailsComponent_div_0_div_2_div_35_Template(rf, ctx) { if (rf & 1) {
|
|
195
|
-
i0.ɵɵelementStart(0, "div",
|
|
196
|
-
i0.ɵɵelement(1, "ng-miam-recipe-details-ingredients",
|
|
197
|
-
i0.ɵɵelement(2, "ng-miam-recipe-details-steps",
|
|
198
|
-
i0.ɵɵtemplate(3, RecipeDetailsComponent_div_0_div_2_div_35_div_3_Template, 15, 9, "div",
|
|
196
|
+
i0.ɵɵelementStart(0, "div", 57);
|
|
197
|
+
i0.ɵɵelement(1, "ng-miam-recipe-details-ingredients", 58);
|
|
198
|
+
i0.ɵɵelement(2, "ng-miam-recipe-details-steps", 59);
|
|
199
|
+
i0.ɵɵtemplate(3, RecipeDetailsComponent_div_0_div_2_div_35_div_3_Template, 15, 9, "div", 60);
|
|
199
200
|
i0.ɵɵelementEnd();
|
|
200
201
|
} if (rf & 2) {
|
|
201
202
|
const ctx_r17 = i0.ɵɵnextContext(3);
|
|
@@ -208,35 +209,35 @@ function RecipeDetailsComponent_div_0_div_2_div_35_Template(rf, ctx) { if (rf &
|
|
|
208
209
|
} }
|
|
209
210
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_span_7_Template(rf, ctx) { if (rf & 1) {
|
|
210
211
|
i0.ɵɵelementStart(0, "span");
|
|
211
|
-
i0.ɵɵi18n(1,
|
|
212
|
+
i0.ɵɵi18n(1, 84);
|
|
212
213
|
i0.ɵɵelementEnd();
|
|
213
214
|
} }
|
|
214
215
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_span_8_Template(rf, ctx) { if (rf & 1) {
|
|
215
216
|
i0.ɵɵelementStart(0, "span");
|
|
216
|
-
i0.ɵɵi18n(1,
|
|
217
|
+
i0.ɵɵi18n(1, 85);
|
|
217
218
|
i0.ɵɵelementEnd();
|
|
218
219
|
} }
|
|
219
220
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
220
221
|
const _r50 = i0.ɵɵgetCurrentView();
|
|
221
|
-
i0.ɵɵelementStart(0, "button",
|
|
222
|
+
i0.ɵɵelementStart(0, "button", 78);
|
|
222
223
|
i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r50); const ctx_r49 = i0.ɵɵnextContext(6); return ctx_r49.recipeDetailsService.addAllIngredientsToBasket(ctx_r49.eventTrace); });
|
|
223
|
-
i0.ɵɵelement(1, "img",
|
|
224
|
-
i0.ɵɵelementStart(2, "div",
|
|
224
|
+
i0.ɵɵelement(1, "img", 79);
|
|
225
|
+
i0.ɵɵelementStart(2, "div", 80);
|
|
225
226
|
i0.ɵɵelementStart(3, "span");
|
|
226
|
-
i0.ɵɵi18n(4,
|
|
227
|
+
i0.ɵɵi18n(4, 81);
|
|
227
228
|
i0.ɵɵelementEnd();
|
|
228
229
|
i0.ɵɵelementStart(5, "span");
|
|
229
230
|
i0.ɵɵtext(6);
|
|
230
231
|
i0.ɵɵelementEnd();
|
|
231
|
-
i0.ɵɵtemplate(7, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_span_7_Template, 2, 0, "span",
|
|
232
|
-
i0.ɵɵtemplate(8, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_span_8_Template, 2, 0, "span",
|
|
233
|
-
i0.ɵɵelementStart(9, "div",
|
|
232
|
+
i0.ɵɵtemplate(7, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_span_7_Template, 2, 0, "span", 36);
|
|
233
|
+
i0.ɵɵtemplate(8, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_span_8_Template, 2, 0, "span", 36);
|
|
234
|
+
i0.ɵɵelementStart(9, "div", 82);
|
|
234
235
|
i0.ɵɵtext(10, " ( ");
|
|
235
236
|
i0.ɵɵelementStart(11, "span");
|
|
236
237
|
i0.ɵɵtext(12);
|
|
237
238
|
i0.ɵɵpipe(13, "currency");
|
|
238
239
|
i0.ɵɵelementEnd();
|
|
239
|
-
i0.ɵɵelement(14, "div",
|
|
240
|
+
i0.ɵɵelement(14, "div", 83);
|
|
240
241
|
i0.ɵɵtext(15, " ) ");
|
|
241
242
|
i0.ɵɵelementEnd();
|
|
242
243
|
i0.ɵɵelementEnd();
|
|
@@ -257,14 +258,14 @@ function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1
|
|
|
257
258
|
i0.ɵɵclassProp("hidden", !ctx_r45.recipeDetailsService.ingredientToBasketLoading$.value);
|
|
258
259
|
} }
|
|
259
260
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_2_Template(rf, ctx) { if (rf & 1) {
|
|
260
|
-
i0.ɵɵelementStart(0, "button",
|
|
261
|
-
i0.ɵɵelement(1, "div",
|
|
261
|
+
i0.ɵɵelementStart(0, "button", 86);
|
|
262
|
+
i0.ɵɵelement(1, "div", 83);
|
|
262
263
|
i0.ɵɵelementEnd();
|
|
263
264
|
} }
|
|
264
265
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
265
266
|
i0.ɵɵelementContainerStart(0);
|
|
266
|
-
i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_Template, 16, 11, "button",
|
|
267
|
-
i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_2_Template, 2, 0, "button",
|
|
267
|
+
i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_1_Template, 16, 11, "button", 76);
|
|
268
|
+
i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_button_2_Template, 2, 0, "button", 77);
|
|
268
269
|
i0.ɵɵelementContainerEnd();
|
|
269
270
|
} if (rf & 2) {
|
|
270
271
|
const ctx_r43 = i0.ɵɵnextContext(5);
|
|
@@ -275,24 +276,24 @@ function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1
|
|
|
275
276
|
} }
|
|
276
277
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_button_4_Template(rf, ctx) { if (rf & 1) {
|
|
277
278
|
const _r53 = i0.ɵɵgetCurrentView();
|
|
278
|
-
i0.ɵɵelementStart(0, "button",
|
|
279
|
+
i0.ɵɵelementStart(0, "button", 91);
|
|
279
280
|
i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(6); return ctx_r52.close(true); });
|
|
280
|
-
i0.ɵɵelementStart(1, "span",
|
|
281
|
-
i0.ɵɵi18n(2,
|
|
281
|
+
i0.ɵɵelementStart(1, "span", 92);
|
|
282
|
+
i0.ɵɵi18n(2, 93);
|
|
282
283
|
i0.ɵɵelementEnd();
|
|
283
|
-
i0.ɵɵelement(3, "img",
|
|
284
|
+
i0.ɵɵelement(3, "img", 79);
|
|
284
285
|
i0.ɵɵelementEnd();
|
|
285
286
|
} }
|
|
286
287
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
287
288
|
const _r55 = i0.ɵɵgetCurrentView();
|
|
288
|
-
i0.ɵɵelementStart(0, "div",
|
|
289
|
-
i0.ɵɵelementStart(1, "button",
|
|
289
|
+
i0.ɵɵelementStart(0, "div", 87);
|
|
290
|
+
i0.ɵɵelementStart(1, "button", 88);
|
|
290
291
|
i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r55); const ctx_r54 = i0.ɵɵnextContext(5); return ctx_r54.confirm(); });
|
|
291
|
-
i0.ɵɵelementStart(2, "span",
|
|
292
|
-
i0.ɵɵi18n(3,
|
|
292
|
+
i0.ɵɵelementStart(2, "span", 80);
|
|
293
|
+
i0.ɵɵi18n(3, 89);
|
|
293
294
|
i0.ɵɵelementEnd();
|
|
294
295
|
i0.ɵɵelementEnd();
|
|
295
|
-
i0.ɵɵtemplate(4, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_button_4_Template, 4, 0, "button",
|
|
296
|
+
i0.ɵɵtemplate(4, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_button_4_Template, 4, 0, "button", 90);
|
|
296
297
|
i0.ɵɵelementEnd();
|
|
297
298
|
} if (rf & 2) {
|
|
298
299
|
const ctx_r44 = i0.ɵɵnextContext(5);
|
|
@@ -303,8 +304,8 @@ function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_Template
|
|
|
303
304
|
} }
|
|
304
305
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
305
306
|
i0.ɵɵelementContainerStart(0);
|
|
306
|
-
i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_Template, 3, 2, "ng-container",
|
|
307
|
-
i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_Template, 5, 3, "div",
|
|
307
|
+
i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 36);
|
|
308
|
+
i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_div_2_Template, 5, 3, "div", 75);
|
|
308
309
|
i0.ɵɵelementContainerEnd();
|
|
309
310
|
} if (rf & 2) {
|
|
310
311
|
const ctx_r40 = i0.ɵɵnextContext(4);
|
|
@@ -315,7 +316,7 @@ function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_Template(rf, c
|
|
|
315
316
|
} }
|
|
316
317
|
function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
317
318
|
i0.ɵɵelementContainerStart(0);
|
|
318
|
-
i0.ɵɵelement(1, "ng-miam-recipe-pricing",
|
|
319
|
+
i0.ɵɵelement(1, "ng-miam-recipe-pricing", 94);
|
|
319
320
|
i0.ɵɵelementContainerEnd();
|
|
320
321
|
} if (rf & 2) {
|
|
321
322
|
const ctx_r41 = i0.ɵɵnextContext(4);
|
|
@@ -323,14 +324,14 @@ function RecipeDetailsComponent_div_0_div_2_div_36_ng_container_2_Template(rf, c
|
|
|
323
324
|
i0.ɵɵproperty("recipeId", ctx_r41.recipeDetailsService.recipe.id)("serves", ctx_r41.recipeDetailsService.recipe.modifiedGuests)("fetchPricingOnScroll", false);
|
|
324
325
|
} }
|
|
325
326
|
function RecipeDetailsComponent_div_0_div_2_div_36_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
326
|
-
i0.ɵɵelementStart(0, "div",
|
|
327
|
-
i0.ɵɵelementStart(1, "div",
|
|
328
|
-
i0.ɵɵelement(2, "ng-miam-price",
|
|
327
|
+
i0.ɵɵelementStart(0, "div", 95);
|
|
328
|
+
i0.ɵɵelementStart(1, "div", 96);
|
|
329
|
+
i0.ɵɵelement(2, "ng-miam-price", 97);
|
|
329
330
|
i0.ɵɵpipe(3, "currency");
|
|
330
|
-
i0.ɵɵelement(4, "div",
|
|
331
|
+
i0.ɵɵelement(4, "div", 71);
|
|
331
332
|
i0.ɵɵelementEnd();
|
|
332
|
-
i0.ɵɵelementStart(5, "span",
|
|
333
|
-
i0.ɵɵi18n(6,
|
|
333
|
+
i0.ɵɵelementStart(5, "span", 98);
|
|
334
|
+
i0.ɵɵi18n(6, 99);
|
|
334
335
|
i0.ɵɵelementEnd();
|
|
335
336
|
i0.ɵɵelementEnd();
|
|
336
337
|
} if (rf & 2) {
|
|
@@ -342,10 +343,10 @@ function RecipeDetailsComponent_div_0_div_2_div_36_div_3_Template(rf, ctx) { if
|
|
|
342
343
|
i0.ɵɵclassProp("hidden", !(ctx_r42.recipeDetailsService.ingredientToBasketLoading$.value || ctx_r42.recipeDetailsService.updateIngredientFromBasketLoading$.value || ctx_r42.basketSynchroHasPendigActions));
|
|
343
344
|
} }
|
|
344
345
|
function RecipeDetailsComponent_div_0_div_2_div_36_Template(rf, ctx) { if (rf & 1) {
|
|
345
|
-
i0.ɵɵelementStart(0, "div",
|
|
346
|
-
i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_Template, 3, 2, "ng-container",
|
|
347
|
-
i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_2_Template, 2, 3, "ng-container",
|
|
348
|
-
i0.ɵɵtemplate(3, RecipeDetailsComponent_div_0_div_2_div_36_div_3_Template, 7, 8, "div",
|
|
346
|
+
i0.ɵɵelementStart(0, "div", 73);
|
|
347
|
+
i0.ɵɵtemplate(1, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_1_Template, 3, 2, "ng-container", 36);
|
|
348
|
+
i0.ɵɵtemplate(2, RecipeDetailsComponent_div_0_div_2_div_36_ng_container_2_Template, 2, 3, "ng-container", 36);
|
|
349
|
+
i0.ɵɵtemplate(3, RecipeDetailsComponent_div_0_div_2_div_36_div_3_Template, 7, 8, "div", 74);
|
|
349
350
|
i0.ɵɵelementEnd();
|
|
350
351
|
} if (rf & 2) {
|
|
351
352
|
const ctx_r18 = i0.ɵɵnextContext(3);
|
|
@@ -380,7 +381,7 @@ function RecipeDetailsComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
380
381
|
i0.ɵɵtext(12, " > ");
|
|
381
382
|
i0.ɵɵelementEnd();
|
|
382
383
|
i0.ɵɵelementEnd();
|
|
383
|
-
i0.ɵɵtemplate(13, RecipeDetailsComponent_div_0_div_2_img_13_Template, 1,
|
|
384
|
+
i0.ɵɵtemplate(13, RecipeDetailsComponent_div_0_div_2_img_13_Template, 1, 2, "img", 20);
|
|
384
385
|
i0.ɵɵtemplate(14, RecipeDetailsComponent_div_0_div_2_youtube_player_14_Template, 1, 4, "youtube-player", 21);
|
|
385
386
|
i0.ɵɵtemplate(15, RecipeDetailsComponent_div_0_div_2_div_15_Template, 2, 1, "div", 22);
|
|
386
387
|
i0.ɵɵelementEnd();
|
|
@@ -394,28 +395,28 @@ function RecipeDetailsComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
394
395
|
i0.ɵɵelementStart(22, "div", 29);
|
|
395
396
|
i0.ɵɵelementStart(23, "button", 30);
|
|
396
397
|
i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_2_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r57); const ctx_r60 = i0.ɵɵnextContext(2); return ctx_r60.close(); });
|
|
397
|
-
i0.ɵɵelement(24, "img",
|
|
398
|
+
i0.ɵɵelement(24, "img", 17);
|
|
398
399
|
i0.ɵɵelementEnd();
|
|
399
400
|
i0.ɵɵelementEnd();
|
|
400
|
-
i0.ɵɵelementStart(25, "span",
|
|
401
|
+
i0.ɵɵelementStart(25, "span", 31);
|
|
401
402
|
i0.ɵɵtext(26);
|
|
402
403
|
i0.ɵɵelementEnd();
|
|
403
|
-
i0.ɵɵelementStart(27, "div",
|
|
404
|
+
i0.ɵɵelementStart(27, "div", 32);
|
|
404
405
|
i0.ɵɵtemplate(28, RecipeDetailsComponent_div_0_div_2_ng_miam_like_button_28_Template, 1, 2, "ng-miam-like-button", 18);
|
|
405
|
-
i0.ɵɵelementStart(29, "div",
|
|
406
|
-
i0.ɵɵelementStart(30, "button",
|
|
406
|
+
i0.ɵɵelementStart(29, "div", 33);
|
|
407
|
+
i0.ɵɵelementStart(30, "button", 34);
|
|
407
408
|
i0.ɵɵlistener("click", function RecipeDetailsComponent_div_0_div_2_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r57); const ctx_r61 = i0.ɵɵnextContext(2); return ctx_r61.close(); });
|
|
408
|
-
i0.ɵɵelement(31, "img",
|
|
409
|
+
i0.ɵɵelement(31, "img", 35);
|
|
409
410
|
i0.ɵɵelementEnd();
|
|
410
411
|
i0.ɵɵelementEnd();
|
|
411
412
|
i0.ɵɵelementEnd();
|
|
412
413
|
i0.ɵɵelementEnd();
|
|
413
|
-
i0.ɵɵtemplate(32, RecipeDetailsComponent_div_0_div_2_ng_miam_store_locator_link_32_Template, 1, 0, "ng-miam-store-locator-link",
|
|
414
|
+
i0.ɵɵtemplate(32, RecipeDetailsComponent_div_0_div_2_ng_miam_store_locator_link_32_Template, 1, 0, "ng-miam-store-locator-link", 36);
|
|
414
415
|
i0.ɵɵelementEnd();
|
|
415
|
-
i0.ɵɵtemplate(33, RecipeDetailsComponent_div_0_div_2_ng_container_33_Template, 4, 5, "ng-container",
|
|
416
|
-
i0.ɵɵtemplate(34, RecipeDetailsComponent_div_0_div_2_ng_container_34_Template, 3, 2, "ng-container",
|
|
417
|
-
i0.ɵɵtemplate(35, RecipeDetailsComponent_div_0_div_2_div_35_Template, 4, 3, "div",
|
|
418
|
-
i0.ɵɵtemplate(36, RecipeDetailsComponent_div_0_div_2_div_36_Template, 4, 5, "div",
|
|
416
|
+
i0.ɵɵtemplate(33, RecipeDetailsComponent_div_0_div_2_ng_container_33_Template, 4, 5, "ng-container", 36);
|
|
417
|
+
i0.ɵɵtemplate(34, RecipeDetailsComponent_div_0_div_2_ng_container_34_Template, 3, 2, "ng-container", 36);
|
|
418
|
+
i0.ɵɵtemplate(35, RecipeDetailsComponent_div_0_div_2_div_35_Template, 4, 3, "div", 37);
|
|
419
|
+
i0.ɵɵtemplate(36, RecipeDetailsComponent_div_0_div_2_div_36_Template, 4, 5, "div", 38);
|
|
419
420
|
i0.ɵɵelementEnd();
|
|
420
421
|
} if (rf & 2) {
|
|
421
422
|
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
@@ -467,7 +468,7 @@ function RecipeDetailsComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
467
468
|
} }
|
|
468
469
|
function RecipeDetailsComponent_ng_miam_recipe_addon_1_Template(rf, ctx) { if (rf & 1) {
|
|
469
470
|
const _r63 = i0.ɵɵgetCurrentView();
|
|
470
|
-
i0.ɵɵelementStart(0, "ng-miam-recipe-addon",
|
|
471
|
+
i0.ɵɵelementStart(0, "ng-miam-recipe-addon", 100);
|
|
471
472
|
i0.ɵɵlistener("hideAddon", function RecipeDetailsComponent_ng_miam_recipe_addon_1_Template_ng_miam_recipe_addon_hideAddon_0_listener() { i0.ɵɵrestoreView(_r63); const ctx_r62 = i0.ɵɵnextContext(); return ctx_r62.toggleAddon(); });
|
|
472
473
|
i0.ɵɵelementEnd();
|
|
473
474
|
} if (rf & 2) {
|
|
@@ -476,7 +477,7 @@ function RecipeDetailsComponent_ng_miam_recipe_addon_1_Template(rf, ctx) { if (r
|
|
|
476
477
|
} }
|
|
477
478
|
function RecipeDetailsComponent_ng_miam_replace_item_2_Template(rf, ctx) { if (rf & 1) {
|
|
478
479
|
const _r65 = i0.ɵɵgetCurrentView();
|
|
479
|
-
i0.ɵɵelementStart(0, "ng-miam-replace-item",
|
|
480
|
+
i0.ɵɵelementStart(0, "ng-miam-replace-item", 101);
|
|
480
481
|
i0.ɵɵlistener("selected", function RecipeDetailsComponent_ng_miam_replace_item_2_Template_ng_miam_replace_item_selected_0_listener() { i0.ɵɵrestoreView(_r65); const ctx_r64 = i0.ɵɵnextContext(); return ctx_r64.recipeDetailsService.basketEntryToReplace = null; });
|
|
481
482
|
i0.ɵɵelementEnd();
|
|
482
483
|
} if (rf & 2) {
|
|
@@ -485,7 +486,7 @@ function RecipeDetailsComponent_ng_miam_replace_item_2_Template(rf, ctx) { if (r
|
|
|
485
486
|
} }
|
|
486
487
|
function RecipeDetailsComponent_ng_miam_last_order_modal_3_Template(rf, ctx) { if (rf & 1) {
|
|
487
488
|
const _r67 = i0.ɵɵgetCurrentView();
|
|
488
|
-
i0.ɵɵelementStart(0, "ng-miam-last-order-modal",
|
|
489
|
+
i0.ɵɵelementStart(0, "ng-miam-last-order-modal", 102);
|
|
489
490
|
i0.ɵɵlistener("close", function RecipeDetailsComponent_ng_miam_last_order_modal_3_Template_ng_miam_last_order_modal_close_0_listener() { i0.ɵɵrestoreView(_r67); const ctx_r66 = i0.ɵɵnextContext(); return ctx_r66.toggleLastOrderModal(); })("submit", function RecipeDetailsComponent_ng_miam_last_order_modal_3_Template_ng_miam_last_order_modal_submit_0_listener() { i0.ɵɵrestoreView(_r67); const ctx_r68 = i0.ɵɵnextContext(); return ctx_r68.closeLastOrderModal(ctx_r68.eventTrace); });
|
|
490
491
|
i0.ɵɵelementEnd();
|
|
491
492
|
} if (rf & 2) {
|
|
@@ -558,9 +559,6 @@ export class RecipeDetailsComponent extends EventTracerComponent {
|
|
|
558
559
|
this.initialTabIndex = 1;
|
|
559
560
|
}
|
|
560
561
|
this.subscriptions.push(this.storeLocatorService.storeLocatorOpened$.subscribe(storeLocatorOpened => {
|
|
561
|
-
if (this.showStoreSelector !== storeLocatorOpened && !storeLocatorOpened && this.isRecipeFetched) {
|
|
562
|
-
this.sendPageViewEvent();
|
|
563
|
-
}
|
|
564
562
|
this.showStoreSelector = storeLocatorOpened;
|
|
565
563
|
this.cdr.detectChanges();
|
|
566
564
|
}), this.recipeDetailsService.productsLoading$.pipe(map((productsLoading) => !productsLoading && !this.recipeDetailsService.onlyShowPreparation)).subscribe((show) => {
|
|
@@ -573,12 +571,9 @@ export class RecipeDetailsComponent extends EventTracerComponent {
|
|
|
573
571
|
}), this.contextService.isSmallScreen$.subscribe(isSmall => {
|
|
574
572
|
this.isMobile = isSmall;
|
|
575
573
|
this.cdr.detectChanges();
|
|
576
|
-
}), this.recipesService.
|
|
577
|
-
this.
|
|
578
|
-
this.
|
|
579
|
-
this.initialTabIndex = result.initialTabIndex;
|
|
580
|
-
this.fetchRecipe(result.recipeId);
|
|
581
|
-
this.recipeDetailsService.initDefaultState(true);
|
|
574
|
+
}), this.recipesService.recipeDetailsTabIndex$.pipe(skipWhile(result => result === null || result === undefined)).subscribe(result => {
|
|
575
|
+
this.activeTabIndex = result;
|
|
576
|
+
this.initialTabIndex = result;
|
|
582
577
|
this.cdr.detectChanges();
|
|
583
578
|
}), merge(this.recipeDetailsService.recipeLoading$, this.recipeDetailsService.basketEntryToReplace$, this.recipeDetailsService.updateFooterDisplay$, this.recipeDetailsService.productsByCategory$, this.recipeDetailsService.productsLoading$, this.recipeDetailsService.allIngredientsToBasketLoading$, this.recipeDetailsService.ingredientToBasketLoading$, this.posService.pos$).subscribe(() => {
|
|
584
579
|
this.cdr.detectChanges();
|
|
@@ -617,7 +612,7 @@ export class RecipeDetailsComponent extends EventTracerComponent {
|
|
|
617
612
|
this.recipeDetailsService.allIngredientsToBasketLoading = false;
|
|
618
613
|
}
|
|
619
614
|
ngOnDestroy() {
|
|
620
|
-
this.recipeDetailsService.
|
|
615
|
+
this.recipeDetailsService.pageviewEventWasSent = false;
|
|
621
616
|
this.subscriptions.forEach(sub => sub === null || sub === void 0 ? void 0 : sub.unsubscribe());
|
|
622
617
|
if (this.contextService.seoEnabled) {
|
|
623
618
|
this.seoService.removeSEOData();
|
|
@@ -637,7 +632,7 @@ export class RecipeDetailsComponent extends EventTracerComponent {
|
|
|
637
632
|
}
|
|
638
633
|
this.recipeDetailsService.recipe.modifiedGuests = +this.guestNumber || +result.guests;
|
|
639
634
|
this.recipeDetailsService.getProducts(true);
|
|
640
|
-
this.
|
|
635
|
+
this.sendPageviewEvent();
|
|
641
636
|
this.setupYoutubePlayer();
|
|
642
637
|
setTimeout(() => {
|
|
643
638
|
this.initScrollListenerOnTitle();
|
|
@@ -753,7 +748,7 @@ export class RecipeDetailsComponent extends EventTracerComponent {
|
|
|
753
748
|
this.onClose(openBasket);
|
|
754
749
|
}
|
|
755
750
|
onClose(openBasket = false) {
|
|
756
|
-
this.recipeDetailsService.
|
|
751
|
+
this.recipeDetailsService.pageviewEventWasSent = false;
|
|
757
752
|
this.storeLocatorService.closeStoreLocator();
|
|
758
753
|
this.activeTabIndex = this.initialTabIndex;
|
|
759
754
|
if (openBasket) {
|
|
@@ -768,9 +763,9 @@ export class RecipeDetailsComponent extends EventTracerComponent {
|
|
|
768
763
|
print() {
|
|
769
764
|
window.print();
|
|
770
765
|
}
|
|
771
|
-
|
|
772
|
-
if (!this.recipeDetailsService.
|
|
773
|
-
this.recipeDetailsService.
|
|
766
|
+
sendPageviewEvent() {
|
|
767
|
+
if (!this.recipeDetailsService.pageviewEventWasSent) {
|
|
768
|
+
this.recipeDetailsService.pageviewEventWasSent = true;
|
|
774
769
|
this.pageview();
|
|
775
770
|
}
|
|
776
771
|
}
|
|
@@ -869,7 +864,7 @@ RecipeDetailsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeDetailsCompo
|
|
|
869
864
|
}
|
|
870
865
|
else {
|
|
871
866
|
i18n_22 = $localize `:␟ddc8d487566c6a50356eb269a281761ef8ccffa8␟4122997114884311871:dans mon panier`;
|
|
872
|
-
} return [["class", "miam-recipe-details", 3, "hidden", 4, "ngIf"], [3, "recipe", "hideAddon", 4, "ngIf"], [3, "recipe", "basketEntry", "ingredient", "ignoreSelected", "loadOnSelect", "originTrace", "selected", 4, "ngIf"], [3, "display", "inBasket", "orderHistoryDate", "close", "submit", 4, "ngIf"], [1, "miam-recipe-details"], ["class", "miam-ds-loader miam-recipe-details__loader", 4, "ngIf"], ["class", "miam-recipe-details__container", 4, "ngIf"], [1, "miam-ds-loader", "miam-recipe-details__loader"], [1, "miam-recipe-details__container"], [1, "miam-recipe-details__picture"], ["topContainerImg", ""], [1, "miam-recipe-details__banner_buttons"], [1, "miam-recipe-details__top-button-wrapper"], [1, "miam-recipe-details__close-button", "miam-ds-button", "square", "primary", "reverse", 3, "click"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Cross_primary.svg", "alt", "
|
|
867
|
+
} return [["class", "miam-recipe-details", 3, "hidden", 4, "ngIf"], [3, "recipe", "hideAddon", 4, "ngIf"], [3, "recipe", "basketEntry", "ingredient", "ignoreSelected", "loadOnSelect", "originTrace", "selected", 4, "ngIf"], [3, "display", "inBasket", "orderHistoryDate", "close", "submit", 4, "ngIf"], [1, "miam-recipe-details"], ["class", "miam-ds-loader miam-recipe-details__loader", "role", "status", "aria-label", "Chargement en cours", 4, "ngIf"], ["class", "miam-recipe-details__container", 4, "ngIf"], ["role", "status", "aria-label", "Chargement en cours", 1, "miam-ds-loader", "miam-recipe-details__loader"], [1, "miam-recipe-details__container"], [1, "miam-recipe-details__picture"], ["topContainerImg", ""], [1, "miam-recipe-details__banner_buttons"], [1, "miam-recipe-details__top-button-wrapper"], ["aria-label", "Fermer", 1, "miam-recipe-details__close-button", "miam-ds-button", "square", "primary", "reverse", 3, "click"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Cross_primary.svg", "alt", "", "aria-hidden", "true", 1, "miam-recipe-details__close-icon"], [1, "miam-recipe-details__mobile-header-buttons"], ["aria-label", "Retour", 1, "miam-recipe-details__back-button", "miam-ds-button", "square", "primary", "reverse", 3, "click"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/chevron-down-primary.svg", "alt", "", "aria-hidden", "true", 1, "miam-recipe-details__back-icon"], ["class", "miam-recipe-details__like-button", 3, "recipe", "originTrace", 4, "ngIf"], [1, "miam-recipe-details__guest-counter", 3, "floating", "value", "minRange", "debounceTime", "disable", "valueChange"], ["class", "miam-recipe-details__picture-img", 3, "src", "error", 4, "ngIf"], ["title", "Vid\u00E9o de la recette", 3, "videoId", "width", "height", "playerVars", 4, "ngIf"], ["class", "miam-recipe-details__picture__filigrane", 4, "ngIf"], [1, "miam-recipe-details__sponsor"], [3, "hasStorytelling", "recipe", "showAddon", 4, "ngIf"], [1, "miam-recipe-details__sponsor-separator"], ["class", "miam-recipe-details__last-order", 3, "disabled", 4, "ngIf"], [1, "miam-recipe-details__sticky-header"], ["ngMiamReachTop", "", 1, "miam-recipe-details__title-container", 3, "stickyByDefault"], [1, "miam-recipe-details__back-button-mobile-container"], ["aria-label", "Retour", 1, "miam-recipe-details__back-button", "miam-ds-button", "small", "square", "ghost", 3, "click"], ["role", "heading", "aria-level", "1", 1, "miam-recipe-details__title", "miam-ds-text", "size-xl", "weight-xxl"], [1, "miam-recipe-details__actions__icon"], [1, "miam-recipe-details__hideable-actions"], ["aria-label", "Fermer", 1, "miam-recipe-details__close-button", "miam-ds-button", "square", "ghost", 3, "click"], ["alt", "", "aria-hidden", "true", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Cross_primary.svg", 1, "miam-recipe-details__close-icon"], [4, "ngIf"], ["class", "miam-recipe-details__preparation-tab", 4, "ngIf"], ["class", "miam-recipe-details__footer", 3, "center", 4, "ngIf"], [1, "miam-recipe-details__like-button", 3, "recipe", "originTrace"], [1, "miam-recipe-details__picture-img", 3, "src", "error"], ["title", "Vid\u00E9o de la recette", 3, "videoId", "width", "height", "playerVars"], [1, "miam-recipe-details__picture__filigrane"], ["alt", "", "aria-hidden", "true", 3, "src"], [3, "hasStorytelling", "recipe", "showAddon"], [1, "miam-recipe-details__last-order"], ["aria-label", "Afficher les d\u00E9tails de la commande pr\u00E9c\u00E9dente", 1, "miam-recipe-details__last-order-badge", "miam-ds-badge", 3, "click"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Infos_Blue.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-details__last-order-badge-texts"], i18n_1, [1, "miam-recipe-details__infos", 3, "recipe"], [1, "miam-recipe-details__tabs", 3, "ngClass"], ["tabs", i18n_3, 3, "selectedTabIndex", "selectedTabIndexChange"], ["class", "miam-recipe-details__products-picker", 3, "originTrace", "closeModal", "guestsChange", 4, "ngIf"], [3, "invalidPos", "posSelected", 4, "ngIf"], [1, "miam-recipe-details__products-picker", 3, "originTrace", "closeModal", "guestsChange"], [3, "invalidPos", "posSelected"], [1, "miam-recipe-details__preparation-tab"], [3, "ingredients"], [3, "recipe"], ["class", "miam-recipe-details__order-again", 4, "ngIf"], [1, "miam-recipe-details__order-again"], [1, "miam-recipe-details__order-again-texts"], [1, "miam-ds-text", "size-l", "weight-xxl"], i18n_6, [1, "miam-recipe-details__order-again-text", "miam-ds-text", "size-m"], i18n_8, [1, "miam-recipe-details__order-again-cta", "miam-ds-button", "secondary", 3, "disabled", "click"], ["class", "miam-ds-loader primary", "role", "status", "aria-label", "Chargement en cours", 4, "ngIf", "ngIfElse"], ["showIcon", ""], i18n_10, ["role", "status", "aria-label", "Chargement en cours", 1, "miam-ds-loader", "primary"], ["alt", "", "aria-hidden", "true", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Basket_Blue.svg"], [1, "miam-recipe-details__footer"], ["class", "miam-recipe-details__price", 4, "ngIf"], ["class", "miam-recipe-details__recipe-is-in-basket-cta-container", 4, "ngIf"], ["class", "miam-recipe-details__add-to-basket-cta miam-ds-button primary", "aria-label", "Ajouter tous les ingr\u00E9dients au panier", 3, "click", 4, "ngIf"], ["class", "miam-recipe-details__add-to-basket-cta miam-ds-button primary", "aria-label", "Ajout en cours", 4, "ngIf"], ["aria-label", "Ajouter tous les ingr\u00E9dients au panier", 1, "miam-recipe-details__add-to-basket-cta", "miam-ds-button", "primary", 3, "click"], ["alt", "", "aria-hidden", "true", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Basket.svg"], [1, "miam-recipe-details__add-to-basket-cta__text"], i18n_12, [1, "miam-recipe-details__add-to-basket-remaining-price"], ["role", "status", "aria-label", "Chargement en cours", 1, "miam-ds-loader"], i18n_14, i18n_16, ["aria-label", "Ajout en cours", 1, "miam-recipe-details__add-to-basket-cta", "miam-ds-button", "primary"], [1, "miam-recipe-details__recipe-is-in-basket-cta-container"], [1, "miam-ds-button", "secondary", "miam-recipe-details__continue-shopping-cta", 3, "click"], i18n_18, ["class", "miam-ds-button primary miam-recipe-details__see-basket-cta", 3, "click", 4, "ngIf"], [1, "miam-ds-button", "primary", "miam-recipe-details__see-basket-cta", 3, "click"], [1, "miam-recipe-details__see-basket__text"], i18n_20, [3, "recipeId", "serves", "fetchPricingOnScroll"], [1, "miam-recipe-details__price"], [1, "miam-recipe-details__price-label", "miam-ds-text", "size-l", "weight-xxl"], [3, "price"], [1, "miam-recipe-details__price-in-basket-label", "miam-ds-text", "size-xs"], i18n_22, [3, "recipe", "hideAddon"], [3, "recipe", "basketEntry", "ingredient", "ignoreSelected", "loadOnSelect", "originTrace", "selected"], [3, "display", "inBasket", "orderHistoryDate", "close", "submit"]]; }, template: function RecipeDetailsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
873
868
|
i0.ɵɵtemplate(0, RecipeDetailsComponent_div_0_Template, 3, 4, "div", 0);
|
|
874
869
|
i0.ɵɵtemplate(1, RecipeDetailsComponent_ng_miam_recipe_addon_1_Template, 1, 1, "ng-miam-recipe-addon", 1);
|
|
875
870
|
i0.ɵɵtemplate(2, RecipeDetailsComponent_ng_miam_replace_item_2_Template, 1, 6, "ng-miam-replace-item", 2);
|
|
@@ -928,4 +923,4 @@ RecipeDetailsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeDetailsCompo
|
|
|
928
923
|
type: ViewChild,
|
|
929
924
|
args: ['topContainerImg']
|
|
930
925
|
}] }); })();
|
|
931
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZGV0YWlscy9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1kZXRhaWxzL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVB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aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFRyYWNlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9ldmVudC10cmFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEluZ3JlZGllbnQgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7XG4gIEFuYWx5dGljc1NlcnZpY2UsXG4gIEJhc2tldHNTeW5jaHJvbml6ZXJTZXJ2aWNlLFxuICBDb250ZXh0U2VydmljZSxcbiAgUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgUmVjaXBlRGV0YWlsc1NlcnZpY2UsXG4gIFJlY2lwZXNTZXJ2aWNlLFxuICBTcG9uc29yQmxvY2tTZXJ2aWNlLFxuICBTdXBwbGllcnNTZXJ2aWNlLFxuICBVc2VyU2VydmljZVxufSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgU2VvU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9zZW8uc2VydmljZSc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBTdG9yZUxvY2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3N0b3JlLWxvY2F0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvY3VycmVuY3kuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudFRyYWNlIH0gZnJvbSAnLi4vLi4vX3R5cGVzL2V2ZW50LXRyYWNlJztcblxuY29uc3QgcmVjaXBlSW5jbHVkZXMgPSBbJ3JlY2lwZS1wcm92aWRlcicsICdpbmdyZWRpZW50cycsICd0YWdzJywgJ3JlY2lwZS1zdGVwcycsICdzcG9uc29ycyddO1xuY29uc3QgcmVjaXBlU3BhcnNlRmllbGRzID0ge1xuICByZWNpcGVzOiBbJ3RpdGxlJywgJ2luZm9ybWF0aW9uYWwtc2VudGVuY2UnLCAnbWVkaWEtdXJsJywgJ3ZpZGVvLWlkJywgJ2ZpbGlncmFuZS1sb2dvLXVybCcsICdudW1iZXItb2YtZ3Vlc3RzJywgJ2Rlc2NyaXB0aW9uJyxcbiAgICAnaW5mb3JtYXRpb25hbC1wYWdlLWh0bWwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsICdyZXN0aW5nLXRpbWUnLCAnb3JkZXItaGlzdG9yeScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgaW5ncmVkaWVudHM6IFsnbmFtZScsICdxdWFudGl0eScsICd1bml0JywgJ2FjdGl2ZScsICdmb3JjZWQtZWFucycsICdwaWN0dXJlLXVybCcsICdwb3NpdGlvbiddLFxuICB0YWdzOiBbJ3RhZy10eXBlLWlkJywgJ2ljb24tdXJsJywgJ25hbWUnXSxcbiAgJ3JlY2lwZS1zdGVwcyc6IFsnZGVzY3JpcHRpb24nLCAnc3RlcC1udW1iZXInXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnLCAnbmFtZSddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGVEZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgRXZlbnRUcmFjZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcmVjaXBlSWQ6IHN0cmluZztcbiAgQElucHV0KCkgZ3Vlc3ROdW1iZXI6IG51bWJlcjtcbiAgQElucHV0KCkgcHJldmlld0FsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBpbmdyZWRpZW50c1BpY3R1cmVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZvcmNlRGlzcGxheVRhZ3M6IGJvb2xlYW47IC8vIE92ZXJyaWRlIGdsb2JhbCBzZXR0aW5nIGlmIG5lY2VzYXJ5XG4gIEBJbnB1dCgpIGRpc3BsYXlUYWdzSWNvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5R3Vlc3RzID0gdHJ1ZTtcbiAgQElucHV0KCkgaGVscEJ1dHRvbkFsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBzdGVwc09uTGVmdFNpZGUgPSBmYWxzZTsgLy8gSWYgdHJ1ZSwgZGlzcGxheSB0aGUgZGV0YWlsIGluIDQgcXVhcnRlcnMgaW5zdGVhZCBvZiAyIGhhbHZlc1xuICBASW5wdXQoKSBjb29raW5nVGltZUFzUHJpbWFyeUluZm8gPSBmYWxzZTsgLy8gSWYgdHJ1ZSwgZGlzcGxheSB0aGUgY29va2luZyB0aW1lIG5leHQgdG8gdG90YWwgdGltZVxuICBASW5wdXQoKSBtb3JlUmVjaXBlc0ltYWdlVVJMOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByaWNpbmdHdWVzdHNUZXh0ID0gJ3Bhci1wZXJzb25uZSc7XG4gIEBPdXRwdXQoKSByZWNpcGVBZGRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVjaXBlRXJyb3I6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGNsb3NlRGV0YWlsczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAVmlld0NoaWxkKCd0b3BDb250YWluZXJJbWcnKSB0b3BDb250YWluZXJJbWc6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHJlbW92ZWRJbmdyZWRpZW50czogSW5ncmVkaWVudFtdID0gW107XG4gIGlzTW9iaWxlID0gZmFsc2U7XG4gIGRpc3BsYXlUYWdzID0gZmFsc2U7XG4gIHNob3dBZGRvbiA9IGZhbHNlO1xuICBzaG93U3RvcmVTZWxlY3RvciA9IGZhbHNlO1xuICBpc1JlY2lwZUZldGNoZWQgPSBmYWxzZTtcbiAgaWNvbiA9IEljb247XG4gIHBsYXllcldpZHRoO1xuICBwbGF5ZXJIZWlnaHQ7XG4gIHByaW1hcnlCdXR0b25DbGlja2VkJCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgc2hvd1ZpZGVvO1xuICBhZGRCdXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gIHRpdGxlSW5IZWFkZXIgPSBmYWxzZTtcbiAgZGlzcGxheUxhc3RPcmRlck1vZGFsID0gZmFsc2U7XG4gIHNwb25zb3JIYXNTdG9yeXRlbGxpbmcgPSBmYWxzZTtcbiAgdGl0bGU6IEhUTUxFbGVtZW50O1xuICBjb250ZW50OiBIVE1MRWxlbWVudDtcbiAgYWN0aXZlVGFiSW5kZXggPSAwO1xuICBpbml0aWFsVGFiSW5kZXggPSAwO1xuICBwbGF5ZXJWYXJzOiBZVC5QbGF5ZXJWYXJzID0ge1xuICAgIGNvbnRyb2xzOiAxLFxuICAgIG1vZGVzdGJyYW5kaW5nOiAxLFxuICAgIHJlbDogMCxcbiAgICBzaG93aW5mbzogMFxuICB9O1xuICBpc05vdExvYWRpbmdBbmROb3RQcmVwYXJhdGlvbjogYm9vbGVhbjtcbiAgcmVjaXBlRGV0YWlsc09wZW5UaW1lc3RhbXA6IG51bWJlcjtcbiAgYmFza2V0U3luY2hyb0hhc1BlbmRpZ0FjdGlvbnMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuICBwcml2YXRlIGludGVyc2VjdGlvbk9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3BvbnNvckJsb2Nrc1NlcnZpY2U6IFNwb25zb3JCbG9ja1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwdWJsaWMgc3VwcGxpZXJzU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwdWJsaWMgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWNpcGVEZXRhaWxzU2VydmljZTogUmVjaXBlRGV0YWlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZW9TZXJ2aWNlOiBTZW9TZXJ2aWNlLFxuICAgIHB1YmxpYyBzdG9yZUxvY2F0b3JTZXJ2aWNlOiBTdG9yZUxvY2F0b3JTZXJ2aWNlLFxuICAgIHB1YmxpYyBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZSxcbiAgICBwdWJsaWMgYmFza2V0U3luY2hyb1NlcnZpY2U6IEJhc2tldHNTeW5jaHJvbml6ZXJTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvbikge1xuICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IDE7XG4gICAgICB0aGlzLmluaXRpYWxUYWJJbmRleCA9IDE7XG4gICAgfVxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLnN0b3JlTG9jYXRvck9wZW5lZCQuc3Vic2NyaWJlKHN0b3JlTG9jYXRvck9wZW5lZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNob3dTdG9yZVNlbGVjdG9yICE9PSBzdG9yZUxvY2F0b3JPcGVuZWQgJiYgIXN0b3JlTG9jYXRvck9wZW5lZCAmJiB0aGlzLmlzUmVjaXBlRmV0Y2hlZCkge1xuICAgICAgICAgIHRoaXMuc2VuZFBhZ2VWaWV3RXZlbnQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dTdG9yZVNlbGVjdG9yID0gc3RvcmVMb2NhdG9yT3BlbmVkO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0xvYWRpbmckLnBpcGUoXG4gICAgICAgIG1hcCgocHJvZHVjdHNMb2FkaW5nKSA9PiAhcHJvZHVjdHNMb2FkaW5nICYmICF0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLm9ubHlTaG93UHJlcGFyYXRpb24pLFxuICAgICAgKS5zdWJzY3JpYmUoKHNob3c6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5pc05vdExvYWRpbmdBbmROb3RQcmVwYXJhdGlvbiA9IHNob3c7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLm5ld1N0b3JlU2VsZWN0ZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmV0Y2hSZWNpcGUodGhpcy5yZWNpcGVJZCk7XG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuaW5pdERlZmF1bHRTdGF0ZSh0cnVlKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSksXG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmlzU21hbGxTY3JlZW4kLnN1YnNjcmliZShpc1NtYWxsID0+IHtcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGlzU21hbGw7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5yZWNpcGVEZXRhaWxzT3BlbmVkJC5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+ICFyZXN1bHQpXG4gICAgICApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLmd1ZXN0TnVtYmVyID0gcmVzdWx0Lmd1ZXN0cztcbiAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHJlc3VsdC5pbml0aWFsVGFiSW5kZXg7XG4gICAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gcmVzdWx0LmluaXRpYWxUYWJJbmRleDtcbiAgICAgICAgdGhpcy5mZXRjaFJlY2lwZShyZXN1bHQucmVjaXBlSWQpO1xuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluaXREZWZhdWx0U3RhdGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgbWVyZ2UoXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyQsXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUZvb3RlckRpc3BsYXkkLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzQnlDYXRlZ29yeSQsXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucHJvZHVjdHNMb2FkaW5nJCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyQsXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuaW5ncmVkaWVudFRvQmFza2V0TG9hZGluZyQsXG4gICAgICAgIHRoaXMucG9zU2VydmljZS5wb3MkLFxuICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICB0aGlzLmJhc2tldFN5bmNocm9TZXJ2aWNlLmhhc1BlbmRpbmdBY3Rpb25zKCkuc3Vic2NyaWJlKGhhc0FjdGlvbnMgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldFN5bmNocm9IYXNQZW5kaWdBY3Rpb25zID0gaGFzQWN0aW9ucztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuY29udGV4dFNlcnZpY2Uubm9TdXBwbGllcikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIHRoaXMucG9zU2VydmljZS5pc1Bvc1ZhbGlkKCkuc3Vic2NyaWJlKChpc1Bvc1ZhbGlkKSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1Bvc1ZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlTG9jYXRvclNlcnZpY2Uuc3RvcmVMb2NhdG9yT3BlbmVkJC5uZXh0KHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuY2hlY2tJZlBvc0lzSW5pdGlhbGl6ZWRBbmRWYWxpZCgpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpOyAvLyB3ZSBuZWVkIHRvIGRldGVjdCBhIGNoYW5nZSB0aGF0IGlzIGluIGEgc3Vic2NyaWJlIGFuZCB0aHVzIGFzeW5jXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucmVjaXBlSWQgJiYgdGhpcy5yZWNpcGVJZD8ubGVuZ3RoID4gMCAmJiAhKCF0aGlzLnBvc1NlcnZpY2UucG9zJC5nZXRWYWx1ZSgpICYmIHRoaXMuY29udGV4dFNlcnZpY2Uubm9TdXBwbGllcikpIHtcbiAgICAgIHRoaXMucmVjaXBlRGV0YWlsc09wZW5UaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgICAgdGhpcy5mZXRjaFJlY2lwZSh0aGlzLnJlY2lwZUlkKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZm9yY2VEaXNwbGF5VGFncyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZm9yY2VEaXNwbGF5VGFncyAhPT0gdGhpcy5kaXNwbGF5VGFncykge1xuICAgICAgdGhpcy5kaXNwbGF5VGFncyA9IHRoaXMuZm9yY2VEaXNwbGF5VGFncztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5VGFncyA9IHRoaXMuY29udGV4dFNlcnZpY2UudGFnc09uUmVjaXBlc0VuYWJsZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0ZXBzT25MZWZ0U2lkZSkge1xuICAgICAgdGhpcy5jb29raW5nVGltZUFzUHJpbWFyeUluZm8gPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmFsbEluZ3JlZGllbnRzVG9CYXNrZXRMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmRpc3BsYXlFdmVudFdhc1NlbnQgPSBmYWxzZTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViPy51bnN1YnNjcmliZSgpKTtcbiAgICBpZiAodGhpcy5jb250ZXh0U2VydmljZS5zZW9FbmFibGVkKSB7XG4gICAgICB0aGlzLnNlb1NlcnZpY2UucmVtb3ZlU0VPRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIGZldGNoUmVjaXBlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5nZXQoaWQsIHtcbiAgICAgICAgaW5jbHVkZTogcmVjaXBlSW5jbHVkZXMsXG4gICAgICAgIGZpZWxkczogcmVjaXBlU3BhcnNlRmllbGRzXG4gICAgICB9KS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUgPSByZXN1bHQ7XG4gICAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS50b3RhbFByb2R1Y3RzJC5uZXh0KHJlc3VsdC5yZWxhdGlvbnNoaXBzLmluZ3JlZGllbnRzLmRhdGEubGVuZ3RoKTtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBpZiAodGhpcy5jb250ZXh0U2VydmljZS5zZW9FbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlb1NlcnZpY2Uuc2V0U0VPRGF0YSh0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gK3RoaXMuZ3Vlc3ROdW1iZXIgfHwgK3Jlc3VsdC5ndWVzdHM7XG4gICAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5nZXRQcm9kdWN0cyh0cnVlKTtcbiAgICAgICAgICB0aGlzLnNlbmRQYWdlVmlld0V2ZW50KCk7XG4gICAgICAgICAgdGhpcy5zZXR1cFlvdXR1YmVQbGF5ZXIoKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNjcm9sbExpc3RlbmVyT25UaXRsZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5pc1Nwb25zb3JlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BvbnNvckJsb2Nrc1NlcnZpY2UuYWxsKHtcbiAgICAgICAgICAgICAgcmVtb3RlZmlsdGVyOiB7ICdzcG9uc29yLWlkJzogdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuc3BvbnNvcnNbMF0uaWQgfSxcbiAgICAgICAgICAgICAgcGFnZTogeyBudW1iZXI6IDEsIHNpemU6IDEgfVxuICAgICAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiByZXN1bHQuaXNfbG9hZGluZyksXG4gICAgICAgICAgICAgIHRhcChyZXN1bHQgPT4gdGhpcy5zcG9uc29ySGFzU3Rvcnl0ZWxsaW5nID0gISFyZXN1bHQuZGF0YS5sZW5ndGgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNSZWNpcGVGZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcblxuICAgICk7XG4gIH1cblxuICBzZXR1cFlvdXR1YmVQbGF5ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93VmlkZW8gPSBmYWxzZTsgLy8gZm9yY2UgcmVsb2FkIHZpZGVvIHBsYXllclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNob3dWaWRlbyA9IHRoaXMuY29udGV4dFNlcnZpY2UudmlkZW9SZWNpcGVzRW5hYmxlZCAmJiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZT8udmlkZW9JZDtcbiAgICBpZiAodGhpcy5zaG93VmlkZW8pIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAod2luZG93LllUPy5QbGF5ZXIpIHtcbiAgICAgICAgICB0aGlzLnBsYXllcldpZHRoID0gdGhpcy50b3BDb250YWluZXJJbWc/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldFdpZHRoO1xuICAgICAgICAgIHRoaXMucGxheWVySGVpZ2h0ID0gTWF0aC5taW4od2luZG93LmlubmVySGVpZ2h0ICogMC40OCwgdGhpcy5wbGF5ZXJXaWR0aCAqIDM5MCAvIDY0MCk7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2V0dXBZb3V0dWJlUGxheWVyKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDUwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdCB0aGUgbGlzdGVuZXIgb24gc2Nyb2xsIHNvIHRoZSBtb2RhbCBjYW4gaGlkZSB0aGUgY2xvc2UgaWNvblxuICAgKi9cbiAgaW5pdFNjcm9sbExpc3RlbmVyT25UaXRsZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGl0bGUpIHtcbiAgICAgIHRoaXMudGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmNvbnRlbnQpIHtcbiAgICAgIHRoaXMuY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250ZW50Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzTW9iaWxlICYmICF0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyICYmIHRoaXMuY29udGVudCAmJiB0aGlzLnRpdGxlKSB7XG4gICAgICAvLyBGb3IgbW9yZSBwcmVjaXNpb24gb24gdGl0bGUgc2Nyb2xsIGRldGVjdGlvbiwgd2Ugd2FudCB0byB0cmlnZ2VyIGFuIGV2ZW50IGVhY2ggdGltZSB0aGUgdXNlciBzY3JvbGxzIDUlIG9mIHRoZSBjb250ZW50XG4gICAgICBjb25zdCB0aHJlc2hvbGQgPSBbLi4uQXJyYXkoMjApLmtleXMoKV0ubWFwKHggPT4geCAvIDIwKTtcbiAgICAgIC8vIFJlY2VpdmUgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB0aXRsZSBlbnRlcnMvbGVhdmVzIHRoZSB2aWV3cG9ydFxuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMudG9nZ2xlVGl0bGVJbkhlYWRlcigpO1xuICAgICAgfSwgeyB0aHJlc2hvbGQgfSk7XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5jb250ZW50KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVUaXRsZUluSGVhZGVyKCk6IHZvaWQge1xuICAgIHRoaXMudGl0bGVJbkhlYWRlciA9IHRoaXMudGl0bGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIDw9IDQwO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUxhc3RPcmRlck1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheUxhc3RPcmRlck1vZGFsID0gIXRoaXMuZGlzcGxheUxhc3RPcmRlck1vZGFsO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHVwZGF0ZUd1ZXN0cyhndWVzdHM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9PT0gZ3Vlc3RzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gZ3Vlc3RzO1xuICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlR3Vlc3RzKHRoaXMuZXZlbnRUcmFjZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlQWRkb24oKTogdm9pZCB7XG4gICAgdGhpcy5zaG93QWRkb24gPSAhdGhpcy5zaG93QWRkb247XG4gICAgaWYgKHRoaXMuc2hvd0FkZG9uKSB7XG4gICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgICAnc3BvbnNvci5kaXNwbGF5JyxcbiAgICAgICAgdGhpcy5wYXRoLFxuICAgICAgICB7XG4gICAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pZFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVIZWxwZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVzU2VydmljZS50b2dnbGVIZWxwZXIoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVCdXR0b25Mb2FkZXIodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmFkZEJ1dHRvbkxvYWRpbmcgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvcmRlckFnYWluKGV2ZW50VHJhY2U6IEV2ZW50VHJhY2UpOiB2b2lkIHtcbiAgICBjb25zdCBtb2RhbENvbnRlbnRFbG06IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1pYW0tbW9kYWxfX2NvbnRlbnQnKTtcbiAgICBpZiAobW9kYWxDb250ZW50RWxtKSB7XG4gICAgICBtb2RhbENvbnRlbnRFbG0uc2Nyb2xsVG9wID0gMDtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IDA7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5hZGRBbGxJbmdyZWRpZW50c1RvQmFza2V0KGV2ZW50VHJhY2UpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNsb3NlTGFzdE9yZGVyTW9kYWwoZXZlbnRUcmFjZTogRXZlbnRUcmFjZSk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlTGFzdE9yZGVyTW9kYWwoKTtcbiAgICB0aGlzLm9yZGVyQWdhaW4oZXZlbnRUcmFjZSk7XG4gIH1cblxuICBjb25maXJtKCk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAncmVjaXBlLmNvbnRpbnVlJyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pZFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5vbkNsb3NlKCk7XG4gIH1cblxuICBjbG9zZShvcGVuQmFza2V0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ3JlY2lwZS5jbG9zZScsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIHJlY2lwZV9pZDogdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaWRcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMub25DbG9zZShvcGVuQmFza2V0KTtcbiAgfVxuXG4gIG9uQ2xvc2Uob3BlbkJhc2tldCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5kaXNwbGF5RXZlbnRXYXNTZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLmNsb3NlU3RvcmVMb2NhdG9yKCk7XG4gICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuaW5pdGlhbFRhYkluZGV4O1xuICAgIGlmIChvcGVuQmFza2V0KSB7XG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLm9wZW5CYXNrZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5oaWRlKCk7XG4gICAgfVxuICAgIHRoaXMuY2xvc2VEZXRhaWxzLmVtaXQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcmludCgpOiB2b2lkIHtcbiAgICB3aW5kb3cucHJpbnQoKTtcbiAgfVxuXG4gIHNlbmRQYWdlVmlld0V2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5kaXNwbGF5RXZlbnRXYXNTZW50KSB7XG4gICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmRpc3BsYXlFdmVudFdhc1NlbnQgPSB0cnVlO1xuICAgICAgdGhpcy5wYWdldmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHNob3dQcmljZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlICYmIHRoaXMuZGlzcGxheVByaWNpbmcgJiYgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5oYXNBZGRlZEFQcm9kdWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aXZlVGFiSW5kZXhOYW1lKGFjdGl2ZVRhYkluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBhY3RpdmVUYWJJbmRleCA/ICdjb29raW5nJyA6ICdzaG9wcGluZyc7XG4gIH1cblxuICBjdXJyZW50UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgcmVjaXBlcy8ke3RoaXMucmVjaXBlSWQgPz8gMH0vJHt0aGlzLmdldEFjdGl2ZVRhYkluZGV4TmFtZSh0aGlzLmFjdGl2ZVRhYkluZGV4KX1gO1xuICB9XG5cbiAgY2hlY2tQb3MoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5jaGVja0lmUG9zSXNJbml0aWFsaXplZEFuZFZhbGlkKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgc2VsZWN0VGFiKGFjdGl2ZVRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmVUYWJJbmRleCA9PT0gYWN0aXZlVGFiSW5kZXgpIHsgcmV0dXJuOyB9XG5cbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgYHJlY2lwZS4ke3RoaXMuZ2V0QWN0aXZlVGFiSW5kZXhOYW1lKGFjdGl2ZVRhYkluZGV4KX0uZGlzcGxheWAsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7IHJlY2lwZV9pZDogdGhpcy5yZWNpcGVJZCB9XG4gICAgKTtcbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gYWN0aXZlVGFiSW5kZXg7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiIXNob3dBZGRvbiAmJiAhKHJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJC52YWx1ZSlcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNcIlxuICBbY2xhc3MuaGlkZGVuXT1cInNob3dTdG9yZVNlbGVjdG9yXCI+XG4gIDxkaXYgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVMb2FkaW5nJC52YWx1ZVwiIGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgbWlhbS1yZWNpcGUtZGV0YWlsc19fbG9hZGVyXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250YWluZXJcIlxuICAgICAgICpuZ0lmPVwiIShyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVMb2FkaW5nJC52YWx1ZSkgJiYgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCI+XG4gICAgPCEtLSBCQU5ORVIgQ09OVEFJTkVSIC0tPlxuICAgIDxkaXYgI3RvcENvbnRhaW5lckltZyBbY2xhc3Mubm8tc3VwcGxpZXJdPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcGljdHVyZVwiPlxuICAgICAgPCEtLSBIRUFERVIgQlVUVE9OUyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19iYW5uZXJfYnV0dG9uc1wiPlxuICAgICAgICA8IS0tIFRPUCBCVVRUT05TIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdG9wLWJ1dHRvbi13cmFwcGVyXCI+XG4gICAgICAgICAgPCEtLSBERVNLVE9QIENMT1NFIEJVVFRPTiAtLT5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fY2xvc2UtYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNxdWFyZSBwcmltYXJ5IHJldmVyc2VcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwibW9kYWwgY2xvc2UgYnV0dG9uXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwhLS0gTU9CSUxFIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tb2JpbGUtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDwhLS0gQkFDSyBCVVRUT04gT04gVEhFIExFRlQgLS0+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19iYWNrLWljb25cIlxuICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvY2hldnJvbi1kb3duLXByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgICBhbHQ9XCJtb2RhbCBiYWNrIGJ1dHRvblwiPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8IS0tIExJS0UgQlVUVE9OIE9OIFRIRSBSSUdIVCAtLT5cbiAgICAgICAgICAgIDxuZy1taWFtLWxpa2UtYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwidXNlclNlcnZpY2UuaXNMb2dnZWQkLnZhbHVlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19saWtlLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtyZWNpcGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCJcbiAgICAgICAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBHVUVTVCBDT1VOVEVSIC0tPlxuICAgICAgICA8bmctbWlhbS1jb3VudGVyLWlucHV0XG4gICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19ndWVzdC1jb3VudGVyXCJcbiAgICAgICAgICBbZmxvYXRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5tb2RpZmllZEd1ZXN0c1wiXG4gICAgICAgICAgW21pblJhbmdlXT1cIjFcIlxuICAgICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiMzAwXCJcbiAgICAgICAgICBbZGlzYWJsZV09XCIocmVjaXBlRGV0YWlsc1NlcnZpY2UuaW5ncmVkaWVudFRvQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgKHJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUluZ3JlZGllbnRGcm9tQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgYmFza2V0U3luY2hyb0hhc1BlbmRpZ0FjdGlvbnNcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVHdWVzdHMoJGV2ZW50KVwiPlxuICAgICAgICAgID5cbiAgICAgICAgPC9uZy1taWFtLWNvdW50ZXItaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gUElDVFVSRSAvIFZJREVPIC0tPlxuICAgICAgPGltZ1xuICAgICAgICBhbHQ9XCJyZWNpcGUgcGljdHVyZVwiXG4gICAgICAgICpuZ0lmPVwiIXNob3dWaWRlb1wiXG4gICAgICAgIFtzcmNdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWydtZWRpYS11cmwnXVwiXG4gICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRSZWNpcGVQaWN0dXJlXCJcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlLWltZ1wiPlxuICAgICAgPHlvdXR1YmUtcGxheWVyXG4gICAgICAgICpuZ0lmPVwic2hvd1ZpZGVvICYmIHBsYXllcldpZHRoXCJcbiAgICAgICAgW3ZpZGVvSWRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLnZpZGVvSWRcIlxuICAgICAgICBbd2lkdGhdPVwicGxheWVyV2lkdGhcIlxuICAgICAgICBbaGVpZ2h0XT1cInBsYXllckhlaWdodFwiXG4gICAgICAgIFtwbGF5ZXJWYXJzXT1cInBsYXllclZhcnNcIlxuICAgICAgPjwveW91dHViZS1wbGF5ZXI+XG4gICAgICA8IS0tIEZpbGlncmFuZSBsb2dvIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlX19maWxpZ3JhbmVcIj5cbiAgICAgICAgPGltZyBhbHQ9XCJmaWxpZ3JhbmUgbG9nb1wiIFtzcmNdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmZpbGlncmFuZUxvZ29VcmxcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gU1BPTlNPUiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc3BvbnNvclwiPlxuICAgICAgPG5nLW1pYW0tYWRkb24tbGlua1xuICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmlzU3BvbnNvcmVkIHx8IHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pbmZvcm1hdGlvbmFsU2VudGVuY2VcIlxuICAgICAgICBbaGFzU3Rvcnl0ZWxsaW5nXT1cInNwb25zb3JIYXNTdG9yeXRlbGxpbmdcIlxuICAgICAgICBbcmVjaXBlXT0ncmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlJyAoc2hvd0FkZG9uKT0ndG9nZ2xlQWRkb24oKSc+PC9uZy1taWFtLWFkZG9uLWxpbms+XG4gICAgICA8aHIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zcG9uc29yLXNlcGFyYXRvclwiPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gTEFTVCBPUkRFUiBCQURHRSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub3JkZXJIaXN0b3J5RGF0ZVwiXG4gICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xhc3Qtb3JkZXJcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzTG9hZGluZyQgfCBhc3luY1wiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xhc3Qtb3JkZXItYmFkZ2UgbWlhbS1kcy1iYWRnZVwiIChjbGljayk9XCJ0b2dnbGVMYXN0T3JkZXJNb2RhbCgpXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9JbmZvc19CbHVlLnN2Z1wiIGFsdD1cImluZm8gaWNvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fbGFzdC1vcmRlci1iYWRnZS10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+Q29tbWFuZGUgZHUgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTVElDS1kgSEVBREVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zdGlja3ktaGVhZGVyXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBUSVRMRSBDT05UQUlORVIgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUtY29udGFpbmVyXCIgbmdNaWFtUmVhY2hUb3AgW3N0aWNreUJ5RGVmYXVsdF09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICAgIDwhLS0gQkFDSyBCVVRUT04gKE1PQklMRSkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19iYWNrLWJ1dHRvbi1tb2JpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2stYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNtYWxsIHNxdWFyZSBnaG9zdFwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1pY29uXCJcbiAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9jaGV2cm9uLWRvd24tcHJpbWFyeS5zdmdcIlxuICAgICAgICAgICAgICAgICBhbHQ9XCJtb2RhbCBjbG9zZSBidXR0b25cIi8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFJFQ0lQRSBUSVRMRSAtLT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190aXRsZSBtaWFtLWRzLXRleHQgc2l6ZS14bCB3ZWlnaHQteHhsXCI+XG4gICAgICAgIHt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZT8uYXR0cmlidXRlc1sndGl0bGUnXSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgICA8IS0tIFJFQ0lQRSBBQ1RJT05TIChMSUtFIC8gQ0xPU0UgTU9EQUwpLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hY3Rpb25zX19pY29uXCI+XG4gICAgICAgICAgPCEtLSBMSUtFIEJVVFRPTiAtLT5cbiAgICAgICAgICA8bmctbWlhbS1saWtlLWJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19saWtlLWJ1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cIih1c2VyU2VydmljZS5pc0xvZ2dlZCQudmFsdWUpICYmICFjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUnXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgICAgICA8IS0tIENMT1NFIE1PREFMIEJVVFRPTiAoREVTS1RPUCkgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2hpZGVhYmxlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Nsb3NlLWJ1dHRvbiBtaWFtLWRzLWJ1dHRvbiBzcXVhcmUgZ2hvc3RcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIm1vZGFsIGNsb3NlIGJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCIvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFNUT1JFIExPQ0FUT1IgTElOSyAtLT5cbiAgICAgIDxuZy1taWFtLXN0b3JlLWxvY2F0b3ItbGluayAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tc3RvcmUtbG9jYXRvci1saW5rPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gUkVDSVBFIEJBU0lDIElORk9STUFUSU9OUyArIFRBQlMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICA8IS0tICBSRUNJUEUgQkFTSUMgSU5GT1JNQVRJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3NcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc1wiXG4gICAgICAgIFtyZWNpcGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCI+XG4gICAgICA8L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3M+XG4gICAgICA8IS0tIFRBQlMgVE8gU1dJVENIIEJFVFdFRU4gQkFTS0VUIEFORCBJTlNUUlVDVElPTlMgLS0+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogcmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvbn1cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhYnNcIj5cbiAgICAgICAgPG5nLW1pYW0tc2xpZGVyLXRhYnNcbiAgICAgICAgICBpMThuLXRhYnNcbiAgICAgICAgICB0YWJzPVwiSmUgZmFpcyBtZXMgY291cnNlcywgSmUgY3Vpc2luZVwiXG4gICAgICAgICAgW3NlbGVjdGVkVGFiSW5kZXhdPVwiYWN0aXZlVGFiSW5kZXhcIlxuICAgICAgICAgIChzZWxlY3RlZFRhYkluZGV4Q2hhbmdlKT1cInNlbGVjdFRhYigkZXZlbnQpXCI+XG4gICAgICAgIDwvbmctbWlhbS1zbGlkZXItdGFicz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gVEFCIEZPUiBQUk9EVUNUUyBQSUNLRVIgT1IgTk8gUE9TIERJU1BMQVkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYkluZGV4ID09PSAwXCI+XG4gICAgICA8bmctbWlhbS1wcm9kdWN0cy1waWNrZXJcbiAgICAgICAgKm5nSWY9XCIhcmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5ICYmICFyZWNpcGVEZXRhaWxzU2VydmljZS5pbnZhbGlkUG9zRGlzcGxheVwiXG4gICAgICAgIChjbG9zZU1vZGFsKT1cImNsb3NlKClcIlxuICAgICAgICAoZ3Vlc3RzQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Byb2R1Y3RzLXBpY2tlclwiXG4gICAgICA+XG4gICAgICA8L25nLW1pYW0tcHJvZHVjdHMtcGlja2VyPlxuICAgICAgPG5nLW1pYW0tbm8tcG9zLXNlbGVjdGVkXG4gICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5IHx8IHJlY2lwZURldGFpbHNTZXJ2aWNlLmludmFsaWRQb3NEaXNwbGF5XCJcbiAgICAgICAgW2ludmFsaWRQb3NdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuaW52YWxpZFBvc0Rpc3BsYXlcIlxuICAgICAgICAocG9zU2VsZWN0ZWQpPVwiY2hlY2tQb3MoKVwiXG4gICAgICA+PC9uZy1taWFtLW5vLXBvcy1zZWxlY3RlZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIFRBQiBGT1IgSU5TVFJVQ1RJT05TIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVUYWJJbmRleCA9PT0gMVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJlcGFyYXRpb24tdGFiXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBJTkdSRURJRU5UUyBUWVBFIEFORCBRVUFOVElUSUVTIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5ncmVkaWVudHNcbiAgICAgICAgW2luZ3JlZGllbnRzXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50c1wiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZ3JlZGllbnRzPlxuICAgICAgPCEtLSBSRUNJUEUgSU5TVFJVQ1RJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHMgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj48L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHM+XG4gICAgICA8IS0tIE9SREVSIEFHQUlOIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoID4gMCAmJiAhIXJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19vcmRlci1hZ2Fpbi10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCIgaTE4bj5DZXR0ZSByZWNldHRlIHZvdXMgYSBwbHUgPzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLXRleHQgbWlhbS1kcy10ZXh0IHNpemUtbVwiIGkxOG4+XG4gICAgICAgICAgICBOb3VzIGF2b25zIGNvbnNlcnbDqSB2b3RyZSBkZXJuacOocmUgc8OpbGVjdGlvbiBkZSBwcm9kdWl0c1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+ICBcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fb3JkZXItYWdhaW4tY3RhIG1pYW0tZHMtYnV0dG9uIHNlY29uZGFyeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFsbEluZ3JlZGllbnRzVG9CYXNrZXRMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAoY2xpY2spPVwib3JkZXJBZ2FpbihldmVudFRyYWNlKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWRzLWxvYWRlciBwcmltYXJ5XCIgXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlIHx8IFxuICAgICAgICAgICAgKHJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUluZ3JlZGllbnRGcm9tQmFza2V0TG9hZGluZyQgfCBhc3luYykgfHwgXG4gICAgICAgICAgICAoYmFza2V0U3luY2hyb1NlcnZpY2UuaGFzUGVuZGluZ0FjdGlvbnMoKSB8IGFzeW5jKTsgZWxzZSBzaG93SWNvblwiPjwvZGl2PiBcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3Nob3dJY29uPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJiYXNrZXQgaWNvblwiIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQmFza2V0X0JsdWUuc3ZnXCIvPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPHNwYW4gaTE4bj5Db21tYW5kZXIgw6Agbm91dmVhdTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZPT1RFUiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlVGFiSW5kZXggPT09IDAgJiYgIXJlY2lwZURldGFpbHNTZXJ2aWNlLm5vUG9zRGlzcGxheVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fZm9vdGVyXCJcbiAgICAgICAgIFtjbGFzcy5jZW50ZXJdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCI+XG4gICAgICAgIDwhLS0gQUREIFRPIEJBU0tFVCBDVEEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLnZhbHVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSlcIj5cbiAgICAgICAgICAgIDxpbWcgYWx0PVwiYmFza2V0IGljb25cIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYWRkLXRvLWJhc2tldC1jdGFfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj5Bam91dGVyPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyByZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoIDw9IDFcIj5wcm9kdWl0PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPiAxXCI+cHJvZHVpdHM8L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hZGQtdG8tYmFza2V0LXJlbWFpbmluZy1wcmljZVwiPiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhpZGRlbl09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLnJlbWFpbmluZyB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIShyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSlcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyQudmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hZGQtdG8tYmFza2V0LWN0YSBtaWFtLWRzLWJ1dHRvbiBwcmltYXJ5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXJcIj48L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19yZWNpcGUtaXMtaW4tYmFza2V0LWN0YS1jb250YWluZXJcIlxuICAgICAgICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8IS0tIENPTlRJTlVFIENUQSAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHNlY29uZGFyeSBtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250aW51ZS1zaG9wcGluZy1jdGFcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1oaWRkZW5dPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhX190ZXh0XCIgaTE4bj5Db250aW51ZXIgbWVzIGNvdXJzZXM8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPCEtLSBWSUVXIEJBU0tFVCBDVEEgKE9OTFkgSUYgTk8gU1VQUExJRVIgTU9ERSkgLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHByaW1hcnkgbWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldC1jdGFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldF9fdGV4dFwiIGkxOG4+XG4gICAgICAgICAgICAgIFZvaXIgbW9uIHBhbmllclxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJiYXNrZXQgaWNvblwiIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQmFza2V0LnN2Z1wiLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uXCI+XG4gICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcmljaW5nXG4gICAgICAgICAgW3JlY2lwZUlkXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pZFwiXG4gICAgICAgICAgW3NlcnZlc109XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHNcIlxuICAgICAgICAgIFtmZXRjaFByaWNpbmdPblNjcm9sbF09XCJmYWxzZVwiPlxuICAgICAgICA8L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gUFJJQ0UgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1ByaWNlKCkgJiYgaXNOb3RMb2FkaW5nQW5kTm90UHJlcGFyYXRpb25cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3ByaWNlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19wcmljZS1sYWJlbCBtaWFtLWRzLXRleHQgc2l6ZS1sIHdlaWdodC14eGxcIj5cbiAgICAgICAgICA8bmctbWlhbS1wcmljZVxuICAgICAgICAgICAgW2NsYXNzLmhpZGRlbl09XCIocmVjaXBlRGV0YWlsc1NlcnZpY2UuaW5ncmVkaWVudFRvQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUluZ3JlZGllbnRGcm9tQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFza2V0U3luY2hyb0hhc1BlbmRpZ0FjdGlvbnNcIlxuICAgICAgICAgICAgW3ByaWNlXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLmluQmFza2V0IHwgY3VycmVuY3k6IGN1cnJlbmN5U2VydmljZS5jb2RlXCI+XG4gICAgICAgICAgPC9uZy1taWFtLXByaWNlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWRzLWxvYWRlciBwcmltYXJ5XCIgW2NsYXNzLmhpZGRlbl09XCJcbiAgICAgICAgICAhKChyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucylcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGkxOG4gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19wcmljZS1pbi1iYXNrZXQtbGFiZWwgbWlhbS1kcy10ZXh0IHNpemUteHNcIj5kYW5zIG1vbiBwYW5pZXI8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjwhLS0gQURET04gLS0+XG48bmctbWlhbS1yZWNpcGUtYWRkb25cbiAgKm5nSWY9XCJzaG93QWRkb25cIiBbcmVjaXBlXT0ncmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlJ1xuICAoaGlkZUFkZG9uKT1cInRvZ2dsZUFkZG9uKClcIj48L25nLW1pYW0tcmVjaXBlLWFkZG9uPlxuPCEtLSBSRVBMQUNFIElURU0gUEFHRSAtLT5cbjxuZy1taWFtLXJlcGxhY2UtaXRlbVxuICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJC52YWx1ZVwiXG4gIFtyZWNpcGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCJcbiAgW2Jhc2tldEVudHJ5XT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJC52YWx1ZS5iYXNrZXRFbnRyeVwiXG4gIFtpbmdyZWRpZW50XT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJC52YWx1ZS5pbmdyZWRpZW50XCJcbiAgW2lnbm9yZVNlbGVjdGVkXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJC52YWx1ZS5pZ25vcmVTZWxlY3RlZFwiXG4gIFtsb2FkT25TZWxlY3RdPVwidHJ1ZVwiXG4gIChzZWxlY3RlZCk9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5iYXNrZXRFbnRyeVRvUmVwbGFjZSA9IG51bGw7XCJcbiAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuPlxuPC9uZy1taWFtLXJlcGxhY2UtaXRlbT5cbjwhLS0gTEFTVCBPUkRFUiBNT0RBTCAtLT5cbjxuZy1taWFtLWxhc3Qtb3JkZXItbW9kYWxcbiAgKm5nSWY9XCJkaXNwbGF5TGFzdE9yZGVyTW9kYWxcIlxuICBbZGlzcGxheV09XCJkaXNwbGF5TGFzdE9yZGVyTW9kYWxcIlxuICBbaW5CYXNrZXRdPVwiISFyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVQcmljZS5pbkJhc2tldFwiXG4gIFtvcmRlckhpc3RvcnlEYXRlXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAoY2xvc2UpPVwidG9nZ2xlTGFzdE9yZGVyTW9kYWwoKVwiXG4gIChzdWJtaXQpPVwiY2xvc2VMYXN0T3JkZXJNb2RhbChldmVudFRyYWNlKVwiPlxuPC9uZy1taWFtLWxhc3Qtb3JkZXItbW9kYWw+XG4iXX0=
|
|
926
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtZGV0YWlscy9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1kZXRhaWxzL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTFGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVB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MkI7UUFBM0IsZ0RBQTJCOzt1RkR2UGpCLHNCQUFzQjtjQVBsQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsrYkFFVSxRQUFRO2tCQUFoQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyx3QkFBd0I7a0JBQWhDLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDSSxXQUFXO2tCQUFwQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDdUIsZUFBZTtrQkFBNUMsU0FBUzttQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQW5hbHl0aWNzU2VydmljZSxcbiAgQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2UsXG4gIENvbnRleHRTZXJ2aWNlLFxuICBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgUmVjaXBlc1NlcnZpY2UsXG4gIFNwb25zb3JCbG9ja1NlcnZpY2UsXG4gIFN1cHBsaWVyc1NlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBTZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3Nlby5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFN0b3JlTG9jYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvc3RvcmUtbG9jYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50VHJhY2UgfSBmcm9tICcuLi8uLi9fdHlwZXMvZXZlbnQtdHJhY2UnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ2luZ3JlZGllbnRzJywgJ3RhZ3MnLCAncmVjaXBlLXN0ZXBzJywgJ3Nwb25zb3JzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnaW5mb3JtYXRpb25hbC1zZW50ZW5jZScsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ251bWJlci1vZi1ndWVzdHMnLCAnZGVzY3JpcHRpb24nLFxuICAgICdpbmZvcm1hdGlvbmFsLXBhZ2UtaHRtbCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJywgJ3Jlc3RpbmctdGltZScsICdvcmRlci1oaXN0b3J5JywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBpbmdyZWRpZW50czogWyduYW1lJywgJ3F1YW50aXR5JywgJ3VuaXQnLCAnYWN0aXZlJywgJ2ZvcmNlZC1lYW5zJywgJ3BpY3R1cmUtdXJsJywgJ3Bvc2l0aW9uJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnLCAnaWNvbi11cmwnLCAnbmFtZSddLFxuICAncmVjaXBlLXN0ZXBzJzogWydkZXNjcmlwdGlvbicsICdzdGVwLW51bWJlciddLFxuICBzcG9uc29yczogWydsb2dvLXVybCcsICduYW1lJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZURldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSBndWVzdE51bWJlcjogbnVtYmVyO1xuICBASW5wdXQoKSBwcmV2aWV3QWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGluZ3JlZGllbnRzUGljdHVyZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgZm9yY2VEaXNwbGF5VGFnczogYm9vbGVhbjsgLy8gT3ZlcnJpZGUgZ2xvYmFsIHNldHRpbmcgaWYgbmVjZXNhcnlcbiAgQElucHV0KCkgZGlzcGxheVRhZ3NJY29ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHN0ZXBzT25MZWZ0U2lkZSA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBkZXRhaWwgaW4gNCBxdWFydGVycyBpbnN0ZWFkIG9mIDIgaGFsdmVzXG4gIEBJbnB1dCgpIGNvb2tpbmdUaW1lQXNQcmltYXJ5SW5mbyA9IGZhbHNlOyAvLyBJZiB0cnVlLCBkaXNwbGF5IHRoZSBjb29raW5nIHRpbWUgbmV4dCB0byB0b3RhbCB0aW1lXG4gIEBJbnB1dCgpIG1vcmVSZWNpcGVzSW1hZ2VVUkw6IHN0cmluZztcbiAgQElucHV0KCkgcHJpY2luZ0d1ZXN0c1RleHQgPSAncGFyLXBlcnNvbm5lJztcbiAgQE91dHB1dCgpIHJlY2lwZUFkZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWNpcGVFcnJvcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2xvc2VEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ3RvcENvbnRhaW5lckltZycpIHRvcENvbnRhaW5lckltZzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcmVtb3ZlZEluZ3JlZGllbnRzOiBJbmdyZWRpZW50W10gPSBbXTtcbiAgaXNNb2JpbGUgPSBmYWxzZTtcbiAgZGlzcGxheVRhZ3MgPSBmYWxzZTtcbiAgc2hvd0FkZG9uID0gZmFsc2U7XG4gIHNob3dTdG9yZVNlbGVjdG9yID0gZmFsc2U7XG4gIGlzUmVjaXBlRmV0Y2hlZCA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgcGxheWVyV2lkdGg7XG4gIHBsYXllckhlaWdodDtcbiAgcHJpbWFyeUJ1dHRvbkNsaWNrZWQkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBzaG93VmlkZW87XG4gIGFkZEJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgdGl0bGVJbkhlYWRlciA9IGZhbHNlO1xuICBkaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSBmYWxzZTtcbiAgc3BvbnNvckhhc1N0b3J5dGVsbGluZyA9IGZhbHNlO1xuICB0aXRsZTogSFRNTEVsZW1lbnQ7XG4gIGNvbnRlbnQ6IEhUTUxFbGVtZW50O1xuICBhY3RpdmVUYWJJbmRleCA9IDA7XG4gIGluaXRpYWxUYWJJbmRleCA9IDA7XG4gIHBsYXllclZhcnM6IFlULlBsYXllclZhcnMgPSB7XG4gICAgY29udHJvbHM6IDEsXG4gICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgcmVsOiAwLFxuICAgIHNob3dpbmZvOiAwXG4gIH07XG4gIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uOiBib29sZWFuO1xuICByZWNpcGVEZXRhaWxzT3BlblRpbWVzdGFtcDogbnVtYmVyO1xuICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzcG9uc29yQmxvY2tzU2VydmljZTogU3BvbnNvckJsb2NrU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIHJlY2lwZURldGFpbHNTZXJ2aWNlOiBSZWNpcGVEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHNlb1NlcnZpY2U6IFNlb1NlcnZpY2UsXG4gICAgcHVibGljIHN0b3JlTG9jYXRvclNlcnZpY2U6IFN0b3JlTG9jYXRvclNlcnZpY2UsXG4gICAgcHVibGljIGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICAgIHB1YmxpYyBiYXNrZXRTeW5jaHJvU2VydmljZTogQmFza2V0c1N5bmNocm9uaXplclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMTtcbiAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gMTtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnN0b3JlTG9jYXRvclNlcnZpY2Uuc3RvcmVMb2NhdG9yT3BlbmVkJC5zdWJzY3JpYmUoc3RvcmVMb2NhdG9yT3BlbmVkID0+IHtcbiAgICAgICAgdGhpcy5zaG93U3RvcmVTZWxlY3RvciA9IHN0b3JlTG9jYXRvck9wZW5lZDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSksXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucHJvZHVjdHNMb2FkaW5nJC5waXBlKFxuICAgICAgICBtYXAoKHByb2R1Y3RzTG9hZGluZykgPT4gIXByb2R1Y3RzTG9hZGluZyAmJiAhdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5vbmx5U2hvd1ByZXBhcmF0aW9uKSxcbiAgICAgICkuc3Vic2NyaWJlKChzaG93OiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNOb3RMb2FkaW5nQW5kTm90UHJlcGFyYXRpb24gPSBzaG93O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMuc3RvcmVMb2NhdG9yU2VydmljZS5uZXdTdG9yZVNlbGVjdGVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZldGNoUmVjaXBlKHRoaXMucmVjaXBlSWQpO1xuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluaXREZWZhdWx0U3RhdGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5pc1NtYWxsU2NyZWVuJC5zdWJzY3JpYmUoaXNTbWFsbCA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBpc1NtYWxsO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UucmVjaXBlRGV0YWlsc1RhYkluZGV4JC5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZClcbiAgICAgICkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuaW5pdGlhbFRhYkluZGV4ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlJCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVGb290ZXJEaXNwbGF5JCxcbiAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0J5Q2F0ZWdvcnkkLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnByb2R1Y3RzTG9hZGluZyQsXG4gICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UucG9zJCxcbiAgICAgICkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvU2VydmljZS5oYXNQZW5kaW5nQWN0aW9ucygpLnN1YnNjcmliZShoYXNBY3Rpb25zID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucyA9IGhhc0FjdGlvbnM7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnN1YnNjcmliZSgoaXNQb3NWYWxpZCkgPT4ge1xuICAgICAgICAgIGlmICghaXNQb3NWYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLnN0b3JlTG9jYXRvck9wZW5lZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKTsgLy8gd2UgbmVlZCB0byBkZXRlY3QgYSBjaGFuZ2UgdGhhdCBpcyBpbiBhIHN1YnNjcmliZSBhbmQgdGh1cyBhc3luY1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlY2lwZUlkICYmIHRoaXMucmVjaXBlSWQ/Lmxlbmd0aCA+IDAgJiYgISghdGhpcy5wb3NTZXJ2aWNlLnBvcyQuZ2V0VmFsdWUoKSAmJiB0aGlzLmNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXIpKSB7XG4gICAgICB0aGlzLnJlY2lwZURldGFpbHNPcGVuVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZmV0Y2hSZWNpcGUodGhpcy5yZWNpcGVJZCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmZvcmNlRGlzcGxheVRhZ3MgIT09IHRoaXMuZGlzcGxheVRhZ3MpIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmZvcmNlRGlzcGxheVRhZ3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheVRhZ3MgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnRhZ3NPblJlY2lwZXNFbmFibGVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwc09uTGVmdFNpZGUpIHtcbiAgICAgIHRoaXMuY29va2luZ1RpbWVBc1ByaW1hcnlJbmZvID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IGZhbHNlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VvU2VydmljZS5yZW1vdmVTRU9EYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hSZWNpcGUoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldChpZCwge1xuICAgICAgICBpbmNsdWRlOiByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgZmllbGRzOiByZWNpcGVTcGFyc2VGaWVsZHNcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LmlzX2xvYWRpbmcpLFxuICAgICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnRvdGFsUHJvZHVjdHMkLm5leHQocmVzdWx0LnJlbGF0aW9uc2hpcHMuaW5ncmVkaWVudHMuZGF0YS5sZW5ndGgpO1xuICAgICAgICAgIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGlmICh0aGlzLmNvbnRleHRTZXJ2aWNlLnNlb0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VvU2VydmljZS5zZXRTRU9EYXRhKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSArdGhpcy5ndWVzdE51bWJlciB8fCArcmVzdWx0Lmd1ZXN0cztcbiAgICAgICAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmdldFByb2R1Y3RzKHRydWUpO1xuICAgICAgICAgIHRoaXMuc2VuZFBhZ2V2aWV3RXZlbnQoKTtcbiAgICAgICAgICB0aGlzLnNldHVwWW91dHViZVBsYXllcigpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmlzU3BvbnNvcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcG9uc29yQmxvY2tzU2VydmljZS5hbGwoe1xuICAgICAgICAgICAgICByZW1vdGVmaWx0ZXI6IHsgJ3Nwb25zb3ItaWQnOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5zcG9uc29yc1swXS5pZCB9LFxuICAgICAgICAgICAgICBwYWdlOiB7IG51bWJlcjogMSwgc2l6ZTogMSB9XG4gICAgICAgICAgICB9KS5waXBlKFxuICAgICAgICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB0aGlzLnNwb25zb3JIYXNTdG9yeXRlbGxpbmcgPSAhIXJlc3VsdC5kYXRhLmxlbmd0aClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc1JlY2lwZUZldGNoZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuXG4gICAgKTtcbiAgfVxuXG4gIHNldHVwWW91dHViZVBsYXllcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dWaWRlbyA9IGZhbHNlOyAvLyBmb3JjZSByZWxvYWQgdmlkZW8gcGxheWVyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2hvd1ZpZGVvID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy52aWRlb0lkO1xuICAgIGlmICh0aGlzLnNob3dWaWRlbykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh3aW5kb3cuWVQ/LlBsYXllcikge1xuICAgICAgICAgIHRoaXMucGxheWVyV2lkdGggPSB0aGlzLnRvcENvbnRhaW5lckltZz8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgdGhpcy5wbGF5ZXJIZWlnaHQgPSBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjQ4LCB0aGlzLnBsYXllcldpZHRoICogMzkwIC8gNjQwKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXR1cFlvdXR1YmVQbGF5ZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSwgNTApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IHRoZSBsaXN0ZW5lciBvbiBzY3JvbGwgc28gdGhlIG1vZGFsIGNhbiBoaWRlIHRoZSBjbG9zZSBpY29uXG4gICAqL1xuICBpbml0U2Nyb2xsTGlzdGVuZXJPblRpdGxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50aXRsZSkge1xuICAgICAgdGhpcy50aXRsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaWFtLXJlY2lwZS1kZXRhaWxzX190aXRsZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRlbnQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgIXRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgdGhpcy5jb250ZW50ICYmIHRoaXMudGl0bGUpIHtcbiAgICAgIC8vIEZvciBtb3JlIHByZWNpc2lvbiBvbiB0aXRsZSBzY3JvbGwgZGV0ZWN0aW9uLCB3ZSB3YW50IHRvIHRyaWdnZXIgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB1c2VyIHNjcm9sbHMgNSUgb2YgdGhlIGNvbnRlbnRcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IFsuLi5BcnJheSgyMCkua2V5cygpXS5tYXAoeCA9PiB4IC8gMjApO1xuICAgICAgLy8gUmVjZWl2ZSBhbiBldmVudCBlYWNoIHRpbWUgdGhlIHRpdGxlIGVudGVycy9sZWF2ZXMgdGhlIHZpZXdwb3J0XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVUaXRsZUluSGVhZGVyKCk7XG4gICAgICB9LCB7IHRocmVzaG9sZCB9KTtcbiAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVRpdGxlSW5IZWFkZXIoKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZUluSGVhZGVyID0gdGhpcy50aXRsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgPD0gNDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdG9nZ2xlTGFzdE9yZGVyTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWwgPSAhdGhpcy5kaXNwbGF5TGFzdE9yZGVyTW9kYWw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdXBkYXRlR3Vlc3RzKGd1ZXN0czogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID09PSBndWVzdHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSBndWVzdHM7XG4gICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVHdWVzdHModGhpcy5ldmVudFRyYWNlKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB0b2dnbGVBZGRvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBZGRvbiA9ICF0aGlzLnNob3dBZGRvbjtcbiAgICBpZiAodGhpcy5zaG93QWRkb24pIHtcbiAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAgICdzcG9uc29yLmRpc3BsYXknLFxuICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUhlbHBlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLnRvZ2dsZUhlbHBlcigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHRvZ2dsZUJ1dHRvbkxvYWRlcih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWRkQnV0dG9uTG9hZGluZyA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9yZGVyQWdhaW4oZXZlbnRUcmFjZTogRXZlbnRUcmFjZSk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFsQ29udGVudEVsbTogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWlhbS1tb2RhbF9fY29udGVudCcpO1xuICAgIGlmIChtb2RhbENvbnRlbnRFbG0pIHtcbiAgICAgIG1vZGFsQ29udGVudEVsbS5zY3JvbGxUb3AgPSAwO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gMDtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgY2xvc2VMYXN0T3JkZXJNb2RhbChldmVudFRyYWNlOiBFdmVudFRyYWNlKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVMYXN0T3JkZXJNb2RhbCgpO1xuICAgIHRoaXMub3JkZXJBZ2FpbihldmVudFRyYWNlKTtcbiAgfVxuXG4gIGNvbmZpcm0oKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuY29udGludWUnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICByZWNpcGVfaWQ6IHRoaXMucmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLmlkXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIGNsb3NlKG9wZW5CYXNrZXQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICAncmVjaXBlLmNsb3NlJyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5pZFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5vbkNsb3NlKG9wZW5CYXNrZXQpO1xuICB9XG5cbiAgb25DbG9zZShvcGVuQmFza2V0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLnBhZ2V2aWV3RXZlbnRXYXNTZW50ID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZUxvY2F0b3JTZXJ2aWNlLmNsb3NlU3RvcmVMb2NhdG9yKCk7XG4gICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuaW5pdGlhbFRhYkluZGV4O1xuICAgIGlmIChvcGVuQmFza2V0KSB7XG4gICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLm9wZW5CYXNrZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5oaWRlKCk7XG4gICAgfVxuICAgIHRoaXMuY2xvc2VEZXRhaWxzLmVtaXQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcmludCgpOiB2b2lkIHtcbiAgICB3aW5kb3cucHJpbnQoKTtcbiAgfVxuXG4gIHNlbmRQYWdldmlld0V2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCkge1xuICAgICAgdGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5wYWdldmlld0V2ZW50V2FzU2VudCA9IHRydWU7XG4gICAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1ByaWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUgJiYgdGhpcy5kaXNwbGF5UHJpY2luZyAmJiB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmhhc0FkZGVkQVByb2R1Y3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGl2ZVRhYkluZGV4ID8gJ2Nvb2tpbmcnIDogJ3Nob3BwaW5nJztcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGByZWNpcGVzLyR7dGhpcy5yZWNpcGVJZCA/PyAwfS8ke3RoaXMuZ2V0QWN0aXZlVGFiSW5kZXhOYW1lKHRoaXMuYWN0aXZlVGFiSW5kZXgpfWA7XG4gIH1cblxuICBjaGVja1BvcygpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZURldGFpbHNTZXJ2aWNlLmNoZWNrSWZQb3NJc0luaXRpYWxpemVkQW5kVmFsaWQoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZWxlY3RUYWIoYWN0aXZlVGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYkluZGV4ID09PSBhY3RpdmVUYWJJbmRleCkgeyByZXR1cm47IH1cblxuICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoXG4gICAgICBgcmVjaXBlLiR7dGhpcy5nZXRBY3RpdmVUYWJJbmRleE5hbWUoYWN0aXZlVGFiSW5kZXgpfS5kaXNwbGF5YCxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZUlkIH1cbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBhY3RpdmVUYWJJbmRleDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIhc2hvd0FkZG9uICYmICEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc1wiXG4gIFtjbGFzcy5oaWRkZW5dPVwic2hvd1N0b3JlU2VsZWN0b3JcIj5cbiAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlXCIgY2xhc3M9XCJtaWFtLWRzLWxvYWRlciBtaWFtLXJlY2lwZS1kZXRhaWxzX19sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2NvbnRhaW5lclwiXG4gICAgICAgKm5nSWY9XCIhKHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZUxvYWRpbmckLnZhbHVlKSAmJiByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj5cbiAgICA8IS0tIEJBTk5FUiBDT05UQUlORVIgLS0+XG4gICAgPGRpdiAjdG9wQ29udGFpbmVySW1nIFtjbGFzcy5uby1zdXBwbGllcl09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlXCI+XG4gICAgICA8IS0tIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Jhbm5lcl9idXR0b25zXCI+XG4gICAgICAgIDwhLS0gVE9QIEJVVFRPTlMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX190b3AtYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICA8IS0tIERFU0tUT1AgQ0xPU0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIkZlcm1lclwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwhLS0gTU9CSUxFIEhFQURFUiBCVVRUT05TIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19tb2JpbGUtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDwhLS0gQkFDSyBCVVRUT04gT04gVEhFIExFRlQgLS0+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1idXR0b24gbWlhbS1kcy1idXR0b24gc3F1YXJlIHByaW1hcnkgcmV2ZXJzZVwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYmFjay1pY29uXCJcbiAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL2NoZXZyb24tZG93bi1wcmltYXJ5LnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwhLS0gTElLRSBCVVRUT04gT04gVEhFIFJJR0hUIC0tPlxuICAgICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQudmFsdWVcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICAgICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLW1pYW0tbGlrZS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEdVRVNUIENPVU5URVIgLS0+XG4gICAgICAgIDxuZy1taWFtLWNvdW50ZXItaW5wdXRcbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2d1ZXN0LWNvdW50ZXJcIlxuICAgICAgICAgIFtmbG9hdGluZ109XCJ0cnVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbbWluUmFuZ2VdPVwiMVwiXG4gICAgICAgICAgW2RlYm91bmNlVGltZV09XCIzMDBcIlxuICAgICAgICAgIFtkaXNhYmxlXT1cIihyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJC52YWx1ZSkgfHxcbiAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9uc1wiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCI+XG4gICAgICAgICAgPlxuICAgICAgICA8L25nLW1pYW0tY291bnRlci1pbnB1dD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBQSUNUVVJFIC8gVklERU8gLS0+XG4gICAgICA8aW1nXG4gICAgICAgIFthdHRyLmFsdF09XCInUGhvdG8gZGUgbGEgcmVjZXR0ZSAnICsgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddXCJcbiAgICAgICAgKm5nSWY9XCIhc2hvd1ZpZGVvXCJcbiAgICAgICAgW3NyY109XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGU/LmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXCJcbiAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmVcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3BpY3R1cmUtaW1nXCI+XG4gICAgICA8eW91dHViZS1wbGF5ZXJcbiAgICAgICAgKm5nSWY9XCJzaG93VmlkZW8gJiYgcGxheWVyV2lkdGhcIlxuICAgICAgICBbdmlkZW9JZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUudmlkZW9JZFwiXG4gICAgICAgIFt3aWR0aF09XCJwbGF5ZXJXaWR0aFwiXG4gICAgICAgIFtoZWlnaHRdPVwicGxheWVySGVpZ2h0XCJcbiAgICAgICAgW3BsYXllclZhcnNdPVwicGxheWVyVmFyc1wiXG4gICAgICAgIHRpdGxlPVwiVmlkw6lvIGRlIGxhIHJlY2V0dGVcIlxuICAgICAgPjwveW91dHViZS1wbGF5ZXI+XG4gICAgICA8IS0tIEZpbGlncmFuZSBsb2dvIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19waWN0dXJlX19maWxpZ3JhbmVcIj5cbiAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbc3JjXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFNQT05TT1IgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Nwb25zb3JcIj5cbiAgICAgIDxuZy1taWFtLWFkZG9uLWxpbmtcbiAgICAgICAgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pc1Nwb25zb3JlZCB8fCByZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaW5mb3JtYXRpb25hbFNlbnRlbmNlXCJcbiAgICAgICAgW2hhc1N0b3J5dGVsbGluZ109XCJzcG9uc29ySGFzU3Rvcnl0ZWxsaW5nXCJcbiAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZScgKHNob3dBZGRvbik9J3RvZ2dsZUFkZG9uKCknPjwvbmctbWlhbS1hZGRvbi1saW5rPlxuICAgICAgPGhyIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc3BvbnNvci1zZXBhcmF0b3JcIj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIExBU1QgT1JERVIgQkFER0UgLS0+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5wcm9kdWN0c0xvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19sYXN0LW9yZGVyLWJhZGdlIG1pYW0tZHMtYmFkZ2VcIiAoY2xpY2spPVwidG9nZ2xlTGFzdE9yZGVyTW9kYWwoKVwiIGFyaWEtbGFiZWw9XCJBZmZpY2hlciBsZXMgZMOpdGFpbHMgZGUgbGEgY29tbWFuZGUgcHLDqWPDqWRlbnRlXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9JbmZvc19CbHVlLnN2Z1wiIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fbGFzdC1vcmRlci1iYWRnZS10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+Q29tbWFuZGUgZHUgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPnt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTVElDS1kgSEVBREVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19zdGlja3ktaGVhZGVyXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBUSVRMRSBDT05UQUlORVIgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUtY29udGFpbmVyXCIgbmdNaWFtUmVhY2hUb3AgW3N0aWNreUJ5RGVmYXVsdF09XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICAgIDwhLS0gQkFDSyBCVVRUT04gKE1PQklMRSkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19iYWNrLWJ1dHRvbi1tb2JpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2stYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNtYWxsIHNxdWFyZSBnaG9zdFwiIChjbGljayk9XCJjbG9zZSgpXCIgYXJpYS1sYWJlbD1cIlJldG91clwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2JhY2staWNvblwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvY2hldnJvbi1kb3duLXByaW1hcnkuc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBSRUNJUEUgVElUTEUgLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fdGl0bGUgbWlhbS1kcy10ZXh0IHNpemUteGwgd2VpZ2h0LXh4bFwiIHJvbGU9XCJoZWFkaW5nXCIgYXJpYS1sZXZlbD1cIjFcIj5cbiAgICAgICAge3sgcmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlPy5hdHRyaWJ1dGVzWyd0aXRsZSddIH19XG4gICAgICA8L3NwYW4+XG4gICAgICAgIDwhLS0gUkVDSVBFIEFDVElPTlMgKExJS0UgLyBDTE9TRSBNT0RBTCktLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FjdGlvbnNfX2ljb25cIj5cbiAgICAgICAgICA8IS0tIExJS0UgQlVUVE9OIC0tPlxuICAgICAgICAgIDxuZy1taWFtLWxpa2UtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2xpa2UtYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKHVzZXJTZXJ2aWNlLmlzTG9nZ2VkJC52YWx1ZSkgJiYgIWNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIlxuICAgICAgICAgICAgW3JlY2lwZV09J3JlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZSdcbiAgICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwhLS0gQ0xPU0UgTU9EQUwgQlVUVE9OIChERVNLVE9QKSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19faGlkZWFibGUtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fY2xvc2UtYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHNxdWFyZSBnaG9zdFwiIGFyaWEtbGFiZWw9XCJGZXJtZXJcIj5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Nyb3NzX3ByaW1hcnkuc3ZnXCIvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFNUT1JFIExPQ0FUT1IgTElOSyAtLT5cbiAgICAgIDxuZy1taWFtLXN0b3JlLWxvY2F0b3ItbGluayAqbmdJZj1cImNvbnRleHRTZXJ2aWNlLm5vU3VwcGxpZXJcIj48L25nLW1pYW0tc3RvcmUtbG9jYXRvci1saW5rPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gUkVDSVBFIEJBU0lDIElORk9STUFUSU9OUyArIFRBQlMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCI+XG4gICAgICA8IS0tICBSRUNJUEUgQkFTSUMgSU5GT1JNQVRJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3NcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19pbmZvc1wiXG4gICAgICAgIFtyZWNpcGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlXCI+XG4gICAgICA8L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5mb3M+XG4gICAgICA8IS0tIFRBQlMgVE8gU1dJVENIIEJFVFdFRU4gQkFTS0VUIEFORCBJTlNUUlVDVElPTlMgLS0+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogcmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvbn1cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3RhYnNcIj5cbiAgICAgICAgPG5nLW1pYW0tc2xpZGVyLXRhYnNcbiAgICAgICAgICBpMThuLXRhYnNcbiAgICAgICAgICB0YWJzPVwiSmUgZmFpcyBtZXMgY291cnNlcywgSmUgY3Vpc2luZVwiXG4gICAgICAgICAgW3NlbGVjdGVkVGFiSW5kZXhdPVwiYWN0aXZlVGFiSW5kZXhcIlxuICAgICAgICAgIChzZWxlY3RlZFRhYkluZGV4Q2hhbmdlKT1cInNlbGVjdFRhYigkZXZlbnQpXCI+XG4gICAgICAgIDwvbmctbWlhbS1zbGlkZXItdGFicz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gVEFCIEZPUiBQUk9EVUNUUyBQSUNLRVIgT1IgTk8gUE9TIERJU1BMQVkgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVRhYkluZGV4ID09PSAwXCI+XG4gICAgICA8bmctbWlhbS1wcm9kdWN0cy1waWNrZXJcbiAgICAgICAgKm5nSWY9XCIhcmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5ICYmICFyZWNpcGVEZXRhaWxzU2VydmljZS5pbnZhbGlkUG9zRGlzcGxheVwiXG4gICAgICAgIChjbG9zZU1vZGFsKT1cImNsb3NlKClcIlxuICAgICAgICAoZ3Vlc3RzQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCJcbiAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3Byb2R1Y3RzLXBpY2tlclwiXG4gICAgICA+XG4gICAgICA8L25nLW1pYW0tcHJvZHVjdHMtcGlja2VyPlxuICAgICAgPG5nLW1pYW0tbm8tcG9zLXNlbGVjdGVkXG4gICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uubm9Qb3NEaXNwbGF5IHx8IHJlY2lwZURldGFpbHNTZXJ2aWNlLmludmFsaWRQb3NEaXNwbGF5XCJcbiAgICAgICAgW2ludmFsaWRQb3NdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuaW52YWxpZFBvc0Rpc3BsYXlcIlxuICAgICAgICAocG9zU2VsZWN0ZWQpPVwiY2hlY2tQb3MoKVwiXG4gICAgICA+PC9uZy1taWFtLW5vLXBvcy1zZWxlY3RlZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIFRBQiBGT1IgSU5TVFJVQ1RJT05TIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVUYWJJbmRleCA9PT0gMVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJlcGFyYXRpb24tdGFiXCI+XG4gICAgICA8IS0tIFJFQ0lQRSBJTkdSRURJRU5UUyBUWVBFIEFORCBRVUFOVElUSUVTIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtaW5ncmVkaWVudHNcbiAgICAgICAgW2luZ3JlZGllbnRzXT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50c1wiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1kZXRhaWxzLWluZ3JlZGllbnRzPlxuICAgICAgPCEtLSBSRUNJUEUgSU5TVFJVQ1RJT05TIC0tPlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHMgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIj48L25nLW1pYW0tcmVjaXBlLWRldGFpbHMtc3RlcHM+XG4gICAgICA8IS0tIE9SREVSIEFHQUlOIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoID4gMCAmJiAhIXJlY2lwZURldGFpbHNTZXJ2aWNlLm9yZGVySGlzdG9yeURhdGVcIlxuICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19vcmRlci1hZ2Fpbi10ZXh0c1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCIgaTE4bj5DZXR0ZSByZWNldHRlIHZvdXMgYSBwbHUgPzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLXRleHQgbWlhbS1kcy10ZXh0IHNpemUtbVwiIGkxOG4+XG4gICAgICAgICAgICBOb3VzIGF2b25zIGNvbnNlcnbDqSB2b3RyZSBkZXJuacOocmUgc8OpbGVjdGlvbiBkZSBwcm9kdWl0c1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX29yZGVyLWFnYWluLWN0YSBtaWFtLWRzLWJ1dHRvbiBzZWNvbmRhcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5hbGxJbmdyZWRpZW50c1RvQmFza2V0TG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9yZGVyQWdhaW4oZXZlbnRUcmFjZSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlIHx8XG4gICAgICAgICAgICAocmVjaXBlRGV0YWlsc1NlcnZpY2UudXBkYXRlSW5ncmVkaWVudEZyb21CYXNrZXRMb2FkaW5nJCB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgKGJhc2tldFN5bmNocm9TZXJ2aWNlLmhhc1BlbmRpbmdBY3Rpb25zKCkgfCBhc3luYyk7IGVsc2Ugc2hvd0ljb25cIlxuICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0ljb24+XG4gICAgICAgICAgICA8aW1nIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQmFza2V0X0JsdWUuc3ZnXCIvPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPHNwYW4gaTE4bj5Db21tYW5kZXIgw6Agbm91dmVhdTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZPT1RFUiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlVGFiSW5kZXggPT09IDAgJiYgIXJlY2lwZURldGFpbHNTZXJ2aWNlLm5vUG9zRGlzcGxheVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fZm9vdGVyXCJcbiAgICAgICAgIFtjbGFzcy5jZW50ZXJdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCI+XG4gICAgICAgIDwhLS0gQUREIFRPIEJBU0tFVCBDVEEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiEocmVjaXBlRGV0YWlsc1NlcnZpY2UuYWxsSW5ncmVkaWVudHNUb0Jhc2tldExvYWRpbmckLnZhbHVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFkZEFsbEluZ3JlZGllbnRzVG9CYXNrZXQoZXZlbnRUcmFjZSlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0ZXIgdG91cyBsZXMgaW5ncsOpZGllbnRzIGF1IHBhbmllclwiPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fYWRkLXRvLWJhc2tldC1jdGFfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4bj5Bam91dGVyPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyByZWNpcGVEZXRhaWxzU2VydmljZS5yZW1haW5pbmdCYXNrZXRFbnRyaWVzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gaTE4biAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLnJlbWFpbmluZ0Jhc2tldEVudHJpZXMubGVuZ3RoIDw9IDFcIj5wcm9kdWl0PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBpMThuICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPiAxXCI+cHJvZHVpdHM8L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19hZGQtdG8tYmFza2V0LXJlbWFpbmluZy1wcmljZVwiPiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhpZGRlbl09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLnJlbWFpbmluZyB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tZHMtbG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIShyZWNpcGVEZXRhaWxzU2VydmljZS5pbmdyZWRpZW50VG9CYXNrZXRMb2FkaW5nJC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmFsbEluZ3JlZGllbnRzVG9CYXNrZXRMb2FkaW5nJC52YWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFqb3V0IGVuIGNvdXJzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1sYWJlbD1cIkNoYXJnZW1lbnQgZW4gY291cnNcIj48L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19yZWNpcGUtaXMtaW4tYmFza2V0LWN0YS1jb250YWluZXJcIlxuICAgICAgICAgICAgICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVtYWluaW5nQmFza2V0RW50cmllcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8IS0tIENPTlRJTlVFIENUQSAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHNlY29uZGFyeSBtaWFtLXJlY2lwZS1kZXRhaWxzX19jb250aW51ZS1zaG9wcGluZy1jdGFcIlxuICAgICAgICAgICAgW2NsYXNzLm1vYmlsZS1oaWRkZW5dPVwiY29udGV4dFNlcnZpY2Uubm9TdXBwbGllclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX2FkZC10by1iYXNrZXQtY3RhX190ZXh0XCIgaTE4bj5Db250aW51ZXIgbWVzIGNvdXJzZXM8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPCEtLSBWSUVXIEJBU0tFVCBDVEEgKE9OTFkgSUYgTk8gU1VQUExJRVIgTU9ERSkgLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5ub1N1cHBsaWVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIHByaW1hcnkgbWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldC1jdGFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fc2VlLWJhc2tldF9fdGV4dFwiIGkxOG4+XG4gICAgICAgICAgICAgIFZvaXIgbW9uIHBhbmllclxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0Jhc2tldC5zdmdcIi8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub25seVNob3dQcmVwYXJhdGlvblwiPlxuICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUuaWRcIlxuICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UucmVjaXBlLm1vZGlmaWVkR3Vlc3RzXCJcbiAgICAgICAgICBbZmV0Y2hQcmljaW5nT25TY3JvbGxdPVwiZmFsc2VcIj5cbiAgICAgICAgPC9uZy1taWFtLXJlY2lwZS1wcmljaW5nPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8IS0tIFBSSUNFIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dQcmljZSgpICYmIGlzTm90TG9hZGluZ0FuZE5vdFByZXBhcmF0aW9uXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1kZXRhaWxzX19wcmljZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZGV0YWlsc19fcHJpY2UtbGFiZWwgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcHJpY2VcbiAgICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWNpcGVEZXRhaWxzU2VydmljZS51cGRhdGVJbmdyZWRpZW50RnJvbUJhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2tldFN5bmNocm9IYXNQZW5kaWdBY3Rpb25zXCJcbiAgICAgICAgICAgIFtwcmljZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVQcmljZS5pbkJhc2tldCB8IGN1cnJlbmN5OiBjdXJyZW5jeVNlcnZpY2UuY29kZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1wcmljZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1kcy1sb2FkZXIgcHJpbWFyeVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiEoKHJlY2lwZURldGFpbHNTZXJ2aWNlLmluZ3JlZGllbnRUb0Jhc2tldExvYWRpbmckLnZhbHVlKSB8fFxuICAgICAgICAgICAgICAgKHJlY2lwZURldGFpbHNTZXJ2aWNlLnVwZGF0ZUluZ3JlZGllbnRGcm9tQmFza2V0TG9hZGluZyQudmFsdWUpIHx8XG4gICAgICAgICAgICAgICBiYXNrZXRTeW5jaHJvSGFzUGVuZGlnQWN0aW9ucylcIlxuICAgICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhcmdlbWVudCBlbiBjb3Vyc1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gaTE4biBjbGFzcz1cIm1pYW0tcmVjaXBlLWRldGFpbHNfX3ByaWNlLWluLWJhc2tldC1sYWJlbCBtaWFtLWRzLXRleHQgc2l6ZS14c1wiPmRhbnMgbW9uIHBhbmllcjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPCEtLSBBRERPTiAtLT5cbjxuZy1taWFtLXJlY2lwZS1hZGRvblxuICAqbmdJZj1cInNob3dBZGRvblwiIFtyZWNpcGVdPSdyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGUnXG4gIChoaWRlQWRkb24pPVwidG9nZ2xlQWRkb24oKVwiPjwvbmctbWlhbS1yZWNpcGUtYWRkb24+XG48IS0tIFJFUExBQ0UgSVRFTSBQQUdFIC0tPlxuPG5nLW1pYW0tcmVwbGFjZS1pdGVtXG4gICpuZ0lmPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlXCJcbiAgW3JlY2lwZV09XCJyZWNpcGVEZXRhaWxzU2VydmljZS5yZWNpcGVcIlxuICBbYmFza2V0RW50cnldPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmJhc2tldEVudHJ5XCJcbiAgW2luZ3JlZGllbnRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmluZ3JlZGllbnRcIlxuICBbaWdub3JlU2VsZWN0ZWRdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2UuYmFza2V0RW50cnlUb1JlcGxhY2UkLnZhbHVlLmlnbm9yZVNlbGVjdGVkXCJcbiAgW2xvYWRPblNlbGVjdF09XCJ0cnVlXCJcbiAgKHNlbGVjdGVkKT1cInJlY2lwZURldGFpbHNTZXJ2aWNlLmJhc2tldEVudHJ5VG9SZXBsYWNlID0gbnVsbDtcIlxuICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4+XG48L25nLW1pYW0tcmVwbGFjZS1pdGVtPlxuPCEtLSBMQVNUIE9SREVSIE1PREFMIC0tPlxuPG5nLW1pYW0tbGFzdC1vcmRlci1tb2RhbFxuICAqbmdJZj1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtkaXNwbGF5XT1cImRpc3BsYXlMYXN0T3JkZXJNb2RhbFwiXG4gIFtpbkJhc2tldF09XCIhIXJlY2lwZURldGFpbHNTZXJ2aWNlLnJlY2lwZVByaWNlLmluQmFza2V0XCJcbiAgW29yZGVySGlzdG9yeURhdGVdPVwicmVjaXBlRGV0YWlsc1NlcnZpY2Uub3JkZXJIaXN0b3J5RGF0ZVwiXG4gIChjbG9zZSk9XCJ0b2dnbGVMYXN0T3JkZXJNb2RhbCgpXCJcbiAgKHN1Ym1pdCk9XCJjbG9zZUxhc3RPcmRlck1vZGFsKGV2ZW50VHJhY2UpXCI+XG48L25nLW1pYW0tbGFzdC1vcmRlci1tb2RhbD5cbiJdfQ==
|