@k8slens/element-components 3.9.1 → 3.9.4
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/dist/index.js +13 -13
- package/dist/src/elements.d.ts +91 -91
- package/dist/src/plugins/draggable-and-droppable/make-sure-drag-and-drop-events-have-time-to-happen/make-sure-drag-and-drop-events-have-time-to-happen.default-override.d.ts.map +1 -1
- package/dist/src/plugins/tooltip/tooltip-delay/tooltip-delay.default-override.d.ts.map +1 -1
- package/dist/src/remove-css-module-clutter.default-override.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -8
package/dist/index.js
CHANGED
|
@@ -1285,9 +1285,9 @@ __export(test_util_runnable_injectable_exports, {
|
|
|
1285
1285
|
});
|
|
1286
1286
|
var import_test_utils = require("@k8slens/test-utils");
|
|
1287
1287
|
|
|
1288
|
-
// import-glob:./**/*.global-override-for-injectable.(ts|tsx)/proof-of-uniqueness/
|
|
1288
|
+
// import-glob:./**/*.global-override-for-injectable.(ts|tsx)/proof-of-uniqueness/7b87622b-ad4a-4fc0-946c-f4ab1a006944
|
|
1289
1289
|
var modules = [];
|
|
1290
|
-
var
|
|
1290
|
+
var b87622b_ad4a_4fc0_946c_f4ab1a006944_default = modules;
|
|
1291
1291
|
|
|
1292
1292
|
// src/plugins/draggable-and-droppable/make-sure-drag-and-drop-events-have-time-to-happen/make-sure-drag-and-drop-events-have-time-to-happen.default-override.ts
|
|
1293
1293
|
var make_sure_drag_and_drop_events_have_time_to_happen_default_override_exports = {};
|
|
@@ -1316,19 +1316,19 @@ var remove_css_module_clutter_default_override_default = () => {
|
|
|
1316
1316
|
removeCssModuleClutterForUnitTesting();
|
|
1317
1317
|
};
|
|
1318
1318
|
|
|
1319
|
-
// import-glob:./**/*.default-override.(ts|tsx)/proof-of-uniqueness/
|
|
1319
|
+
// import-glob:./**/*.default-override.(ts|tsx)/proof-of-uniqueness/c9f91cef-fa7b-4c4b-bb02-fefcaf80369b
|
|
1320
1320
|
var modules2 = [make_sure_drag_and_drop_events_have_time_to_happen_default_override_exports, tooltip_delay_default_override_exports, remove_css_module_clutter_default_override_exports];
|
|
1321
|
-
var
|
|
1321
|
+
var c9f91cef_fa7b_4c4b_bb02_fefcaf80369b_default = modules2;
|
|
1322
1322
|
|
|
1323
1323
|
// src/test-util-runnable.injectable.ts
|
|
1324
1324
|
var testUtilRunnableInjectable = (0, import_test_utils.getTestUtilRunnableForOverrides)({
|
|
1325
|
-
globalOverrides:
|
|
1326
|
-
defaultOverrides:
|
|
1325
|
+
globalOverrides: b87622b_ad4a_4fc0_946c_f4ab1a006944_default,
|
|
1326
|
+
defaultOverrides: c9f91cef_fa7b_4c4b_bb02_fefcaf80369b_default
|
|
1327
1327
|
});
|
|
1328
1328
|
|
|
1329
|
-
// import-glob:./**/*.injectable.(ts|tsx)/proof-of-uniqueness/
|
|
1329
|
+
// import-glob:./**/*.injectable.(ts|tsx)/proof-of-uniqueness/b5bc2b95-791e-44fa-b5f9-8f4b7bfd55f6
|
|
1330
1330
|
var modules3 = [is_mac_injectable_exports, on_right_trigger_injectable_exports, dragged_item_state_injectable_exports, item_being_dragged_injectable_exports, make_sure_drag_and_drop_events_have_time_to_happen_injectable_exports, focusable_html_element_ref_set_injectable_exports, focusable_item_state_injectable_exports, keyboard_navigation_state_injectable_exports, do_focus_injectable_exports, item_being_focused_injectable_exports, computed_now_injectable_exports, hovered_item_state_injectable_exports, item_being_hovered_injectable_exports, context_is_being_hovered_injectable_exports, tooltip_delay_injectable_exports, test_util_runnable_injectable_exports];
|
|
1331
|
-
var
|
|
1331
|
+
var b5bc2b95_791e_44fa_b5f9_8f4b7bfd55f6_default = modules3;
|
|
1332
1332
|
|
|
1333
1333
|
// lens-stylesheet:/home/runner/work/lens-desktop-monorepo/lens-desktop-monorepo/packages/technical-features/_low-level/element-components/src/plugins/anchor/anchor.module.scss
|
|
1334
1334
|
var anchor_module_exports = {};
|
|
@@ -1387,7 +1387,7 @@ __export(draggable_module_exports, {
|
|
|
1387
1387
|
stylesheet: () => stylesheet16
|
|
1388
1388
|
});
|
|
1389
1389
|
var import_stylesheet_contracts16 = require("@k8slens/stylesheet-contracts");
|
|
1390
|
-
var stylesheet16 = (0, import_stylesheet_contracts16.asStylesheet)({ id: "@k8slens/element-components/src/plugins/draggable-and-droppable/draggable.module.scss", css: ".draggable-module__draggable___bjCA3 img,\
|
|
1390
|
+
var stylesheet16 = (0, import_stylesheet_contracts16.asStylesheet)({ id: "@k8slens/element-components/src/plugins/draggable-and-droppable/draggable.module.scss", css: ".draggable-module__draggable___bjCA3 img,\n.draggable-module__draggable___bjCA3 a {\n -webkit-user-drag: none;\n}" });
|
|
1391
1391
|
var draggable_module_default = { "draggable": "draggable-module__draggable___bjCA3" };
|
|
1392
1392
|
|
|
1393
1393
|
// lens-stylesheet:/home/runner/work/lens-desktop-monorepo/lens-desktop-monorepo/packages/technical-features/_low-level/element-components/src/plugins/faded/faded.module.scss
|
|
@@ -1600,14 +1600,14 @@ var import_stylesheet_contracts37 = require("@k8slens/stylesheet-contracts");
|
|
|
1600
1600
|
var stylesheet37 = (0, import_stylesheet_contracts37.asStylesheet)({ id: "@k8slens/element-components/src/plugins/width/width.module.scss", css: ".width-module__max-width--full___noIkT {\n max-width: 100%;\n}\n.width-module__max-width--content___yksUr {\n max-width: 900px;\n}\n.width-module__max-width--zero___8NUF1 {\n max-width: 0px;\n}\n.width-module__max-width--4xs___gHlLI {\n max-width: 1px;\n}\n.width-module__max-width--3xs___rdoP8 {\n max-width: 2px;\n}\n.width-module__max-width--xxs___jlp8v {\n max-width: 4px;\n}\n.width-module__max-width--xs___kQsWx {\n max-width: 8px;\n}\n.width-module__max-width--s___MgGaz {\n max-width: 12px;\n}\n.width-module__max-width--m___aFzSc {\n max-width: 16px;\n}\n.width-module__max-width--l___iKlaH {\n max-width: 20px;\n}\n.width-module__max-width--xl___4zUdC {\n max-width: 24px;\n}\n.width-module__max-width--xxl___58z3P {\n max-width: 28px;\n}\n.width-module__max-width--3xl___2YXnH {\n max-width: 32px;\n}\n.width-module__max-width--4xl___jFJ9V {\n max-width: 36px;\n}\n.width-module__max-width--5xl___7-VQG {\n max-width: 40px;\n}\n.width-module__max-width--6xl___PS37J {\n max-width: 44px;\n}\n.width-module__max-width--7xl___sSBwk {\n max-width: 48px;\n}\n.width-module__max-width--8xl___V3IHy {\n max-width: 52px;\n}\n.width-module__max-width--9xl___4VWEM {\n max-width: 56px;\n}\n.width-module__max-width--10xl___z97TQ {\n max-width: 60px;\n}\n.width-module__max-width--11xl___jxenX {\n max-width: 64px;\n}\n\n.width-module__min-width___qnlYC {\n /* As wide as the content wants to be, so it never has to wrap to fit its surroundings. */\n}\n.width-module__min-width--fit___2W-TD {\n min-width: max-content;\n}\n.width-module__min-width--zero___9429S {\n min-width: 0px;\n}\n.width-module__min-width--4xs___3TGM- {\n min-width: 1px;\n}\n.width-module__min-width--3xs___R6j32 {\n min-width: 2px;\n}\n.width-module__min-width--xxs___vjKdC {\n min-width: 4px;\n}\n.width-module__min-width--xs___V-L1s {\n min-width: 8px;\n}\n.width-module__min-width--s___dIfZm {\n min-width: 12px;\n}\n.width-module__min-width--m___JH5IP {\n min-width: 16px;\n}\n.width-module__min-width--l___GgkE8 {\n min-width: 20px;\n}\n.width-module__min-width--xl___aGLui {\n min-width: 24px;\n}\n.width-module__min-width--xxl___zQOtT {\n min-width: 28px;\n}\n.width-module__min-width--3xl___JevDZ {\n min-width: 32px;\n}\n.width-module__min-width--4xl___1e6N1 {\n min-width: 36px;\n}\n.width-module__min-width--5xl___Kumto {\n min-width: 40px;\n}\n.width-module__min-width--6xl___YEkm8 {\n min-width: 44px;\n}\n.width-module__min-width--7xl___vX1FY {\n min-width: 48px;\n}\n.width-module__min-width--8xl___VbQhk {\n min-width: 52px;\n}\n.width-module__min-width--9xl___eUKQi {\n min-width: 56px;\n}\n.width-module__min-width--10xl___ZoN3N {\n min-width: 60px;\n}\n.width-module__min-width--11xl___BNFjA {\n min-width: 64px;\n}\n\n.width-module__width--full___1mpiz {\n width: 100%;\n}\n.width-module__width--stretch___Rqw00 {\n width: stretch;\n}\n.width-module__width--zero___INdVv {\n width: 0px;\n}\n.width-module__width--4xs___dRUhW {\n width: 1px;\n}\n.width-module__width--3xs___oRJ0z {\n width: 2px;\n}\n.width-module__width--xxs___Hyl9R {\n width: 4px;\n}\n.width-module__width--xs___G3jQz {\n width: 8px;\n}\n.width-module__width--s___-mzqm {\n width: 12px;\n}\n.width-module__width--m___mEZ77 {\n width: 16px;\n}\n.width-module__width--l___qyIN7 {\n width: 20px;\n}\n.width-module__width--xl___mO25I {\n width: 24px;\n}\n.width-module__width--xxl___EGQMp {\n width: 28px;\n}\n.width-module__width--3xl___Hul7- {\n width: 32px;\n}\n.width-module__width--4xl___zOPbS {\n width: 36px;\n}\n.width-module__width--5xl___xbqni {\n width: 40px;\n}\n.width-module__width--6xl___Nmbf9 {\n width: 44px;\n}\n.width-module__width--7xl___B0nvw {\n width: 48px;\n}\n.width-module__width--8xl___W1HDP {\n width: 52px;\n}\n.width-module__width--9xl___KJL8U {\n width: 56px;\n}\n.width-module__width--10xl___94z19 {\n width: 60px;\n}\n.width-module__width--11xl___jB-Ln {\n width: 64px;\n}" });
|
|
1601
1601
|
var width_module_default = { "max-width--full": "width-module__max-width--full___noIkT", "max-width--content": "width-module__max-width--content___yksUr", "max-width--zero": "width-module__max-width--zero___8NUF1", "max-width--4xs": "width-module__max-width--4xs___gHlLI", "max-width--3xs": "width-module__max-width--3xs___rdoP8", "max-width--xxs": "width-module__max-width--xxs___jlp8v", "max-width--xs": "width-module__max-width--xs___kQsWx", "max-width--s": "width-module__max-width--s___MgGaz", "max-width--m": "width-module__max-width--m___aFzSc", "max-width--l": "width-module__max-width--l___iKlaH", "max-width--xl": "width-module__max-width--xl___4zUdC", "max-width--xxl": "width-module__max-width--xxl___58z3P", "max-width--3xl": "width-module__max-width--3xl___2YXnH", "max-width--4xl": "width-module__max-width--4xl___jFJ9V", "max-width--5xl": "width-module__max-width--5xl___7-VQG", "max-width--6xl": "width-module__max-width--6xl___PS37J", "max-width--7xl": "width-module__max-width--7xl___sSBwk", "max-width--8xl": "width-module__max-width--8xl___V3IHy", "max-width--9xl": "width-module__max-width--9xl___4VWEM", "max-width--10xl": "width-module__max-width--10xl___z97TQ", "max-width--11xl": "width-module__max-width--11xl___jxenX", "min-width": "width-module__min-width___qnlYC", "min-width--fit": "width-module__min-width--fit___2W-TD", "min-width--zero": "width-module__min-width--zero___9429S", "min-width--4xs": "width-module__min-width--4xs___3TGM-", "min-width--3xs": "width-module__min-width--3xs___R6j32", "min-width--xxs": "width-module__min-width--xxs___vjKdC", "min-width--xs": "width-module__min-width--xs___V-L1s", "min-width--s": "width-module__min-width--s___dIfZm", "min-width--m": "width-module__min-width--m___JH5IP", "min-width--l": "width-module__min-width--l___GgkE8", "min-width--xl": "width-module__min-width--xl___aGLui", "min-width--xxl": "width-module__min-width--xxl___zQOtT", "min-width--3xl": "width-module__min-width--3xl___JevDZ", "min-width--4xl": "width-module__min-width--4xl___1e6N1", "min-width--5xl": "width-module__min-width--5xl___Kumto", "min-width--6xl": "width-module__min-width--6xl___YEkm8", "min-width--7xl": "width-module__min-width--7xl___vX1FY", "min-width--8xl": "width-module__min-width--8xl___VbQhk", "min-width--9xl": "width-module__min-width--9xl___eUKQi", "min-width--10xl": "width-module__min-width--10xl___ZoN3N", "min-width--11xl": "width-module__min-width--11xl___BNFjA", "width--full": "width-module__width--full___1mpiz", "width--stretch": "width-module__width--stretch___Rqw00", "width--zero": "width-module__width--zero___INdVv", "width--4xs": "width-module__width--4xs___dRUhW", "width--3xs": "width-module__width--3xs___oRJ0z", "width--xxs": "width-module__width--xxs___Hyl9R", "width--xs": "width-module__width--xs___G3jQz", "width--s": "width-module__width--s___-mzqm", "width--m": "width-module__width--m___mEZ77", "width--l": "width-module__width--l___qyIN7", "width--xl": "width-module__width--xl___mO25I", "width--xxl": "width-module__width--xxl___EGQMp", "width--3xl": "width-module__width--3xl___Hul7-", "width--4xl": "width-module__width--4xl___zOPbS", "width--5xl": "width-module__width--5xl___xbqni", "width--6xl": "width-module__width--6xl___Nmbf9", "width--7xl": "width-module__width--7xl___B0nvw", "width--8xl": "width-module__width--8xl___W1HDP", "width--9xl": "width-module__width--9xl___KJL8U", "width--10xl": "width-module__width--10xl___94z19", "width--11xl": "width-module__width--11xl___jB-Ln" };
|
|
1602
1602
|
|
|
1603
|
-
// import-glob:./**/!(_*).(scss|css)/proof-of-uniqueness/
|
|
1603
|
+
// import-glob:./**/!(_*).(scss|css)/proof-of-uniqueness/0900f696-9c23-4a8b-adf5-7786245c7b2e
|
|
1604
1604
|
var modules4 = [absolute_module_exports, anchor_module_exports, background_color_module_exports, block_module_exports, border_module_exports, box_shadow_module_exports, color_module_exports, cursor_module_exports, display_contents_module_exports, draggable_module_exports, enabled_module_exports, faded_module_exports, flex_child_module_exports, flex_module_exports, font_module_exports, gradient_module_exports, grayscale_module_exports, grid_module_exports, height_module_exports, hidden_module_exports, interactive_module_exports, invisible_backdrop_module_exports, margin_module_exports, no_pointer_events_module_exports, offset_children_module_exports, offset_module_exports, outline_module_exports, overflow_module_exports, padding_module_exports, popover_module_exports, relative_module_exports, text_align_module_exports, tint_module_exports, tooltip_module_exports, transition_module_exports, visually_hidden_module_exports, width_module_exports];
|
|
1605
|
-
var
|
|
1605
|
+
var f696_9c23_4a8b_adf5_7786245c7b2e_default = modules4;
|
|
1606
1606
|
|
|
1607
1607
|
// src/feature.ts
|
|
1608
1608
|
var elementComponentFeature = (0, import_feature_core.getFeature)({
|
|
1609
1609
|
id: "element-component",
|
|
1610
|
-
register: (di) => (0, import_feature_core2.registerInjectablesFromModules)(di, [...
|
|
1610
|
+
register: (di) => (0, import_feature_core2.registerInjectablesFromModules)(di, [...b5bc2b95_791e_44fa_b5f9_8f4b7bfd55f6_default, ...f696_9c23_4a8b_adf5_7786245c7b2e_default])
|
|
1611
1611
|
// No feature dependencies: a design system everyone may install cannot drag
|
|
1612
1612
|
// Lens features into the closure. The clock the hoverable plugin needs is
|
|
1613
1613
|
// local, and the platform is read directly.
|
|
@@ -3335,4 +3335,4 @@ var useLocalHoverable = () => {
|
|
|
3335
3335
|
useOnOutsideClick,
|
|
3336
3336
|
usePopoverIsOpen
|
|
3337
3337
|
});
|
|
3338
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2NvbXB1dGVkLW5vdy5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MiLCAiLi4vc3JjL2VsZW1lbnRzL21pbmltYWwtZGl2LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtY29ybmVyLXN0eWxlcy50cyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvZ2V0LXNpZGUtc3R5bGVzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9yZWYvcmVmLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWUudHMiLCAiLi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2dldC1kcmFnZ2FibGUtY29udGV4dC50cyIsICIuLi9zcmMvZmVhdHVyZS50cyIsICIuLi9zcmMvcGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy90ZXN0LXV0aWwtcnVubmFibGUuaW5qZWN0YWJsZS50cyIsICJpbXBvcnQtZ2xvYjouLyoqLyouZ2xvYmFsLW92ZXJyaWRlLWZvci1pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvNjA0NWE5NWItOGNkMC00Yjc0LTk0YmMtZjExOWY1MzcyMjlkIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmRlZmF1bHQtb3ZlcnJpZGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cyIsICIuLi9zcmMvcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzIiwgImltcG9ydC1nbG9iOi4vKiovKi5kZWZhdWx0LW92ZXJyaWRlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvMjc3ZGVlOWYtMWI4Zi00OTY2LWI0MzctODcxYWNmYTRjZGRiIiwgImltcG9ydC1nbG9iOi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvYzRkZjdhMDgtNTcyYi00ODVjLTg4N2EtZDYwOGI1MDRmNTIxIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzIiwgImltcG9ydC1nbG9iOi4vKiovIShfKikuKHNjc3N8Y3NzKS9wcm9vZi1vZi11bmlxdWVuZXNzL2U5MDE0MjI1LTJhMjUtNGQwMi1hYzNjLTY4YWUyZGFmOGM0YSIsICIuLi9zcmMvcGx1Z2lucy9fc2hhcmVkL3NpemVzLnRzIiwgIi4uL3NyYy9lbGVtZW50cy50cyIsICIuLi9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvY29sb3IvY29sb3IudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQudHMiLCAiLi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24udHMiLCAiLi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC50cyIsICIuLi9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4udHMiLCAiLi4vc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi50cyIsICIuLi9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC50cyIsICIuLi9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3RpbnQvdGludC50cyIsICIuLi9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnQudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvbi50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvaGFuZGxlLWZvY3VzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS9oYW5kbGUtYmx1ci50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZy50cyIsICIuLi9zcmMvcGx1Z2lucy9hcmVhL2FyZWEudHMiLCAiLi4vc3JjL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudC50cyIsICIuLi9zcmMvcGx1Z2lucy9zaXplL3NpemUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24udHMiLCAiLi4vc3JjL3BsdWdpbnMvYmxvY2svYmxvY2sudHN4IiwgIi4uL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS50cyIsICIuLi9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS50cyIsICIuLi9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS50c3giLCAiLi4vc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2dldC1mb2N1c2FibGUtY29udGV4dC50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZS1pdGVtLWNvbnRleHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB0eXBlIHsgQmxvY2tQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5leHBvcnQgdHlwZSB7IEFuY2hvcmVkQXQsIEFuY2hvclBsdWdpblByb3BzLCBBbmNob3JQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcbmV4cG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5leHBvcnQgdHlwZSB7IE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcbmV4cG9ydCB0eXBlIHsgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBUZXh0QWxpZ25QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuXG5leHBvcnQgeyB0eXBlIERvRm9jdXMsIHR5cGUgRG9Gb2N1c0ZvciwgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHsgaXRlbUJlaW5nRm9jdXNlZEluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlXCI7XG5leHBvcnQgdHlwZSB7IEl0ZW1CZWluZ0ZvY3VzZWQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGVcIjtcbmV4cG9ydCB7IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzLCBpc0Rpc2FibGVkIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkXCI7XG5leHBvcnQgdHlwZSB7IEdyYXlzY2FsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuZXhwb3J0IHR5cGUgeyBUaW50UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90aW50L3RpbnRcIjtcbmV4cG9ydCB0eXBlIHsgRmFkZWRQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5cbmV4cG9ydCB0eXBlIHsgU2lkZVN0eWxlcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtc2lkZS1zdHlsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ29ybmVyU3R5bGVzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2dldC1jb3JuZXItc3R5bGVzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsXG4gIEJhY2tncm91bmRDb2xvcixcbiAgQmFja2dyb3VuZENvbG9yQWxpYXMsXG4gICRCYWNrZ3JvdW5kQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgT3V0bGluZVdpZHRoLFxuICAkT3V0bGluZVByb3BzLFxuICBPdXRsaW5lUGx1Z2luUHJvcHMsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nQ29udGVudEFyZ3MsXG4gIEZsb2F0aW5nQ29udGVudEZhY3RvcnksXG4gICRGbG9hdGluZ1Byb3BzLFxuICBGbG9hdGluZ1BsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mbG9hdGluZy9mbG9hdGluZ1wiO1xuXG5leHBvcnQgdHlwZSB7IFBhZGRpbmdQbHVnaW5Qcm9wcywgRGlyZWN0aW9uYWxQYWRkaW5nIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5leHBvcnQgdHlwZSB7IE1hcmdpblBsdWdpblByb3BzLCBEaXJlY3Rpb25hbE1hcmdpbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW5cIjtcbmV4cG9ydCB0eXBlIHsgT3ZlcmZsb3dQbHVnaW5Qcm9wcywgT3ZlcmZsb3cgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSB7IEJveFNoYWRvd1BsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzLFxuICAkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nXCI7XG5leHBvcnQgeyBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEhvdmVyYWJsZUNvbnRleHQsXG4gICRIb3ZlcmFibGVQcm9wcyxcbiAgSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEhvdmVyYWJsZVBsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBob3ZlcmFibGVQbHVnaW4sIGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBSZWZQbHVnaW5Qcm9wcywgJFJlZlByb3AsIFJlZkxpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIHsgQWJzb2x1dGVQbHVnaW5Qcm9wcywgQWJzb2x1dGVQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5leHBvcnQgdHlwZSB7IEhpZGRlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuZXhwb3J0IHR5cGUgeyBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzXCI7XG5leHBvcnQgdHlwZSB7IE9mZnNldFBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuZXhwb3J0IHR5cGUgeyBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlblwiO1xuZXhwb3J0IHR5cGUgeyBSZWxhdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVHJhbnNpdGlvblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5leHBvcnQgdHlwZSB7ICRJbnRlcmFjdGl2ZVByb3BzLCBJbnRlcmFjdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcblxuZXhwb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIEN1cnNvclBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuXG5leHBvcnQgeyBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQbHVnaW5Qcm9wcywgJFRvb2x0aXBQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuZXhwb3J0IHsgU3R5bGVkVG9vbHRpcENvbnRhaW5lciwgZ2V0VG9vbHRpcFByb3BzLCBzdXBwcmVzc1Rvb2x0aXAgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXBcIjtcblxuZXhwb3J0IHR5cGUgeyBEcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBnZXREcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB7IGVsZW1lbnRDb21wb25lbnRGZWF0dXJlIH0gZnJvbSBcIi4vc3JjL2ZlYXR1cmVcIjtcblxuZXhwb3J0IHR5cGUgeyBTaXplUGx1Z2luUHJvcHMsICRTaXplUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9zaXplL3NpemVcIjtcblxuZXhwb3J0IHR5cGUgeyBXaWR0aFBsdWdpblByb3BzLCAkV2lkdGhQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlIHsgU3R5bGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlXCI7XG5cbmV4cG9ydCB0eXBlIHsgSGVpZ2h0UGx1Z2luUHJvcHMsICRIZWlnaHRQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgeyBGb250UGx1Z2luUHJvcHMsIEZvbnRTaXplLCBGb250TGluZUhlaWdodCB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuXG5leHBvcnQgdHlwZSB7IEdyaWRQbHVnaW5Qcm9wcywgR3JpZFByb3BzLCBHcmlkQ29sdW1ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIERyYWdnYWJsZVBsdWdpblByb3BzLFxuICBEcm9wcGFibGVQbHVnaW5Qcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIHsgQ29sb3JQbHVnaW5Qcm9wcywgJENvbG9yUHJvcHMsIFRleHRDb2xvciwgVGV4dENvbG9yQWxpYXMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuZXhwb3J0IHR5cGUgeyBDbGFzc05hbWVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEJvcmRlclBsdWdpblByb3BzLFxuICBCb3JkZXJDb2xvckFsaWFzLFxuICBCb3JkZXJDb2xvcixcbiAgJEJvcmRlclByb3BzLFxuICAkQm9yZGVyQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2JvcmRlclwiO1xuXG5leHBvcnQgdHlwZSB7IEJvcmRlclJhZGl1c1NpemUsIEJvcmRlcldpZHRoLCBCb3JkZXJTaWRlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcbmV4cG9ydCB7IHRTaGlydFNpemVJblBpeGVscywgc2l6ZVVuaXRJblBpeGVscyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgeyBEaXJlY3Rpb24sIFNob3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUge1xuICBDbGlja0hhbmRsZXIsXG4gIENsaWNrSGFuZGxlckRldGFpbHMsXG4gIENsaWNrUGx1Z2luUHJvcHMsXG4gIFBvc2l0aW9uMmQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcblxuZXhwb3J0IHR5cGUge1xuICBGbGV4UGx1Z2luUHJvcHMsXG4gIEhvcml6b250YWxGbGV4UHJvcHMsXG4gIE1heGltYWxGbGV4UHJvcHMsXG4gIFNpbXBsZUZsZXhQcm9wLFxuICBWZXJ0aWNhbEZsZXhQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZmxleC9mbGV4XCI7XG5cbmltcG9ydCB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyxcbiAgc2hvd0Nzc01vZHVsZUNsdXR0ZXJGb3JQcm9kdWN0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHsgcmVtb3ZlQ3NzTW9kdWxlQ2x1dHRlckZvclVuaXRUZXN0aW5nLCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gfTtcblxuZXhwb3J0IHtcbiAgQ2xpY2thYmxlRGl2LFxuICBOYXYsXG4gIFN2ZyxcbiAgRGl2LFxuICBCdXR0b24sXG4gIEksXG4gIElucHV0LFxuICBGb3JtLFxuICBTcGFuLFxuICBUZXh0QXJlYSxcbiAgQSxcbiAgQ29kZSxcbiAgUHJlLFxuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxuICBQLFxuICBDbGlja2FibGVMaSxcbiAgTGksXG4gIE9sLFxuICBVbCxcbiAgVGgsXG4gIFRkLFxuICBUcixcbiAgVGFibGUsXG4gIExhYmVsLFxuICBUQm9keSxcbiAgRGlhbG9nLFxuICBDYW52YXMsXG4gIEltZyxcbn0gZnJvbSBcIi4vc3JjL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tbW9uUHJvcHMsXG4gIENsaWNrYWJsZURpdlByb3BzLFxuICBDbGlja2FibGVMaVByb3BzLFxuICBOYXZQcm9wcyxcbiAgU3ZnUHJvcHMsXG4gIERpdlByb3BzLFxuICBCdXR0b25Qcm9wcyxcbiAgSVByb3BzLFxuICBJbnB1dFByb3BzLFxuICBGb3JtUHJvcHMsXG4gIFNwYW5Qcm9wcyxcbiAgVGV4dEFyZWFQcm9wcyxcbiAgQVByb3BzLFxuICBDb2RlUHJvcHMsXG4gIFByZVByb3BzLFxuICBIMVByb3BzLFxuICBIMlByb3BzLFxuICBIM1Byb3BzLFxuICBINFByb3BzLFxuICBINVByb3BzLFxuICBINlByb3BzLFxuICBQUHJvcHMsXG4gIExpUHJvcHMsXG4gIE9sUHJvcHMsXG4gIFVsUHJvcHMsXG4gIFRoUHJvcHMsXG4gIFRkUHJvcHMsXG4gIFRyUHJvcHMsXG4gIFRhYmxlUHJvcHMsXG4gIExhYmVsUHJvcHMsXG4gIFRCb2R5UHJvcHMsXG4gIERpYWxvZ1Byb3BzLFxuICBDYW52YXNQcm9wcyxcbiAgSW1nUHJvcHMsXG59IGZyb20gXCIuL3NyYy9lbGVtZW50c1wiO1xuXG5leHBvcnQge1xuICBnZXRGb2N1c2FibGVDb250ZXh0LFxuICBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgJEZvY3VzYWJsZVByb3BzLFxuICBBbnlGb2N1c2FibGVDb250ZXh0LFxuICBGb2N1c2FibGVDb250ZXh0LFxuICBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG4gIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSwgdXNlRm9jdXNhYmxlSXRlbSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGUtaXRlbS1jb250ZXh0XCI7XG5leHBvcnQgeyB1c2VDbG9zZVBvcG92ZXIsIHVzZVBvcG92ZXJJc09wZW4sIGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuZXhwb3J0IHsgdXNlTG9jYWxIb3ZlcmFibGUgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZVwiO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHBvaW50ZXItZG93biBsYW5kcyBvdXRzaWRlIHRoZSBlbGVtZW50J3MgUmVhY3QgdHJlZS4gVGhlIHRyZWUgaW5jbHVkZXMgY29udGVudFxuICAgKiB0aGUgZWxlbWVudCBwb3J0YWxzIGVsc2V3aGVyZSwgc28gcG9ydGFsZWQgY2hpbGRyZW4gY291bnQgYXMgaW5zaWRlLiBDYXZlYXQ6IGFuIG91dHNpZGVcbiAgICogcG9pbnRlci1kb3duIHdob3NlIHByb3BhZ2F0aW9uIHRvIHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIG5hdGl2ZWx5IGdvZXMgdW5kZXRlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5ICRvbk91dHNpZGVDbGljaz86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBSZWFjdC10cmVlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uOiBhIGNhcHR1cmUtcGhhc2UgaGFuZGxlciBvbiB0aGUgZWxlbWVudCByZWNvcmRzIHRoZVxuICogcG9pbnRlci1kb3duIGV2ZW50cyBvZiBpdHMgb3duIFJlYWN0IHRyZWUgKHBvcnRhbHMgaW5jbHVkZWQsIHNpbmNlIFJlYWN0IGV2ZW50cyBwcm9wYWdhdGVcbiAqIHRocm91Z2ggdGhlbSksIGFuZCBhIGRvY3VtZW50LWxldmVsIGxpc3RlbmVyIHJlcG9ydHMgZXZlcnkgcG9pbnRlci1kb3duIGl0IGRpZCBub3QgcmVjb3JkLlxuICogUmV0dXJucyB0aGUgcHJvcHMgbWFya2luZyB0aGUgZWxlbWVudCdzIHRyZWU7IGdpdmUgdGhlbSB0byBgY29udHJpYnV0ZVByb3BzYCBvciBzcHJlYWQgdGhlbVxuICogb250byB0aGUgc3VidHJlZSdzIHJvb3QuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VPbk91dHNpZGVDbGljayA9IChvbk91dHNpZGVDbGljazogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHZvaWQpID0+IHtcbiAgY29uc3QgbGFzdEluc2lkZVBvaW50ZXJEb3duUmVmID0gdXNlUmVmPEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBoYW5kbGVyUmVmID0gdXNlUmVmKG9uT3V0c2lkZUNsaWNrKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGhhbmRsZXJSZWYuY3VycmVudCA9IG9uT3V0c2lkZUNsaWNrO1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ICE9PSBsYXN0SW5zaWRlUG9pbnRlckRvd25SZWYuY3VycmVudCkge1xuICAgICAgICBoYW5kbGVyUmVmLmN1cnJlbnQoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlRG9jdW1lbnRQb2ludGVyRG93bik7XG5cbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24pO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25Qb2ludGVyRG93bkNhcHR1cmUgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGxhc3RJbnNpZGVQb2ludGVyRG93blJlZi5jdXJyZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG4gIH0sIFtdKTtcblxuICByZXR1cm4geyBvblBvaW50ZXJEb3duQ2FwdHVyZSB9O1xufTtcblxudHlwZSBPbk91dHNpZGVDbGlja1dyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgb25PdXRzaWRlQ2xpY2s6IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IE9uT3V0c2lkZUNsaWNrV3JhcHBlckNvbXBvbmVudCA9ICh7IG9uT3V0c2lkZUNsaWNrLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IE9uT3V0c2lkZUNsaWNrV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnRyaWJ1dGVQcm9wcyh1c2VPbk91dHNpZGVDbGljayhvbk91dHNpZGVDbGljaykpO1xuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG59O1xuXG5leHBvcnQgY29uc3Qgb25PdXRzaWRlQ2xpY2tQbHVnaW4gPSBnZXRQbHVnaW48T25PdXRzaWRlQ2xpY2tQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJG9uT3V0c2lkZUNsaWNrIH0gPSBwcm9wcztcblxuICBpZiAoJG9uT3V0c2lkZUNsaWNrID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBPbk91dHNpZGVDbGlja1dyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBvbk91dHNpZGVDbGljazogJG9uT3V0c2lkZUNsaWNrIH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1odG1sLWVsZW1lbnQtcmVmLXNldC5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgRG9Gb2N1czxUPiA9IChpdGVtOiBUKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgRG9Gb2N1c0ZvciA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBEb0ZvY3VzPFQ+O1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gRG9Gb2N1c0ZvciB9Pih7XG4gIGlkOiBcImRvLWZvY3VzLWZvci1pbmplY3Rpb24tdG9rZW5cIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRvLWZvY3VzLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRSZWZTZXQgPSBkaS5pbmplY3QoZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICAoZm9jdXNhYmxlSXRlbTogVCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtmaXJzdFJlbmRlcmVkRm9jdXNhYmxlRWxlbWVudFJlZl0gPSBnZXRSZWZTZXQoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSk7XG5cbiAgICAgICAgICBpZiAoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIGFzc2VydERlZmluZWQoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICAgIGZpcnN0UmVuZGVyZWRGb2N1c2FibGVFbGVtZW50UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIGFzIERvRm9jdXNGb3I7XG4gIH0sXG5cbiAgaW5qZWN0aW9uVG9rZW46IGRvRm9jdXNGb3JJbmplY3Rpb25Ub2tlbixcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIEZvY3VzYWJsZUl0ZW0gPSBhbnk7XG5cbi8vIFR3byBpbnN0YW50aWF0aW9uIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gb25lIGNvbXBvc2l0ZSBrZXk6IHYyIGtleXMgYVxuLy8gc2luZ2xldG9uIGJ5IGFsbCBvZiB0aGVtLCBzbyB0aGUgY29udGV4dCBhbmQgdGhlIGl0ZW0gY29tcG9zZSBieSBpZGVudGl0eSBvblxuLy8gdGhlaXIgb3duLlxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaHRtbC1lbGVtZW50cy1ieS1mb2N1c2FibGUtbWFwXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPiwgX2l0ZW06IEZvY3VzYWJsZUl0ZW0pID0+XG4gICAgbmV3IFNldDxNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPj4oKSxcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBJQ29tcHV0ZWRWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgSXRlbUJlaW5nRm9jdXNlZCA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBJQ29tcHV0ZWRWYWx1ZTxUIHwgdW5kZWZpbmVkPjtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0ZvY3VzZWRJbmplY3Rpb25Ub2tlbiA9IGdldEluamVjdGlvblRva2VuMjx7IHNpbmdsZUZhY3Rvcnk6ICgpID0+IEl0ZW1CZWluZ0ZvY3VzZWQgfT4oe1xuICBpZDogXCJpdGVtLWJlaW5nLWZvY3VzZWRcIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgcHJpdmF0ZUl0ZW1CZWluZ0ZvY3VzZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJwcml2YXRlLWl0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRGb2N1c2FibGVJdGVtU3RhdGUgPSBkaS5pbmplY3QoZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0Rm9jdXNhYmxlSXRlbVN0YXRlKGNvbnRleHQpLmdldCgpKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nRm9jdXNlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdGb2N1c2VkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+KSBhcyBJdGVtQmVpbmdGb2N1c2VkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdGb2N1c2VkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImZvY3VzYWJsZS1pdGVtLXN0YXRlXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxhbnk+KSA9PiBvYnNlcnZhYmxlLmJveDx1bmtub3duPigpLFxufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBlbmFibGVkU3R5bGVzIGZyb20gXCIuL2VuYWJsZWQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogVGhpcyBmaWVsZCBoYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gJGRpc2FibGVkXG4gICAqL1xuICAkZW5hYmxlZD86IGJvb2xlYW47XG4gICRkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIGlzIG92ZXJyaWRkZW4gdmlhICRkaXNhYmxlZCBhbmQgJGVuYWJsZWRcbiAgICovXG4gIGRpc2FibGVkPzogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuYWJsZWRQbHVnaW4gPSBnZXRQbHVnaW48RW5hYmxlZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCBkaXNhYmxlZCA9IGlzRGlzYWJsZWQocHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGRpc2FibGVkID8gZW5hYmxlZFN0eWxlcy5kaXNhYmxlZCA6IHVuZGVmaW5lZF0sXG4gICAgZGlzYWJsZWQsXG4gICAgJGVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAkZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNEaXNhYmxlZCA9IChwcm9wczogRW5hYmxlZFBsdWdpblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGVuYWJsZWQsICRkaXNhYmxlZCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIHR5cGVvZiAkZW5hYmxlZCA9PT0gXCJib29sZWFuXCIgPyAhJGVuYWJsZWQgOiAoJGRpc2FibGVkID8/IGZhbHNlKTtcbn07XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5lbmFibGVkLW1vZHVsZV9fZGlzYWJsZWRfX19MTDNzdyB7XFxuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkaXNhYmxlZFwiOlwiZW5hYmxlZC1tb2R1bGVfX2Rpc2FibGVkX19fTEwzc3dcIn07IiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IHR5cGUgQ29udGV4dE1hcFZhbHVlLCBob3Zlckl0ZW1TdGF0ZUZvckluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgYWN0aW9uLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGlzRGVmaW5lZCwgbm9vcCwgdHlwZSBTaW5nbGVPck1hbnkgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHR5cGUgeyAkSG92ZXJhYmxlUHJvcHMgfSBmcm9tIFwiLi9ob3ZlcmFibGVcIjtcblxuZXhwb3J0IHR5cGUgJEhvdmVyYWJsZUJ5RHJhZ2dpbmdQcm9wczxUPiA9IFBpY2s8JEhvdmVyYWJsZVByb3BzPFQ+LCBcImNvbnRleHRcIiB8IFwiaXRlbVwiPjtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzPFQgPSBhbnk+ID0ge1xuICAkaG92ZXJhYmxlQnlEcmFnZ2luZz86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzPFQ+Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW5Qcm9wcywgW1JldHVyblR5cGU8dHlwZW9mIHJlZlBsdWdpbjxUPj5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRob3ZlcmFibGVCeURyYWdnaW5nLCAkcmVmIH0gPSBwcm9wcztcblxuICAgIGlmICgkaG92ZXJhYmxlQnlEcmFnZ2luZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaG92ZXJhYmxlQnlEcmFnZ2luZzogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gICAgY29uc3QgaG92ZXJhYmxlUHJvcHNSZWYgPSB1c2VSZWYob2JzZXJ2YWJsZS5tYXAodG9Db250ZXh0TWFwKCRob3ZlcmFibGVCeURyYWdnaW5nKSwgeyBkZWVwOiBmYWxzZSB9KSk7XG4gICAgY29uc3QgY29udHJvbGxlciA9IHVzZVJlZihuZXcgQWJvcnRDb250cm9sbGVyKCkpO1xuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcCgkaG92ZXJhYmxlQnlEcmFnZ2luZykpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGFjdGlvbigoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmN1cnJlbnQuYWJvcnQoKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY3VycmVudCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdlbnRlclwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgIGdldFByb3BzOiAoKSA9PiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmdldChjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5jdXJyZW50LnNpZ25hbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkU3RhdGUgPSBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KTtcblxuICAgICAgICAgICAgICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICAgICAgICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLmN1cnJlbnQuc2lnbmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJHJlZjogWyRyZWYsIGNhbGxiYWNrUmVmXSxcbiAgICAgICRob3ZlcmFibGVCeURyYWdnaW5nOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVCeURyYWdnaW5nUHJvcHM8dW5rbm93bj4+IHwgdW5kZWZpbmVkKSA9PiB7XG4gIGNvbnN0IGl0ZW1zID0gW3Byb3BzXS5mbGF0KCkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gIGNvbnN0IHJlc3VsdHM6IFtvYmplY3QsIENvbnRleHRNYXBWYWx1ZV1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gb2YgaXRlbXMpIHtcbiAgICByZXN1bHRzLnB1c2goW2NvbnRleHQsIHsgaXRlbSwgZGVsYXk6IDAsIG9uSG92ZXI6IG5vb3AsIG9uVW5ob3Zlcjogbm9vcCB9XSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn07XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBJT2JzZXJ2YWJsZVZhbHVlLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1hcFZhbHVlID0ge1xuICByZWFkb25seSBpdGVtOiB1bmtub3duO1xuICByZWFkb25seSBkZWxheTogbnVtYmVyO1xuICBvbkhvdmVyOiBWb2lkRnVuY3Rpb247XG4gIG9uVW5ob3ZlcjogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJlZEl0ZW1TdGF0ZSA9IHtcbiAgcmVhZG9ubHkgaG92ZXJlZEF0OiBJT2JzZXJ2YWJsZVZhbHVlPG51bWJlcj47XG4gIHJlYWRvbmx5IGdldFByb3BzOiAoKSA9PiBDb250ZXh0TWFwVmFsdWUgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImhvdmVyZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IG9iamVjdCkgPT4gb2JzZXJ2YWJsZS5tYXA8c3RyaW5nLCBIb3ZlcmVkSXRlbVN0YXRlPihbXSwgeyBkZWVwOiBmYWxzZSB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJob3Zlci1pdGVtLXN0YXRlLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRIb3ZlcmVkSXRlbVN0YXRlID0gZGkuaW5qZWN0KGhvdmVyZWRJdGVtU3RhdGVJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiAoY29udGV4dDogb2JqZWN0KSA9PiBnZXRIb3ZlcmVkSXRlbVN0YXRlKGNvbnRleHQpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcyB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgdHlwZSBDb250ZXh0TWFwVmFsdWUsIGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuL2hvdmVyZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIGNvbXBhcmVyLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IG5vb3AgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCB0eXBlIFNpbmdsZU9yTWFueSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCB0eXBlIEhvdmVyYWJsZUNvbnRleHRPcHRpb25zID0ge1xuICAvKipcbiAgICogSW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZWxheT86IG51bWJlcjtcbiAgcmVhZG9ubHkgb25Ib3Zlcj86IFZvaWRGdW5jdGlvbjtcbiAgcmVhZG9ubHkgb25VbmhvdmVyPzogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQ29udGV4dDxIb3ZlcmVkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGhvdmVyYWJsZTogKGl0ZW06IEhvdmVyZWRJdGVtLCBvcHRpb25zPzogSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMpID0+ICRIb3ZlcmFibGVQcm9wczxIb3ZlcmVkSXRlbT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlICRIb3ZlcmFibGVQcm9wczxUSXRlbSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgY29udGV4dDogb2JqZWN0O1xuICByZWFkb25seSBpdGVtOiBUSXRlbTtcbiAgcmVhZG9ubHkgb3B0aW9uczogUmVxdWlyZWQ8SG92ZXJhYmxlQ29udGV4dE9wdGlvbnM+O1xufVxuXG5leHBvcnQgdHlwZSBIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PiA9IHtcbiAgcmVhZG9ubHkgJGhvdmVyYWJsZT86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlUHJvcHM+O1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUVudGVyXCJdO1xuICBvbk1vdXNlTGVhdmU/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUxlYXZlXCJdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhvdmVyYWJsZUNvbnRleHQgPSA8SG92ZXJlZEl0ZW0sPigpOiBIb3ZlcmFibGVDb250ZXh0PEhvdmVyZWRJdGVtPiA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgaG92ZXJhYmxlOiAoaXRlbTogSG92ZXJlZEl0ZW0sIHsgZGVsYXkgPSAwLCBvbkhvdmVyID0gbm9vcCwgb25VbmhvdmVyID0gbm9vcCB9OiBIb3ZlcmFibGVDb250ZXh0T3B0aW9ucyA9IHt9KSA9PiAoe1xuICAgICAgY29udGV4dCxcbiAgICAgIGl0ZW0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICBvblVuaG92ZXIsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4gPSBSZXR1cm5UeXBlPHR5cGVvZiBob3ZlcmFibGVQbHVnaW48VD4+O1xuXG50eXBlIEhvdmVyYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgaG92ZXJhYmxlOiBTaW5nbGVPck1hbnk8JEhvdmVyYWJsZVByb3BzPjtcbiAgcmVhZG9ubHkgb25Nb3VzZUVudGVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICByZWFkb25seSBvbk1vdXNlTGVhdmU/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGhvdmVyYWJsZSxcbiAgb25Nb3VzZUVudGVyLFxuICBvbk1vdXNlTGVhdmUsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBIb3ZlcmFibGVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbik7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcblxuICBjb25zdCBob3ZlcmFibGVQcm9wc1JlZiA9IHVzZVJlZihcbiAgICBvYnNlcnZhYmxlLm1hcCh0b0NvbnRleHRNYXAoaG92ZXJhYmxlKSwgeyBkZWVwOiBmYWxzZSwgZXF1YWxzOiBjb21wYXJlci5zdHJ1Y3R1cmFsIH0pLFxuICApO1xuXG4gIHVzZUVmZmVjdChcbiAgICBhY3Rpb24oKCkgPT4ge1xuICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcChob3ZlcmFibGUpKTtcbiAgICB9KSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CeUNvbnRleHQgPSBuZXcgTWFwPG9iamVjdCwgdW5rbm93bj4oKTtcblxuICAgIHJldHVybiBhdXRvcnVuKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2NvbnRleHQsIHsgaXRlbSwgb25Ib3Zlciwgb25VbmhvdmVyIH1dIG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaG92ZXJlZEl0ZW0gPSBpdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQgYXMgSG92ZXJhYmxlQ29udGV4dDx1bmtub3duPikuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbSA9IGl0ZW1CeUNvbnRleHQuZ2V0KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChob3ZlcmVkSXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgIG9uSG92ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmV2aW91c0l0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICBvblVuaG92ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW1CeUNvbnRleHQuc2V0KGNvbnRleHQsIGhvdmVyZWRJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW2l0ZW1CZWluZ0hvdmVyZWRdKTtcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIGFjdGlvbigoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgY29udGV4dCBvZiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmtleXMoKSkge1xuICAgICAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjayhcbiAgICBhY3Rpb24oKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Nb3VzZUVudGVyPy4oZXZlbnQpO1xuXG4gICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbnRleHQgb2YgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5rZXlzKCkpIHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoY29udGV4dCkuc2V0KGlkLCB7XG4gICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgZ2V0UHJvcHM6ICgpID0+IGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQuZ2V0KGNvbnRleHQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soXG4gICAgYWN0aW9uKChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uTW91c2VMZWF2ZT8uKGV2ZW50KTtcblxuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRTdGF0ZSA9IGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpO1xuXG4gICAgICAgIGhvdmVyZWRTdGF0ZS5kZWxldGUoaWQpO1xuICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgW10sXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICBvbk1vdXNlRW50ZXI6IGhhbmRsZU1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZUxlYXZlOiBoYW5kbGVNb3VzZUxlYXZlLFxuICB9KTtcblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhvdmVyYWJsZVBsdWdpbjxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudD4+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGhvdmVyYWJsZSwgb25Nb3VzZUVudGVyLCBvbk1vdXNlTGVhdmUgfSA9IHByb3BzO1xuXG4gICAgaWYgKCRob3ZlcmFibGUgPT09IHVuZGVmaW5lZCB8fCAoQXJyYXkuaXNBcnJheSgkaG92ZXJhYmxlKSAmJiAkaG92ZXJhYmxlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBob3ZlcmFibGU6ICRob3ZlcmFibGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVQcm9wczx1bmtub3duPj4gfCB1bmRlZmluZWQpID0+IHtcbiAgY29uc3QgaXRlbXMgPSBbcHJvcHNdLmZsYXQoKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgY29uc3QgcmVzdWx0czogW29iamVjdCwgQ29udGV4dE1hcFZhbHVlXVtdID0gW107XG5cbiAgZm9yIChjb25zdCB7IGNvbnRleHQsIGl0ZW0sIG9wdGlvbnMgfSBvZiBpdGVtcykge1xuICAgIHJlc3VsdHMucHVzaChbY29udGV4dCwgeyBpdGVtLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiwgZ2V0SW5qZWN0aW9uVG9rZW4yIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSUNvbXB1dGVkVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4vaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZE5vd0luamVjdGFibGUgfSBmcm9tIFwiLi9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSBJdGVtQmVpbmdIb3ZlcmVkID0gPFQ+KGhvdmVyYWJsZUNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+IElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gSXRlbUJlaW5nSG92ZXJlZCB9Pih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuICBjYXJkaW5hbGl0eTogXCJvbmVcIixcbn0pKCk7XG5cbmV4cG9ydCBjb25zdCBwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcInByaXZhdGUtaXRlbS1iZWluZy1ob3ZlcmVkXCIsXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGdldEhvdmVyZWRJdGVtU3RhdGUgPSBkaS5pbmplY3QoaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUpO1xuICAgIGNvbnN0IGdldENvbXB1dGVkTm93ID0gZGkuaW5qZWN0KGNvbXB1dGVkTm93SW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IG9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZSA9IGdldEhvdmVyZWRJdGVtU3RhdGUoY29udGV4dCk7XG4gICAgICBjb25zdCBjb21wdXRlZE5vdyA9IGdldENvbXB1dGVkTm93KDEpO1xuXG4gICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b3BJdGVtID0gWy4uLmhvdmVyZWRJdGVtU3RhdGUudmFsdWVzKCldLmF0KC0xKTtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0b3BJdGVtPy5nZXRQcm9wcygpO1xuXG4gICAgICAgIGlmICghdG9wSXRlbSB8fCAhcHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2hlbkNvbnNpZGVyZWRIb3ZlcmVkID0gdG9wSXRlbS5ob3ZlcmVkQXQuZ2V0KCkgKyBwcm9wcy5kZWxheTtcbiAgICAgICAgY29uc3Qgbm93ID0gY29tcHV0ZWROb3cuZ2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vdyA+PSB3aGVuQ29uc2lkZXJlZEhvdmVyZWQgPyBwcm9wcy5pdGVtIDogdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nSG92ZXJlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQ+KSBhcyBJdGVtQmVpbmdIb3ZlcmVkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZCwgb2JzZXJ2YWJsZSwgb25CZWNvbWVPYnNlcnZlZCwgb25CZWNvbWVVbm9ic2VydmVkLCBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5cbi8qKlxuICogQSBjbG9jayB0aGF0IGFkdmFuY2VzIG9ubHkgd2hpbGUgc29tZXRoaW5nIG9ic2VydmVzIGl0LCBzbyBhIGhvdmVyIGRlbGF5XG4gKiBrZWVwcyBiZWluZyByZS1ldmFsdWF0ZWQgdW50aWwgaXQgaGFzIGVsYXBzZWQgYW5kIGNvc3RzIG5vdGhpbmcgb25jZSBub2JvZHlcbiAqIGlzIHdhdGNoaW5nLlxuICpcbiAqIExvY2FsIHJhdGhlciB0aGFuIHRha2VuIGZyb20gdGhlIHNoYXJlZCBpbnRlcnZhbCBmZWF0dXJlOiBhIGRlc2lnbiBzeXN0ZW1cbiAqIGNhbm5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZCB0aGUgaG92ZXJhYmxlIHBsdWdpbiBpcyB0aGUgb25seVxuICogdGhpbmcgaGVyZSB0aGF0IG5lZWRzIGEgY2xvY2suIFRoZSBpbnRlcnZhbCBpcyB0aGUgaW5zdGFudGlhdGlvbiBwYXJhbWV0ZXIsXG4gKiBzbyB2MiBrZXlzIG9uZSBjbG9jayBwZXIgaW50ZXJ2YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wdXRlZE5vd0luamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImNvbXB1dGVkLW5vd1wiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoaW50ZXJ2YWxNczogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgbm93ID0gb2JzZXJ2YWJsZS5ib3goRGF0ZS5ub3coKSk7XG5cbiAgICBsZXQgaGFuZGxlOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCB1bmRlZmluZWQ7XG5cbiAgICBvbkJlY29tZU9ic2VydmVkKG5vdywgKCkgPT4ge1xuICAgICAgcnVuSW5BY3Rpb24oKCkgPT4gbm93LnNldChEYXRlLm5vdygpKSk7XG5cbiAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKCgpID0+IHJ1bkluQWN0aW9uKCgpID0+IG5vdy5zZXQoRGF0ZS5ub3coKSkpLCBpbnRlcnZhbE1zKTtcbiAgICB9KTtcblxuICAgIG9uQmVjb21lVW5vYnNlcnZlZChub3csICgpID0+IHtcbiAgICAgIGlmIChoYW5kbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhckludGVydmFsKGhhbmRsZSk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBub3cuZ2V0KCkpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIsIGdldEluamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IElDb21wdXRlZFZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlQ29udGV4dCB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIEl0ZW1CZWluZ0RyYWdnZWQgPSA8VD4oZHJhZ2dhYmxlQ29udGV4dDogRHJhZ2dhYmxlQ29udGV4dDxUPikgPT4gSUNvbXB1dGVkVmFsdWU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjb25zdCBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8eyBzaW5nbGVGYWN0b3J5OiAoKSA9PiBJdGVtQmVpbmdEcmFnZ2VkIH0+KHtcbiAgaWQ6IFwiaXRlbS1iZWluZy1kcmFnZ2VkXCIsXG4gIGNhcmRpbmFsaXR5OiBcIm9uZVwiLFxufSkoKTtcblxuZXhwb3J0IGNvbnN0IHByaXZhdGVJdGVtQmVpbmdEcmFnZ2VkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwicHJpdmF0ZS1pdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0RHJhZ2dlZEl0ZW1TdGF0ZSA9IGRpLmluamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0RHJhZ2dlZEl0ZW1TdGF0ZShjb250ZXh0KS5nZXQoKSk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJpdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0UHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWQgPSBkaS5pbmplY3QocHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICBnZXRQcml2YXRlSXRlbUJlaW5nRHJhZ2dlZChjb250ZXh0KSBhcyBJQ29tcHV0ZWRWYWx1ZTxUPikgYXMgSXRlbUJlaW5nRHJhZ2dlZDtcbiAgfSxcblxuICBpbmplY3Rpb25Ub2tlbjogaXRlbUJlaW5nRHJhZ2dlZEluamVjdGlvblRva2VuLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbi8vIFRoZSBjb250ZXh0IGlzIHRoZSBpbnN0YW50aWF0aW9uIHBhcmFtZXRlciwgc28gdjIga2V5cyBvbmUgc3RhdGUgYm94IHBlclxuLy8gY29udGV4dCBpZGVudGl0eSBcdTIwMTQgd2hhdCB0aGUga2V5ZWRTaW5nbGV0b24gdXNlZCB0byBzcGVsbCBvdXQuXG5leHBvcnQgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRyYWdnZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gb2JzZXJ2YWJsZS5ib3godW5kZWZpbmVkLCB7IGRlZXA6IGZhbHNlIH0pLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEhvdmVyYWJsZVBsdWdpbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB7IGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB0b29sdGlwRGVsYXlJbmplY3RhYmxlIH0gZnJvbSBcIi4vdG9vbHRpcC1kZWxheS90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdG9vbHRpcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHsgbm9vcCwgdHlwZSBNYXliZUFzeW5jVm9pZEZ1bmN0aW9uIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYsIHR5cGUgTWluaW1hbERpdlByb3BzIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzL21pbmltYWwtZGl2XCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIG9ic2VydmFibGUgfSBmcm9tIFwibW9ieFwiO1xuXG50eXBlIFRvb2x0aXBDb250ZW50UHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3Q+ID1cbiAgfCB7XG4gICAgICAvKiogUGxhaW4tdGV4dCBjb250ZW50IG9mIHRoZSB0b29sdGlwLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgQ29udGVudGAuICovXG4gICAgICByZWFkb25seSBjb250ZW50VGV4dDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgQ29udGVudD86IHVuZGVmaW5lZDtcbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgcmVhZG9ubHkgY29udGVudFRleHQ/OiB1bmRlZmluZWQ7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb21wb25lbnQgcmVuZGVyZWQgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIHRvb2x0aXAuIE11c3QgaGF2ZSBhIHN0YWJsZVxuICAgICAgICogaWRlbnRpdHkgKG1vZHVsZSBzY29wZSkgXHUyMDE0IGRhdGEgZmxvd3MgaW4gdGhyb3VnaCBgY29udGVudFByb3BzYCwgbmV2ZXJcbiAgICAgICAqIHRocm91Z2ggY2xvc3VyZSBjYXB0dXJlLlxuICAgICAgICovXG4gICAgICByZWFkb25seSBDb250ZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPjtcbiAgICAgIC8qKiBUaGUgcHJvcHMgdGhlIHRvb2x0aXAgcGFzc2VzIHRvIGBDb250ZW50YCB3aGVuIHJlbmRlcmluZyBpdC4gKi9cbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IFByb3BzO1xuICAgIH07XG5cbmV4cG9ydCB0eXBlICRUb29sdGlwUHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8bmV2ZXIsIG5ldmVyPj4gPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBvblRvb2x0aXBTaG93bj86IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59ICYgVG9vbHRpcENvbnRlbnRQcm9wczxQcm9wcz47XG5cbi8qKlxuICogVHlwZS1jaGVja3MgdGhlIHBhaXJpbmcgb2YgYENvbnRlbnRgIGFuZCBgY29udGVudFByb3BzYCBvZiBhbiBvYmplY3QtZm9ybVxuICogYCR0b29sdGlwYDogYGNvbnRlbnRQcm9wc2AgaXMgcmVxdWlyZWQgdG8gYmUgdGhlIHByb3BzIG9mIGBDb250ZW50YCwgYW5kIGl0XG4gKiBpcyByZXF1aXJlZCB0byBiZSBwcmVzZW50IHdoZW4gYENvbnRlbnRgIGhhcyByZXF1aXJlZCBwcm9wcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHMpOiAkVG9vbHRpcFByb3BzPGFueT47XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcFByb3BzPFByb3BzIGV4dGVuZHMgb2JqZWN0PihcbiAgdG9vbHRpcFByb3BzOiAkVG9vbHRpcFByb3BzPFByb3BzPiAmIHsgcmVhZG9ubHkgY29udGVudFByb3BzOiBQcm9wcyB9LFxuKTogJFRvb2x0aXBQcm9wczxhbnk+O1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHM8YW55Pik6ICRUb29sdGlwUHJvcHM8YW55PiB7XG4gIHJldHVybiB0b29sdGlwUHJvcHM7XG59XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqIE51bGxpc2ggbWVhbnMgbm8gdG9vbHRpcCwgc28gY29uZGl0aW9uYWwgc291cmNlcyAoYHN0cmluZyB8IG51bGxgKSBwYXNzIHRocm91Z2ggYXMtaXMuICovXG4gICR0b29sdGlwPzogc3RyaW5nIHwgJFRvb2x0aXBQcm9wczxhbnk+IHwgbnVsbDtcbn07XG5cbi8qKlxuICogQSB0b29sdGlwIG9mIG5vdGhpbmc6IHRoZSBlbGVtZW50IHRha2VzIHRoZSBob3Zlciwgc28gbm8gZW5jbG9zaW5nIGVsZW1lbnQgc2hvd3MgaXRzIHRvb2x0aXBcbiAqIHdoaWxlIHRoZSBwb2ludGVyIGlzIG92ZXIgdGhpcyBvbmUsIGFuZCBzaG93cyBub3RoaW5nIG9mIGl0cyBvd24uIE51bGxpc2ggYCR0b29sdGlwYCBsZWF2ZXMgdGhlXG4gKiBlbmNsb3NpbmcgdG9vbHRpcCBhbG9uZSBpbnN0ZWFkIFx1MjAxNCB1c2UgdGhpcyB3aGVyZSBhbiBlbGVtZW50IG11c3Qgbm90IGJlIGRlc2NyaWJlZCBieSB3aGF0ZXZlclxuICogZW5jbG9zZXMgaXQsIGEgcGFuZWwgb3BlbmVkIGZyb20gYSByb3cgd2l0aCBhIHRvb2x0aXAgYmVpbmcgdGhlIGNhc2UgdGhhdCBuZWVkcyBpdDogYSB0b29sdGlwXG4gKiBnb2VzIGludG8gdGhlIHRvcCBsYXllciwgc28gaXQgd291bGQgcGFpbnQgb3ZlciB3aGF0IHRoZSBwYW5lbCBpcyB0aGVyZSBmb3IuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogPExpICR0b29sdGlwPXtzdXBwcmVzc1Rvb2x0aXB9PlxuICogICA8U2V0dGluZ3MgLz5cbiAqIDwvTGk+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHByZXNzVG9vbHRpcDogJFRvb2x0aXBQcm9wcyA9IHsgY29udGVudFRleHQ6IFwiXCIgfTtcblxuY29uc3QgaG92ZXJhYmxlVG9vbHRpcENvbnRleHQgPSBnZXRIb3ZlcmFibGVDb250ZXh0PEhUTUxFbGVtZW50IHwgbnVsbD4oKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IE1pbmltYWxEaXZQcm9wcykgPT4ge1xuICBjb25zdCB7ICRjbGFzc05hbWUsIC4uLnJlc3QgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgICRwYWRkaW5nXG4gICAgICAkYmFja2dyb3VuZENvbG9yPVwiYmFja2dyb3VuZFNlY29uZGFyeVwiXG4gICAgICAkYm9yZGVyPXt7IHJhZGl1czogdHJ1ZSB9fVxuICAgICAgJGZvbnQ9e3sgc2l6ZTogXCJzXCIgfX1cbiAgICAgICRib3hTaGFkb3dcbiAgICAgICRub1BvaW50ZXJFdmVudHNcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17W3N0eWxlcy50b29sdGlwLCAkY2xhc3NOYW1lXX1cbiAgICAgIGRhdGEtdG9vbHRpcC1jb250YWluZXItdGVzdFxuICAgICAgey4uLnJlc3R9XG4gICAgLz5cbiAgKTtcbn07XG5cbnR5cGUgRmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyUHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVmZXJlbmNlOiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uVG9vbHRpcFNob3duOiBWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFBvcG92ZXJDYXBhYmxlID0gSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiBWb2lkRnVuY3Rpb247IGhpZGVQb3BvdmVyOiBWb2lkRnVuY3Rpb24gfTtcblxuY29uc3QgaXNQb3BvdmVyQ2FwYWJsZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgUG9wb3ZlckNhcGFibGUgPT5cbiAgdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8UG9wb3ZlckNhcGFibGU+KS5zaG93UG9wb3ZlciA9PT0gXCJmdW5jdGlvblwiO1xuXG5jb25zdCBGbG9hdGluZ1N0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IEZsb2F0aW5nU3R5bGVkVG9vbHRpcENvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcG9zaXRpb24sIHJlZmVyZW5jZSwgb25Ub29sdGlwU2hvd24gfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IHBvc2l0aW9uLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHdlIGRvbid0IHdhbnQgdG8gY2FsbCBvblRvb2x0aXBTaG93biBldmVyeSB0aW1lIGl0IHVwZGF0ZXMgd2hpbGUgdGhlIHRvb2x0aXAgaXMgYmVpbmcgc2hvd1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgb25Ub29sdGlwU2hvd24oKTtcbiAgfSwgW10pO1xuXG4gIC8vIEludG8gdGhlIHRvcCBsYXllciwgd2hlcmUgYSBkcm9wLWRvd24gbWVudSBhbHJlYWR5IHB1dHMgaXRzZWxmOiBubyB6LWluZGV4IGNhblxuICAvLyBwYWludCBvdmVyIGEgcG9wb3Zlciwgc28gYSB0b29sdGlwIGFueXdoZXJlIG5lYXIgYW4gb3BlbiBtZW51IHdvdWxkIGJlIGhpZGRlblxuICAvLyBiZWhpbmQgaXQuIFNob3duIGFmdGVyIHRoZSBtZW51IG9wZW5lZCwgc28gaXQgbGFuZHMgYWJvdmUgaXQuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFmbG9hdGluZyB8fCAhaXNQb3BvdmVyQ2FwYWJsZShmbG9hdGluZykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmbG9hdGluZy5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChmbG9hdGluZy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBmbG9hdGluZy5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtmbG9hdGluZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFRvb2x0aXBDb250YWluZXIgJHJlZj17c2V0RmxvYXRpbmd9IHBvcG92ZXI9XCJtYW51YWxcIiBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9TdHlsZWRUb29sdGlwQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFBsdWdpbjxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+ID0gUmV0dXJuVHlwZTx0eXBlb2YgdG9vbHRpcFBsdWdpbjxUPj47XG5cbnR5cGUgTm9ybWFsaXplZFRvb2x0aXBQcm9wcyA9IHtcbiAgcmVhZG9ubHkgY29udGVudFRleHQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IENvbnRlbnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT47XG4gIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IGFueTtcbiAgcmVhZG9ubHkgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVhZG9ubHkgb25Ub29sdGlwU2hvd246IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFRvb2x0aXBXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHRvb2x0aXA6IE5vcm1hbGl6ZWRUb29sdGlwUHJvcHM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgVG9vbHRpcFdyYXBwZXJDb21wb25lbnQgPSAoeyB0b29sdGlwLCBjb250cmlidXRlUmVmLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IFRvb2x0aXBXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnRyaWJ1dGVSZWYoc2V0UmVmZXJlbmNlKTtcblxuICBjb25zdCB0b29sdGlwRGVsYXkgPSB1c2VTeW5jSW5qZWN0KHRvb2x0aXBEZWxheUluamVjdGFibGUpO1xuICBjb25zdCBob3Zlckl0ZW1TdGF0ZUZvciA9IHVzZVN5bmNJbmplY3QoaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlKTtcbiAgY29uc3QgaG92ZXJlZEl0ZW0gPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbikoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlUmVmID0gdXNlUmVmKHJlZmVyZW5jZSk7XG4gIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlO1xuXG4gIGNvbnN0IHRvb2x0aXBEZWxheVJlZiA9IHVzZVJlZih0b29sdGlwRGVsYXkpO1xuICB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA9IHRvb2x0aXBEZWxheTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIG9uTW91c2VFbnRlcjogYWN0aW9uKCgpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWRBdCA9IERhdGUubm93KCk7XG5cbiAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGhvdmVyYWJsZVRvb2x0aXBDb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgIGdldFByb3BzOiAoKSA9PiAoe1xuICAgICAgICAgIGl0ZW06IHJlZmVyZW5jZVJlZi5jdXJyZW50LFxuICAgICAgICAgIGRlbGF5OiB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA/PyAwLFxuICAgICAgICAgIG9uSG92ZXI6IG5vb3AsXG4gICAgICAgICAgb25VbmhvdmVyOiBub29wLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgIH0pLFxuXG4gICAgb25Nb3VzZUxlYXZlOiBhY3Rpb24oKCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZFN0YXRlID0gaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgfSksXG4gIH0pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICB9KSxcbiAgICBbaG92ZXJJdGVtU3RhdGVGb3IsIGlkXSxcbiAgKTtcblxuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gYXV0b3J1bigoKSA9PiB7XG4gICAgICBjb25zdCBpc0hvdmVyZWQgPSBob3ZlcmVkSXRlbS5nZXQoKSA9PT0gcmVmZXJlbmNlUmVmLmN1cnJlbnQ7XG4gICAgICBzZXRIb3ZlcmVkKGlzSG92ZXJlZCk7XG4gICAgfSk7XG4gIH0sIFtob3ZlcmVkSXRlbV0pO1xuXG4gIGNvbnN0IHsgY29udGVudFRleHQsIENvbnRlbnQsIGNvbnRlbnRQcm9wcywgcG9zaXRpb24sIG9uVG9vbHRpcFNob3duIH0gPSB0b29sdGlwO1xuICBjb25zdCBjb250ZW50ID0gaG92ZXJlZCA/IENvbnRlbnQgPT09IHVuZGVmaW5lZCA/IGNvbnRlbnRUZXh0IDogPENvbnRlbnQgey4uLmNvbnRlbnRQcm9wc30gLz4gOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NvbnRlbnRcbiAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyIHsuLi57IGNvbnRlbnQsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biwgcmVmZXJlbmNlIH19IC8+LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b29sdGlwUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48VG9vbHRpcFBsdWdpblByb3BzLCBbSG92ZXJhYmxlUGx1Z2luPFQ+LCBSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICR0b29sdGlwIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiB7IHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH07XG5cbiAgICBpZiAoJHRvb2x0aXAgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJHRvb2x0aXA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgY29udGVudFRleHQsXG4gICAgICBDb250ZW50LFxuICAgICAgY29udGVudFByb3BzLFxuICAgICAgcG9zaXRpb24gPSBcImJvdHRvbVwiLFxuICAgICAgb25Ub29sdGlwU2hvd24gPSBub29wLFxuICAgIH06ICRUb29sdGlwUHJvcHM8YW55PiA9IHR5cGVvZiAkdG9vbHRpcCA9PT0gXCJzdHJpbmdcIiA/IHsgY29udGVudFRleHQ6ICR0b29sdGlwIH0gOiAkdG9vbHRpcDtcblxuICAgIHJldHVybiB7XG4gICAgICAkdG9vbHRpcDogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBUb29sdGlwV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICB0b29sdGlwOiB7IGNvbnRlbnRUZXh0LCBDb250ZW50LCBjb250ZW50UHJvcHMsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCB0b29sdGlwRGVsYXlJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJ0b29sdGlwLWRlbGF5XCIsXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IDUwMCxcbn0pO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudG9vbHRpcC1tb2R1bGVfX3Rvb2x0aXBfX192YU9BdSB7XFxuICB6LWluZGV4OiAxMDAwMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XFxuICBtYXgtd2lkdGg6IDYwMHB4O1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLnRvb2x0aXAtbW9kdWxlX190b29sdGlwX19fdmFPQXU6cG9wb3Zlci1vcGVuIHtcXG4gIGluc2V0OiBhdXRvO1xcbiAgbWFyZ2luOiAwO1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0b29sdGlwXCI6XCJ0b29sdGlwLW1vZHVsZV9fdG9vbHRpcF9fX3ZhT0F1XCJ9OyIsICJpbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBvYnNlcnZlciB9IGZyb20gXCJtb2J4LXJlYWN0XCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5pbXBvcnQgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB7IGZvbnRQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvd1wiO1xuaW1wb3J0IHsgbm9Qb2ludGVyRXZlbnRzUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL3JlZi9yZWZcIjtcbmltcG9ydCB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZVwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZVwiO1xuXG5jb25zdCBwbHVnaW5zID0gW1xuICBwYWRkaW5nUGx1Z2luLFxuICBib3hTaGFkb3dQbHVnaW4sXG4gIGJvcmRlclBsdWdpbixcbiAgZm9udFBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBub1BvaW50ZXJFdmVudHNQbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY2xhc3NOYW1lUGx1Z2luLFxuXTtcblxuY29uc3QgZ2V0VHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbaG92ZXJhYmxlUGx1Z2luPFQ+KCksIHJlZlBsdWdpbjxUPigpXTtcblxuZXhwb3J0IGNvbnN0IE1pbmltYWxEaXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnBsdWdpbnMsIC4uLmdldFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBNaW5pbWFsRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTWluaW1hbERpdj47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBhYnNvbHV0ZVN0eWxlcyBmcm9tIFwiLi9hYnNvbHV0ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBvc2l0aW9uID1cbiAgfCBcImFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCJcbiAgfCBcImFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlclwiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBsdWdpblByb3BzID0geyAkYWJzb2x1dGU/OiBBYnNvbHV0ZVBvc2l0aW9uIHwgYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYWJzb2x1dGVQbHVnaW4gPSBnZXRQbHVnaW48QWJzb2x1dGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtcbiAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIHsgW2Fic29sdXRlU3R5bGVzLmFic29sdXRlXTogISFwcm9wcy4kYWJzb2x1dGUgfSxcbiAgICB0eXBlb2YgcHJvcHMuJGFic29sdXRlID09PSBcInN0cmluZ1wiID8gYWJzb2x1dGVTdHlsZXNbYGFic29sdXRlLS0ke3Byb3BzLiRhYnNvbHV0ZX1gXSA6IHVuZGVmaW5lZCxcbiAgXSxcblxuICAkYWJzb2x1dGU6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodF9fX2xKMHByIHtcXG4gIGxlZnQ6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0X19fM2cwc0Qge1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMTAwJTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzgge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvdHRvbTogMTAwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4uYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZS0tYWJzb2x1dGUtYm90dG9tLXRvLXJlbGF0aXZlLWJvdHRvbV9fX0NsbTBtIHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1IHtcXG4gIGxlZnQ6IDUwJTtcXG4gIHRvcDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhYnNvbHV0ZVwiOlwiYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWxlZnQtdG8tcmVsYXRpdmUtY2VudGVyLXJpZ2h0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1jZW50ZXItbGVmdC10by1yZWxhdGl2ZS1jZW50ZXItcmlnaHRfX19sSjBwclwiLFwiYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdF9fXzNnMHNEXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWNlbnRlci10by1yZWxhdGl2ZS1ib3R0b20tcmlnaHRcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzhcIixcImFic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tX19fQ2xtMG1cIixcImFic29sdXRlLS1hYnNvbHV0ZS10b3AtY2VudGVyLXRvLXJlbGF0aXZlLXRvcC1jZW50ZXJcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1XCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHBhZGRpbmdTdHlsZXMgZnJvbSBcIi4vcGFkZGluZy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb25hbFBhZGRpbmcgPSB7XG4gIHRvcD86IFRTaGlydFNpemU7XG4gIGJvdHRvbT86IFRTaGlydFNpemU7XG4gIGxlZnQ/OiBUU2hpcnRTaXplO1xuICByaWdodD86IFRTaGlydFNpemU7XG4gIGhvcml6b250YWw/OiBUU2hpcnRTaXplO1xuICB2ZXJ0aWNhbD86IFRTaGlydFNpemU7XG59O1xuXG5leHBvcnQgdHlwZSBQYWRkaW5nUGx1Z2luUHJvcHMgPSB7ICRwYWRkaW5nPzogYm9vbGVhbiB8IERpcmVjdGlvbmFsUGFkZGluZyB8IFRTaGlydFNpemUgfTtcblxuZXhwb3J0IGNvbnN0IHBhZGRpbmdQbHVnaW4gPSBnZXRQbHVnaW48UGFkZGluZ1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRwYWRkaW5nKSB7XG4gICAgcmV0dXJuIHsgJHBhZGRpbmc6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgcGFkZGluZyA9IHByb3BzLiRwYWRkaW5nID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJHBhZGRpbmc7XG5cbiAgaWYgKGlzU3RyaW5nKHBhZGRpbmcpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwYWRkaW5nU3R5bGVzW2BwYWRkaW5nLS0ke3BhZGRpbmd9YF1dLFxuICAgICAgJHBhZGRpbmc6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IHBhZGRpbmcudG9wIHx8IHBhZGRpbmcudmVydGljYWw7XG4gIGNvbnN0IGJvdHRvbVNpemUgPSBwYWRkaW5nLmJvdHRvbSB8fCBwYWRkaW5nLnZlcnRpY2FsO1xuICBjb25zdCByaWdodFNpemUgPSBwYWRkaW5nLnJpZ2h0IHx8IHBhZGRpbmcuaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBwYWRkaW5nLmxlZnQgfHwgcGFkZGluZy5ob3Jpem9udGFsO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJ0b3BcIiwgdG9wU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwicmlnaHRcIiwgcmlnaHRTaXplKSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJib3R0b21cIiwgYm90dG9tU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwibGVmdFwiLCBsZWZ0U2l6ZSksXG4gICAgXSxcblxuICAgICRwYWRkaW5nOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3Qgc2lkZUNsYXNzTmFtZSA9IChzaWRlOiBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiLCBzaXplOiBUU2hpcnRTaXplIHwgdW5kZWZpbmVkKSA9PlxuICBzaXplID8gcGFkZGluZ1N0eWxlc1tgcGFkZGluZ19fJHtzaWRlfS0tJHtzaXplfWBdIDogdW5kZWZpbmVkO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzXCIsIGNzczogXCIucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0temVyb19fX2dxcWZaIHtcXG4gIHBhZGRpbmctdG9wOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5cyB7XFxuICBwYWRkaW5nLXRvcDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tM3hzX19fb2NjNE4ge1xcbiAgcGFkZGluZy10b3A6IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXh4c19fX043QnNsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14c19fX0wwVUREIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1zX19fa2xRZTIge1xcbiAgcGFkZGluZy10b3A6IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1tX19fY3RhNXQge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHEge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14bF9fX1h2c3ZMIHtcXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhsX19fMWtlb2Uge1xcbiAgcGFkZGluZy10b3A6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0zeGxfX19jVVBzOSB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTR4bF9fX3FpazJlIHtcXG4gIHBhZGRpbmctdG9wOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNXhsX19fczlrcFEge1xcbiAgcGFkZGluZy10b3A6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS02eGxfX19xYzNGWiB7XFxuICBwYWRkaW5nLXRvcDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTd4bF9fX3RhQy1QIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tOHhsX19fTFdoanEge1xcbiAgcGFkZGluZy10b3A6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS05eGxfX19MMTNjcCB7XFxuICBwYWRkaW5nLXRvcDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5QyB7XFxuICBwYWRkaW5nLXRvcDogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTExeGxfX19IdHRTYyB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0temVyb19fXzZ2WWJUIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhzX19faGpPOEQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3RyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4c19fX0ZuM09oIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHNfX19rcHNRUCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEViB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1tX19feEdkdHUge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbF9fX015eWM0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhsX19fLUdHakoge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHhsX19fMHlORVoge1xcbiAgcGFkZGluZy1yaWdodDogMjhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tM3hsX19fYmJPUEMge1xcbiAgcGFkZGluZy1yaWdodDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhsX19fdkFaRVUge1xcbiAgcGFkZGluZy1yaWdodDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNXhsX19fcHNOaGIge1xcbiAgcGFkZGluZy1yaWdodDogNDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNnhsX19fSnd3a1Ige1xcbiAgcGFkZGluZy1yaWdodDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tN3hsX19fZ29tdzkge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOHhsX19fVmh2Vloge1xcbiAgcGFkZGluZy1yaWdodDogNTJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOXhsX19fNE9CTm4ge1xcbiAgcGFkZGluZy1yaWdodDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tMTB4bF9fX2VPVUEzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0temVyb19fX0ZTOTg0IHtcXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tM3hzX19fZTVya1kge1xcbiAgcGFkZGluZy1ib3R0b206IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXh4c19fX3hRdlZ2IHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14c19fX29jeWkwIHtcXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1zX19fNkliblYge1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1tX19fZ3hCMk0ge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzcge1xcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14bF9fX3RMQW96IHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhsX19fZzM1Qi0ge1xcbiAgcGFkZGluZy1ib3R0b206IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0zeGxfX19BejhraSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTR4bF9fX2tiUy1SIHtcXG4gIHBhZGRpbmctYm90dG9tOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNXhsX19fd2psT28ge1xcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS02eGxfX19JRHhSTCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTd4bF9fX0hxRm1pIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tOHhsX19fdUxOZUIge1xcbiAgcGFkZGluZy1ib3R0b206IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS05eGxfX19rWGpmLSB7XFxuICBwYWRkaW5nLWJvdHRvbTogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTExeGxfX19MUi1tcyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1kge1xcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNHhzX19fMDg5MDgge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hzX19fZmVDMC0ge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkoge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS1zX19fa3NpZ3Ige1xcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tbF9fX2tHZ3huIHtcXG4gIHBhZGRpbmctbGVmdDogMjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhYyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmIge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuIHtcXG4gIHBhZGRpbmctbGVmdDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUEge1xcbiAgcGFkZGluZy1sZWZ0OiA0NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OSB7XFxuICBwYWRkaW5nLWxlZnQ6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTAge1xcbiAgcGFkZGluZy1sZWZ0OiA1NnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTEweGxfX19Qd0RTViB7XFxuICBwYWRkaW5nLWxlZnQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tMTF4bF9fXzJIc3ZKIHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnAge1xcbiAgcGFkZGluZzogMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdSB7XFxuICBwYWRkaW5nOiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0oge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhzX19fUXdoYUIge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYSB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMayB7XFxuICBwYWRkaW5nOiAyMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhsX19fY3VQYU4ge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSCB7XFxuICBwYWRkaW5nOiAyOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTN4bF9fX2t2aXJUIHtcXG4gIHBhZGRpbmc6IDMycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNHhsX19feTE3QTAge1xcbiAgcGFkZGluZzogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOSB7XFxuICBwYWRkaW5nOiA0MHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTZ4bF9fXzJLQ21hIHtcXG4gIHBhZGRpbmc6IDQ0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tN3hsX19fU3NJeG4ge1xcbiAgcGFkZGluZzogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbSB7XFxuICBwYWRkaW5nOiA1MnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTl4bF9fX29WY0lnIHtcXG4gIHBhZGRpbmc6IDU2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTB4bF9fX2pLR2tuIHtcXG4gIHBhZGRpbmc6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTF4bF9fX0FnSnJHIHtcXG4gIHBhZGRpbmc6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wicGFkZGluZ19fdG9wLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS16ZXJvX19fZ3FxZlpcIixcInBhZGRpbmdfX3RvcC0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5c1wiLFwicGFkZGluZ19fdG9wLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4c19fX29jYzROXCIsXCJwYWRkaW5nX190b3AtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhzX19fTjdCc2xcIixcInBhZGRpbmdfX3RvcC0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhzX19fTDBVRERcIixcInBhZGRpbmdfX3RvcC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tc19fX2tsUWUyXCIsXCJwYWRkaW5nX190b3AtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLW1fX19jdGE1dFwiLFwicGFkZGluZ19fdG9wLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHFcIixcInBhZGRpbmdfX3RvcC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhsX19fWHZzdkxcIixcInBhZGRpbmdfX3RvcC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14eGxfX18xa2VvZVwiLFwicGFkZGluZ19fdG9wLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4bF9fX2NVUHM5XCIsXCJwYWRkaW5nX190b3AtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNHhsX19fcWlrMmVcIixcInBhZGRpbmdfX3RvcC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS01eGxfX19zOWtwUVwiLFwicGFkZGluZ19fdG9wLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTZ4bF9fX3FjM0ZaXCIsXCJwYWRkaW5nX190b3AtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tN3hsX19fdGFDLVBcIixcInBhZGRpbmdfX3RvcC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS04eGxfX19MV2hqcVwiLFwicGFkZGluZ19fdG9wLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTl4bF9fX0wxM2NwXCIsXCJwYWRkaW5nX190b3AtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5Q1wiLFwicGFkZGluZ19fdG9wLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0xMXhsX19fSHR0U2NcIixcInBhZGRpbmdfX3JpZ2h0LS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXplcm9fX182dlliVFwiLFwicGFkZGluZ19fcmlnaHQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS00eHNfX19oak84RFwiLFwicGFkZGluZ19fcmlnaHQtLTN4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3R1wiLFwicGFkZGluZ19fcmlnaHQtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14eHNfX19GbjNPaFwiLFwicGFkZGluZ19fcmlnaHQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhzX19fa3BzUVBcIixcInBhZGRpbmdfX3JpZ2h0LS1zXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEVlwiLFwicGFkZGluZ19fcmlnaHQtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbV9fX3hHZHR1XCIsXCJwYWRkaW5nX19yaWdodC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1sX19fTXl5YzRcIixcInBhZGRpbmdfX3JpZ2h0LS14bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14bF9fXy1HR2pKXCIsXCJwYWRkaW5nX19yaWdodC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4bF9fXzB5TkVaXCIsXCJwYWRkaW5nX19yaWdodC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTN4bF9fX2JiT1BDXCIsXCJwYWRkaW5nX19yaWdodC0tNHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTR4bF9fX3ZBWkVVXCIsXCJwYWRkaW5nX19yaWdodC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTV4bF9fX3BzTmhiXCIsXCJwYWRkaW5nX19yaWdodC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTZ4bF9fX0p3d2tSXCIsXCJwYWRkaW5nX19yaWdodC0tN3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTd4bF9fX2dvbXc5XCIsXCJwYWRkaW5nX19yaWdodC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTh4bF9fX1ZodlZaXCIsXCJwYWRkaW5nX19yaWdodC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTl4bF9fXzRPQk5uXCIsXCJwYWRkaW5nX19yaWdodC0tMTB4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0xMHhsX19fZU9VQTNcIixcInBhZGRpbmdfX3JpZ2h0LS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZ1wiLFwicGFkZGluZ19fYm90dG9tLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS16ZXJvX19fRlM5ODRcIixcInBhZGRpbmdfX2JvdHRvbS0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeFwiLFwicGFkZGluZ19fYm90dG9tLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4c19fX2U1cmtZXCIsXCJwYWRkaW5nX19ib3R0b20tLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhzX19feFF2VnZcIixcInBhZGRpbmdfX2JvdHRvbS0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhzX19fb2N5aTBcIixcInBhZGRpbmdfX2JvdHRvbS0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tc19fXzZJYm5WXCIsXCJwYWRkaW5nX19ib3R0b20tLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLW1fX19neEIyTVwiLFwicGFkZGluZ19fYm90dG9tLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzdcIixcInBhZGRpbmdfX2JvdHRvbS0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhsX19fdExBb3pcIixcInBhZGRpbmdfX2JvdHRvbS0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14eGxfX19nMzVCLVwiLFwicGFkZGluZ19fYm90dG9tLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4bF9fX0F6OGtpXCIsXCJwYWRkaW5nX19ib3R0b20tLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNHhsX19fa2JTLVJcIixcInBhZGRpbmdfX2JvdHRvbS0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS01eGxfX193amxPb1wiLFwicGFkZGluZ19fYm90dG9tLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTZ4bF9fX0lEeFJMXCIsXCJwYWRkaW5nX19ib3R0b20tLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tN3hsX19fSHFGbWlcIixcInBhZGRpbmdfX2JvdHRvbS0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS04eGxfX191TE5lQlwiLFwicGFkZGluZ19fYm90dG9tLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTl4bF9fX2tYamYtXCIsXCJwYWRkaW5nX19ib3R0b20tLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeFwiLFwicGFkZGluZ19fYm90dG9tLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0xMXhsX19fTFItbXNcIixcInBhZGRpbmdfX2xlZnQtLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1lcIixcInBhZGRpbmdfX2xlZnQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4c19fXzA4OTA4XCIsXCJwYWRkaW5nX19sZWZ0LS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0zeHNfX19mZUMwLVwiLFwicGFkZGluZ19fbGVmdC0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkpcIixcInBhZGRpbmdfX2xlZnQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WFwiLFwicGFkZGluZ19fbGVmdC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLXNfX19rc2lnclwiLFwicGFkZGluZ19fbGVmdC0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbFwiLFwicGFkZGluZ19fbGVmdC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLWxfX19rR2d4blwiLFwicGFkZGluZ19fbGVmdC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JXCIsXCJwYWRkaW5nX19sZWZ0LS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhY1wiLFwicGFkZGluZ19fbGVmdC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmJcIixcInBhZGRpbmdfX2xlZnQtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuXCIsXCJwYWRkaW5nX19sZWZ0LS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUFwiLFwicGFkZGluZ19fbGVmdC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUFcIixcInBhZGRpbmdfX2xlZnQtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoXCIsXCJwYWRkaW5nX19sZWZ0LS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OVwiLFwicGFkZGluZ19fbGVmdC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTBcIixcInBhZGRpbmdfX2xlZnQtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMHhsX19fUHdEU1ZcIixcInBhZGRpbmdfX2xlZnQtLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMXhsX19fMkhzdkpcIixcInBhZGRpbmctLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnBcIixcInBhZGRpbmctLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCXCIsXCJwYWRkaW5nLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdVwiLFwicGFkZGluZy0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0pcIixcInBhZGRpbmctLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHNfX19Rd2hhQlwiLFwicGFkZGluZy0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLVwiLFwicGFkZGluZy0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYVwiLFwicGFkZGluZy0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMa1wiLFwicGFkZGluZy0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14bF9fX2N1UGFOXCIsXCJwYWRkaW5nLS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSFwiLFwicGFkZGluZy0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tM3hsX19fa3ZpclRcIixcInBhZGRpbmctLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4bF9fX3kxN0EwXCIsXCJwYWRkaW5nLS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOVwiLFwicGFkZGluZy0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNnhsX19fMktDbWFcIixcInBhZGRpbmctLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTd4bF9fX1NzSXhuXCIsXCJwYWRkaW5nLS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbVwiLFwicGFkZGluZy0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tOXhsX19fb1ZjSWdcIixcInBhZGRpbmctLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMHhsX19faktHa25cIixcInBhZGRpbmctLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMXhsX19fQWdKckdcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgYmFja2dyb3VuZENvbG9yU3R5bGVzIGZyb20gXCIuL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yQWxpYXMgPSBrZXlvZiB0eXBlb2YgYWxpYXNUb05vbWluYWw7XG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kQ29sb3IgPSBDb2xvciB8IEJhY2tncm91bmRDb2xvckFsaWFzO1xuXG5leHBvcnQgdHlwZSAkQmFja2dyb3VuZENvbG9yUHJvcHMgPSB7XG4gIG5vcm1hbD86IEJhY2tncm91bmRDb2xvcjtcbiAgaG92ZXI/OiBCYWNrZ3JvdW5kQ29sb3I7XG4gIGZvY3VzPzogQmFja2dyb3VuZENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMgPSB7ICRiYWNrZ3JvdW5kQ29sb3I/OiBCYWNrZ3JvdW5kQ29sb3IgfCAkQmFja2dyb3VuZENvbG9yUHJvcHMgfTtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIGJhY2tncm91bmRQcmltYXJ5OiBcImdyZXk4MFwiLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiBcImdyZXkxMDBcIixcbiAgYmFja2dyb3VuZFByaW1hcnlEaW1tZWQ6IFwiZ3JleTgwQWxwaGE4NVwiLFxufSBhcyBjb25zdDtcblxuY29uc3QgaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyA9IChjb2xvcjogQmFja2dyb3VuZENvbG9yKTogY29sb3IgaXMgQmFja2dyb3VuZENvbG9yQWxpYXMgPT4gY29sb3IgaW4gYWxpYXNUb05vbWluYWw7XG5cbmV4cG9ydCBjb25zdCBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gPSBnZXRQbHVnaW48QmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGJhY2tncm91bmRDb2xvcjogY29sb3IgfSA9IHByb3BzO1xuICBjb25zdCB7IG5vcm1hbCwgaG92ZXIsIGZvY3VzIH0gPSB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogY29sb3IgfSA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgPyAoaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyhub3JtYWwpID8gYWxpYXNUb05vbWluYWxbbm9ybWFsXSA6IG5vcm1hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGhvdmVyQ29sb3IgPSBob3ZlciA/IChpc0JhY2tncm91bmRDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZm9jdXNDb2xvciA9IGZvY3VzID8gKGlzQmFja2dyb3VuZENvbG9yQWxpYXMoZm9jdXMpID8gYWxpYXNUb05vbWluYWxbZm9jdXNdIDogZm9jdXMpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIG5vcm1hbENvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItLSR7bm9ybWFsQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBob3ZlckNvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBiYWNrZ3JvdW5kQ29sb3JTdHlsZXNbYGJhY2tncm91bmRDb2xvci1mb2N1cy0tJHtmb2N1c0NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJGJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS10cmFuc3BhcmVudF9fX1ZkdC1ZIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk2MF9fX1BQQVNsIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NDBfX193RkJhbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyNV9fX1lFOFFmIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjBfX182MDBqUSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk3MF9fX1YtWkdMIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1wcmltYXJ5X19fT0huckwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1hY2NlbnRfX19kdDQ3ZiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NfX19XVVIzeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLW5vdGljZV9fX2xWTlJkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nX19fQXJWdmwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50X19fMlVQM1kge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ1RpbnRfX19xd0YwOCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbFRpbnRfX19pSy1qbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY29kZV9fX0VtLWJKIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0taW5oZXJpdF9fX215MlJxOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13aGl0ZV9fX3RlLWdwOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX18xRDJJajpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMDBfX18tSkh1Mjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MF9fX3otODVJOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZMzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTQwX19fM0EtZTY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMF9fXzctQ0ZqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTIwX19fb01BY0Q6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMF9fX2dSMTkzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwQWxwaGE4NV9fX0Nkay0tOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVE6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzX19fRzMwVkg6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ub3RpY2VfX19qV0ZjQzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxfX19yNmJaSTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fWGk2MkY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm86aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWxpbmtfX19YOUxGcTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWluaGVyaXRfX19SSlBXSjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVfX194Rjh1Mzpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXg6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTAwX19feHQxeEw6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBfX19lMjhqajpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwX19fd3REd1Q6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MzBfX19aVnZENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1X19fQXNWNmY6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTBfX19tYWl6Zjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwX19fdlJuTDI6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19WaHl1Tjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXByaW1hcnlfX183VHprdTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudF9fX210REdPOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjE6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdfX19xbG4ydTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsX19fUGdESTU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRfX19jcS1ENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fX2VKOU5oOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1saW5rX19fVGxSUlk6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jb2RlX19fZmE2NVU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYmFja2dyb3VuZENvbG9yLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFlcIixcImJhY2tncm91bmRDb2xvci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHVcIixcImJhY2tncm91bmRDb2xvci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXRyYW5zcGFyZW50X19fVmR0LVlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHVcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NjBfX19QUEFTbFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk0MF9fX3dGQmFsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVRcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjVfX19ZRThRZlwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyMF9fXzYwMGpRXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NzBfX19WLVpHTFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDNcIixcImJhY2tncm91bmRDb2xvci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tcHJpbWFyeV9fX09IbnJMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tYWNjZW50X19fZHQ0N2ZcIixcImJhY2tncm91bmRDb2xvci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tc3VjY2Vzc19fX1dVUjN5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbm90aWNlX19fbFZOUmRcIixcImJhY2tncm91bmRDb2xvci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ19fX0FyVnZsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1zdWNjZXNzVGludF9fXzJVUDNZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nVGludF9fX3F3RjA4XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY3JpdGljYWxUaW50X19faUstamxcIixcImJhY2tncm91bmRDb2xvci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWNvZGVfX19FbS1iSlwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0X19fbXkyUnFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdoaXRlX19fdGUtZ3BcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXRyYW5zcGFyZW50X19fMUQySWpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMF9fXy1KSHUyXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwX19fei04NUlcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZM1wiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk0MF9fXzNBLWU2XCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTMwX19fNy1DRmpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkyMF9fX29NQWNEXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwX19fZ1IxOTNcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fQ2RrLS1cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc19fX0czMFZIXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbm90aWNlX19faldGY0NcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1jcml0aWNhbF9fX3I2YlpJXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13YXJuaW5nVGludF9fX1hpNjJGXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm9cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua19fX1g5TEZxXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZ1wiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0X19fUkpQV0pcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdoaXRlX19feEY4dTNcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMF9fX3h0MXhMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTgwX19fZTI4ampcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NjBfX193dER3VFwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTMwX19fWlZ2RDVcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjVfX19Bc1Y2ZlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwX19fbWFpemZcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NzBfX192Um5MMlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1X19fVmh5dU5cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeV9fXzdUemt1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tYWNjZW50X19fbXRER09cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjFcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ19fX3FsbjJ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jcml0aWNhbF9fX1BnREk1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1zdWNjZXNzVGludF9fX2NxLUQ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tY3JpdGljYWxUaW50X19fZUo5TmhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua19fX1RsUlJZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVfX19mYTY1VVwifTsiLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlcldpZHRoIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHR5cGUgQ29ybmVyU3R5bGVzLCBnZXRDb3JuZXJTdHlsZXMgfSBmcm9tIFwiLi9nZXQtY29ybmVyLXN0eWxlc1wiO1xuaW1wb3J0IHsgZ2V0U2lkZVN0eWxlcywgdHlwZSBTaWRlU3R5bGVzIH0gZnJvbSBcIi4vZ2V0LXNpZGUtc3R5bGVzXCI7XG5pbXBvcnQgeyBjb21wYWN0IH0gZnJvbSBcImxvZGFzaC9mcFwiO1xuXG5leHBvcnQgdHlwZSBCb3JkZXJDb2xvckFsaWFzID0ga2V5b2YgdHlwZW9mIGFsaWFzVG9Ob21pbmFsO1xuZXhwb3J0IHR5cGUgQm9yZGVyQ29sb3IgPSBDb2xvciB8IEJvcmRlckNvbG9yQWxpYXM7XG5cbmNvbnN0IGFsaWFzVG9Ob21pbmFsID0geyBib3JkZXJQcmltYXJ5OiBcImdyZXk2MFwiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IGlzQm9yZGVyQ29sb3JBbGlhcyA9IChjb2xvcjogQm9yZGVyQ29sb3IpOiBjb2xvciBpcyBCb3JkZXJDb2xvckFsaWFzID0+IGNvbG9yIGluIGFsaWFzVG9Ob21pbmFsO1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyQ29sb3JQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbm9ybWFsPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGhvdmVyPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGRpc2FibGVkPzogQm9yZGVyQ29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyUHJvcHMgPSB7XG4gIGNvbG9yPzogQm9yZGVyQ29sb3IgfCAkQm9yZGVyQ29sb3JQcm9wcztcbiAgd2lkdGg/OiBCb3JkZXJXaWR0aCB8IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMZWF2ZSB0aGUgbGFzdCBvZiB0aGUgZWxlbWVudCdzIHNpYmxpbmdzIHdpdGhvdXQgdGhlIGJvcmRlciwgc28gdGhhdCBhIHN0YWNrXG4gICAqIG9mIGJvcmRlcmVkIHJvd3MgcmVhZHMgYXMgcm93cyBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIHJhdGhlciB0aGFuIGZyYW1lZC5cbiAgICovXG4gIGV4Y2VwdExhc3Q/OiBib29sZWFuO1xufSAmIFNpZGVTdHlsZXMgJlxuICBDb3JuZXJTdHlsZXM7XG5cbmV4cG9ydCB0eXBlIEJvcmRlclBsdWdpblByb3BzID0geyAkYm9yZGVyPzogJEJvcmRlclByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBib3JkZXJQbHVnaW4gPSBnZXRQbHVnaW48Qm9yZGVyUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJvcmRlcikge1xuICAgIHJldHVybiB7ICRib3JkZXI6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0Q29ybmVyU3R5bGVzKHByb3BzLiRib3JkZXIpLCBnZXRCb3JkZXJTdHlsZXMocHJvcHMuJGJvcmRlcildLFxuICAgICRib3JkZXI6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBnZXRCb3JkZXJTdHlsZXMgPSAoeyB3aWR0aCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBjb2xvciwgZXhjZXB0TGFzdCB9OiAkQm9yZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgYm9yZGVyV2lkdGggPSB3aWR0aCA9PT0gdHJ1ZSB8fCAod2lkdGggPT09IHVuZGVmaW5lZCAmJiBjb2xvcikgPyBcInh4c1wiIDogd2lkdGg7XG4gIGNvbnN0IHsgbm9ybWFsLCBob3ZlciwgZGlzYWJsZWQgfSA9XG4gICAgYm9yZGVyV2lkdGggJiYgY29sb3IgPT09IHVuZGVmaW5lZFxuICAgICAgPyB7IG5vcm1hbDogXCJib3JkZXJQcmltYXJ5XCIgYXMgY29uc3QgfVxuICAgICAgOiB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyB7IG5vcm1hbDogY29sb3IgfVxuICAgICAgICA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgJiYgaXNCb3JkZXJDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsO1xuICBjb25zdCBob3ZlckNvbG9yID0gaG92ZXIgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyO1xuICBjb25zdCBkaXNhYmxlZENvbG9yID0gZGlzYWJsZWQgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkO1xuXG4gIGNvbnN0IHN0eWxlQ2xhc3NlcyA9IGNvbXBhY3QoW1xuICAgIGJvcmRlcldpZHRoID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3dpZHRoLS0ke2JvcmRlcldpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIG5vcm1hbENvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX2NvbG9yLS0ke25vcm1hbENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIGhvdmVyQ29sb3IgPyBib3JkZXJTdHlsZXNbYGJvcmRlcl9fY29sb3ItLSR7aG92ZXJDb2xvcn0tLWhvdmVyYF0gOiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZWRDb2xvciA/IGJvcmRlclN0eWxlc1tgYm9yZGVyX19jb2xvci0tJHtkaXNhYmxlZENvbG9yfS0tZGlzYWJsZWRgXSA6IHVuZGVmaW5lZCxcbiAgICAuLi5nZXRTaWRlU3R5bGVzKHsgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wIH0pLFxuICAgIGV4Y2VwdExhc3QgPyBib3JkZXJTdHlsZXNbXCJib3JkZXItLWV4Y2VwdC1sYXN0XCJdIDogdW5kZWZpbmVkLFxuICBdKTtcblxuICByZXR1cm4gW3N0eWxlQ2xhc3Nlcywgc3R5bGVDbGFzc2VzLmxlbmd0aCA+IDAgJiYgYm9yZGVyU3R5bGVzW1wiYm9yZGVyX19zdHlsZS0tc29saWRcIl1dO1xufTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JvcmRlci9ib3JkZXIubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3N0eWxlLS1zb2xpZF9fXzFReTFKIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDIHtcXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1zX19fdmxtdWwge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1fX19Fb0h2aiB7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbWxfX19rc0tQZSB7XFxuICBib3JkZXItcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54IHtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tNTBfX19FYzVjYyB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tZnVsbF9fX2YwT2tMIHtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXplcm9fX191TGNPMiB7XFxuICBib3JkZXItd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5IHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSSB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXNfX194OU5VaiB7XFxuICBib3JkZXItd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLW1fX19DRjhDRSB7XFxuICBib3JkZXItd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NSB7XFxuICBib3JkZXItd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE4ge1xcbiAgYm9yZGVyLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS14eGxfX18tZHJnUCB7XFxuICBib3JkZXItd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS0zeGxfX19kcW1pRiB7XFxuICBib3JkZXItd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS00eGxfX19iRUw5MCB7XFxuICBib3JkZXItd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS01eGxfX196ajFWWCB7XFxuICBib3JkZXItd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0X19fRTJNU3Mge1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJfX19XeW5CUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlX19fZ1Qyb2cge1xcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlLS1ob3Zlcl9fX1FkcFZiOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYSzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRfX19zd2FtSCB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXo6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZF9fX3NpRHJ5OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwX19fdjVsODMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkX19fUWpLUlI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0taG92ZXJfX19DcHBsVjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWRpc2FibGVkX19fLThQS2w6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwX19fUDlKTUgge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk2MC0tZGlzYWJsZWRfX19nY1ZkRDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDBfX19mNlNEdyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDAtLWhvdmVyX19fVUhkSXI6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0taG92ZXJfX19WTkRTUjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWRpc2FibGVkX19fcHlKT3E6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1X19fc25WbmQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyNS0tZGlzYWJsZWRfX19vbVBKUDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjBfX19nYm4zWiB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjAtLWhvdmVyX19feFJzd2M6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0taG92ZXJfX19VWmgtZDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWRpc2FibGVkX19fOVotT1Q6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwX19feXI5aU0ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk3MC0tZGlzYWJsZWRfX19Td1JRaTpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fNkRiZFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkX19feVA0Ty06ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXByaW1hcnlfX19nZnhCTyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0taG92ZXJfX19wdUhEcDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzRzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50X19fZS1IbEQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWFjY2VudC0taG92ZXJfX19TMm9WRTpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1kaXNhYmxlZF9fX3kzQmJiOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzX19fWnVybFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk06aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkX19fVFAzUnY6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0taG92ZXJfX19NSlFVaDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWRpc2FibGVkX19feVZ1aTI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3Zlcl9fX21Bb1NCOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1kaXNhYmxlZF9fX1djQUstOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWwtLWhvdmVyX19fdU1GamE6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRfX19LOWdsNzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUFNSTW4ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZzpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50LS1kaXNhYmxlZF9fX1drT3BBOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRfX19JVFdtTSB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3Zlcl9fX0pjLU5uOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm86ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19PUXV4dCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnQtLWhvdmVyX19fbFdhOUQ6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWxpbmtfX19pWWVGayB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0taG92ZXJfX180eVJKUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQjpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3Zlcl9fX1o1czVkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1kaXNhYmxlZF9fX3VEUVpNOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS16ZXJvX19fVktScS0ge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHhzX19fOHppN1Qge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHNfX19STkVLMiB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1zX19fYVZuMVcge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogM3B4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLWxfX18tb2VQUCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiA2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6IHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS0zeGxfX181eEstLSB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tNHhsX19fcEVEdGMge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMTRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdoaXRlX19fdS11UWIge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudF9fX1BzTW14IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTgwX19fZUhqekYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBfX19IaXJnZiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTMwX19fQkJyQlEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBfX18xbHVwUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwX19fRTJHZlQge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1wcmltYXJ5X19fNTExamsge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NfX183OS11aiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1gge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUGEwTkcge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRfX18yZVVRVCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19ISkFvMiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tbGlua19fX0tZRkdLIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS16ZXJvX19fcmxESW4ge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4c19fXy16NzlhIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS1zX19fTXRZVDYge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLW1fX19TRDk3dyB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14bF9fXzA1bjAwIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eGxfX18tYUV3diB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTN4bF9fX0R1MFJvIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGsge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS01eGxfX19TcDQ4ayB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRfX185eVBlSSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmQge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwX19fYWFTbmEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWoge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NjBfX19vTlctVSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MF9fXzJKd2k5IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHgge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjVfX19RYkZVSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMF9fX2VzTVFNIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NzBfX190a3pBSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qNDVVTiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1wcmltYXJ5X19fSElrMkEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tYWNjZW50X19fV1gyTFMge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tc3VjY2Vzc19fX1JJd2FIIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLW5vdGljZV9fX3ZVTGFUIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ19fX1kyaVBpIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsX19fWG02dFEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fbTFudlkge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNvZGVfX19VQ2RNMCB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0temVyb19fX1BsQUJMIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXh4c19fX1pGbS1VIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXhzX19faER6U3Mge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tc19fX0lXdC11IHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItcyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1sX19fMEh2bDEge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0cyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tM3hsX19fR2pMWVUge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLTR4bF9fX0J2SldQIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZV9fX0RabWo2IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRfX19xa05nRiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eCB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXk4MF9fX3RuTWo1IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwbiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwX19fYzd1YzAge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkzMF9fX1k4NUM0IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwX19fdk8tbUoge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMF9fX0ZhLWh5IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrViB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tcHJpbWFyeV9fX0otcjVKIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVMge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzX19fZnhadlIge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzVGludF9fX0FzdnRjIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50X19fNE9QZk8ge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxUaW50X19feDJVTFEge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWxpbmtfX19SMlhEdSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS0ge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcCB7XFxuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXhzX19fejJYSUYge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmMge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1tX19fNGpQdTUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1sX19fbFBhUksge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14bF9fX01jLS1SIHtcXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHhsX19fS1hPUloge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNHhsX19fY2RVbFcge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNXhsX19fN2w5SDAge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdF9fX3FkNGtEIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlX19fLXJ6czcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50X19fdVVVRXgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBfX19RRGJWMiB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwX19fN2hWeTgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTYwX19fcTlUczIge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTMwX19faXRVVXMge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTI1X19fejlFZ0Qge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTEwX19feXRaUE4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTcwX19fRW95Vlcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fXzJHSVcyIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHkge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWFjY2VudF9fXzFSUzByIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXUge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLW5vdGljZV9fX21oSkFuIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdfX191VjV0VyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxfX19BNkppTyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludF9fX043VWNUIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxUaW50X19fYS1mYUcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tbGlua19fX213Ukt3IHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jb2RlX19fdUpXRkgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0ViB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNfX192bzVlbCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1fX19HSUVjdCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1sX19fbUVjRHYge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1sX19fcmctRDAge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHcyB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxfX181Wkl2OCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXplcm9fX19POGRFMyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TCB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1fX19TbDVSUiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGIge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sX19fNTJKb2wge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBfX183LXdPRyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLXNfX196RklMMyB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1tX19fS05TY1Qge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxfX192dDd4MiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1sX19fazhwaWsge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHUge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tZnVsbF9fX2VIajZzIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLXplcm9fX19QMVl0dyB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGUge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbV9fXzNMUlIwIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHcge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbF9fXzNzMkNKIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS01MF9fX3dOWXdRIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwJTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUiB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDAwMDAwMDAwMDAwMDAwMDAwcHg7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXItLWV4Y2VwdC1sYXN0X19fMjJZc0I6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYm9yZGVyX19zdHlsZS0tc29saWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fc3R5bGUtLXNvbGlkX19fMVF5MUpcIixcImJvcmRlcl9fcmFkaXVzLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDXCIsXCJib3JkZXJfX3JhZGl1cy0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLXNfX192bG11bFwiLFwiYm9yZGVyX19yYWRpdXMtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1tX19fRW9IdmpcIixcImJvcmRlcl9fcmFkaXVzLS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1sX19fa3NLUGVcIixcImJvcmRlcl9fcmFkaXVzLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54XCIsXCJib3JkZXJfX3JhZGl1cy0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS01MF9fX0VjNWNjXCIsXCJib3JkZXJfX3JhZGl1cy0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLWZ1bGxfX19mME9rTFwiLFwiYm9yZGVyX193aWR0aC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0temVyb19fX3VMY08yXCIsXCJib3JkZXJfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5XCIsXCJib3JkZXJfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSVwiLFwiYm9yZGVyX193aWR0aC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tc19fX3g5TlVqXCIsXCJib3JkZXJfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS1tX19fQ0Y4Q0VcIixcImJvcmRlcl9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NVwiLFwiYm9yZGVyX193aWR0aC0teGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE5cIixcImJvcmRlcl9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHhsX19fLWRyZ1BcIixcImJvcmRlcl9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tM3hsX19fZHFtaUZcIixcImJvcmRlcl9fd2lkdGgtLTR4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNHhsX19fYkVMOTBcIixcImJvcmRlcl9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNXhsX19femoxVlhcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXRfX19FMk1Tc1wiLFwiYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXQtLWhvdmVyX19fV3luQlBcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFXCIsXCJib3JkZXJfX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2hpdGVfX19nVDJvZ1wiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0taG92ZXJfX19RZHBWYlwiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYS1wiLFwiYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50X19fc3dhbUhcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXpcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWRpc2FibGVkX19fc2lEcnlcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDBfX192NWw4M1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTEwMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1FcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwLS1kaXNhYmxlZF9fX1FqS1JSXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyX19fQ3BwbFZcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRfX18tOFBLbFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjBfX19QOUpNSFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkX19fZ2NWZERcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwX19fZjZTRHdcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJfX19VSGRJclwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1XCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyX19fVk5EU1JcIixcImJvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRfX19weUpPcVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjVfX19zblZuZFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkX19fb21QSlBcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwX19fZ2JuM1pcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJfX194UnN3Y1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyX19fVVpoLWRcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRfX185Wi1PVFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzBfX195cjlpTVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkX19fU3dSUWlcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVfX182RGJkU1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTgwQWxwaGE4NS0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0FcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1LS1kaXNhYmxlZF9fX3lQNE8tXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5X19fZ2Z4Qk9cIixcImJvcmRlcl9fY29sb3ItLXByaW1hcnktLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1ob3Zlcl9fX3B1SERwXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzR1wiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnRfX19lLUhsRFwiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3Zlcl9fX1Myb1ZFXCIsXCJib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkX19feTNCYmJcIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NfX19adXJsU1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzcy0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk1cIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzLS1kaXNhYmxlZF9fX1RQM1J2XCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUXCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyX19fTUpRVWhcIixcImJvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRfX195VnVpMlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6XCIsXCJib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZy0taG92ZXJfX19tQW9TQlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZy0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmctLWRpc2FibGVkX19fV2NBSy1cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1ob3Zlcl9fX3VNRmphXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1kaXNhYmxlZF9fX0s5Z2w3XCIsXCJib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QU1JNblwiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZ1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0tZGlzYWJsZWRfX19Xa09wQVwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50X19fSVRXbU1cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWhvdmVyX19fSmMtTm5cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm9cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50X19fT1F1eHRcIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJfX19sV2E5RFwiLFwiYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0XCIsXCJib3JkZXJfX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rX19faVllRmtcIixcImJvcmRlcl9fY29sb3ItLWxpbmstLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rLS1ob3Zlcl9fXzR5UkpQXCIsXCJib3JkZXJfX2NvbG9yLS1saW5rLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQlwiLFwiYm9yZGVyX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpXCIsXCJib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZS0taG92ZXJfX19aNXM1ZFwiLFwiYm9yZGVyX19jb2xvci0tY29kZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNvZGUtLWRpc2FibGVkX19fdURRWk1cIixcImJvcmRlclRvcF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXplcm9fX19WS1JxLVwiLFwiYm9yZGVyVG9wX193aWR0aC0teHhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14eHNfX184emk3VFwiLFwiYm9yZGVyVG9wX193aWR0aC0teHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXhzX19fUk5FSzJcIixcImJvcmRlclRvcF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXNfX19hVm4xV1wiLFwiYm9yZGVyVG9wX193aWR0aC0tbVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqXCIsXCJib3JkZXJUb3BfX3dpZHRoLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1sX19fLW9lUFBcIixcImJvcmRlclRvcF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJXCIsXCJib3JkZXJUb3BfX3dpZHRoLS14eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6XCIsXCJib3JkZXJUb3BfX3dpZHRoLS0zeGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTN4bF9fXzV4Sy0tXCIsXCJib3JkZXJUb3BfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTR4bF9fX3BFRHRjXCIsXCJib3JkZXJUb3BfX3dpZHRoLS01eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmFcIixcImJvcmRlclRvcF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13aGl0ZV9fX3UtdVFiXCIsXCJib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tdHJhbnNwYXJlbnRfX19Qc01teFwiLFwiYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk4MF9fX2VIanpGXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk0MF9fX0hpcmdmXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkzMF9fX0JCckJRXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyMF9fXzFsdXBQXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkxMF9fX0UyR2ZUXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXZcIixcImJvcmRlclRvcF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXByaW1hcnlfX181MTFqa1wiLFwiYm9yZGVyVG9wX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUFwiLFwiYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc19fXzc5LXVqXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwXCIsXCJib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1hcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QYTBOR1wiLFwiYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdhcm5pbmdUaW50X19fMmVVUVRcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY3JpdGljYWxUaW50X19fSEpBbzJcIixcImJvcmRlclRvcF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWxpbmtfX19LWUZHS1wiLFwiYm9yZGVyVG9wX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0temVyb19fX3JsREluXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eHNfX18tejc5YVwiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tc19fX010WVQ2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbV9fX1NEOTd3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXhsX19fMDVuMDBcIixcImJvcmRlclJpZ2h0X193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4bF9fXy1hRXd2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS0zeGxfX19EdTBSb1wiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGtcIixcImJvcmRlclJpZ2h0X193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTV4bF9fX1NwNDhrXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0taW5oZXJpdF9fXzl5UGVJXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmRcIixcImJvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSlwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkxMDBfX19hYVNuYVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWpcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk2MF9fX29OVy1VXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NDBfX18ySndpOVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHhcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyNV9fX1FiRlVKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjBfX19lc01RTVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk3MF9fX3RrekFKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2o0NVVOXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tcHJpbWFyeV9fX0hJazJBXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1hY2NlbnRfX19XWDJMU1wiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NfX19SSXdhSFwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbm90aWNlX19fdlVMYVRcIixcImJvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS13YXJuaW5nX19fWTJpUGlcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxfX19YbTZ0UVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludF9fX20xbnZZXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44XCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY29kZV9fX1VDZE0wXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvX19fUGxBQkxcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teHhzX19fWkZtLVVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14c19fX2hEelNzXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1zX19fSVd0LXVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItc1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tbF9fXzBIdmwxXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS14bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0c1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRlwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS0zeGxfX19HakxZVVwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS00eGxfX19CdkpXUFwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2hpdGVfX19EWm1qNlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXRyYW5zcGFyZW50X19fcWtOZ0ZcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5ODBfX190bk1qNVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwblwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NDBfX19jN3VjMFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTMwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MzBfX19ZODVDNFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjBfX192Ty1tSlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTEwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MTBfX19GYS1oeVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrVlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5X19fSi1yNUpcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NfX19meFp2UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tbm90aWNlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tc3VjY2Vzc1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fQXN2dGNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13YXJuaW5nVGludF9fXzRPUGZPXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3gyVUxRXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rX19fUjJYRHVcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS1cIixcImJvcmRlckxlZnRfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcFwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHNfX196MlhJRlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmNcIixcImJvcmRlckxlZnRfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tbV9fXzRqUHU1XCIsXCJib3JkZXJMZWZ0X193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLWxfX19sUGFSS1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teGxfX19NYy0tUlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXh4bF9fX0tYT1JaXCIsXCJib3JkZXJMZWZ0X193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUVcIixcImJvcmRlckxlZnRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS00eGxfX19jZFVsV1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLTV4bF9fXzdsOUgwXCIsXCJib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWluaGVyaXRfX19xZDRrRFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0td2hpdGVfX18tcnpzN1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tdHJhbnNwYXJlbnRfX191VVVFeFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTAwX19fUURiVjJcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBfX183aFZ5OFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MF9fX3E5VHMyXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEpcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBfX19pdFVVc1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNV9fX3o5RWdEXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm5cIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBfX195dFpQTlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MF9fX0VveVZXXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk4MEFscGhhODVfX18yR0lXMlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHlcIixcImJvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRfX18xUlMwclwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXVcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VfX19taEpBblwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nX19fdVY1dFdcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWNyaXRpY2FsX19fQTZKaU9cIixcImJvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWpcIixcImJvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdUaW50X19fTjdVY1RcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19hLWZhR1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1saW5rX19fbXdSS3dcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jb2RlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY29kZV9fX3VKV0ZIXCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0VlwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1zX19fdm81ZWxcIixcImJvcmRlclJhZGl1c1RvcFJpZ2h0LS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tbV9fX0dJRWN0XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1tbF9fX21FY0R2XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWxfX19yZy1EMFwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLTUwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHc1wiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1mdWxsX19fNVpJdjhcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0temVyb19fX084ZEUzXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tX19fU2w1UlJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tbF9fXzUySm9sXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS01MF9fXzctd09HXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNlwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtXCIsXCJib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zX19fekZJTDNcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1fX19LTlNjVFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1sX19fdnQ3eDJcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxfX19rOHBpa1wiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHVcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxfX19lSGo2c1wiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb19fX1AxWXR3XCIsXCJib3JkZXJSYWRpdXNUb3BMZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGVcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1fX18zTFJSMFwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHdcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWxfX18zczJDSlwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLTUwX19fd05Zd1FcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUlwiLFwiYm9yZGVyLS1leGNlcHQtbGFzdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyLS1leGNlcHQtbGFzdF9fXzIyWXNCXCJ9OyIsICJpbXBvcnQgYm9yZGVyU3R5bGVzIGZyb20gXCIuL2JvcmRlci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBCb3JkZXJSYWRpdXNTaXplIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb3JuZXJTdHlsZXMge1xuICByYWRpdXM/OiBCb3JkZXJSYWRpdXNTaXplIHwgYm9vbGVhbjtcbiAgcmFkaXVzVG9wUmlnaHQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNCb3R0b21SaWdodD86IEJvcmRlclJhZGl1c1NpemU7XG4gIHJhZGl1c0JvdHRvbUxlZnQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNUb3BMZWZ0PzogQm9yZGVyUmFkaXVzU2l6ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvcm5lclN0eWxlcyA9IChzdHlsZXM6IENvcm5lclN0eWxlcykgPT4ge1xuICBjb25zdCB7IHJhZGl1cywgcmFkaXVzVG9wUmlnaHQsIHJhZGl1c0JvdHRvbVJpZ2h0LCByYWRpdXNCb3R0b21MZWZ0LCByYWRpdXNUb3BMZWZ0IH0gPSBzdHlsZXM7XG5cbiAgaWYgKHJhZGl1cykge1xuICAgIGNvbnN0IGJvcmRlclJhZGl1c1NpemUgPSByYWRpdXMgPT09IHRydWUgPyBcInNcIiA6IHJhZGl1cztcblxuICAgIHJldHVybiBib3JkZXJSYWRpdXNTaXplID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3JhZGl1cy0tJHtib3JkZXJSYWRpdXNTaXplfWBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICByYWRpdXNUb3BSaWdodCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyUmFkaXVzVG9wUmlnaHQtLSR7cmFkaXVzVG9wUmlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgcmFkaXVzQm90dG9tUmlnaHQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS0ke3JhZGl1c0JvdHRvbVJpZ2h0fWBdIDogdW5kZWZpbmVkLFxuICAgIHJhZGl1c0JvdHRvbUxlZnQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLSR7cmFkaXVzQm90dG9tTGVmdH1gXSA6IHVuZGVmaW5lZCxcbiAgICByYWRpdXNUb3BMZWZ0ID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJSYWRpdXNUb3BMZWZ0LS0ke3JhZGl1c1RvcExlZnR9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlclNpZGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplIGFzIGxvZGFzaENhcGl0YWxpemUgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZVN0eWxlcyB7XG4gIHRvcD86IEJvcmRlclNpZGU7XG4gIHJpZ2h0PzogQm9yZGVyU2lkZTtcbiAgYm90dG9tPzogQm9yZGVyU2lkZTtcbiAgbGVmdD86IEJvcmRlclNpZGU7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTaWRlU3R5bGVzID0gKHNpZGVzOiBTaWRlU3R5bGVzKSA9PiBbXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInRvcFwiLCBzaWRlcyksXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInJpZ2h0XCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwiYm90dG9tXCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwibGVmdFwiLCBzaWRlcyksXG5dO1xuXG5jb25zdCBnZXRTcGVjaWZpY1NpZGVTdHlsZXMgPSAoc2lkZToga2V5b2YgU2lkZVN0eWxlcywgc2lkZXM6IFNpZGVTdHlsZXMpID0+IHtcbiAgY29uc3QgeyB3aWR0aCwgY29sb3IgfSA9IHNpZGVzW3NpZGVdID8/IHt9O1xuICBjb25zdCBzaWRlTmFtZSA9IGNhcGl0YWxpemUoc2lkZSk7XG5cbiAgcmV0dXJuIFtcbiAgICB3aWR0aCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyJHtzaWRlTmFtZX1fX3dpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXIke3NpZGVOYW1lfV9fY29sb3ItLSR7Y29sb3J9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuXG5jb25zdCBjYXBpdGFsaXplID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHRhcmdldDogVCkgPT4gbG9kYXNoQ2FwaXRhbGl6ZSh0YXJnZXQpIGFzIENhcGl0YWxpemU8VD47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmb250U3R5bGVzIGZyb20gXCIuL2ZvbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRm9udFNpemUgPSBcInh4c1wiIHwgXCJ4c1wiIHwgXCJzXCIgfCBcIm1cIiB8IFwibFwiIHwgXCJ4bFwiIHwgXCJ4eGxcIiB8IFwiM3hsXCIgfCBcIjR4bFwiO1xuXG5leHBvcnQgdHlwZSBGb250Qm9sZCA9IFwiNjAwXCI7XG5cbmV4cG9ydCB0eXBlIEZvbnRMaW5lSGVpZ2h0ID0gXCJub25lXCIgfCBcInRpZ2h0XCIgfCBcIm5vcm1hbFwiIHwgXCJsb29zZVwiO1xuXG5leHBvcnQgdHlwZSBGb250UGx1Z2luUHJvcHMgPSB7XG4gICRmb250PzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgc2l6ZT86IEZvbnRTaXplO1xuICAgICAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgICAgICBib2xkPzogYm9vbGVhbiB8IEZvbnRCb2xkO1xuICAgICAgICBsaW5lSGVpZ2h0PzogRm9udExpbmVIZWlnaHQ7XG4gICAgICAgIGZvcmNlV3JhcD86IGJvb2xlYW47XG4gICAgICAgIG5vV3JhcD86IGJvb2xlYW47XG4gICAgICAgIHVwcGVyY2FzZT86IGJvb2xlYW47XG4gICAgICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgICAgIHRleHRPdmVyZmxvdz86IFwiY2xpcFwiIHwgXCJlbGxpcHNpc1wiIHwgXCJkZWZhdWx0XCI7XG4gICAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGZvbnRQbHVnaW4gPSBnZXRQbHVnaW48Rm9udFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRmb250KSB7XG4gICAgcmV0dXJuIHsgJGZvbnQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIHNpemUgPSB1bmRlZmluZWQsXG4gICAgYm9sZCA9IGZhbHNlLFxuICAgIGxpbmVIZWlnaHQgPSB1bmRlZmluZWQsXG4gICAgbm9XcmFwID0gZmFsc2UsXG4gICAgdXBwZXJjYXNlID0gZmFsc2UsXG4gICAgaXRhbGljID0gZmFsc2UsXG4gICAgZm9yY2VXcmFwID0gZmFsc2UsXG4gICAgdW5kZXJsaW5lID0gZmFsc2UsXG4gICAgdGV4dE92ZXJmbG93ID0gXCJkZWZhdWx0XCIsXG4gIH0gPSBwcm9wcy4kZm9udCA9PT0gdHJ1ZSA/IHt9IDogcHJvcHMuJGZvbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgc2l6ZSA/IGZvbnRTdHlsZXNbYGZvbnRfX3NpemUtLSR7c2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvbGQgPT09IHRydWUgPyBmb250U3R5bGVzW1wiZm9udC0tYm9sZFwiXSA6IGJvbGQgPyBmb250U3R5bGVzW2Bmb250LS13ZWlnaHQtJHtib2xkfWBdIDogdW5kZWZpbmVkLFxuICAgICAgbGluZUhlaWdodCA/IGZvbnRTdHlsZXNbYGZvbnRfX2xpbmUtaGVpZ2h0LS0ke2xpbmVIZWlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgICB0ZXh0T3ZlcmZsb3cgPT09IFwiZGVmYXVsdFwiID8gdW5kZWZpbmVkIDogZm9udFN0eWxlc1tgZm9udC0tdGV4dC1vdmVyZmxvdy0tJHt0ZXh0T3ZlcmZsb3d9YF0sXG4gICAgICB7XG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tbm8td3JhcFwiXV06IG5vV3JhcCxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS1mb3JjZS13cmFwXCJdXTogZm9yY2VXcmFwLFxuICAgICAgICBbZm9udFN0eWxlc1tcImZvbnQtLWl0YWxpY1wiXV06IGl0YWxpYyxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS11cHBlcmNhc2VcIl1dOiB1cHBlcmNhc2UsXG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tdW5kZXJsaW5lXCJdXTogdW5kZXJsaW5lLFxuICAgICAgfSxcbiAgICBdLFxuICAgICRmb250OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLSB7XFxuICBmb250LXNpemU6IGNhbGMoMS4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtYWxsKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS1zX19fVGJuTWwge1xcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLW1fX19mREpBaiB7XFxuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iaWcpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLWxfX191S2N1ayB7XFxuICBmb250LXNpemU6IGNhbGMoMi4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14bF9fX1JlaG9RIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygyLjUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0teHhsX19fQ2dvS1Age1xcbiAgZm9udC1zaXplOiBjYWxjKDIuNzUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tM3hsX19fc0NJZXoge1xcbiAgZm9udC1zaXplOiBjYWxjKDMgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2Uge1xcbiAgZm9udC1zaXplOiBjYWxjKDQgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5SyB7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tdGlnaHRfX19yLUVCOSB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxfX19ySjRWTiB7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtIHtcXG4gIGxpbmUtaGVpZ2h0OiAyO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWJvbGRfX19iamUtYiB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS13ZWlnaHQtNjAwX19fRWdkem0ge1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1uby13cmFwX19fcWJSUk8ge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1mb3JjZS13cmFwX19fT0dDRnoge1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtbiB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWl0YWxpY19fX0pINFRaIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11bmRlcmxpbmVfX19kNG9uTCB7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc19fX0hxZlgtIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5mb250LW1vZHVsZV9fZm9udC0tdGV4dC1vdmVyZmxvdy0tY2xpcF9fXzk2eEI5IHtcXG4gIHRleHQtb3ZlcmZsb3c6IGNsaXA7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmb250X19zaXplLS14eHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLVwiLFwiZm9udF9fc2l6ZS0teHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5XCIsXCJmb250X19zaXplLS1zXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tc19fX1Ribk1sXCIsXCJmb250X19zaXplLS1tXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbV9fX2ZESkFqXCIsXCJmb250X19zaXplLS1sXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbF9fX3VLY3VrXCIsXCJmb250X19zaXplLS14bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXhsX19fUmVob1FcIixcImZvbnRfX3NpemUtLXh4bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXh4bF9fX0Nnb0tQXCIsXCJmb250X19zaXplLS0zeGxcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS0zeGxfX19zQ0llelwiLFwiZm9udF9fc2l6ZS0tNHhsXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2VcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub25lXCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5S1wiLFwiZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0XCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0X19fci1FQjlcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxcIjpcImZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tbm9ybWFsX19fcko0Vk5cIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtXCIsXCJmb250LS1ib2xkXCI6XCJmb250LW1vZHVsZV9fZm9udC0tYm9sZF9fX2JqZS1iXCIsXCJmb250LS13ZWlnaHQtNjAwXCI6XCJmb250LW1vZHVsZV9fZm9udC0td2VpZ2h0LTYwMF9fX0VnZHptXCIsXCJmb250LS1uby13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tbm8td3JhcF9fX3FiUlJPXCIsXCJmb250LS1mb3JjZS13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tZm9yY2Utd3JhcF9fX09HQ0Z6XCIsXCJmb250LS11cHBlcmNhc2VcIjpcImZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtblwiLFwiZm9udC0taXRhbGljXCI6XCJmb250LW1vZHVsZV9fZm9udC0taXRhbGljX19fSkg0VFpcIixcImZvbnQtLXVuZGVybGluZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXVuZGVybGluZV9fX2Q0b25MXCIsXCJmb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc1wiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXRleHQtb3ZlcmZsb3ctLWVsbGlwc2lzX19fSHFmWC1cIixcImZvbnQtLXRleHQtb3ZlcmZsb3ctLWNsaXBcIjpcImZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1jbGlwX19fOTZ4QjlcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgQm94U2hhZG93UGx1Z2luUHJvcHMgPSB7XG4gICRib3hTaGFkb3c/OiBib29sZWFuIHwgXCJlbGV2YXRlZFwiIHwgXCJzdWJ0bGVcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBib3hTaGFkb3dQbHVnaW4gPSBnZXRQbHVnaW48Qm94U2hhZG93UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJveFNoYWRvdykge1xuICAgIHJldHVybiB7XG4gICAgICAkYm94U2hhZG93OiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHZhcmlhbnQgPSBwcm9wcy4kYm94U2hhZG93ID09PSB0cnVlID8gXCJlbGV2YXRlZFwiIDogcHJvcHMuJGJveFNoYWRvdztcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBzdHlsZXNbYGJveC1zaGFkb3ctLSR7dmFyaWFudH1gXV0sXG4gICAgJGJveFNoYWRvdzogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3gtc2hhZG93LW1vZHVsZV9fYm94LXNoYWRvdy0tZWxldmF0ZWRfX19qYWg3ZiB7XFxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xcbn1cXG4uYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNIHtcXG4gIGJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMjI3NDUwOTgwNCksIDAgMC42cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yMjc0NTA5ODA0KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJib3gtc2hhZG93LS1lbGV2YXRlZFwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLWVsZXZhdGVkX19famFoN2ZcIixcImJveC1zaGFkb3ctLXN1YnRsZVwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNXCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyA9IHsgJG5vUG9pbnRlckV2ZW50cz86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IG5vUG9pbnRlckV2ZW50c1BsdWdpbiA9IGdldFBsdWdpbjxOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFtzdHlsZXNbXCJuby1wb2ludGVyLWV2ZW50c1wiXV06IHByb3BzLiRub1BvaW50ZXJFdmVudHMgfV0sXG4gICRub1BvaW50ZXJFdmVudHM6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIubm8tcG9pbnRlci1ldmVudHMtbW9kdWxlX19uby1wb2ludGVyLWV2ZW50c19fXzdtRjBiICoge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibm8tcG9pbnRlci1ldmVudHNcIjpcIm5vLXBvaW50ZXItZXZlbnRzLW1vZHVsZV9fbm8tcG9pbnRlci1ldmVudHNfX183bUYwYlwifTsiLCAiaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gU2ltcGxpZmllZCB0eXBlIHNpbmNlIFJlZkNhbGxiYWNrIGZyb20gXCJyZWFjdFwiIGNhdXNlcyBVTkRFRklORURfVk9JRF9PTkxZIGVycm9yXG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQ29uZnVzaW5nVm9pZFR5cGU6IHZvaWQgdHlwaW5nIHJlcXVpcmVkXG50eXBlIFJlZkNhbGxiYWNrPFQ+ID0gKGluc3RhbmNlOiBUIHwgbnVsbCkgPT4gdW5kZWZpbmVkIHwgdm9pZCB8ICgoKSA9PiBhbnkpO1xuXG5leHBvcnQgdHlwZSBSZWZMaWtlPFQ+ID0gUmVmQ2FsbGJhY2s8VD4gfCBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQgfCBudWxsPiB8IFJlYWN0LlJlZk9iamVjdDxUPiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgJFJlZlByb3A8VD4gPSBSZWZMaWtlPFQ+IHwgJFJlZlByb3A8VD5bXTtcblxuZXhwb3J0IHR5cGUgUmVmUGx1Z2luUHJvcHM8VD4gPSB7XG4gICRyZWY/OiAkUmVmUHJvcDxUPjtcbiAgcmVmPzogUmVmTGlrZTxUPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlZlBsdWdpbjxUPiA9IFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPiwgdW5rbm93bj47XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZQbHVnaW48VCA9IEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPj4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkcmVmIH0gPSBwcm9wcztcbiAgICBjb25zdCBwcmV2UmVmcyA9IHVzZVJlZihuZXcgU2V0PFJlZkxpa2U8VD4+KCkpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpO1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIGRvIG5vdCB3YW50IHRvIHJ1biB0aGlzIG11bHRpcGxlIHRpbWVzXG4gICAgY29uc3QgcmVmID0gdXNlQ2FsbGJhY2soKGN1cnJlbnQ6IFQpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0UmVmcyA9IGZsYXR0ZW5SZWZzKCRyZWYpO1xuXG4gICAgICBmaXJzdFJlZnMuZm9yRWFjaChoYW5kbGVSZWZzRm9yKGN1cnJlbnQpKTtcbiAgICAgIHByZXZSZWZzLmN1cnJlbnQgPSBmaXJzdFJlZnM7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBjdXJyZW50O1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBwcmV2UmVmcy5jdXJyZW50LmZvckVhY2goaGFuZGxlUmVmc0ZvcjxUPihudWxsKSk7XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBmaXJzdFJlbmRlciA9IHVzZVJlZih0cnVlKTtcblxuICAgIGlmICghZmlyc3RSZW5kZXIuY3VycmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFJlZnMgPSBmbGF0dGVuUmVmcygkcmVmKTtcbiAgICAgIGNvbnN0IGFkZGVkUmVmcyA9IGN1cnJlbnRSZWZzLmRpZmZlcmVuY2UocHJldlJlZnMuY3VycmVudCk7XG4gICAgICBjb25zdCByZW1vdmVkUmVmcyA9IHByZXZSZWZzLmN1cnJlbnQuZGlmZmVyZW5jZShjdXJyZW50UmVmcyk7XG5cbiAgICAgIGFkZGVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4oZWxlbWVudFJlZi5jdXJyZW50KSk7XG4gICAgICByZW1vdmVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4obnVsbCkpO1xuICAgICAgcHJldlJlZnMuY3VycmVudCA9IGN1cnJlbnRSZWZzO1xuICAgIH1cblxuICAgIGZpcnN0UmVuZGVyLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICAkcmVmOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IGZsYXR0ZW5SZWZzID0gPFQsPihyZWZzOiAkUmVmUHJvcDxUPik6IFNldDxSZWZMaWtlPFQ+PiA9PlxuICBuZXcgU2V0KChbcmVmc10uZmxhdChJbmZpbml0eSBhcyAxKSBhcyBBcnJheTxOb25OdWxsYWJsZTxSZWZMaWtlPFQ+Pj4pLmZpbHRlcihpc0RlZmluZWQpKTtcblxuY29uc3QgaGFuZGxlUmVmc0ZvciA9XG4gIDxULD4odmFsdWU6IFQgfCBudWxsKSA9PlxuICAocmVmczogJFJlZlByb3A8VD4pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgcmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3IodmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWZzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlZnModmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocmVmcykge1xuICAgICAgKHJlZnMgYXMgTXV0YWJsZVJlZk9iamVjdDxUIHwgbnVsbD4pLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gIH07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcywgdHlwZSBJQ2xhc3NOYW1lIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgQ2xhc3NOYW1lUGx1Z2luUHJvcHMgPSB7ICRjbGFzc05hbWU/OiBJQ2xhc3NOYW1lOyBjbGFzc05hbWU/OiBzdHJpbmcgfTtcblxubGV0IHNob3dDbHV0dGVyID0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTmFtZVBsdWdpbiA9IGdldFBsdWdpbjxDbGFzc05hbWVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGNzc05hbWVzKHByb3BzLmNsYXNzTmFtZSwgcHJvcHMuJGNsYXNzTmFtZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi4oY2xhc3NOYW1lID8geyBjbGFzc05hbWU6IHNob3dDbHV0dGVyID8gY2xhc3NOYW1lIDogcmVtb3ZlQ2x1dHRlcihjbGFzc05hbWUpIH0gOiB7fSksXG4gICAgJGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IHJlbW92ZUNsdXR0ZXIgPSAoY2xhc3NOYW1lOiBzdHJpbmcpID0+XG4gIGNsYXNzTmFtZS5yZXBsYWNlKC9fX18uKj8oPz1cXHN8JCkvZywgXCJcIikucmVwbGFjZSgvXFxiW2EtekEtWjAtOS1dKy1tb2R1bGVfXy9nLCBcIlwiKTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyA9ICgpID0+IHtcbiAgc2hvd0NsdXR0ZXIgPSBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gPSAoKSA9PiB7XG4gIHNob3dDbHV0dGVyID0gdHJ1ZTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCByZWxhdGl2ZVN0eWxlcyBmcm9tIFwiLi9yZWxhdGl2ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVBsdWdpblByb3BzID0geyAkcmVsYXRpdmU/OiBib29sZWFuOyAkZml4ZWQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZVBsdWdpbiA9IGdldFBsdWdpbjxSZWxhdGl2ZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW1xuICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgeyBbcmVsYXRpdmVTdHlsZXMucmVsYXRpdmVdOiAhIXByb3BzLiRyZWxhdGl2ZSwgW3JlbGF0aXZlU3R5bGVzLmZpeGVkXTogISFwcm9wcy4kZml4ZWQgfSxcbiAgXSxcbiAgJGZpeGVkOiB1bmRlZmluZWQsXG4gICRyZWxhdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5yZWxhdGl2ZS1tb2R1bGVfX3JlbGF0aXZlX19fa3dNNXEge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4ucmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJyZWxhdGl2ZVwiOlwicmVsYXRpdmUtbW9kdWxlX19yZWxhdGl2ZV9fX2t3TTVxXCIsXCJmaXhlZFwiOlwicmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEXCJ9OyIsICJleHBvcnQgdHlwZSBEcmFnZ2FibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyYWdnYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIGl0ZW06IFQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcm9wcGFibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyb3BwYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIG9uRHJvcDogKGl0ZW06IFQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcmFnZ2FibGVDb250ZXh0PERyYWdnZWRJdGVtPiA9IHtcbiAgZHJhZ2dhYmxlOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IE5vbk51bGxhYmxlPERyYWdnYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltgJGRyYWdnYWJsZWBdPjtcbiAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+IE5vbk51bGxhYmxlPERyb3BwYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltcIiRkcm9wcGFibGVcIl0+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERyYWdnYWJsZUNvbnRleHQgPSA8RHJhZ2dlZEl0ZW0+KCk6IERyYWdnYWJsZUNvbnRleHQ8RHJhZ2dlZEl0ZW0+ID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBkcmFnZ2FibGU6IChpdGVtOiBEcmFnZ2VkSXRlbSkgPT4gKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBpdGVtLFxuICAgIH0pLFxuXG4gICAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+ICh7XG4gICAgICBjb250ZXh0LFxuICAgICAgb25Ecm9wLFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcbiIsICJpbXBvcnQgeyBnZXRGZWF0dXJlIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IG1vZHVsZXNXaXRoSW5qZWN0YWJsZXMgZnJvbSBcIi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpXCI7XG5pbXBvcnQgc3R5bGVzaGVldHMgZnJvbSBcIi4vKiovIShfKikuKHNjc3N8Y3NzKVwiO1xuXG5leHBvcnQgY29uc3QgZWxlbWVudENvbXBvbmVudEZlYXR1cmUgPSBnZXRGZWF0dXJlKHtcbiAgaWQ6IFwiZWxlbWVudC1jb21wb25lbnRcIixcbiAgcmVnaXN0ZXI6IChkaSkgPT4gcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzKGRpLCBbLi4ubW9kdWxlc1dpdGhJbmplY3RhYmxlcywgLi4uc3R5bGVzaGVldHNdKSxcbiAgLy8gTm8gZmVhdHVyZSBkZXBlbmRlbmNpZXM6IGEgZGVzaWduIHN5c3RlbSBldmVyeW9uZSBtYXkgaW5zdGFsbCBjYW5ub3QgZHJhZ1xuICAvLyBMZW5zIGZlYXR1cmVzIGludG8gdGhlIGNsb3N1cmUuIFRoZSBjbG9jayB0aGUgaG92ZXJhYmxlIHBsdWdpbiBuZWVkcyBpc1xuICAvLyBsb2NhbCwgYW5kIHRoZSBwbGF0Zm9ybSBpcyByZWFkIGRpcmVjdGx5LlxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGtleWJvYXJkIGNvbnZlbnRpb25zIG9mIG1hY09TIGFwcGx5LlxuICpcbiAqIFJlYWQgZnJvbSB0aGUgYnJvd3NlciByYXRoZXIgdGhhbiBmcm9tIGBwcm9jZXNzYCBvciB0aGUgdmFycyBmZWF0dXJlOiB0aGlzIGlzXG4gKiBhIHJlbmRlcmVyLW9ubHkgZGVzaWduIHN5c3RlbSwgaXQgbWF5IG5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZFxuICogYHByb2Nlc3NgIGlzIG5vdCB0aGVyZSB0byByZWFkIG9uY2UgdGhlIHJlbmRlcmVyIHN0b3BzIHJ1bm5pbmcgd2l0aCBub2RlXG4gKiBpbnRlZ3JhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzTWFjSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaXMtbWFjXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IHtcbiAgICBjb25zdCB7IHVzZXJBZ2VudERhdGEsIHBsYXRmb3JtLCB1c2VyQWdlbnQgfSA9IG5hdmlnYXRvciBhcyBOYXZpZ2F0b3IgJiB7XG4gICAgICByZWFkb25seSB1c2VyQWdlbnREYXRhPzogeyByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZyB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gL21hYy9pLnRlc3QodXNlckFnZW50RGF0YT8ucGxhdGZvcm0gPz8gcGxhdGZvcm0gPz8gdXNlckFnZW50ID8/IFwiXCIpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWF0Y2hlcyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB7IGlzTWFjSW5qZWN0YWJsZSB9IGZyb20gXCIuL2lzLW1hYy5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm9uLXJpZ2h0LXRyaWdnZXJcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgaXNNYWMgPSBkaS5pbmplY3QoaXNNYWNJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiBvblJpZ2h0VHJpZ2dlckZvcihpc01hYygpID8gaXNNYWNvc1Nob3J0Y3V0IDogaXNMaW51eE9yV2luZG93c1Nob3J0Y3V0KTtcbiAgfSxcbn0pO1xuXG5jb25zdCBvblJpZ2h0VHJpZ2dlckZvciA9XG4gIDxUPihjYjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+KSA9PiBib29sZWFuKSA9PlxuICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8VD4sIGNhbGxiYWNrOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPikgPT4ge1xuICAgIGlmIChjYihldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfVxuICB9O1xuXG5jb25zdCBpc01hY29zU2hvcnRjdXQgPSBtYXRjaGVzKHtcbiAgc2hpZnRLZXk6IGZhbHNlLFxuICBhbHRLZXk6IGZhbHNlLFxuICBjdHJsS2V5OiBmYWxzZSxcbiAgbWV0YUtleTogdHJ1ZSxcbiAgY29kZTogXCJFbnRlclwiLFxufSk7XG5cbmNvbnN0IGlzTGludXhPcldpbmRvd3NTaG9ydGN1dCA9IG1hdGNoZXMoe1xuICBzaGlmdEtleTogZmFsc2UsXG4gIGFsdEtleTogZmFsc2UsXG4gIGN0cmxLZXk6IHRydWUsXG4gIG1ldGFLZXk6IGZhbHNlLFxuICBjb2RlOiBcIkVudGVyXCIsXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm1ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LCA1MCk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgTmF2aWdhYmxlRW50cnkgPSB7XG4gIHJlYWRvbmx5IGl0ZW06IHVua25vd247XG4gIHJlYWRvbmx5IG9yZGVyTnVtYmVyOiBudW1iZXI7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufTtcblxudHlwZSBOYXZpZ2FibGVDb250ZXh0ID0gS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PGFueT47XG5cbi8qKlxuICogVGhlIG1lbWJlcnMgb2YgZXZlcnkga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQsIHRoZSBvcmRlciB0aGUgY29udGV4dHMgYXBwZWFyZWQgaW4sIGFuZCB3aGljaFxuICogbWVtYmVyIG9mIGVhY2ggaGFkIGZvY3VzLiBGb2N1cyBiZWxvbmdzIHRvIHRoZSBjb250ZXh0IHRoYXQgYXBwZWFyZWQgbGFzdDsgd2hlbiBpdCBnb2VzIGF3YXksIHRoZVxuICogcHJldmlvdXMgb25lIHRha2VzIGl0IGJhY2sgXHUyMDE0IGF0IHRoZSBtZW1iZXIgaXQgd2FzIGxlZnQgb24sIHdoaWNoIGlzIHdoYXQgbWFrZXMgc3RlcHBpbmcgaW50b1xuICogc29tZXRoaW5nIGFuZCBiYWNrIG91dCBvZiBpdCBsYW5kIHdoZXJlIGl0IHN0YXJ0ZWQgcmF0aGVyIHRoYW4gYXQgdGhlIGJlZ2lubmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwia2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiB7XG4gICAgY29uc3QgZW50cmllc0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgU2V0PE5hdmlnYWJsZUVudHJ5Pj4oKTtcbiAgICBjb25zdCBpdGVtSW5Gb2N1c0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgdW5rbm93bj4oKTtcbiAgICBjb25zdCBjb250ZXh0U3RhY2s6IE5hdmlnYWJsZUNvbnRleHRbXSA9IFtdO1xuXG4gICAgY29uc3QgZW50cmllc09mID0gKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gZW50cmllc0J5Q29udGV4dC5nZXQoY29udGV4dCk7XG5cbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNyZWF0ZWQgPSBuZXcgU2V0PE5hdmlnYWJsZUVudHJ5PigpO1xuXG4gICAgICBlbnRyaWVzQnlDb250ZXh0LnNldChjb250ZXh0LCBjcmVhdGVkKTtcblxuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfTtcblxuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgc29ydGVkRW50cmllc09mOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCkgPT5cbiAgICAgICAgWy4uLmVudHJpZXNPZihjb250ZXh0KV0uc29ydCgoYSwgYikgPT4gYS5vcmRlck51bWJlciAtIGIub3JkZXJOdW1iZXIpLFxuXG4gICAgICBjb250ZXh0SW5Gb2N1czogKCkgPT4gY29udGV4dFN0YWNrLmF0KC0xKSxcblxuICAgICAgaXRlbUluRm9jdXNPZjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IGl0ZW1JbkZvY3VzQnlDb250ZXh0LmdldChjb250ZXh0KSxcblxuICAgICAgbm90ZUl0ZW1JbkZvY3VzOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCwgaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5zZXQoY29udGV4dCwgaXRlbSk7XG4gICAgICB9LFxuXG4gICAgICByZWdpc3RlcjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQsIGVudHJ5OiBOYXZpZ2FibGVFbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gZW50cmllc09mKGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChlbnRyaWVzLnNpemUgPT09IDApIHtcbiAgICAgICAgICBjb250ZXh0U3RhY2sucHVzaChjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVudHJpZXMuYWRkKGVudHJ5KTtcbiAgICAgIH0sXG5cbiAgICAgIGRlcmVnaXN0ZXI6IChjb250ZXh0OiBOYXZpZ2FibGVDb250ZXh0LCBlbnRyeTogTmF2aWdhYmxlRW50cnkpID0+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGVudHJpZXNPZihjb250ZXh0KTtcblxuICAgICAgICBlbnRyaWVzLmRlbGV0ZShlbnRyeSk7XG5cbiAgICAgICAgaWYgKGVudHJpZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4SW5TdGFjayA9IGNvbnRleHRTdGFjay5sYXN0SW5kZXhPZihjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChpbmRleEluU3RhY2sgIT09IC0xKSB7XG4gICAgICAgICAgICBjb250ZXh0U3RhY2suc3BsaWNlKGluZGV4SW5TdGFjaywgMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQSBjb250ZXh0IHRoYXQgaXMgZ29uZSByZW1lbWJlcnMgbm90aGluZzogdGhlIG5leHQgdGltZSBpdHMgbWVtYmVycyBhcHBlYXIsIHRoZXlcbiAgICAgICAgICAvLyBhcHBlYXIgYW5ldywgYW5kIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRha2VzIGZvY3VzIGFzIGl0IGRpZCB0aGUgZmlyc3QgdGltZS5cbiAgICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5kZWxldGUoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi4vLi4vaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSG92ZXJhYmxlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9ob3ZlcmFibGVcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuXG5leHBvcnQgY29uc3QgY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkXCIsXG4gIGNvbnN1bXB0aW9uczogW2l0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbl0sXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSBkaS5pbmplY3QoaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuKTtcblxuICAgIHJldHVybiAoY29udGV4dDogSG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PGFueT4+KSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkSXRlbSA9IGl0ZW1CZWluZ0hvdmVyZWQoKShjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICEhaG92ZXJlZEl0ZW0uZ2V0KCkpO1xuICAgIH07XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcbmltcG9ydCBnbG9iYWxPdmVycmlkZXMgZnJvbSBcIi4vKiovKi5nbG9iYWwtb3ZlcnJpZGUtZm9yLWluamVjdGFibGUuKHRzfHRzeClcIjtcbmltcG9ydCBkZWZhdWx0T3ZlcnJpZGVzIGZyb20gXCIuLyoqLyouZGVmYXVsdC1vdmVycmlkZS4odHN8dHN4KVwiO1xuXG5leHBvcnQgY29uc3QgdGVzdFV0aWxSdW5uYWJsZUluamVjdGFibGUgPSBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzKHtcbiAgZ2xvYmFsT3ZlcnJpZGVzLFxuICBkZWZhdWx0T3ZlcnJpZGVzLFxufSk7XG4iLCAiXG5cbmNvbnN0IG1vZHVsZXMgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbXVxuIiwgImltcG9ydCB0eXBlIHsgRGlDb250YWluZXIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlIH0gZnJvbSBcIi4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZVwiO1xuXG4vLyBSdW5zIHRoZSBjYWxsYmFjayBzdHJhaWdodCBhd2F5IGluIHRlc3RzLCBpbnN0ZWFkIG9mIGFmdGVyIHRoZSByZWFsIGRlbGF5LlxuZXhwb3J0IGRlZmF1bHQgKGRpOiBEaUNvbnRhaW5lcikgPT4ge1xuICBkaS5vdmVycmlkZTIobWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlLCAoKSA9PiAoKSA9PiAoY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IGNhbGxiYWNrKCkpO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IERpQ29udGFpbmVyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB7IHRvb2x0aXBEZWxheUluamVjdGFibGUgfSBmcm9tIFwiLi90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcblxuLy8gTm8gZGVsYXkgaW4gdGVzdHMsIHNvIGEgdG9vbHRpcCBhcHBlYXJzIHdpdGhvdXQgYW55b25lIGFkdmFuY2luZyB0aW1lcnMuXG4vLyBXcml0dGVuIGFzIGEgcGxhaW4gZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhyb3VnaCBnZXREZWZhdWx0TW9ja2luZ092ZXJyaWRlLFxuLy8gd2hpY2ggaXMgYW4gaWRlbnRpdHkgZnVuY3Rpb24gaW4gYSB0ZXN0IHBhY2thZ2UgdGhpcyBvbmUgbWF5IG5vdCBpbXBvcnQuXG5leHBvcnQgZGVmYXVsdCAoZGk6IERpQ29udGFpbmVyKSA9PiB7XG4gIGRpLm92ZXJyaWRlMih0b29sdGlwRGVsYXlJbmplY3RhYmxlLCAoKSA9PiAoKSA9PiB1bmRlZmluZWQpO1xufTtcbiIsICJpbXBvcnQgeyByZW1vdmVDc3NNb2R1bGVDbHV0dGVyRm9yVW5pdFRlc3RpbmcgfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZygpO1xufTtcbiIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbJ3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uZGVmYXVsdC1vdmVycmlkZS50cycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cycsJ3JlbW92ZS1jc3MtbW9kdWxlLWNsdXR0ZXIuZGVmYXVsdC1vdmVycmlkZS50cyddXG4iLCAiaW1wb3J0ICogYXMgbW9kdWxlMCBmcm9tICcuL3BsdWdpbnMvY2xpY2thYmxlL2lzLW1hYy5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9jbGlja2FibGUvb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTcgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9pdGVtLWJlaW5nLWZvY3VzZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUvX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTE0IGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3Rlc3QtdXRpbC1ydW5uYWJsZS5pbmplY3RhYmxlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTVdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvY29tcHV0ZWQtbm93LmluamVjdGFibGUudHMnLCdwbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvaG92ZXJhYmxlL2l0ZW0tYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJywndGVzdC11dGlsLXJ1bm5hYmxlLmluamVjdGFibGUudHMnXVxuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmFuY2hvci1tb2R1bGVfX2FuY2hvcl9fX20tNXViIHtcXG4gIGFuY2hvci1uYW1lOiB2YXIoLS1hbmNob3ItbmFtZSk7XFxufVxcblxcbi5hbmNob3ItbW9kdWxlX19hbmNob3JlZEF0X19fVUFyVUsge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcG9zaXRpb24tYW5jaG9yOiB2YXIoLS1hbmNob3ItdGFyZ2V0KTtcXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLWFuY2hvci1wb3NpdGlvbik7XFxuICAvKiBUaGUgYnJvd3NlciBjZW50ZXJzIGEgcG9wb3ZlciBpbiB0aGUgdmlld3BvcnQ7IHRoZSBwb3NpdGlvbiBhcmVhIHBsYWNlcyB0aGlzIG9uZSBpbnN0ZWFkLiAqL1xcbiAgaW5zZXQ6IGF1dG87XFxuICAvKiBNaXJyb3IgdG8gdGhlIG9wcG9zaXRlIHNpZGUsIHRoZW4gdGhlIG9wcG9zaXRlIHNwYW4sIGJlZm9yZSBnaXZpbmcgdXAuICovXFxuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiBmbGlwLWJsb2NrLCBmbGlwLWlubGluZSwgZmxpcC1ibG9jayBmbGlwLWlubGluZTtcXG4gIC8qIFRoZSBnYXAgYmVsb25ncyB0byB0aGUgZWxlbWVudCBhcyBmYXIgYXMgdGhlIHBvaW50ZXIgaXMgY29uY2VybmVkLCBzbyBtb3Zpbmcgb250byBpdCBhY3Jvc3NcXG4gICAgIHRoZSBnYXAgbmV2ZXIgY291bnRzIGFzIGxlYXZpbmcuIFJlYWNoZXMgb3V0IG9uIGV2ZXJ5IHNpZGUsIHNvIGl0IGhvbGRzIGhvd2V2ZXIgdGhlIGVsZW1lbnRcXG4gICAgIGVuZHMgdXAgZmxpcHBlZC4gKi9cXG59XFxuLmFuY2hvci1tb2R1bGVfX2FuY2hvcmVkQXRfX19VQXJVSzo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1hbmNob3ItZ2FwLCAwcHgpKTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG4uYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBYyB7XFxuICAvKiBJbiB0aGUgdG9wIGxheWVyLCBsaWtlIHdoYXRldmVyIGlzIGFuY2hvcmVkIHRvIGl0LCBzbyB0aGUgcG9pbnQgaXMgdGhlIG9uZSBpbiB0aGUgdmlld3BvcnQgdGhlXFxuICAgICBjdXJzb3Igd2FzIGF0IHJhdGhlciB0aGFuIG9uZSBvZmZzZXQgYnkgZXZlcnkgdHJhbnNmb3JtaW5nIGFuY2VzdG9yIGluIGJldHdlZW4uICovXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBpbnNldDogYXV0bztcXG4gIGxlZnQ6IHZhcigtLWFuY2hvci1wb2ludC14KTtcXG4gIHRvcDogdmFyKC0tYW5jaG9yLXBvaW50LXkpO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBhbmNob3ItbmFtZTogdmFyKC0tYW5jaG9yLW5hbWUpO1xcbiAgLyogVW5kbyB3aGF0IHRoZSBicm93c2VyIGdpdmVzIGFuIGVsZW1lbnQgb2YgdGhlIHRvcCBsYXllcjogdGhpcyBvbmUgaGFzIG5vdGhpbmcgdG8gc2hvdy4gKi9cXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYW5jaG9yXCI6XCJhbmNob3ItbW9kdWxlX19hbmNob3JfX19tLTV1YlwiLFwiYW5jaG9yZWRBdFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yZWRBdF9fX1VBclVLXCIsXCJhbmNob3JQb2ludFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBY1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmJsb2NrLW1vZHVsZV9fYmxvY2tfX19ZNHR6aiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmJsb2NrLW1vZHVsZV9fYmxvY2stLWlubGluZV9fXy0xWUNnIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJibG9ja1wiOlwiYmxvY2stbW9kdWxlX19ibG9ja19fX1k0dHpqXCIsXCJibG9jay0taW5saW5lXCI6XCJibG9jay1tb2R1bGVfX2Jsb2NrLS1pbmxpbmVfX18tMVlDZ1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNjpob3ZlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZTpmb2N1cyB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSTpkaXNhYmxlZCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fZjhjMXMge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2hpdGVfX19NNmFSZzpob3ZlciB7XFxuICBjb2xvcjogd2hpdGU7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13aGl0ZV9fX2k2dVl6OmZvY3VzIHtcXG4gIGNvbG9yOiB3aGl0ZTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdoaXRlX19fbnRqWUU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX18xdmZydiB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS10cmFuc3BhcmVudF9fX3htN0JEOmhvdmVyIHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fcGRlLVc6Zm9jdXMge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRfX19aMFF1VTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenYge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTEwMF9fX0dGQ29tOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMDBfX19BTTdvTTpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUo6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTgwX19fRDcxZm4ge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4Yjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MF9fXzhQbHlvOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTgwX19fdzFucGM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk2MF9fX3hmWm1iOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTYwX19fa3dtMkc6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX2lST3pSIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTQwX19fcmJOMDQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk0MF9fX05pWnhpOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTMwX19fTHduTDIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaDpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkzMF9fX1FVYjRTOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTMwX19fS3E5Z1c6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1byB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyNV9fX3RZeWdEOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTI1X19fVHhpNWw6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xYzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX0VGMk9MIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTIwX19fdVB0WFU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXYzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkyMF9fX3ZwdXkxOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTEwX19fbDVhWnAge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjcjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMF9fX1Z3VzcxOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTEwX19fWTVxeXc6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITSB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk3MF9fXzNrcnRMOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTcwX19fcDNpZXg6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVjpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fRG9mbzA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwQWxwaGE4NV9fX1Q0QmdGOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6czpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fMDhXblYge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tcHJpbWFyeV9fX1Z0LTNmOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1wcmltYXJ5X19fMFhzazk6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm8ge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tYWNjZW50X19fNGgzTFQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tYWNjZW50X19fQWpTN1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3dvVEYyIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NfX183RUlXYzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc19fX05lMldJOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tbm90aWNlX19fZU9kVXA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ub3RpY2VfX19OZ1VSTDpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdfX19HajJoTTpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13YXJuaW5nX19fY0JtdDk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnEge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNyaXRpY2FsX19fUlFXWlk6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsX19fOVlsQ1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fRGQwUnkge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50X19fTEtsemc6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHA6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXN1Y2Nlc3NUaW50X19fbHNtSmg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fajNQWlgge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3U6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXdhcm5pbmdUaW50X19fQzZ6bkQ6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50X19fVzZqSTg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3lSSmFBIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRfX184dERtZzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsVGludF9fX1RBQkhrOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tbGlua19fX25TTW05IHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZMzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1saW5rX19fODZKdGY6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tbGlua19fX0ZvSjVYOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQSB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1jb2RlX19fVjV1dVY6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tY29kZV9fX0lBSzdkOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVdzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29sb3ItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYVwiLFwiY29sb3ItaG92ZXItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNlwiLFwiY29sb3ItZm9jdXMtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZVwiLFwiY29sb3ItZGlzYWJsZWQtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSVwiLFwiY29sb3ItLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX2Y4YzFzXCIsXCJjb2xvci1ob3Zlci0td2hpdGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdoaXRlX19fTTZhUmdcIixcImNvbG9yLWZvY3VzLS13aGl0ZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2hpdGVfX19pNnVZelwiLFwiY29sb3ItZGlzYWJsZWQtLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13aGl0ZV9fX250allFXCIsXCJjb2xvci0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fMXZmcnZcIixcImNvbG9yLWhvdmVyLS10cmFuc3BhcmVudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX194bTdCRFwiLFwiY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS10cmFuc3BhcmVudF9fX3BkZS1XXCIsXCJjb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXRyYW5zcGFyZW50X19fWjBRdVVcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenZcIixcImNvbG9yLWhvdmVyLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTAwX19fR0ZDb21cIixcImNvbG9yLWZvY3VzLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MTAwX19fQU03b01cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUpcIixcImNvbG9yLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0Q3MWZuXCIsXCJjb2xvci1ob3Zlci0tZ3JleTgwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4YlwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwX19fOFBseW9cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MF9fX3cxbnBjXCIsXCJjb2xvci0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WFwiLFwiY29sb3ItaG92ZXItLWdyZXk2MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTYwX19feGZabWJcIixcImNvbG9yLWZvY3VzLS1ncmV5NjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk2MF9fX2t3bTJHXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncVwiLFwiY29sb3ItLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTQwX19faVJPelJcIixcImNvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk0MF9fX3JiTjA0XCIsXCJjb2xvci1mb2N1cy0tZ3JleTQwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTQwX19fTmlaeGlcIixcImNvbG9yLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fX0x3bkwyXCIsXCJjb2xvci1ob3Zlci0tZ3JleTMwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaFwiLFwiY29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTMwX19fUVViNFNcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkzMF9fX0txOWdXXCIsXCJjb2xvci0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1b1wiLFwiY29sb3ItaG92ZXItLWdyZXkyNVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTI1X19fdFl5Z0RcIixcImNvbG9yLWZvY3VzLS1ncmV5MjVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkyNV9fX1R4aTVsXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xY1wiLFwiY29sb3ItLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTIwX19fRUYyT0xcIixcImNvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyMF9fX3VQdFhVXCIsXCJjb2xvci1mb2N1cy0tZ3JleTIwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXY1wiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTIwX19fdnB1eTFcIixcImNvbG9yLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2w1YVpwXCIsXCJjb2xvci1ob3Zlci0tZ3JleTEwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjclwiLFwiY29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTEwX19fVndXNzFcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkxMF9fX1k1cXl3XCIsXCJjb2xvci0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITVwiLFwiY29sb3ItaG92ZXItLWdyZXk3MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTcwX19fM2tydExcIixcImNvbG9yLWZvY3VzLS1ncmV5NzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk3MF9fX3AzaWV4XCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVlwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZFwiLFwiY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVfX19Eb2ZvMFwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19UNEJnRlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6c1wiLFwiY29sb3ItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX18wOFduVlwiLFwiY29sb3ItaG92ZXItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXByaW1hcnlfX19WdC0zZlwiLFwiY29sb3ItZm9jdXMtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMlwiLFwiY29sb3ItZGlzYWJsZWQtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXByaW1hcnlfX18wWHNrOVwiLFwiY29sb3ItLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm9cIixcImNvbG9yLWhvdmVyLS1hY2NlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWFjY2VudF9fXzRoM0xUXCIsXCJjb2xvci1mb2N1cy0tYWNjZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1hY2NlbnRfX19BalM3WVwiLFwiY29sb3ItZGlzYWJsZWQtLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzVcIixcImNvbG9yLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19fd29URjJcIixcImNvbG9yLWhvdmVyLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzX19fN0VJV2NcIixcImNvbG9yLWZvY3VzLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGlcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1zdWNjZXNzX19fTmUyV0lcIixcImNvbG9yLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHXCIsXCJjb2xvci1ob3Zlci0tbm90aWNlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ub3RpY2VfX19lT2RVcFwiLFwiY29sb3ItZm9jdXMtLW5vdGljZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tbm90aWNlX19fTmdVUkxcIixcImNvbG9yLWRpc2FibGVkLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyXCIsXCJjb2xvci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2FybmluZ19fX0dqMmhNXCIsXCJjb2xvci1mb2N1cy0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ19fX2NCbXQ5XCIsXCJjb2xvci1kaXNhYmxlZC0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnFcIixcImNvbG9yLWhvdmVyLS1jcml0aWNhbFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxfX19SUVdaWVwiLFwiY29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbF9fXzlZbENZXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTNcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19EZDBSeVwiLFwiY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fX0xLbHpnXCIsXCJjb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHBcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc1RpbnRfX19sc21KaFwiLFwiY29sb3ItLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX2ozUFpYXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3VcIixcImNvbG9yLWZvY3VzLS13YXJuaW5nVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ1RpbnRfX19DNnpuRFwiLFwiY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13YXJuaW5nVGludF9fX1c2akk4XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX195UkphQVwiLFwiY29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjVcIixcImNvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fXzh0RG1nXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1jcml0aWNhbFRpbnRfX19UQUJIa1wiLFwiY29sb3ItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWxpbmtfX19uU01tOVwiLFwiY29sb3ItaG92ZXItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZM1wiLFwiY29sb3ItZm9jdXMtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWxpbmtfX184Nkp0ZlwiLFwiY29sb3ItZGlzYWJsZWQtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWxpbmtfX19Gb0o1WFwiLFwiY29sb3ItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQVwiLFwiY29sb3ItaG92ZXItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNvZGVfX19WNXV1VlwiLFwiY29sb3ItZm9jdXMtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNvZGVfX19JQUs3ZFwiLFwiY29sb3ItZGlzYWJsZWQtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVd1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMiB7XFxuICBjdXJzb3I6IGFsaWFzO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84IHtcXG4gIGN1cnNvcjogYWxsLXNjcm9sbDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2NlbGxfX181V08yRiB7XFxuICBjdXJzb3I6IGNlbGw7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb2x1bW4tcmVzaXplX19fcExxM3Mge1xcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY29udGV4dC1tZW51X19fSXFwNTYge1xcbiAgY3Vyc29yOiBjb250ZXh0LW1lbnU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb3B5X19fWFU3eUwge1xcbiAgY3Vyc29yOiBjb3B5O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY3Jvc3NoYWlyX19fMThheWsge1xcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFQge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1yZXNpemVfX19TNEhGNSB7XFxuICBjdXJzb3I6IGUtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLSB7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2dyYWJfX19VdkFGNyB7XFxuICBjdXJzb3I6IGdyYWI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ncmFiYmluZ19fX01NaXZYIHtcXG4gIGN1cnNvcjogZ3JhYmJpbmc7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19oZWxwX19faUI4RzQge1xcbiAgY3Vyc29yOiBoZWxwO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbW92ZV9fX3lwZC1QIHtcXG4gIGN1cnNvcjogbW92ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vcnRoLXJlc2l6ZV9fXzdOa2hWIHtcXG4gIGN1cnNvcjogbi1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtcmVzaXplX19fTTRNSXoge1xcbiAgY3Vyc29yOiBuZS1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcSB7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5IHtcXG4gIGN1cnNvcjogbm8tZHJvcDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vbmVfX19FaTlzeiB7XFxuICBjdXJzb3I6IG5vbmU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1IHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU4ge1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtcmVzaXplX19fY2tDb2gge1xcbiAgY3Vyc29yOiBudy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWUyB7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Byb2dyZXNzX19fSWdFeHkge1xcbiAgY3Vyc29yOiBwcm9ncmVzcztcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Jvdy1yZXNpemVfX18wU3NlNiB7XFxuICBjdXJzb3I6IHJvdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19zb3V0aC1yZXNpemVfX180RmVuUyB7XFxuICBjdXJzb3I6IHMtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGhlYXN0LXJlc2l6ZV9fX3c4aEdxIHtcXG4gIGN1cnNvcjogc2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGh3ZXN0LXJlc2l6ZV9fXzZVdjRHIHtcXG4gIGN1cnNvcjogc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3IHtcXG4gIGN1cnNvcjogdGV4dDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3ZlcnRpY2FsLXRleHRfX18zT2F6RSB7XFxuICBjdXJzb3I6IHZlcnRpY2FsLXRleHQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2IHtcXG4gIGN1cnNvcjogdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEcge1xcbiAgY3Vyc29yOiB3YWl0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fem9vbS1pbl9fX3pFREhRIHtcXG4gIGN1cnNvcjogem9vbS1pbjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzYge1xcbiAgY3Vyc29yOiB6b29tLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhbGlhc1wiOlwiY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMlwiLFwiYWxsLXNjcm9sbFwiOlwiY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84XCIsXCJjZWxsXCI6XCJjdXJzb3ItbW9kdWxlX19jZWxsX19fNVdPMkZcIixcImNvbHVtbi1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX2NvbHVtbi1yZXNpemVfX19wTHEzc1wiLFwiY29udGV4dC1tZW51XCI6XCJjdXJzb3ItbW9kdWxlX19jb250ZXh0LW1lbnVfX19JcXA1NlwiLFwiY29weVwiOlwiY3Vyc29yLW1vZHVsZV9fY29weV9fX1hVN3lMXCIsXCJjcm9zc2hhaXJcIjpcImN1cnNvci1tb2R1bGVfX2Nyb3NzaGFpcl9fXzE4YXlrXCIsXCJkZWZhdWx0XCI6XCJjdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFRcIixcImVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19lYXN0LXJlc2l6ZV9fX1M0SEY1XCIsXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLVwiLFwiZ3JhYlwiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYl9fX1V2QUY3XCIsXCJncmFiYmluZ1wiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYmJpbmdfX19NTWl2WFwiLFwiaGVscFwiOlwiY3Vyc29yLW1vZHVsZV9faGVscF9fX2lCOEc0XCIsXCJtb3ZlXCI6XCJjdXJzb3ItbW9kdWxlX19tb3ZlX19feXBkLVBcIixcIm5vcnRoLXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fbm9ydGgtcmVzaXplX19fN05raFZcIixcIm5vcnRoZWFzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRoZWFzdC1yZXNpemVfX19NNE1JelwiLFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcVwiLFwibm8tZHJvcFwiOlwiY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5XCIsXCJub25lXCI6XCJjdXJzb3ItbW9kdWxlX19ub25lX19fRWk5c3pcIixcIm5vdC1hbGxvd2VkXCI6XCJjdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1XCIsXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU5cIixcIm5vcnRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRod2VzdC1yZXNpemVfX19ja0NvaFwiLFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWU1wiLFwicG9pbnRlclwiOlwiY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLXCIsXCJwcm9ncmVzc1wiOlwiY3Vyc29yLW1vZHVsZV9fcHJvZ3Jlc3NfX19JZ0V4eVwiLFwicm93LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fcm93LXJlc2l6ZV9fXzBTc2U2XCIsXCJzb3V0aC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRoLXJlc2l6ZV9fXzRGZW5TXCIsXCJzb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19zb3V0aGVhc3QtcmVzaXplX19fdzhoR3FcIixcInNvdXRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRod2VzdC1yZXNpemVfX182VXY0R1wiLFwidGV4dFwiOlwiY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3XCIsXCJ2ZXJ0aWNhbC10ZXh0XCI6XCJjdXJzb3ItbW9kdWxlX192ZXJ0aWNhbC10ZXh0X19fM09hekVcIixcIndlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2XCIsXCJ3YWl0XCI6XCJjdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEdcIixcInpvb20taW5cIjpcImN1cnNvci1tb2R1bGVfX3pvb20taW5fX196RURIUVwiLFwiem9vbS1vdXRcIjpcImN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZGlzcGxheS1jb250ZW50cy1tb2R1bGVfX2NvbnRlbnRzX19fbVJlWEsge1xcbiAgZGlzcGxheTogY29udGVudHM7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29udGVudHNcIjpcImRpc3BsYXktY29udGVudHMtbW9kdWxlX19jb250ZW50c19fX21SZVhLXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzIGltZyxcXG5hIHtcXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImRyYWdnYWJsZVwiOlwiZHJhZ2dhYmxlLW1vZHVsZV9fZHJhZ2dhYmxlX19fYmpDQTNcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmFkZWQvZmFkZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5mYWRlZC1tb2R1bGVfX2ZhZGVkX19fLXViYk0ge1xcbiAgb3BhY2l0eTogNTAlO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZhZGVkXCI6XCJmYWRlZC1tb2R1bGVfX2ZhZGVkX19fLXViYk1cIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmxleC1jaGlsZC1tb2R1bGVfX2ZsZXgtY2hpbGRfX183QmRoZCB7XFxuICBmbGV4OiAxIDEgMDtcXG59XFxuXFxuLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1zaHJpbmthYmxlX19fNkg1LS0ge1xcbiAgbWluLWhlaWdodDogMDtcXG4gIG1pbi13aWR0aDogMDtcXG59XFxuXFxuLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1maXhlZF9fX0ZLZXRMIHtcXG4gIGZsZXgtc2hyaW5rOiAwO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZsZXgtY2hpbGRcIjpcImZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkX19fN0JkaGRcIixcImZsZXgtY2hpbGQtLXNocmlua2FibGVcIjpcImZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1zaHJpbmthYmxlX19fNkg1LS1cIixcImZsZXgtY2hpbGQtLWZpeGVkXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tZml4ZWRfX19GS2V0TFwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5mbGV4LW1vZHVsZV9fZmxleF9fX2VGTEVjIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fd3JhcC0td3JhcF9fXzJMcVRnIHtcXG4gIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsX19fMEFpT2Yge1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsLXJldmVyc2VkX19fSW9lLTUge1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbF9fX2EzMnpvIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsLXJldmVyc2VkX19faUx3REsge1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5fX19hNm9NSCB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kX19fNVlPVTQge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlcl9fX3VyWllHIHtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoX19fTTVhejAge1xcbiAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRfX19QSEYxRSB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRfX19hTVB4MCB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX19iQU5pZyB7XFxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJfX18wVnN5OSB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydF9fX2owSnp4IHtcXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRfX19EbVU1UiB7XFxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS16ZXJvX19fdzMtVGcge1xcbiAgZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXplcm9fX185NjBBNyB7XFxuICBjb2x1bW4tZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXplcm9fX19vS3VzVCB7XFxuICByb3ctZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eHNfX19yclRKZSB7XFxuICBnYXA6IDFweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhzX19fVFIzWUUge1xcbiAgY29sdW1uLWdhcDogMXB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eHNfX182aW4zaiB7XFxuICByb3ctZ2FwOiAxcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeHNfX19SY3VtUiB7XFxuICBnYXA6IDJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hzX19fWC1DMWEge1xcbiAgY29sdW1uLWdhcDogMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeHNfX19rVzBpTyB7XFxuICByb3ctZ2FwOiAycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eHNfX19VQjNGaiB7XFxuICBnYXA6IDRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHhzX19fdUladjIge1xcbiAgY29sdW1uLWdhcDogNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eHNfX190LWdxTiB7XFxuICByb3ctZ2FwOiA0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14c19fX3R0M1NvIHtcXG4gIGdhcDogOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14c19fX0I1b1hjIHtcXG4gIGNvbHVtbi1nYXA6IDhweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teHNfX18xRVgyZiB7XFxuICByb3ctZ2FwOiA4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1zX19fOW1ZelMge1xcbiAgZ2FwOiAxMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1zX19fYXZ0Zi0ge1xcbiAgY29sdW1uLWdhcDogMTJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tc19fX1lPQlZWIHtcXG4gIHJvdy1nYXA6IDEycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1tX19fQWItdDAge1xcbiAgZ2FwOiAxNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1tX19fUTZjQi0ge1xcbiAgY29sdW1uLWdhcDogMTZweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbV9fXzctRFEwIHtcXG4gIHJvdy1nYXA6IDE2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1sX19fY3Ztancge1xcbiAgZ2FwOiAyMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1sX19fRXBRdFQge1xcbiAgY29sdW1uLWdhcDogMjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbF9fX3hZaUtoIHtcXG4gIHJvdy1nYXA6IDIwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14bF9fX0NJc05QIHtcXG4gIGdhcDogMjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teGxfX19tTFV4UiB7XFxuICBjb2x1bW4tZ2FwOiAyNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14bF9fX0tXTjMzIHtcXG4gIHJvdy1nYXA6IDI0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eGxfX18xMnQtNiB7XFxuICBnYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3ZBTHRmIHtcXG4gIGNvbHVtbi1nYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4bF9fX0lkY3FVIHtcXG4gIHJvdy1nYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeGxfX19pVXJ4MSB7XFxuICBnYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4bF9fXy1OVjBaIHtcXG4gIGNvbHVtbi1nYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTN4bF9fX1ZZY1JoIHtcXG4gIHJvdy1nYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eGxfX19mWmlLViB7XFxuICBnYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4bF9fX1g5S3B5IHtcXG4gIGNvbHVtbi1nYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTR4bF9fX2RidlcwIHtcXG4gIHJvdy1nYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS01eGxfX180M2hIdiB7XFxuICBnYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJYeWVRIHtcXG4gIGNvbHVtbi1nYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTV4bF9fX3F2ak9FIHtcXG4gIHJvdy1nYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS02eGxfX19zUHk2TCB7XFxuICBnYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX3phZ1dNIHtcXG4gIGNvbHVtbi1nYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTZ4bF9fX1UtdVpKIHtcXG4gIHJvdy1nYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS03eGxfX19PYXd2LSB7XFxuICBnYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTd4bF9fX0t6ck1yIHtcXG4gIGNvbHVtbi1nYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTd4bF9fX3BBdkx2IHtcXG4gIHJvdy1nYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS04eGxfX19FZW9FLSB7XFxuICBnYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2tiaW9KIHtcXG4gIGNvbHVtbi1nYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTh4bF9fX1AtOS1lIHtcXG4gIHJvdy1nYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS05eGxfX19UZ25VUyB7XFxuICBnYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTl4bF9fX05HbDNKIHtcXG4gIGNvbHVtbi1nYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTl4bF9fX0VHdWVoIHtcXG4gIHJvdy1nYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMHhsX19fQ2YxdzYge1xcbiAgZ2FwOiA2MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMHhsX19fTEpSR2wge1xcbiAgY29sdW1uLWdhcDogNjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTB4bF9fX3pQdHlOIHtcXG4gIHJvdy1nYXA6IDYwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMXhsX19fb3JmZ0kge1xcbiAgZ2FwOiA2NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMXhsX19fZERLZHAge1xcbiAgY29sdW1uLWdhcDogNjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTF4bF9fX3ZERy1BIHtcXG4gIHJvdy1nYXA6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZmxleFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX19lRkxFY1wiLFwiZmxleF9fd3JhcC0td3JhcFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX3dyYXAtLXdyYXBfX18yTHFUZ1wiLFwiZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWxfX18wQWlPZlwiLFwiZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbC1yZXZlcnNlZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWwtcmV2ZXJzZWRfX19Jb2UtNVwiLFwiZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsX19fYTMyem9cIixcImZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZF9fX2lMd0RLXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2Vlbl9fX2E2b01IXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRfX181WU9VNFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlclwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJfX191clpZR1wiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaF9fX001YXowXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0XCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydF9fX1BIRjFFXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kX19fYU1QeDBcIixcImZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoX19fYkFOaWdcIixcImZsZXhfX2FsaWduSXRlbXMtLWNlbnRlclwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWNlbnRlcl9fXzBWc3k5XCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRfX19qMEp6eFwiLFwiZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRfX19EbVU1UlwiLFwiZmxleF9fZ2FwLS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS16ZXJvX19fdzMtVGdcIixcImZsZXhfX2dhcC0tY29sdW1uLS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXplcm9fX185NjBBN1wiLFwiZmxleF9fZ2FwLS1yb3ctLXplcm9cIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0temVyb19fX29LdXNUXCIsXCJmbGV4X19nYXAtLTR4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhzX19fcnJUSmVcIixcImZsZXhfX2dhcC0tY29sdW1uLS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhzX19fVFIzWUVcIixcImZsZXhfX2dhcC0tcm93LS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhzX19fNmluM2pcIixcImZsZXhfX2dhcC0tM3hzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeHNfX19SY3VtUlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0zeHNfX19YLUMxYVwiLFwiZmxleF9fZ2FwLS1yb3ctLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeHNfX19rVzBpT1wiLFwiZmxleF9fZ2FwLS14eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXh4c19fX1VCM0ZqXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4c19fX3VJWnYyXCIsXCJmbGV4X19nYXAtLXJvdy0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4c19fX3QtZ3FOXCIsXCJmbGV4X19nYXAtLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14c19fX3R0M1NvXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHNfX19CNW9YY1wiLFwiZmxleF9fZ2FwLS1yb3ctLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhzX19fMUVYMmZcIixcImZsZXhfX2dhcC0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tc19fXzltWXpTXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1zX19fYXZ0Zi1cIixcImZsZXhfX2dhcC0tcm93LS1zXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXNfX19ZT0JWVlwiLFwiZmxleF9fZ2FwLS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1tX19fQWItdDBcIixcImZsZXhfX2dhcC0tY29sdW1uLS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLW1fX19RNmNCLVwiLFwiZmxleF9fZ2FwLS1yb3ctLW1cIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbV9fXzctRFEwXCIsXCJmbGV4X19nYXAtLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWxfX19jdm1qd1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbF9fX0VwUXRUXCIsXCJmbGV4X19nYXAtLXJvdy0tbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS1sX19feFlpS2hcIixcImZsZXhfX2dhcC0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXhsX19fQ0lzTlBcIixcImZsZXhfX2dhcC0tY29sdW1uLS14bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14bF9fX21MVXhSXCIsXCJmbGV4X19nYXAtLXJvdy0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teGxfX19LV04zM1wiLFwiZmxleF9fZ2FwLS14eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXh4bF9fXzEydC02XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3ZBTHRmXCIsXCJmbGV4X19nYXAtLXJvdy0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4bF9fX0lkY3FVXCIsXCJmbGV4X19nYXAtLTN4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hsX19faVVyeDFcIixcImZsZXhfX2dhcC0tY29sdW1uLS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hsX19fLU5WMFpcIixcImZsZXhfX2dhcC0tcm93LS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hsX19fVlljUmhcIixcImZsZXhfX2dhcC0tNHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eGxfX19mWmlLVlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS00eGxfX19YOUtweVwiLFwiZmxleF9fZ2FwLS1yb3ctLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eGxfX19kYnZXMFwiLFwiZmxleF9fZ2FwLS01eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTV4bF9fXzQzaEh2XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJYeWVRXCIsXCJmbGV4X19nYXAtLXJvdy0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTV4bF9fX3F2ak9FXCIsXCJmbGV4X19nYXAtLTZ4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNnhsX19fc1B5NkxcIixcImZsZXhfX2dhcC0tY29sdW1uLS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNnhsX19femFnV01cIixcImZsZXhfX2dhcC0tcm93LS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNnhsX19fVS11WkpcIixcImZsZXhfX2dhcC0tN3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS03eGxfX19PYXd2LVwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS03eGxfX19LenJNclwiLFwiZmxleF9fZ2FwLS1yb3ctLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS03eGxfX19wQXZMdlwiLFwiZmxleF9fZ2FwLS04eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTh4bF9fX0Vlb0UtXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2tiaW9KXCIsXCJmbGV4X19nYXAtLXJvdy0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTh4bF9fX1AtOS1lXCIsXCJmbGV4X19nYXAtLTl4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOXhsX19fVGduVVNcIixcImZsZXhfX2dhcC0tY29sdW1uLS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tOXhsX19fTkdsM0pcIixcImZsZXhfX2dhcC0tcm93LS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tOXhsX19fRUd1ZWhcIixcImZsZXhfX2dhcC0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTB4bF9fX0NmMXc2XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMHhsX19fTEpSR2xcIixcImZsZXhfX2dhcC0tcm93LS0xMHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTEweGxfX196UHR5TlwiLFwiZmxleF9fZ2FwLS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMXhsX19fb3JmZ0lcIixcImZsZXhfX2dhcC0tY29sdW1uLS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTExeGxfX19kREtkcFwiLFwiZmxleF9fZ2FwLS1yb3ctLTExeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTF4bF9fX3ZERy1BXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JhZGllbnQtbW9kdWxlX19ncmFkaWVudF9fX01EQnZGIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXN1cmZhY2VHcmFkaWVudCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JhZGllbnRcIjpcImdyYWRpZW50LW1vZHVsZV9fZ3JhZGllbnRfX19NREJ2RlwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JheXNjYWxlLW1vZHVsZV9fZ3JheXNjYWxlX19fM21aUDYge1xcbiAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JheXNjYWxlXCI6XCJncmF5c2NhbGUtbW9kdWxlX19ncmF5c2NhbGVfX18zbVpQNlwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ncmlkLW1vZHVsZV9fZ3JpZF9fX01QVGhPIHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMV9fX1kwVTJNIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS0yX19fWWdTNEgge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTNfX19tYUJEMiB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNF9fXzczQmpBIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS01X19fU2x0LUQge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTZfX19ueU04eiB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX3hYZDNaIHtcXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLWNlbnRlcl9fX0U4bUwtIHtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRfX18yTmR2UyB7XFxuICBhbGlnbi1pdGVtczogc3RhcnQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tZW5kX19fMUlwWW0ge1xcbiAgYWxpZ24taXRlbXM6IGVuZDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXplcm9fX19HMXE4ZCB7XFxuICBnYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0temVyb19fX3lnUXBKIHtcXG4gIGNvbHVtbi1nYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0temVyb19fX3cxLU94IHtcXG4gIHJvdy1nYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4c19fX3pPMG12IHtcXG4gIGdhcDogMXB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS00eHNfX19HVW9kMyB7XFxuICBjb2x1bW4tZ2FwOiAxcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4c19fX3NWUVplIHtcXG4gIHJvdy1nYXA6IDFweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4c19fXy1JeFN3IHtcXG4gIGdhcDogMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0zeHNfX191dzQ2NiB7XFxuICBjb2x1bW4tZ2FwOiAycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4c19fX0pmd21ZIHtcXG4gIHJvdy1nYXA6IDJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4c19fX2doOGMtIHtcXG4gIGdhcDogNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eHNfX19FNzZnSyB7XFxuICBjb2x1bW4tZ2FwOiA0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4c19fX25oeHotIHtcXG4gIHJvdy1nYXA6IDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhzX19fR0g0aDIge1xcbiAgZ2FwOiA4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzX19fdVJxcmkge1xcbiAgY29sdW1uLWdhcDogOHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14c19fX2xBTkV1IHtcXG4gIHJvdy1nYXA6IDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXNfX183UjBwcyB7XFxuICBnYXA6IDEycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXNfX19hRFZBRyB7XFxuICBjb2x1bW4tZ2FwOiAxMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1zX19fQVJEbXgge1xcbiAgcm93LWdhcDogMTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLW1fX19tM1hpaCB7XFxuICBnYXA6IDE2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLW1fX19Dc3llTSB7XFxuICBjb2x1bW4tZ2FwOiAxNnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1tX19fc09BWG4ge1xcbiAgcm93LWdhcDogMTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWxfX18wU3lLbCB7XFxuICBnYXA6IDIwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLWxfX19KdkpoTSB7XFxuICBjb2x1bW4tZ2FwOiAyMHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1sX19fYXBIOGIge1xcbiAgcm93LWdhcDogMjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhsX19fSS12UnQge1xcbiAgZ2FwOiAyNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14bF9fX3QwU08zIHtcXG4gIGNvbHVtbi1nYXA6IDI0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhsX19fZXZORWQge1xcbiAgcm93LWdhcDogMjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4bF9fX2VXUzAyIHtcXG4gIGdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHhsX19fcy0tLWIge1xcbiAgY29sdW1uLWdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teHhsX19fSjRGN28ge1xcbiAgcm93LWdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4bF9fX0hWbGtEIHtcXG4gIGdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hsX19fekt0TEwge1xcbiAgY29sdW1uLWdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hsX19fRTlTVjkge1xcbiAgcm93LWdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4bF9fX00zRzNmIHtcXG4gIGdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhsX19fbm50LXAge1xcbiAgY29sdW1uLWdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhsX19fMVc4YmQge1xcbiAgcm93LWdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTV4bF9fX3lBblhEIHtcXG4gIGdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNXhsX19fMnc0UjEge1xcbiAgY29sdW1uLWdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNXhsX19fVkNmamcge1xcbiAgcm93LWdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTZ4bF9fX2hFbDBGIHtcXG4gIGdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNnhsX19fRnhQdHAge1xcbiAgY29sdW1uLWdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNnhsX19feW4xZi0ge1xcbiAgcm93LWdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTd4bF9fX2diR0h1IHtcXG4gIGdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tN3hsX19fVnlqMXAge1xcbiAgY29sdW1uLWdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tN3hsX19fNUJCc1Mge1xcbiAgcm93LWdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTh4bF9fX2pDbG1DIHtcXG4gIGdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOHhsX19fYnE3RXoge1xcbiAgY29sdW1uLWdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOHhsX19fd051WjIge1xcbiAgcm93LWdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTl4bF9fX2luRTFFIHtcXG4gIGdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOXhsX19fTXNmanEge1xcbiAgY29sdW1uLWdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOXhsX19faTIzLWMge1xcbiAgcm93LWdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTEweGxfX19MQ0R0YyB7XFxuICBnYXA6IDYwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTEweGxfX19vOGNCeSB7XFxuICBjb2x1bW4tZ2FwOiA2MHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMHhsX19fUmpSdzkge1xcbiAgcm93LWdhcDogNjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTExeGxfX19TcXVOYSB7XFxuICBnYXA6IDY0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTExeGxfX191U2VXeiB7XFxuICBjb2x1bW4tZ2FwOiA2NHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMXhsX19fanFHLUkge1xcbiAgcm93LWdhcDogNjRweDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJncmlkXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fX01QVGhPXCIsXCJncmlkX19jb2x1bW5zLS0xXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMV9fX1kwVTJNXCIsXCJncmlkX19jb2x1bW5zLS0yXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMl9fX1lnUzRIXCIsXCJncmlkX19jb2x1bW5zLS0zXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tM19fX21hQkQyXCIsXCJncmlkX19jb2x1bW5zLS00XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNF9fXzczQmpBXCIsXCJncmlkX19jb2x1bW5zLS01XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNV9fX1NsdC1EXCIsXCJncmlkX19jb2x1bW5zLS02XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNl9fX255TTh6XCIsXCJncmlkX19hbGlnbkl0ZW1zLS1zdHJldGNoXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX3hYZDNaXCIsXCJncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJfX19FOG1MLVwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1zdGFydF9fXzJOZHZTXCIsXCJncmlkX19hbGlnbkl0ZW1zLS1lbmRcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1lbmRfX18xSXBZbVwiLFwiZ3JpZF9fZ2FwLS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS16ZXJvX19fRzFxOGRcIixcImdyaWRfX2dhcC0tY29sdW1uLS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXplcm9fX195Z1FwSlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXplcm9cIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0temVyb19fX3cxLU94XCIsXCJncmlkX19nYXAtLTR4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNHhzX19fek8wbXZcIixcImdyaWRfX2dhcC0tY29sdW1uLS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhzX19fR1VvZDNcIixcImdyaWRfX2dhcC0tcm93LS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhzX19fc1ZRWmVcIixcImdyaWRfX2dhcC0tM3hzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeHNfX18tSXhTd1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0zeHNfX191dzQ2NlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0zeHNfX19KZndtWVwiLFwiZ3JpZF9fZ2FwLS14eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4c19fX2doOGMtXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4c19fX0U3NmdLXCIsXCJncmlkX19nYXAtLXJvdy0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4c19fX25oeHotXCIsXCJncmlkX19nYXAtLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14c19fX0dINGgyXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHNfX191UnFyaVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhzX19fbEFORXVcIixcImdyaWRfX2dhcC0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tc19fXzdSMHBzXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1zX19fYURWQUdcIixcImdyaWRfX2dhcC0tcm93LS1zXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXNfX19BUkRteFwiLFwiZ3JpZF9fZ2FwLS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1tX19fbTNYaWhcIixcImdyaWRfX2dhcC0tY29sdW1uLS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLW1fX19Dc3llTVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLW1cIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbV9fX3NPQVhuXCIsXCJncmlkX19nYXAtLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWxfX18wU3lLbFwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tbF9fX0p2SmhNXCIsXCJncmlkX19nYXAtLXJvdy0tbFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1sX19fYXBIOGJcIixcImdyaWRfX2dhcC0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhsX19fSS12UnRcIixcImdyaWRfX2dhcC0tY29sdW1uLS14bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14bF9fX3QwU08zXCIsXCJncmlkX19nYXAtLXJvdy0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teGxfX19ldk5FZFwiLFwiZ3JpZF9fZ2FwLS14eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4bF9fX2VXUzAyXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3MtLS1iXCIsXCJncmlkX19nYXAtLXJvdy0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4bF9fX0o0RjdvXCIsXCJncmlkX19nYXAtLTN4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tM3hsX19fSFZsa0RcIixcImdyaWRfX2dhcC0tY29sdW1uLS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hsX19fekt0TExcIixcImdyaWRfX2dhcC0tcm93LS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hsX19fRTlTVjlcIixcImdyaWRfX2dhcC0tNHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eGxfX19NM0czZlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS00eGxfX19ubnQtcFwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS00eGxfX18xVzhiZFwiLFwiZ3JpZF9fZ2FwLS01eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTV4bF9fX3lBblhEXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJ3NFIxXCIsXCJncmlkX19nYXAtLXJvdy0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTV4bF9fX1ZDZmpnXCIsXCJncmlkX19nYXAtLTZ4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNnhsX19faEVsMEZcIixcImdyaWRfX2dhcC0tY29sdW1uLS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNnhsX19fRnhQdHBcIixcImdyaWRfX2dhcC0tcm93LS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNnhsX19feW4xZi1cIixcImdyaWRfX2dhcC0tN3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS03eGxfX19nYkdIdVwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS03eGxfX19WeWoxcFwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS03eGxfX181QkJzU1wiLFwiZ3JpZF9fZ2FwLS04eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTh4bF9fX2pDbG1DXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2JxN0V6XCIsXCJncmlkX19nYXAtLXJvdy0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTh4bF9fX3dOdVoyXCIsXCJncmlkX19nYXAtLTl4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tOXhsX19faW5FMUVcIixcImdyaWRfX2dhcC0tY29sdW1uLS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOXhsX19fTXNmanFcIixcImdyaWRfX2dhcC0tcm93LS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOXhsX19faTIzLWNcIixcImdyaWRfX2dhcC0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tMTB4bF9fX0xDRHRjXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMHhsX19fbzhjQnlcIixcImdyaWRfX2dhcC0tcm93LS0xMHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTEweGxfX19SalJ3OVwiLFwiZ3JpZF9fZ2FwLS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMXhsX19fU3F1TmFcIixcImdyaWRfX2dhcC0tY29sdW1uLS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTExeGxfX191U2VXelwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTExeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTF4bF9fX2pxRy1JXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1mdWxsX19fLWlvamYge1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXplcm9fX19kNTd3VyB7XFxuICBtYXgtaGVpZ2h0OiAwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS00eHNfX19MSlVCbiB7XFxuICBtYXgtaGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeHNfX18tMldvLSB7XFxuICBtYXgtaGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eHNfX19oRnJCZSB7XFxuICBtYXgtaGVpZ2h0OiA0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14c19fX2MycGFEIHtcXG4gIG1heC1oZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXNfX19BY3A2VCB7XFxuICBtYXgtaGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbV9fX1Z6b1E5IHtcXG4gIG1heC1oZWlnaHQ6IDE2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1sX19fV2dscWIge1xcbiAgbWF4LWhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXhsX19fTFVtbEoge1xcbiAgbWF4LWhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXh4bF9fX2RSM3pLIHtcXG4gIG1heC1oZWlnaHQ6IDI4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeGxfX19idWJURCB7XFxuICBtYXgtaGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhsX19fYmRaWDYge1xcbiAgbWF4LWhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTV4bF9fX1RVVEFSIHtcXG4gIG1heC1oZWlnaHQ6IDQwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS02eGxfX19HYy1IbCB7XFxuICBtYXgtaGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tN3hsX19fWXhkdFgge1xcbiAgbWF4LWhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTh4bF9fX0EyV3ZkIHtcXG4gIG1heC1oZWlnaHQ6IDUycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS05eGxfX19KdnJHSiB7XFxuICBtYXgtaGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTB4bF9fX3dMUlF1IHtcXG4gIG1heC1oZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0xMXhsX19fZ1UzeEkge1xcbiAgbWF4LWhlaWdodDogNjRweDtcXG59XFxuXFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXplcm9fX19QQlY0NyB7XFxuICBtaW4taGVpZ2h0OiAwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eHNfX19WM04tYiB7XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeHNfX190Z0RRUSB7XFxuICBtaW4taGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eHNfX18tcWhTeiB7XFxuICBtaW4taGVpZ2h0OiA0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14c19fX1pJcHF1IHtcXG4gIG1pbi1oZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXNfX194TWlHYyB7XFxuICBtaW4taGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbV9fX1ZFV0xyIHtcXG4gIG1pbi1oZWlnaHQ6IDE2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1sX19fYTYtRjcge1xcbiAgbWluLWhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXhsX19fLXlsRnUge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXh4bF9fXzdLNmYtIHtcXG4gIG1pbi1oZWlnaHQ6IDI4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeGxfX18wRlpRbSB7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhsX19fY0dvSmsge1xcbiAgbWluLWhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTV4bF9fX2ZWM2FPIHtcXG4gIG1pbi1oZWlnaHQ6IDQwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS02eGxfX19Ga1VHQyB7XFxuICBtaW4taGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tN3hsX19fQ3Npd1Yge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTh4bF9fX2gtLURLIHtcXG4gIG1pbi1oZWlnaHQ6IDUycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS05eGxfX19uRk1TSCB7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTB4bF9fX0thLWNBIHtcXG4gIG1pbi1oZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMXhsX19fZlFzZ2Mge1xcbiAgbWluLWhlaWdodDogNjRweDtcXG59XFxuXFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tc3RyZXRjaF9fX3JZYVluIHtcXG4gIGhlaWdodDogc3RyZXRjaDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tZnVsbF9fX3ZXeGllIHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tYXV0b19fXzY3bkZOIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0temVyb19fX0FxQTBQIHtcXG4gIGhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS00eHNfX19GZEowaCB7XFxuICBoZWlnaHQ6IDFweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hzX19fYXNVSmIge1xcbiAgaGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4c19fX1lxVHFwIHtcXG4gIGhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14c19fX2xOUnRZIHtcXG4gIGhlaWdodDogOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1zX19fSDdtLS0ge1xcbiAgaGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1tX19fQ21McDEge1xcbiAgaGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1sX19fMnRra2gge1xcbiAgaGVpZ2h0OiAyMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14bF9fXzd4QkppIHtcXG4gIGhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teHhsX19fQ2pTdTUge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeGxfX19wVWR2TiB7XFxuICBoZWlnaHQ6IDMycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4bF9fX1FIWll5IHtcXG4gIGhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNXhsX19fV2Jnbzcge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS02eGxfX19rd2M4YSB7XFxuICBoZWlnaHQ6IDQ0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTd4bF9fX211TzFsIHtcXG4gIGhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tOHhsX19fOXBFTU4ge1xcbiAgaGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS05eGxfX182ZTQ2USB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTEweGxfX19YZ1hwLSB7XFxuICBoZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTExeGxfX19hZHd1SCB7XFxuICBoZWlnaHQ6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibWF4LWhlaWdodC0tZnVsbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tZnVsbF9fXy1pb2pmXCIsXCJtYXgtaGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS16ZXJvX19fZDU3d1dcIixcIm1heC1oZWlnaHQtLTR4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhzX19fTEpVQm5cIixcIm1heC1oZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hzX19fLTJXby1cIixcIm1heC1oZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhzX19faEZyQmVcIixcIm1heC1oZWlnaHQtLXhzXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14c19fX2MycGFEXCIsXCJtYXgtaGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1zX19fQWNwNlRcIixcIm1heC1oZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLW1fX19Wem9ROVwiLFwibWF4LWhlaWdodC0tbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbF9fX1dnbHFiXCIsXCJtYXgtaGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teGxfX19MVW1sSlwiLFwibWF4LWhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eGxfX19kUjN6S1wiLFwibWF4LWhlaWdodC0tM3hsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeGxfX19idWJURFwiLFwibWF4LWhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS00eGxfX19iZFpYNlwiLFwibWF4LWhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS01eGxfX19UVVRBUlwiLFwibWF4LWhlaWdodC0tNnhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS02eGxfX19HYy1IbFwiLFwibWF4LWhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS03eGxfX19ZeGR0WFwiLFwibWF4LWhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS04eGxfX19BMld2ZFwiLFwibWF4LWhlaWdodC0tOXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS05eGxfX19KdnJHSlwiLFwibWF4LWhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTB4bF9fX3dMUlF1XCIsXCJtYXgtaGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0xMXhsX19fZ1UzeElcIixcIm1pbi1oZWlnaHQtLXplcm9cIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXplcm9fX19QQlY0N1wiLFwibWluLWhlaWdodC0tNHhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eHNfX19WM04tYlwiLFwibWluLWhlaWdodC0tM3hzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeHNfX190Z0RRUVwiLFwibWluLWhlaWdodC0teHhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eHNfX18tcWhTelwiLFwibWluLWhlaWdodC0teHNcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXhzX19fWklwcXVcIixcIm1pbi1oZWlnaHQtLXNcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXNfX194TWlHY1wiLFwibWluLWhlaWdodC0tbVwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbV9fX1ZFV0xyXCIsXCJtaW4taGVpZ2h0LS1sXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1sX19fYTYtRjdcIixcIm1pbi1oZWlnaHQtLXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14bF9fXy15bEZ1XCIsXCJtaW4taGVpZ2h0LS14eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXh4bF9fXzdLNmYtXCIsXCJtaW4taGVpZ2h0LS0zeGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTN4bF9fXzBGWlFtXCIsXCJtaW4taGVpZ2h0LS00eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTR4bF9fX2NHb0prXCIsXCJtaW4taGVpZ2h0LS01eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTV4bF9fX2ZWM2FPXCIsXCJtaW4taGVpZ2h0LS02eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTZ4bF9fX0ZrVUdDXCIsXCJtaW4taGVpZ2h0LS03eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTd4bF9fX0NzaXdWXCIsXCJtaW4taGVpZ2h0LS04eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTh4bF9fX2gtLURLXCIsXCJtaW4taGVpZ2h0LS05eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTl4bF9fX25GTVNIXCIsXCJtaW4taGVpZ2h0LS0xMHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMHhsX19fS2EtY0FcIixcIm1pbi1oZWlnaHQtLTExeGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTExeGxfX19mUXNnY1wiLFwiaGVpZ2h0LS1zdHJldGNoXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXN0cmV0Y2hfX19yWWFZblwiLFwiaGVpZ2h0LS1mdWxsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWZ1bGxfX192V3hpZVwiLFwiaGVpZ2h0LS1hdXRvXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWF1dG9fX182N25GTlwiLFwiaGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXplcm9fX19BcUEwUFwiLFwiaGVpZ2h0LS00eHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhzX19fRmRKMGhcIixcImhlaWdodC0tM3hzXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTN4c19fX2FzVUpiXCIsXCJoZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eHNfX19ZcVRxcFwiLFwiaGVpZ2h0LS14c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14c19fX2xOUnRZXCIsXCJoZWlnaHQtLXNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tc19fX0g3bS0tXCIsXCJoZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tbV9fX0NtTHAxXCIsXCJoZWlnaHQtLWxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tbF9fXzJ0a2toXCIsXCJoZWlnaHQtLXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXhsX19fN3hCSmlcIixcImhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4bF9fX0NqU3U1XCIsXCJoZWlnaHQtLTN4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeGxfX19wVWR2TlwiLFwiaGVpZ2h0LS00eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhsX19fUUhaWXlcIixcImhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTV4bF9fX1diZ283XCIsXCJoZWlnaHQtLTZ4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS02eGxfX19rd2M4YVwiLFwiaGVpZ2h0LS03eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tN3hsX19fbXVPMWxcIixcImhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTh4bF9fXzlwRU1OXCIsXCJoZWlnaHQtLTl4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS05eGxfX182ZTQ2UVwiLFwiaGVpZ2h0LS0xMHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTEweGxfX19YZ1hwLVwiLFwiaGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTExeGxfX19hZHd1SFwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9oaWRkZW4vaGlkZGVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaGlkZGVuLW1vZHVsZV9faGlkZGVuX19fblVVaTEge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJoaWRkZW5cIjpcImhpZGRlbi1tb2R1bGVfX2hpZGRlbl9fX25VVWkxXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIHRyYW5zaXRpb246IDI1MG1zIGNvbG9yLCAyNTBtcyBvcGFjaXR5LCAxNTBtcyBiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyBib3gtc2hhZG93O1xcbn1cXG4uaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoOm5vdCguaW50ZXJhY3RpdmUtbW9kdWxlX19pZ25vcmVGb2N1c1Zpc2libGVfX19XZHJERyk6Zm9jdXMtdmlzaWJsZSB7XFxuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYmx1ZSk7XFxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XFxufVxcbi5pbnRlcmFjdGl2ZS1tb2R1bGVfX2ludGVyYWN0aXZlX19fRmxVdWg6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWljb25BY3RpdmVDb2xvcik7XFxuICBib3gtc2hhZG93OiAwIDAgMCAwIHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG59XFxuLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aC5pbnRlcmFjdGl2ZS1tb2R1bGVfX2FjdGl2ZV9fX29tbTd5IHtcXG4gIGNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQ29sb3IpO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJpbnRlcmFjdGl2ZVwiOlwiaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoXCIsXCJpZ25vcmVGb2N1c1Zpc2libGVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9faWdub3JlRm9jdXNWaXNpYmxlX19fV2RyREdcIixcImFjdGl2ZVwiOlwiaW50ZXJhY3RpdmUtbW9kdWxlX19hY3RpdmVfX19vbW03eVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaW52aXNpYmxlLWJhY2tkcm9wLW1vZHVsZV9faW52aXNpYmxlQmFja2Ryb3BfX19oT2g1Yjo6YmFja2Ryb3Age1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaW52aXNpYmxlQmFja2Ryb3BcIjpcImludmlzaWJsZS1iYWNrZHJvcC1tb2R1bGVfX2ludmlzaWJsZUJhY2tkcm9wX19faE9oNWJcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS16ZXJvX19fZ0dMcXcge1xcbiAgbWFyZ2luLXRvcDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4c19fX0V2OHI3IHtcXG4gIG1hcmdpbi10b3A6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeHNfX19tNFlPWiB7XFxuICBtYXJnaW4tdG9wOiAycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhzX19fb3BYdnAge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXhzX19fSklqWUMge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXNfX19ZTjhESSB7XFxuICBtYXJnaW4tdG9wOiAxMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLW1fX19Yd2stUyB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLWxfX19LVFdpRyB7XFxuICBtYXJnaW4tdG9wOiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXhsX19fOUlPYloge1xcbiAgbWFyZ2luLXRvcDogMjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14eGxfX18zTVd6cCB7XFxuICBtYXJnaW4tdG9wOiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTN4bF9fX004eEgzIHtcXG4gIG1hcmdpbi10b3A6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNHhsX19fcnZOSFIge1xcbiAgbWFyZ2luLXRvcDogMzZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS01eGxfX19JbkVSeCB7XFxuICBtYXJnaW4tdG9wOiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTZ4bF9fX1BTLXQ2IHtcXG4gIG1hcmdpbi10b3A6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tN3hsX19fUDVZYnoge1xcbiAgbWFyZ2luLXRvcDogNDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS04eGxfX185Nk1vSyB7XFxuICBtYXJnaW4tdG9wOiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTl4bF9fX29wZURjIHtcXG4gIG1hcmdpbi10b3A6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTB4bF9fX3B2RjZ4IHtcXG4gIG1hcmdpbi10b3A6IDYwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTF4bF9fX3BCekFtIHtcXG4gIG1hcmdpbi10b3A6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS16ZXJvX19fQld3Nk8ge1xcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eHNfX19yZFBPbyB7XFxuICBtYXJnaW4tcmlnaHQ6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTN4c19fXy1ZOU9PIHtcXG4gIG1hcmdpbi1yaWdodDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhzX19fSnJvQUEge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14c19fX1psOE1pIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tc19fXzI0REluIHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLW1fX19aTGw2QiB7XFxuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1sX19fZUhTLUIge1xcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teGxfX19JVzhkNCB7XFxuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14eGxfX18tT0Q3TCB7XFxuICBtYXJnaW4tcmlnaHQ6IDI4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeGxfX190R1lSUiB7XFxuICBtYXJnaW4tcmlnaHQ6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eGxfX19FWHFoMyB7XFxuICBtYXJnaW4tcmlnaHQ6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS01eGxfX19DdVlWRyB7XFxuICBtYXJnaW4tcmlnaHQ6IDQwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS02eGxfX19ES2dEVCB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS03eGxfX19Geng0YiB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS04eGxfX19FbFNXTSB7XFxuICBtYXJnaW4tcmlnaHQ6IDUycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS05eGxfX18wb2FUeCB7XFxuICBtYXJnaW4tcmlnaHQ6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0xMHhsX19fUTU1UEMge1xcbiAgbWFyZ2luLXJpZ2h0OiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTF4bF9fX3AwMmtuIHtcXG4gIG1hcmdpbi1yaWdodDogNjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS16ZXJvX19fbi1OVlEge1xcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4c19fX2lKSmFhIHtcXG4gIG1hcmdpbi1ib3R0b206IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeHNfX19md1FkMSB7XFxuICBtYXJnaW4tYm90dG9tOiAycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhzX19fNlVhZkgge1xcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXhzX19fejJKMWUge1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXNfX18tSEY2USB7XFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLW1fX19KSk9SRSB7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLWxfX19HSVpjRiB7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXhsX19fTTRBd04ge1xcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14eGxfX19UcjhtWiB7XFxuICBtYXJnaW4tYm90dG9tOiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTN4bF9fXy0wWi1IIHtcXG4gIG1hcmdpbi1ib3R0b206IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNHhsX19fNGxrU0Yge1xcbiAgbWFyZ2luLWJvdHRvbTogMzZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS01eGxfX196aXpVUCB7XFxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTZ4bF9fX3NNbXRLIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tN3hsX19fSk9BWnIge1xcbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS04eGxfX19BNVE0QyB7XFxuICBtYXJnaW4tYm90dG9tOiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTl4bF9fXzd1U3p2IHtcXG4gIG1hcmdpbi1ib3R0b206IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTB4bF9fX0ptUUo1IHtcXG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTF4bF9fXzZLRVlzIHtcXG4gIG1hcmdpbi1ib3R0b206IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXplcm9fX192Q3ZTbyB7XFxuICBtYXJnaW4tbGVmdDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eHNfX19sSzUteSB7XFxuICBtYXJnaW4tbGVmdDogMXB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeHNfX183LXhWLSB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eHNfX19nZTZWSiB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14c19fX2R2clVqIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXNfX19ETVpKMiB7XFxuICBtYXJnaW4tbGVmdDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbV9fXzVwZWR3IHtcXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1sX19fLVN4REkge1xcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhsX19fNk4ta1oge1xcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4bF9fX1lrYXBZIHtcXG4gIG1hcmdpbi1sZWZ0OiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeGxfX184VVV1eCB7XFxuICBtYXJnaW4tbGVmdDogMzJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhsX19fYXFsNWIge1xcbiAgbWFyZ2luLWxlZnQ6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTV4bF9fX2hRTnRwIHtcXG4gIG1hcmdpbi1sZWZ0OiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS02eGxfX19TcVAzMSB7XFxuICBtYXJnaW4tbGVmdDogNDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tN3hsX19fZTBqLWoge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTh4bF9fX3VrcFZ6IHtcXG4gIG1hcmdpbi1sZWZ0OiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS05eGxfX19sTkhCVCB7XFxuICBtYXJnaW4tbGVmdDogNTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTB4bF9fX0NCVVNuIHtcXG4gIG1hcmdpbi1sZWZ0OiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0xMXhsX19fdWNLQzgge1xcbiAgbWFyZ2luLWxlZnQ6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXplcm9fX195S0xESCB7XFxuICBtYXJnaW46IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhzX19fN25qc2kge1xcbiAgbWFyZ2luOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4c19fX2tXQmJlIHtcXG4gIG1hcmdpbjogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eHNfX19mWmlVYSB7XFxuICBtYXJnaW46IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHNfX18tdGRPaiB7XFxuICBtYXJnaW46IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tc19fXzB4UDBnIHtcXG4gIG1hcmdpbjogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbV9fX1dkNHBwIHtcXG4gIG1hcmdpbjogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbF9fX3lNVVhzIHtcXG4gIG1hcmdpbjogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teGxfX193alpQUiB7XFxuICBtYXJnaW46IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4bF9fX0VtNFQ3IHtcXG4gIG1hcmdpbjogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tM3hsX19fY1FaSGYge1xcbiAgbWFyZ2luOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eGxfX183SVdyTSB7XFxuICBtYXJnaW46IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTV4bF9fX2NTT1VRIHtcXG4gIG1hcmdpbjogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNnhsX19fRjNiU20ge1xcbiAgbWFyZ2luOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS03eGxfX18xVVFtSiB7XFxuICBtYXJnaW46IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTh4bF9fX0dFMFN2IHtcXG4gIG1hcmdpbjogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tOXhsX19faDVoaEUge1xcbiAgbWFyZ2luOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0xMHhsX19fZEdLLVIge1xcbiAgbWFyZ2luOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0xMXhsX19fM3l4QnAge1xcbiAgbWFyZ2luOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1hdXRvX19feTdnZjkge1xcbiAgbWFyZ2luOiBhdXRvO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1hcmdpbl9fdG9wLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0temVyb19fX2dHTHF3XCIsXCJtYXJnaW5fX3RvcC0tNHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNHhzX19fRXY4cjdcIixcIm1hcmdpbl9fdG9wLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeHNfX19tNFlPWlwiLFwibWFyZ2luX190b3AtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4c19fX29wWHZwXCIsXCJtYXJnaW5fX3RvcC0teHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14c19fX0pJallDXCIsXCJtYXJnaW5fX3RvcC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXNfX19ZTjhESVwiLFwibWFyZ2luX190b3AtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1tX19fWHdrLVNcIixcIm1hcmdpbl9fdG9wLS1sXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tbF9fX0tUV2lHXCIsXCJtYXJnaW5fX3RvcC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14bF9fXzlJT2JaXCIsXCJtYXJnaW5fX3RvcC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhsX19fM01XenBcIixcIm1hcmdpbl9fdG9wLS0zeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeGxfX19NOHhIM1wiLFwibWFyZ2luX190b3AtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4bF9fX3J2TkhSXCIsXCJtYXJnaW5fX3RvcC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNXhsX19fSW5FUnhcIixcIm1hcmdpbl9fdG9wLS02eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS02eGxfX19QUy10NlwiLFwibWFyZ2luX190b3AtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTd4bF9fX1A1WWJ6XCIsXCJtYXJnaW5fX3RvcC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOHhsX19fOTZNb0tcIixcIm1hcmdpbl9fdG9wLS05eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS05eGxfX19vcGVEY1wiLFwibWFyZ2luX190b3AtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0xMHhsX19fcHZGNnhcIixcIm1hcmdpbl9fdG9wLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTF4bF9fX3BCekFtXCIsXCJtYXJnaW5fX3JpZ2h0LS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS16ZXJvX19fQld3Nk9cIixcIm1hcmdpbl9fcmlnaHQtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhzX19fcmRQT29cIixcIm1hcmdpbl9fcmlnaHQtLTN4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hzX19fLVk5T09cIixcIm1hcmdpbl9fcmlnaHQtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhzX19fSnJvQUFcIixcIm1hcmdpbl9fcmlnaHQtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14c19fX1psOE1pXCIsXCJtYXJnaW5fX3JpZ2h0LS1zXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1zX19fMjRESW5cIixcIm1hcmdpbl9fcmlnaHQtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLW1fX19aTGw2QlwiLFwibWFyZ2luX19yaWdodC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tbF9fX2VIUy1CXCIsXCJtYXJnaW5fX3JpZ2h0LS14bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teGxfX19JVzhkNFwiLFwibWFyZ2luX19yaWdodC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14eGxfX18tT0Q3TFwiLFwibWFyZ2luX19yaWdodC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeGxfX190R1lSUlwiLFwibWFyZ2luX19yaWdodC0tNHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eGxfX19FWHFoM1wiLFwibWFyZ2luX19yaWdodC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS01eGxfX19DdVlWR1wiLFwibWFyZ2luX19yaWdodC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS02eGxfX19ES2dEVFwiLFwibWFyZ2luX19yaWdodC0tN3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS03eGxfX19Geng0YlwiLFwibWFyZ2luX19yaWdodC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS04eGxfX19FbFNXTVwiLFwibWFyZ2luX19yaWdodC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS05eGxfX18wb2FUeFwiLFwibWFyZ2luX19yaWdodC0tMTB4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTB4bF9fX1E1NVBDXCIsXCJtYXJnaW5fX3JpZ2h0LS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0xMXhsX19fcDAya25cIixcIm1hcmdpbl9fYm90dG9tLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0temVyb19fX24tTlZRXCIsXCJtYXJnaW5fX2JvdHRvbS0tNHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNHhzX19faUpKYWFcIixcIm1hcmdpbl9fYm90dG9tLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeHNfX19md1FkMVwiLFwibWFyZ2luX19ib3R0b20tLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4c19fXzZVYWZIXCIsXCJtYXJnaW5fX2JvdHRvbS0teHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14c19fX3oySjFlXCIsXCJtYXJnaW5fX2JvdHRvbS0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXNfX18tSEY2UVwiLFwibWFyZ2luX19ib3R0b20tLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1tX19fSkpPUkVcIixcIm1hcmdpbl9fYm90dG9tLS1sXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tbF9fX0dJWmNGXCIsXCJtYXJnaW5fX2JvdHRvbS0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14bF9fX000QXdOXCIsXCJtYXJnaW5fX2JvdHRvbS0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhsX19fVHI4bVpcIixcIm1hcmdpbl9fYm90dG9tLS0zeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeGxfX18tMFotSFwiLFwibWFyZ2luX19ib3R0b20tLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4bF9fXzRsa1NGXCIsXCJtYXJnaW5fX2JvdHRvbS0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNXhsX19feml6VVBcIixcIm1hcmdpbl9fYm90dG9tLS02eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS02eGxfX19zTW10S1wiLFwibWFyZ2luX19ib3R0b20tLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTd4bF9fX0pPQVpyXCIsXCJtYXJnaW5fX2JvdHRvbS0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOHhsX19fQTVRNENcIixcIm1hcmdpbl9fYm90dG9tLS05eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS05eGxfX183dVN6dlwiLFwibWFyZ2luX19ib3R0b20tLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0xMHhsX19fSm1RSjVcIixcIm1hcmdpbl9fYm90dG9tLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTF4bF9fXzZLRVlzXCIsXCJtYXJnaW5fX2xlZnQtLXplcm9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0temVyb19fX3ZDdlNvXCIsXCJtYXJnaW5fX2xlZnQtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eHNfX19sSzUteVwiLFwibWFyZ2luX19sZWZ0LS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hzX19fNy14Vi1cIixcIm1hcmdpbl9fbGVmdC0teHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4c19fX2dlNlZKXCIsXCJtYXJnaW5fX2xlZnQtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhzX19fZHZyVWpcIixcIm1hcmdpbl9fbGVmdC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1zX19fRE1aSjJcIixcIm1hcmdpbl9fbGVmdC0tbVwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1tX19fNXBlZHdcIixcIm1hcmdpbl9fbGVmdC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1sX19fLVN4RElcIixcIm1hcmdpbl9fbGVmdC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teGxfX182Ti1rWlwiLFwibWFyZ2luX19sZWZ0LS14eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHhsX19fWWthcFlcIixcIm1hcmdpbl9fbGVmdC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTN4bF9fXzhVVXV4XCIsXCJtYXJnaW5fX2xlZnQtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eGxfX19hcWw1YlwiLFwibWFyZ2luX19sZWZ0LS01eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNXhsX19faFFOdHBcIixcIm1hcmdpbl9fbGVmdC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTZ4bF9fX1NxUDMxXCIsXCJtYXJnaW5fX2xlZnQtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS03eGxfX19lMGotalwiLFwibWFyZ2luX19sZWZ0LS04eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tOHhsX19fdWtwVnpcIixcIm1hcmdpbl9fbGVmdC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTl4bF9fX2xOSEJUXCIsXCJtYXJnaW5fX2xlZnQtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTB4bF9fX0NCVVNuXCIsXCJtYXJnaW5fX2xlZnQtLTExeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTF4bF9fX3VjS0M4XCIsXCJtYXJnaW4tLXplcm9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0temVyb19fX3lLTERIXCIsXCJtYXJnaW4tLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eHNfX183bmpzaVwiLFwibWFyZ2luLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tM3hzX19fa1dCYmVcIixcIm1hcmdpbi0teHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4c19fX2ZaaVVhXCIsXCJtYXJnaW4tLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhzX19fLXRkT2pcIixcIm1hcmdpbi0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1zX19fMHhQMGdcIixcIm1hcmdpbi0tbVwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1tX19fV2Q0cHBcIixcIm1hcmdpbi0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1sX19feU1VWHNcIixcIm1hcmdpbi0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teGxfX193alpQUlwiLFwibWFyZ2luLS14eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHhsX19fRW00VDdcIixcIm1hcmdpbi0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4bF9fX2NRWkhmXCIsXCJtYXJnaW4tLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eGxfX183SVdyTVwiLFwibWFyZ2luLS01eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNXhsX19fY1NPVVFcIixcIm1hcmdpbi0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTZ4bF9fX0YzYlNtXCIsXCJtYXJnaW4tLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS03eGxfX18xVVFtSlwiLFwibWFyZ2luLS04eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tOHhsX19fR0UwU3ZcIixcIm1hcmdpbi0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTl4bF9fX2g1aGhFXCIsXCJtYXJnaW4tLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTB4bF9fX2RHSy1SXCIsXCJtYXJnaW4tLTExeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTF4bF9fXzN5eEJwXCIsXCJtYXJnaW4tLWF1dG9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tYXV0b19fX3k3Z2Y5XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL29mZnNldC1jaGlsZHJlbi9vZmZzZXQtY2hpbGRyZW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0temVyb19fXzhseUdpID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0temVyb19fX0RiSTNqID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0temVyb19fX2loblNYID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS16ZXJvX19fUTRMWE8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4c19fX0xmTTB4ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhzX19fWWV5dzYgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eHNfX19UQWFESyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhzX19fNmlXVW8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4c19fX3Vya2lnID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hzX19feVhIM3ogPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeHNfX19nQXpWQSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hzX19fV3I0OGMgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c19fX2RxVFRTID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzX19fRXA2NlIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eHNfX185dlBZZCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhzX19fanV1S3AgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhzX19fbnc1YWEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14c19fX0pnQzZsID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHNfX19jeHRWeCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHNfX18yaVA1ZyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tc19fX0htMmlwID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXNfX19XYTM4TiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1zX19fV1dCRmggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1zX19fd3pGVjkgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1tX19fWmpPQ00gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbV9fX2lwRGtXID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLW1fX19ZOHFEVyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLW1fX180WEpmdiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLWxfX19RdlRSbyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1sX19fRUdrQVIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tbF9fX1VuVUh2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbF9fX2pWTk5YID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teGxfX19FTmNjWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14bF9fX2JtcnNhID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsX19fS2pvLWMgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14bF9fX0RIUnV5ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsX19fb25qZUEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhsX19fdi0xVGwgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhsX19faS1jMmggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14eGxfX19xRzA4NSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4bF9fX0w5bXNRID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bF9fX3dNTWJtID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4bF9fX2JTU09yID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hsX19fZTlXN3YgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS00eGxfX19WQWsteCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eGxfX19EeXk1WCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDM2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eGxfX19YMHg1YSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4bF9fX1F1bC1qID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsX19fZVc1UWsgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNXhsX19fcGlhLVogPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNXhsX19faUFBaG8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS01eGxfX194anVDTCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTZ4bF9fX0MwV3ZrID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQ0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bF9fXzg0enAtID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTZ4bF9fX2l1ZUJGID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQ0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNnhsX19fVU5RLUIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS03eGxfX19oUGNsYyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00OHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS03eGxfX181Ulp3USA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQ4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS03eGxfX19ISXA2QiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00OHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTd4bF9fX0ZpT0VJID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsX19fZ3Q0ZnUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tOHhsX19fZlBFT0QgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tOHhsX19fLXRUZlAgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS04eGxfX19kVVhSaCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTl4bF9fX2tSTkE2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTU2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bF9fX2piSGFCID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTl4bF9fX1NGZ1BsID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTU2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOXhsX19fVEppZUggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMHhsX19fLXV0T24gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTB4bF9fX2E1OXdUID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTEweGxfX19LY2V6ZSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTEweGxfX19Ob21ZdSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTExeGxfX19TWXRnbiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMXhsX19fUDYydTQgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTF4bF9fX2cwb29lID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTY0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bF9fX0VPV0wtID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjRweCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wib2Zmc2V0LWNoaWxkcmVuX190b3AtLXplcm9cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS16ZXJvX19fOGx5R2lcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0temVyb19fX0RiSTNqXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0temVyb19fX2loblNYXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS16ZXJvX19fUTRMWE9cIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS00eHNfX19MZk0weFwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTR4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTR4c19fX1lleXc2XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTR4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eHNfX19UQWFES1wiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eHNfX182aVdVb1wiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4c19fX3Vya2lnXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hzX19feVhIM3pcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tM3hzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4c19fX2dBelZBXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4c19fX1dyNDhjXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhzX19fZHFUVFNcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eHNfX19FcDY2UlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzX19fOXZQWWRcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhzX19fanV1S3BcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS14c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhzX19fbnc1YWFcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXhzX19fSmdDNmxcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHNfX19jeHRWeFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzX19fMmlQNWdcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS1zXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tc19fX0htMmlwXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXNfX19XYTM4TlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1zXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXNfX19XV0JGaFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tc19fX3d6RlY5XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tbVwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLW1fX19aak9DTVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1tX19faXBEa1dcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tbVwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1tX19fWThxRFdcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLW1fX180WEpmdlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLWxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1sX19fUXZUUm9cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbF9fX0VHa0FSXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tbF9fX1VuVUh2XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1sX19falZOTlhcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS14bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhsX19fRU5jY1hcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXhsX19fYm1yc2FcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teGxfX19Lam8tY1wiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhsX19fREhSdXlcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14eGxfX19vbmplQVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4bF9fX3YtMVRsXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eGxfX19pLWMyaFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14eGxfX19xRzA4NVwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4bF9fX0w5bXNRXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hsX19fd01NYm1cIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tM3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4bF9fX2JTU09yXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4bF9fX2U5Vzd2XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhsX19fVkFrLXhcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eGxfX19EeXk1WFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsX19fWDB4NWFcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhsX19fUXVsLWpcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS01eGxfX19lVzVRa1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTV4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTV4bF9fX3BpYS1aXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTV4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS01eGxfX19pQUFob1wiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS01eGxfX194anVDTFwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTZ4bF9fX0MwV3ZrXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNnhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNnhsX19fODR6cC1cIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tNnhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTZ4bF9fX2l1ZUJGXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS02eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTZ4bF9fX1VOUS1CXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tN3hsX19faFBjbGNcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS03eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS03eGxfX181Ulp3UVwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS03eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsX19fSElwNkJcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTd4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tN3hsX19fRmlPRUlcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS04eGxfX19ndDRmdVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTh4bF9fX2ZQRU9EXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS04eGxfX18tdFRmUFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS04eGxfX19kVVhSaFwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTl4bF9fX2tSTkE2XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tOXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tOXhsX19famJIYUJcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tOXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTl4bF9fX1NGZ1BsXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS05eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTl4bF9fX1RKaWVIXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTB4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTEweGxfX18tdXRPblwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMHhsX19fYTU5d1RcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTB4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMHhsX19fS2NlemVcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTEweGxfX19Ob21ZdVwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTExeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsX19fU1l0Z25cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bF9fX1A2MnU0XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTF4bF9fX2cwb29lXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMXhsX19fRU9XTC1cIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS16ZXJvX19fYXByT3Ige1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXplcm9fX19iRk55NCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0temVyb19fXzVLZE14IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXplcm9fX19EcmowdSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS00eHNfX19GYTh6ZSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNHhzX19fSmM3Wncge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4c19fX3Q3akd6IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4c19fXzJtY0xaIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTN4c19fX2hIeEFLIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeHNfX19xUDNMdiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hzX19fTm1EN2kge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hzX19fOVlsdWUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHhzX19fWkFLeG8ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXh4c19fX2s5RjR4IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14eHNfX19FRWY0RCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eHNfX18tSjc1SyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14c19fX2lycG5hIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14c19fXzNHWG9IIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14c19fXzdXWUpJIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXhzX19fcVktbE8ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tc19fX05kUktxIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tc19fX1lLZjllIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tc19fX21peHBBIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1zX19fbTZqZjUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLW1fX19FWGtxaSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLW1fX19PdmxZciB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLW1fX19YUy1QRyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tbV9fX28welotIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1sX19fMGJHYVAge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1sX19fUzEtTFcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1sX19faFMxYjMge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLWxfX192UTRZeiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teGxfX182TWZLViB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXhsX19fZGdiV1cge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14bF9fXzBhV0I1IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14bF9fX3lQejhPIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14eGxfX19pdkpSZCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXh4bF9fX1p0RTZaIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHhsX19fNGxLLUUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXh4bF9fX0VNOHJCIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeGxfX19BOUJrbiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTN4bF9fX3pDOC1hIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hsX19fV3JMLVQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTN4bF9fX25lV2FwIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS00eGxfX19CV1E5aSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTM2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4bF9fXzhYNGtFIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNHhsX19fSGM0MFQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4bF9fX3NSakdRIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS01eGxfX182dVJYWSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTV4bF9fX25XYzZuIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNXhsX19fVmtXekoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTV4bF9fX2NuZ0tFIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS02eGxfX190cjdoSCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQ0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTZ4bF9fX0NZVTFNIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNnhsX19fMEl1TWIge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTZ4bF9fXy0xc3dvIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS03eGxfX19ONy1YZCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQ4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTd4bF9fXy1wQWh5IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tN3hsX19fbXhWcmsge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTd4bF9fX256dWxQIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS04eGxfX19lTS03VyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTh4bF9fX2VucEVtIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOHhsX19famlGWW4ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTh4bF9fX0ZOcU5zIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS05eGxfX18tQ21oOSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTU2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTl4bF9fX3R3RTN0IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOXhsX19fNzVtdWIge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTl4bF9fX2tDU3NDIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0xMHhsX19famxiaFoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0xMHhsX19fcmV5VHEge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0xMHhsX19fOXAzY24ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTEweGxfX190LXZvNyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTF4bF9fXzBuclphIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tMTF4bF9fX3djZldnIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tMTF4bF9fX3NJdGc1IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0xMXhsX19fTlVwLW4ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDY0cHgpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm9mZnNldF9fdG9wLS16ZXJvXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0temVyb19fX2Fwck9yXCIsXCJvZmZzZXRfX2JvdHRvbS0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXplcm9fX19iRk55NFwiLFwib2Zmc2V0X19sZWZ0LS16ZXJvXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXplcm9fX181S2RNeFwiLFwib2Zmc2V0X19yaWdodC0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0temVyb19fX0RyajB1XCIsXCJvZmZzZXRfX3RvcC0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhzX19fRmE4emVcIixcIm9mZnNldF9fYm90dG9tLS00eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS00eHNfX19KYzdad1wiLFwib2Zmc2V0X19sZWZ0LS00eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNHhzX19fdDdqR3pcIixcIm9mZnNldF9fcmlnaHQtLTR4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNHhzX19fMm1jTFpcIixcIm9mZnNldF9fdG9wLS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeHNfX19oSHhBS1wiLFwib2Zmc2V0X19ib3R0b20tLTN4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTN4c19fX3FQM0x2XCIsXCJvZmZzZXRfX2xlZnQtLTN4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0zeHNfX19ObUQ3aVwiLFwib2Zmc2V0X19yaWdodC0tM3hzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0zeHNfX185WWx1ZVwiLFwib2Zmc2V0X190b3AtLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4c19fX1pBS3hvXCIsXCJvZmZzZXRfX2JvdHRvbS0teHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHhzX19fazlGNHhcIixcIm9mZnNldF9fbGVmdC0teHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4c19fX0VFZjREXCIsXCJvZmZzZXRfX3JpZ2h0LS14eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXh4c19fXy1KNzVLXCIsXCJvZmZzZXRfX3RvcC0teHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14c19fX2lycG5hXCIsXCJvZmZzZXRfX2JvdHRvbS0teHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14c19fXzNHWG9IXCIsXCJvZmZzZXRfX2xlZnQtLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXhzX19fN1dZSklcIixcIm9mZnNldF9fcmlnaHQtLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14c19fX3FZLWxPXCIsXCJvZmZzZXRfX3RvcC0tc1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXNfX19OZFJLcVwiLFwib2Zmc2V0X19ib3R0b20tLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1zX19fWUtmOWVcIixcIm9mZnNldF9fbGVmdC0tc1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1zX19fbWl4cEFcIixcIm9mZnNldF9fcmlnaHQtLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXNfX19tNmpmNVwiLFwib2Zmc2V0X190b3AtLW1cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1tX19fRVhrcWlcIixcIm9mZnNldF9fYm90dG9tLS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tbV9fX092bFlyXCIsXCJvZmZzZXRfX2xlZnQtLW1cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tbV9fX1hTLVBHXCIsXCJvZmZzZXRfX3JpZ2h0LS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1tX19fbzB6Wi1cIixcIm9mZnNldF9fdG9wLS1sXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbF9fXzBiR2FQXCIsXCJvZmZzZXRfX2JvdHRvbS0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLWxfX19TMS1MV1wiLFwib2Zmc2V0X19sZWZ0LS1sXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLWxfX19oUzFiM1wiLFwib2Zmc2V0X19yaWdodC0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tbF9fX3ZRNFl6XCIsXCJvZmZzZXRfX3RvcC0teGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14bF9fXzZNZktWXCIsXCJvZmZzZXRfX2JvdHRvbS0teGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14bF9fX2RnYldXXCIsXCJvZmZzZXRfX2xlZnQtLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXhsX19fMGFXQjVcIixcIm9mZnNldF9fcmlnaHQtLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14bF9fX3lQejhPXCIsXCJvZmZzZXRfX3RvcC0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHhsX19faXZKUmRcIixcIm9mZnNldF9fYm90dG9tLS14eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eGxfX19adEU2WlwiLFwib2Zmc2V0X19sZWZ0LS14eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHhsX19fNGxLLUVcIixcIm9mZnNldF9fcmlnaHQtLXh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHhsX19fRU04ckJcIixcIm9mZnNldF9fdG9wLS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeGxfX19BOUJrblwiLFwib2Zmc2V0X19ib3R0b20tLTN4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTN4bF9fX3pDOC1hXCIsXCJvZmZzZXRfX2xlZnQtLTN4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0zeGxfX19XckwtVFwiLFwib2Zmc2V0X19yaWdodC0tM3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0zeGxfX19uZVdhcFwiLFwib2Zmc2V0X190b3AtLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTR4bF9fX0JXUTlpXCIsXCJvZmZzZXRfX2JvdHRvbS0tNHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNHhsX19fOFg0a0VcIixcIm9mZnNldF9fbGVmdC0tNHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4bF9fX0hjNDBUXCIsXCJvZmZzZXRfX3JpZ2h0LS00eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4bF9fX3NSakdRXCIsXCJvZmZzZXRfX3RvcC0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNXhsX19fNnVSWFlcIixcIm9mZnNldF9fYm90dG9tLS01eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS01eGxfX19uV2M2blwiLFwib2Zmc2V0X19sZWZ0LS01eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNXhsX19fVmtXekpcIixcIm9mZnNldF9fcmlnaHQtLTV4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNXhsX19fY25nS0VcIixcIm9mZnNldF9fdG9wLS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS02eGxfX190cjdoSFwiLFwib2Zmc2V0X19ib3R0b20tLTZ4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTZ4bF9fX0NZVTFNXCIsXCJvZmZzZXRfX2xlZnQtLTZ4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS02eGxfX18wSXVNYlwiLFwib2Zmc2V0X19yaWdodC0tNnhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS02eGxfX18tMXN3b1wiLFwib2Zmc2V0X190b3AtLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTd4bF9fX043LVhkXCIsXCJvZmZzZXRfX2JvdHRvbS0tN3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tN3hsX19fLXBBaHlcIixcIm9mZnNldF9fbGVmdC0tN3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTd4bF9fX214VnJrXCIsXCJvZmZzZXRfX3JpZ2h0LS03eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTd4bF9fX256dWxQXCIsXCJvZmZzZXRfX3RvcC0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOHhsX19fZU0tN1dcIixcIm9mZnNldF9fYm90dG9tLS04eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS04eGxfX19lbnBFbVwiLFwib2Zmc2V0X19sZWZ0LS04eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOHhsX19famlGWW5cIixcIm9mZnNldF9fcmlnaHQtLTh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tOHhsX19fRk5xTnNcIixcIm9mZnNldF9fdG9wLS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS05eGxfX18tQ21oOVwiLFwib2Zmc2V0X19ib3R0b20tLTl4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTl4bF9fX3R3RTN0XCIsXCJvZmZzZXRfX2xlZnQtLTl4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS05eGxfX183NW11YlwiLFwib2Zmc2V0X19yaWdodC0tOXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS05eGxfX19rQ1NzQ1wiLFwib2Zmc2V0X190b3AtLTEweGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0xMHhsX19famxiaFpcIixcIm9mZnNldF9fYm90dG9tLS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tMTB4bF9fX3JleVRxXCIsXCJvZmZzZXRfX2xlZnQtLTEweGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tMTB4bF9fXzlwM2NuXCIsXCJvZmZzZXRfX3JpZ2h0LS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0xMHhsX19fdC12bzdcIixcIm9mZnNldF9fdG9wLS0xMXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTF4bF9fXzBuclphXCIsXCJvZmZzZXRfX2JvdHRvbS0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTExeGxfX193Y2ZXZ1wiLFwib2Zmc2V0X19sZWZ0LS0xMXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTExeGxfX19zSXRnNVwiLFwib2Zmc2V0X19yaWdodC0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTF4bF9fX05VcC1uXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1pbmhlcml0X19fMFdQMHIge1xcbiAgb3V0bGluZS1jb2xvcjogaW5oZXJpdDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX1VxLWdkIHtcXG4gIG91dGxpbmUtY29sb3I6IHdoaXRlO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fVE5vTXYge1xcbiAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTEwMF9fX1ZNRjdZIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0tkOGZNIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTYwX19fWkdqT3Qge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NDBfX191YUZuRyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fXzdRQlZWIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTI1X19fci1iYkoge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MjBfX19pd3plTCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2hKdHRTIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTcwX19fME9HbFUge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19falJ3SG4ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tcHJpbWFyeV9fX1B4Y214IHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWFjY2VudF9fX2pNaElOIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NfX194akpMbiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ub3RpY2VfX19DUmlZYiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdfX18xT2U3VyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbF9fX3lReC1MIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzVGludF9fX0dIYXEtIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX1lBbnR1IHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19RMW1kaCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWxpbmtfX191SWszbyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jb2RlX19feWJud2kge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0temVyb19fX0VrZnpOIHtcXG4gIG91dGxpbmUtd2lkdGg6IDBweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS14eHNfX19iR3lUciB7XFxuICBvdXRsaW5lLXdpZHRoOiAxcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teHNfX19aWlIyQiB7XFxuICBvdXRsaW5lLXdpZHRoOiAycHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tc19fXzhkREV6IHtcXG4gIG91dGxpbmUtd2lkdGg6IDNweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS1tX19fZzJ1RzUge1xcbiAgb3V0bGluZS13aWR0aDogNHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLWxfX19XaDBiQyB7XFxuICBvdXRsaW5lLXdpZHRoOiA2cHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teGxfX184ZE9NaiB7XFxuICBvdXRsaW5lLXdpZHRoOiA4cHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teHhsX19fQkVzVW0ge1xcbiAgb3V0bGluZS13aWR0aDogMTBweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS0zeGxfX19FczBTWSB7XFxuICBvdXRsaW5lLXdpZHRoOiAxMnB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTR4bF9fX1llb3Y4IHtcXG4gIG91dGxpbmUtd2lkdGg6IDE0cHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tNXhsX19fTnNWOFAge1xcbiAgb3V0bGluZS13aWR0aDogMTZweDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJvdXRsaW5lXCI6XCJvdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGXCIsXCJmb2N1c1Zpc2libGVcIjpcIm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSlwiLFwiY29sb3ItLWluaGVyaXRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0taW5oZXJpdF9fXzBXUDByXCIsXCJjb2xvci0td2hpdGVcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0td2hpdGVfX19VcS1nZFwiLFwiY29sb3ItLXRyYW5zcGFyZW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fVE5vTXZcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkxMDBfX19WTUY3WVwiLFwiY29sb3ItLWdyZXk4MFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5ODBfX19LZDhmTVwiLFwiY29sb3ItLWdyZXk2MFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19aR2pPdFwiLFwiY29sb3ItLWdyZXk0MFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NDBfX191YUZuR1wiLFwiY29sb3ItLWdyZXkzMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MzBfX183UUJWVlwiLFwiY29sb3ItLWdyZXkyNVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19yLWJiSlwiLFwiY29sb3ItLWdyZXkyMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MjBfX19pd3plTFwiLFwiY29sb3ItLWdyZXkxMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTBfX19oSnR0U1wiLFwiY29sb3ItLWdyZXk3MFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX18wT0dsVVwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2pSd0huXCIsXCJjb2xvci0tcHJpbWFyeVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fUHhjbXhcIixcImNvbG9yLS1hY2NlbnRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tYWNjZW50X19fak1oSU5cIixcImNvbG9yLS1zdWNjZXNzXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NfX194akpMblwiLFwiY29sb3ItLW5vdGljZVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ub3RpY2VfX19DUmlZYlwiLFwiY29sb3ItLXdhcm5pbmdcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ19fXzFPZTdXXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxfX195UXgtTFwiLFwiY29sb3ItLXN1Y2Nlc3NUaW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fR0hhcS1cIixcImNvbG9yLS13YXJuaW5nVGludFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX1lBbnR1XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX1ExbWRoXCIsXCJjb2xvci0tbGlua1wiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1saW5rX19fdUlrM29cIixcImNvbG9yLS1jb2RlXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNvZGVfX195Ym53aVwiLFwid2lkdGgtLXplcm9cIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0temVyb19fX0VrZnpOXCIsXCJ3aWR0aC0teHhzXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4c19fX2JHeVRyXCIsXCJ3aWR0aC0teHNcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0teHNfX19aWlIyQlwiLFwid2lkdGgtLXNcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tc19fXzhkREV6XCIsXCJ3aWR0aC0tbVwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS1tX19fZzJ1RzVcIixcIndpZHRoLS1sXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLWxfX19XaDBiQ1wiLFwid2lkdGgtLXhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhsX19fOGRPTWpcIixcIndpZHRoLS14eGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0teHhsX19fQkVzVW1cIixcIndpZHRoLS0zeGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tM3hsX19fRXMwU1lcIixcIndpZHRoLS00eGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tNHhsX19fWWVvdjhcIixcIndpZHRoLS01eGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tNXhsX19fTnNWOFBcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvb3ZlcmZsb3cvb3ZlcmZsb3cubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93LS1oaWRlLXNjcm9sbGJhcl9fX3djNmpQIHtcXG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWhpZGRlbl9fX1VCSVhRIHtcXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLXZpc2libGVfX19zZk9iVSB7XFxuICBvdmVyZmxvdy15OiB2aXNpYmxlO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tc2Nyb2xsX19feWtaMjEge1xcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tYXV0b19fXzFPTkhLIHtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1oaWRkZW5fX19MSzNVaCB7XFxuICBvdmVyZmxvdy14OiBoaWRkZW47XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS12aXNpYmxlX19fdS0tNkYge1xcbiAgb3ZlcmZsb3cteDogdmlzaWJsZTtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLXNjcm9sbF9fX2FpSUg2IHtcXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLWF1dG9fX19TNm9WTCB7XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm92ZXJmbG93LS1oaWRlLXNjcm9sbGJhclwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJfX193YzZqUFwiLFwib3ZlcmZsb3dfX3ktLWhpZGRlblwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0taGlkZGVuX19fVUJJWFFcIixcIm92ZXJmbG93X195LS12aXNpYmxlXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS12aXNpYmxlX19fc2ZPYlVcIixcIm92ZXJmbG93X195LS1zY3JvbGxcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLXNjcm9sbF9fX3lrWjIxXCIsXCJvdmVyZmxvd19feS0tYXV0b1wiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tYXV0b19fXzFPTkhLXCIsXCJvdmVyZmxvd19feC0taGlkZGVuXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1oaWRkZW5fX19MSzNVaFwiLFwib3ZlcmZsb3dfX3gtLXZpc2libGVcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLXZpc2libGVfX191LS02RlwiLFwib3ZlcmZsb3dfX3gtLXNjcm9sbFwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tc2Nyb2xsX19fYWlJSDZcIixcIm92ZXJmbG93X194LS1hdXRvXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1hdXRvX19fUzZvVkxcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZS5zY3NzXCIsIGNzczogXCIucG9wb3Zlci1tb2R1bGVfX3BvcG92ZXJfX292ZXJsYXlfX19UY0t2LSB7XFxuICBpbnNldDogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgei1pbmRleDogOTk5O1xcbn1cXG4ucG9wb3Zlci1tb2R1bGVfX3BvcG92ZXJfX2NvbnRlbnRfX19VQ1VaNiB7XFxuICB6LWluZGV4OiAxMDAwO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInBvcG92ZXJfX292ZXJsYXlcIjpcInBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19vdmVybGF5X19fVGNLdi1cIixcInBvcG92ZXJfX2NvbnRlbnRcIjpcInBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19jb250ZW50X19fVUNVWjZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGV4dC1hbGlnbi90ZXh0LWFsaWduLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLWNlbnRlcl9fX2JEclIyIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1yaWdodF9fX0pWUk1QIHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4udGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLWxlZnRfX19MTExrNiB7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInRleHQtYWxpZ24tLWNlbnRlclwiOlwidGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLWNlbnRlcl9fX2JEclIyXCIsXCJ0ZXh0LWFsaWduLS1yaWdodFwiOlwidGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLXJpZ2h0X19fSlZSTVBcIixcInRleHQtYWxpZ24tLWxlZnRcIjpcInRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1sZWZ0X19fTExMazZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIudGludC1tb2R1bGVfX3RpbnRfX19nQ3pHNywgLnRpbnQtbW9kdWxlX190aW50X19fZ0N6RzcgKiB7XFxuICBmaWxsOiB2YXIoLS1lbGVtZW50LXRpbnQpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInRpbnRcIjpcInRpbnQtbW9kdWxlX190aW50X19fZ0N6RzdcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudHJhbnNpdGlvbi1tb2R1bGVfX3RyYW5zaXRpb25fX19Td3dPRSB7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0cmFuc2l0aW9uXCI6XCJ0cmFuc2l0aW9uLW1vZHVsZV9fdHJhbnNpdGlvbl9fX1N3d09FXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi52aXN1YWxseS1oaWRkZW4tbW9kdWxlX192aXN1YWxseS1oaWRkZW5fX19EUHVsTSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInZpc3VhbGx5LWhpZGRlblwiOlwidmlzdWFsbHktaGlkZGVuLW1vZHVsZV9fdmlzdWFsbHktaGlkZGVuX19fRFB1bE1cIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvd2lkdGgvd2lkdGgubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tZnVsbF9fX25vSWtUIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1jb250ZW50X19feWtzVXIge1xcbiAgbWF4LXdpZHRoOiA5MDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS16ZXJvX19fOE5VRjEge1xcbiAgbWF4LXdpZHRoOiAwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNHhzX19fZ0hsTEkge1xcbiAgbWF4LXdpZHRoOiAxcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tM3hzX19fcmRvUDgge1xcbiAgbWF4LXdpZHRoOiAycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhzX19famxwOHYge1xcbiAgbWF4LXdpZHRoOiA0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHNfX19rUXNXeCB7XFxuICBtYXgtd2lkdGg6IDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1zX19fTWdHYXoge1xcbiAgbWF4LXdpZHRoOiAxMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLW1fX19hRnpTYyB7XFxuICBtYXgtd2lkdGg6IDE2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tbF9fX2lLbGFIIHtcXG4gIG1heC13aWR0aDogMjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14bF9fXzR6VWRDIHtcXG4gIG1heC13aWR0aDogMjRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14eGxfX181OHozUCB7XFxuICBtYXgtd2lkdGg6IDI4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tM3hsX19fMllYbkgge1xcbiAgbWF4LXdpZHRoOiAzMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTR4bF9fX2pGSjlWIHtcXG4gIG1heC13aWR0aDogMzZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS01eGxfX183LVZRRyB7XFxuICBtYXgtd2lkdGg6IDQwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNnhsX19fUFMzN0oge1xcbiAgbWF4LXdpZHRoOiA0NHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTd4bF9fX3NTQndrIHtcXG4gIG1heC13aWR0aDogNDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS04eGxfX19WM0lIeSB7XFxuICBtYXgtd2lkdGg6IDUycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tOXhsX19fNFZXRU0ge1xcbiAgbWF4LXdpZHRoOiA1NnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTEweGxfX196OTdUUSB7XFxuICBtYXgtd2lkdGg6IDYwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tMTF4bF9fX2p4ZW5YIHtcXG4gIG1heC13aWR0aDogNjRweDtcXG59XFxuXFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoX19fcW5sWUMge1xcbiAgLyogQXMgd2lkZSBhcyB0aGUgY29udGVudCB3YW50cyB0byBiZSwgc28gaXQgbmV2ZXIgaGFzIHRvIHdyYXAgdG8gZml0IGl0cyBzdXJyb3VuZGluZ3MuICovXFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tZml0X19fMlctVEQge1xcbiAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS16ZXJvX19fOTQyOVMge1xcbiAgbWluLXdpZHRoOiAwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNHhzX19fM1RHTS0ge1xcbiAgbWluLXdpZHRoOiAxcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hzX19fUjZqMzIge1xcbiAgbWluLXdpZHRoOiAycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhzX19fdmpLZEMge1xcbiAgbWluLXdpZHRoOiA0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHNfX19WLUwxcyB7XFxuICBtaW4td2lkdGg6IDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1zX19fZElmWm0ge1xcbiAgbWluLXdpZHRoOiAxMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLW1fX19KSDVJUCB7XFxuICBtaW4td2lkdGg6IDE2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tbF9fX0dna0U4IHtcXG4gIG1pbi13aWR0aDogMjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14bF9fX2FHTHVpIHtcXG4gIG1pbi13aWR0aDogMjRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14eGxfX196UU90VCB7XFxuICBtaW4td2lkdGg6IDI4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hsX19fSmV2RFoge1xcbiAgbWluLXdpZHRoOiAzMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4bF9fXzFlNk4xIHtcXG4gIG1pbi13aWR0aDogMzZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS01eGxfX19LdW10byB7XFxuICBtaW4td2lkdGg6IDQwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNnhsX19fWUVrbTgge1xcbiAgbWluLXdpZHRoOiA0NHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTd4bF9fX3ZYMUZZIHtcXG4gIG1pbi13aWR0aDogNDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS04eGxfX19WYlFoayB7XFxuICBtaW4td2lkdGg6IDUycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOXhsX19fZVVLUWkge1xcbiAgbWluLXdpZHRoOiA1NnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTEweGxfX19ab04zTiB7XFxuICBtaW4td2lkdGg6IDYwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tMTF4bF9fX0JORmpBIHtcXG4gIG1pbi13aWR0aDogNjRweDtcXG59XFxuXFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLWZ1bGxfX18xbXBpeiB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXN0cmV0Y2hfX19ScXcwMCB7XFxuICB3aWR0aDogc3RyZXRjaDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXplcm9fX19JTmRWdiB7XFxuICB3aWR0aDogMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tNHhzX19fZFJVaFcge1xcbiAgd2lkdGg6IDFweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4c19fX29SSjB6IHtcXG4gIHdpZHRoOiAycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS14eHNfX19IeWw5UiB7XFxuICB3aWR0aDogNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0teHNfX19HM2pReiB7XFxuICB3aWR0aDogOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tc19fXy1tenFtIHtcXG4gIHdpZHRoOiAxMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tbV9fX21FWjc3IHtcXG4gIHdpZHRoOiAxNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tbF9fX3F5SU43IHtcXG4gIHdpZHRoOiAyMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0teGxfX19tTzI1SSB7XFxuICB3aWR0aDogMjRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0VHUU1wIHtcXG4gIHdpZHRoOiAyOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tM3hsX19fSHVsNy0ge1xcbiAgd2lkdGg6IDMycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS00eGxfX196T1BiUyB7XFxuICB3aWR0aDogMzZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTV4bF9fX3hicW5pIHtcXG4gIHdpZHRoOiA0MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tNnhsX19fTm1iZjkge1xcbiAgd2lkdGg6IDQ0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS03eGxfX19CMG52dyB7XFxuICB3aWR0aDogNDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTh4bF9fX1cxSERQIHtcXG4gIHdpZHRoOiA1MnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tOXhsX19fS0pMOFUge1xcbiAgd2lkdGg6IDU2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS0xMHhsX19fOTR6MTkge1xcbiAgd2lkdGg6IDYwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS0xMXhsX19fakItTG4ge1xcbiAgd2lkdGg6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibWF4LXdpZHRoLS1mdWxsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tZnVsbF9fX25vSWtUXCIsXCJtYXgtd2lkdGgtLWNvbnRlbnRcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1jb250ZW50X19feWtzVXJcIixcIm1heC13aWR0aC0temVyb1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXplcm9fX184TlVGMVwiLFwibWF4LXdpZHRoLS00eHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eHNfX19nSGxMSVwiLFwibWF4LXdpZHRoLS0zeHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0zeHNfX19yZG9QOFwiLFwibWF4LXdpZHRoLS14eHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14eHNfX19qbHA4dlwiLFwibWF4LXdpZHRoLS14c1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXhzX19fa1FzV3hcIixcIm1heC13aWR0aC0tc1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXNfX19NZ0dhelwiLFwibWF4LXdpZHRoLS1tXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tbV9fX2FGelNjXCIsXCJtYXgtd2lkdGgtLWxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1sX19faUtsYUhcIixcIm1heC13aWR0aC0teGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14bF9fXzR6VWRDXCIsXCJtYXgtd2lkdGgtLXh4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXh4bF9fXzU4ejNQXCIsXCJtYXgtd2lkdGgtLTN4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4bF9fXzJZWG5IXCIsXCJtYXgtd2lkdGgtLTR4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTR4bF9fX2pGSjlWXCIsXCJtYXgtd2lkdGgtLTV4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTV4bF9fXzctVlFHXCIsXCJtYXgtd2lkdGgtLTZ4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTZ4bF9fX1BTMzdKXCIsXCJtYXgtd2lkdGgtLTd4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTd4bF9fX3NTQndrXCIsXCJtYXgtd2lkdGgtLTh4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTh4bF9fX1YzSUh5XCIsXCJtYXgtd2lkdGgtLTl4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTl4bF9fXzRWV0VNXCIsXCJtYXgtd2lkdGgtLTEweGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMHhsX19fejk3VFFcIixcIm1heC13aWR0aC0tMTF4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTExeGxfX19qeGVuWFwiLFwibWluLXdpZHRoXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aF9fX3FubFlDXCIsXCJtaW4td2lkdGgtLWZpdFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWZpdF9fXzJXLVREXCIsXCJtaW4td2lkdGgtLXplcm9cIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS16ZXJvX19fOTQyOVNcIixcIm1pbi13aWR0aC0tNHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNHhzX19fM1RHTS1cIixcIm1pbi13aWR0aC0tM3hzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hzX19fUjZqMzJcIixcIm1pbi13aWR0aC0teHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhzX19fdmpLZENcIixcIm1pbi13aWR0aC0teHNcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14c19fX1YtTDFzXCIsXCJtaW4td2lkdGgtLXNcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1zX19fZElmWm1cIixcIm1pbi13aWR0aC0tbVwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLW1fX19KSDVJUFwiLFwibWluLXdpZHRoLS1sXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tbF9fX0dna0U4XCIsXCJtaW4td2lkdGgtLXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teGxfX19hR0x1aVwiLFwibWluLXdpZHRoLS14eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14eGxfX196UU90VFwiLFwibWluLXdpZHRoLS0zeGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0zeGxfX19KZXZEWlwiLFwibWluLXdpZHRoLS00eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS00eGxfX18xZTZOMVwiLFwibWluLXdpZHRoLS01eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS01eGxfX19LdW10b1wiLFwibWluLXdpZHRoLS02eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS02eGxfX19ZRWttOFwiLFwibWluLXdpZHRoLS03eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS03eGxfX192WDFGWVwiLFwibWluLXdpZHRoLS04eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS04eGxfX19WYlFoa1wiLFwibWluLXdpZHRoLS05eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS05eGxfX19lVUtRaVwiLFwibWluLXdpZHRoLS0xMHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tMTB4bF9fX1pvTjNOXCIsXCJtaW4td2lkdGgtLTExeGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0xMXhsX19fQk5GakFcIixcIndpZHRoLS1mdWxsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1mdWxsX19fMW1waXpcIixcIndpZHRoLS1zdHJldGNoXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1zdHJldGNoX19fUnF3MDBcIixcIndpZHRoLS16ZXJvXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS16ZXJvX19fSU5kVnZcIixcIndpZHRoLS00eHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTR4c19fX2RSVWhXXCIsXCJ3aWR0aC0tM3hzXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS0zeHNfX19vUkowelwiLFwid2lkdGgtLXh4c1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teHhzX19fSHlsOVJcIixcIndpZHRoLS14c1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teHNfX19HM2pRelwiLFwid2lkdGgtLXNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXNfX18tbXpxbVwiLFwid2lkdGgtLW1cIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLW1fX19tRVo3N1wiLFwid2lkdGgtLWxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLWxfX19xeUlON1wiLFwid2lkdGgtLXhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS14bF9fX21PMjVJXCIsXCJ3aWR0aC0teHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS14eGxfX19FR1FNcFwiLFwid2lkdGgtLTN4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tM3hsX19fSHVsNy1cIixcIndpZHRoLS00eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTR4bF9fX3pPUGJTXCIsXCJ3aWR0aC0tNXhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS01eGxfX194YnFuaVwiLFwid2lkdGgtLTZ4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tNnhsX19fTm1iZjlcIixcIndpZHRoLS03eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTd4bF9fX0IwbnZ3XCIsXCJ3aWR0aC0tOHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS04eGxfX19XMUhEUFwiLFwid2lkdGgtLTl4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tOXhsX19fS0pMOFVcIixcIndpZHRoLS0xMHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS0xMHhsX19fOTR6MTlcIixcIndpZHRoLS0xMXhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS0xMXhsX19fakItTG5cIn07IiwgImltcG9ydCAqIGFzIG1vZHVsZTAgZnJvbSAnLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMgZnJvbSAnLi9wbHVnaW5zL2Jsb2NrL2Jsb2NrLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU0IGZyb20gJy4vcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU1IGZyb20gJy4vcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2NvbG9yL2NvbG9yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU3IGZyb20gJy4vcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU4IGZyb20gJy4vcGx1Z2lucy9kaXNwbGF5LWNvbnRlbnRzL2Rpc3BsYXktY29udGVudHMubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2ZhZGVkL2ZhZGVkLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxMiBmcm9tICcuL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxMyBmcm9tICcuL3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNCBmcm9tICcuL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE2IGZyb20gJy4vcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNyBmcm9tICcuL3BsdWdpbnMvZ3JpZC9ncmlkLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxOCBmcm9tICcuL3BsdWdpbnMvaGVpZ2h0L2hlaWdodC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTkgZnJvbSAnLi9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIwIGZyb20gJy4vcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjEgZnJvbSAnLi9wbHVnaW5zL2ludmlzaWJsZS1iYWNrZHJvcC9pbnZpc2libGUtYmFja2Ryb3AubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIyIGZyb20gJy4vcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMyBmcm9tICcuL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHMubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI0IGZyb20gJy4vcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyNSBmcm9tICcuL3BsdWdpbnMvb2Zmc2V0L29mZnNldC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjYgZnJvbSAnLi9wbHVnaW5zL291dGxpbmUvb3V0bGluZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjcgZnJvbSAnLi9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyOCBmcm9tICcuL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyOSBmcm9tICcuL3BsdWdpbnMvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMCBmcm9tICcuL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMxIGZyb20gJy4vcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMyIGZyb20gJy4vcGx1Z2lucy90aW50L3RpbnQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMzIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTM0IGZyb20gJy4vcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTM1IGZyb20gJy4vcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzNiBmcm9tICcuL3BsdWdpbnMvd2lkdGgvd2lkdGgubW9kdWxlLnNjc3MnXG5cbmNvbnN0IG1vZHVsZXMgPSBbbW9kdWxlMCxtb2R1bGUxLG1vZHVsZTIsbW9kdWxlMyxtb2R1bGU0LG1vZHVsZTUsbW9kdWxlNixtb2R1bGU3LG1vZHVsZTgsbW9kdWxlOSxtb2R1bGUxMCxtb2R1bGUxMSxtb2R1bGUxMixtb2R1bGUxMyxtb2R1bGUxNCxtb2R1bGUxNSxtb2R1bGUxNixtb2R1bGUxNyxtb2R1bGUxOCxtb2R1bGUxOSxtb2R1bGUyMCxtb2R1bGUyMSxtb2R1bGUyMixtb2R1bGUyMyxtb2R1bGUyNCxtb2R1bGUyNSxtb2R1bGUyNixtb2R1bGUyNyxtb2R1bGUyOCxtb2R1bGUyOSxtb2R1bGUzMCxtb2R1bGUzMSxtb2R1bGUzMixtb2R1bGUzMyxtb2R1bGUzNCxtb2R1bGUzNSxtb2R1bGUzNl07XG5cbmV4cG9ydCBkZWZhdWx0IG1vZHVsZXM7XG5leHBvcnQgY29uc3QgZmlsZW5hbWVzID0gWydwbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2Jsb2NrL2Jsb2NrLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2NvbG9yL2NvbG9yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9kaXNwbGF5LWNvbnRlbnRzL2Rpc3BsYXktY29udGVudHMubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkLm1vZHVsZS5zY3NzJywncGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzJywncGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2dyYXlzY2FsZS9ncmF5c2NhbGUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2dyaWQvZ3JpZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvaGVpZ2h0L2hlaWdodC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvaGlkZGVuL2hpZGRlbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ludmlzaWJsZS1iYWNrZHJvcC9pbnZpc2libGUtYmFja2Ryb3AubW9kdWxlLnNjc3MnLCdwbHVnaW5zL21hcmdpbi9tYXJnaW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzJywncGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzJywncGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3RyYW5zaXRpb24vdHJhbnNpdGlvbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvd2lkdGgvd2lkdGgubW9kdWxlLnNjc3MnXVxuIiwgImltcG9ydCB0eXBlIHsgVHVwbGUgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuXG4vKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmV4cG9ydCB0eXBlIFRTaGlydFNpemUgPVxuICB8IFwiemVyb1wiXG4gIHwgYCR7UmFuZ2U8MywgND59eHNgXG4gIHwgXCJ4eHNcIlxuICB8IFwieHNcIlxuICB8IFwic1wiXG4gIHwgXCJtXCJcbiAgfCBcImxcIlxuICB8IFwieGxcIlxuICB8IFwieHhsXCJcbiAgfCBgJHtSYW5nZTwzLCAxMT59eGxgO1xuXG5leHBvcnQgdHlwZSBSYW5nZTxTdGFydCBleHRlbmRzIG51bWJlciwgRW5kIGV4dGVuZHMgbnVtYmVyPiA9IFJhbmdlSW1wbDxTdGFydCwgRW5kPjtcbnR5cGUgUmFuZ2VJbXBsPFxuICBTdGFydCBleHRlbmRzIG51bWJlcixcbiAgRW5kIGV4dGVuZHMgbnVtYmVyLFxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQ29uZnVzaW5nVm9pZFR5cGU6IHJlcXVpcmVkIGZvciB0aGUgYnVpbGQgdG8gcGFzc1xuICBUIGV4dGVuZHMgdm9pZFtdID0gVHVwbGU8dm9pZCwgU3RhcnQ+LFxuPiA9IEVuZCBleHRlbmRzIFRbXCJsZW5ndGhcIl0gPyBFbmQgOiBUW1wibGVuZ3RoXCJdIHwgUmFuZ2VJbXBsPFN0YXJ0LCBFbmQsIFt1bmRlZmluZWQsIC4uLlRdPjtcblxuLyogYzggaWdub3JlIGVuZCAqL1xuXG4vKiogVGhlIGJhc2UgdW5pdCAoaW4gcGl4ZWxzKSB0aGUgdC1zaGlydCBzY2FsZSBpcyBidWlsdCBvbi4gTWlycm9ycyBgJHVuaXRgIGluIGBzaXplcy5zY3NzYC4gKi9cbmV4cG9ydCBjb25zdCBzaXplVW5pdEluUGl4ZWxzID0gNDtcblxuLy8gTXVsdGlwbGllciBwZXIgc2l6ZSwgbWlycm9yaW5nIHRoZSBgJHNpemVzYCBtYXAgaW4gYHNpemVzLnNjc3NgLiBLZWVwIHRoZSB0d28gaW4gc3luYy5cbmNvbnN0IHNpemVNdWx0aXBsaWVyczogUmVjb3JkPFRTaGlydFNpemUsIG51bWJlcj4gPSB7XG4gIHplcm86IDAsXG4gIFwiNHhzXCI6IDEgLyA0LFxuICBcIjN4c1wiOiAxIC8gMixcbiAgeHhzOiAxLFxuICB4czogMixcbiAgczogMyxcbiAgbTogNCxcbiAgbDogNSxcbiAgeGw6IDYsXG4gIHh4bDogNyxcbiAgXCIzeGxcIjogOCxcbiAgXCI0eGxcIjogOSxcbiAgXCI1eGxcIjogMTAsXG4gIFwiNnhsXCI6IDExLFxuICBcIjd4bFwiOiAxMixcbiAgXCI4eGxcIjogMTMsXG4gIFwiOXhsXCI6IDE0LFxuICBcIjEweGxcIjogMTUsXG4gIFwiMTF4bFwiOiAxNixcbn07XG5cbi8qKlxuICogVGhlIHBpeGVsIGxlbmd0aCBvZiBhIHQtc2hpcnQgc2l6ZSBcdTIwMTQgdGhlIHNhbWUgdmFsdWUgdGhlIGAkc2l6ZWAvYCR3aWR0aGAvYCRoZWlnaHRgXG4gKiBjbGFzc2VzIHJlc29sdmUgdG8gaW4gQ1NTLiBVc2Ugd2hlbiBhIGxlbmd0aCBpcyBuZWVkZWQgcmF0aGVyIHRoYW4gYSBzaXppbmcgY2xhc3MsXG4gKiBlLmcuIHRvIGRyaXZlIGFuIGljb24gZm9udCdzIGBmb250LXNpemVgLlxuICovXG5leHBvcnQgY29uc3QgdFNoaXJ0U2l6ZUluUGl4ZWxzID0gKHNpemU6IFRTaGlydFNpemUpOiBudW1iZXIgPT4gc2l6ZVVuaXRJblBpeGVscyAqIHNpemVNdWx0aXBsaWVyc1tzaXplXTtcbiIsICIvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmltcG9ydCB7IGdldEVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IGZsZXhQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZsZXgvZmxleFwiO1xuaW1wb3J0IHsgZ3JpZFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZ3JpZC9ncmlkXCI7XG5pbXBvcnQgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgd2lkdGhQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5pbXBvcnQgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmdcIjtcbmltcG9ydCB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgaGVpZ2h0UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9oZWlnaHQvaGVpZ2h0XCI7XG5pbXBvcnQgeyBib3JkZXJQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB7IGZvbnRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuaW1wb3J0IHsgY29sb3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2NvbG9yL2NvbG9yXCI7XG5pbXBvcnQgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvclwiO1xuaW1wb3J0IHsgZ3JhZGllbnRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50XCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGRyYWdnYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlXCI7XG5pbXBvcnQgeyBkcm9wcGFibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZVwiO1xuaW1wb3J0IHsgb2JzZXJ2ZXIgfSBmcm9tIFwibW9ieC1yZWFjdFwiO1xuaW1wb3J0IHsgdG9vbHRpcFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwXCI7XG5pbXBvcnQgeyB0cmFuc2l0aW9uUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb25cIjtcbmltcG9ydCB7IG9mZnNldFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuaW1wb3J0IHsgb2Zmc2V0Q2hpbGRyZW5QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL29mZnNldC1jaGlsZHJlbi9vZmZzZXQtY2hpbGRyZW5cIjtcbmltcG9ydCB7IGhpZGRlblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuaW1wb3J0IHsgbm9Qb2ludGVyRXZlbnRzUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50c1wiO1xuaW1wb3J0IHsgbWFyZ2luUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9tYXJnaW4vbWFyZ2luXCI7XG5pbXBvcnQgeyByZWxhdGl2ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmltcG9ydCB7IGFic29sdXRlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZVwiO1xuaW1wb3J0IHsgdmlzdWFsbHlIaWRkZW5QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcbmltcG9ydCB7IGhvdmVyYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZVwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuaW1wb3J0IHsgYm94U2hhZG93UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3dcIjtcbmltcG9ydCB7IG92ZXJmbG93UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuaW1wb3J0IHsgZmxleENoaWxkUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mbGV4LWNoaWxkL2ZsZXgtY2hpbGRcIjtcbmltcG9ydCB7IGdyYXlzY2FsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuaW1wb3J0IHsgdGludFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdGludC90aW50XCI7XG5pbXBvcnQgeyBmYWRlZFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZmFkZWQvZmFkZWRcIjtcbmltcG9ydCB7IGVuYWJsZWRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZFwiO1xuaW1wb3J0IHsgZm9jdXNhYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlXCI7XG5pbXBvcnQgeyBhcmVhUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hcmVhL2FyZWFcIjtcbmltcG9ydCB7IGFyZWFDb250ZW50UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hcmVhLWNvbnRlbnQvYXJlYS1jb250ZW50XCI7XG5pbXBvcnQgeyBzaXplUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9zaXplL3NpemVcIjtcbmltcG9ydCB7IGN1cnNvclBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuaW1wb3J0IHsgY2xpY2thYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3JlZi9yZWZcIjtcbmltcG9ydCB7IGRpc3BsYXlDb250ZW50c1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzXCI7XG5pbXBvcnQgeyB0ZXh0QWxpZ25QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuaW1wb3J0IHsgYmxvY2tQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5pbXBvcnQgeyBvdXRsaW5lUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vdXRsaW5lL291dGxpbmVcIjtcbmltcG9ydCB7IGludGVyYWN0aXZlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZVwiO1xuaW1wb3J0IHsgcG9wb3ZlclBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvcG9wb3Zlci9wb3BvdmVyXCI7XG5pbXBvcnQgeyBmbG9hdGluZ1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZmxvYXRpbmcvZmxvYXRpbmdcIjtcbmltcG9ydCB7IGludmlzaWJsZUJhY2tkcm9wUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wXCI7XG5pbXBvcnQgeyBvbk91dHNpZGVDbGlja1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5pbXBvcnQgeyBkcm9wRG93bk1lbnVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Ryb3AtZG93bi1tZW51L2Ryb3AtZG93bi1tZW51XCI7XG5pbXBvcnQgeyBhbmNob3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcblxuZXhwb3J0IGNvbnN0IHNoYXJlZFBsdWdpbnMgPSBbXG4gIC8vIENvbnRyaWJ1dGVzIHByb3BzIG9mIGl0cyBvd24sIHNvIGl0IGhhcyB0byBydW4gYmVmb3JlIHRoZSBwbHVnaW5zIHRoYXQgcmVzb2x2ZSB0aGVtLlxuICBhbmNob3JQbHVnaW4sXG4gIHNpemVQbHVnaW4sXG4gIGRyYWdnYWJsZVBsdWdpbixcbiAgdGV4dEFsaWduUGx1Z2luLFxuICBkcm9wcGFibGVQbHVnaW4sXG4gIGFyZWFQbHVnaW4sXG4gIGFyZWFDb250ZW50UGx1Z2luLFxuICBmbGV4UGx1Z2luLFxuICBncmlkUGx1Z2luLFxuICB3aWR0aFBsdWdpbixcbiAgaGVpZ2h0UGx1Z2luLFxuICBmbGV4Q2hpbGRQbHVnaW4sXG4gIG92ZXJmbG93UGx1Z2luLFxuICBwYWRkaW5nUGx1Z2luLFxuICBtYXJnaW5QbHVnaW4sXG4gIGJsb2NrUGx1Z2luLFxuICBib3hTaGFkb3dQbHVnaW4sXG4gIGJvcmRlclBsdWdpbixcbiAgb3V0bGluZVBsdWdpbixcbiAgaW50ZXJhY3RpdmVQbHVnaW4sXG4gIGZvbnRQbHVnaW4sXG4gIGNvbG9yUGx1Z2luLFxuICBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4sXG4gIGdyYWRpZW50UGx1Z2luLFxuICBncmF5c2NhbGVQbHVnaW4sXG4gIHRpbnRQbHVnaW4sXG4gIGZhZGVkUGx1Z2luLFxuICBzdHlsZVBsdWdpbixcbiAgdHJhbnNpdGlvblBsdWdpbixcbiAgb2Zmc2V0UGx1Z2luLFxuICBvZmZzZXRDaGlsZHJlblBsdWdpbixcbiAgaGlkZGVuUGx1Z2luLFxuICBub1BvaW50ZXJFdmVudHNQbHVnaW4sXG4gIGludmlzaWJsZUJhY2tkcm9wUGx1Z2luLFxuICB2aXN1YWxseUhpZGRlblBsdWdpbixcbiAgcmVsYXRpdmVQbHVnaW4sXG4gIGFic29sdXRlUGx1Z2luLFxuICBjdXJzb3JQbHVnaW4sXG4gIGRpc3BsYXlDb250ZW50c1BsdWdpbixcbiAgb25PdXRzaWRlQ2xpY2tQbHVnaW4sXG4gIGNsYXNzTmFtZVBsdWdpbixcbl07XG5cbmNvbnN0IHNoYXJlZENsaWNrYWJsZVBsdWdpbnMgPSBbZHJvcERvd25NZW51UGx1Z2luLCBwb3BvdmVyUGx1Z2luLCBlbmFibGVkUGx1Z2luLCBjbGlja2FibGVQbHVnaW5dO1xuXG5leHBvcnQgY29uc3QgZ2V0U2hhcmVkVHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbXG4gIC4uLmdldFNoYXJlZENoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zPFQ+KCksXG4gIC4uLmdldFNoYXJlZE5vbkNoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zPFQ+KCksXG5dO1xuXG5jb25zdCBnZXRTaGFyZWRDaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2lucyA9IDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4gW3Rvb2x0aXBQbHVnaW48VD4oKSwgZmxvYXRpbmdQbHVnaW48VD4oKV07XG5cbmNvbnN0IGdldFNoYXJlZE5vbkNoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbXG4gIGhvdmVyYWJsZVBsdWdpbjxUPigpLFxuICBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luPFQ+KCksXG4gIGZvY3VzYWJsZVBsdWdpbjxUPigpLFxuICByZWZQbHVnaW48VD4oKSxcbl07XG5cbmV4cG9ydCBjb25zdCBEaXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBEaXY+O1xuXG4vLyBVc2UgZGl2IGFzIG5ldXRyYWwgdGVtcGxhdGUgZm9yIHdoYXQgY29tbW9uIHByb3BzIHNob3VsZCBsb29rIGxpa2VcbmV4cG9ydCBjb25zdCBDb21tb24gPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxhbnk+KCkpKTtcbmV4cG9ydCB0eXBlIENvbW1vblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENvbW1vbj47XG5cbmV4cG9ydCBjb25zdCBTdmcgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwic3ZnXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBTdmdQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBTdmc+O1xuXG5leHBvcnQgY29uc3QgSW5wdXQgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcbiAgICBcImlucHV0XCIsXG4gICAgZW5hYmxlZFBsdWdpbixcbiAgICAuLi5zaGFyZWRQbHVnaW5zLFxuICAgIC4uLmdldFNoYXJlZE5vbkNoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zPEhUTUxJbnB1dEVsZW1lbnQ+KCksXG4gICksXG4pO1xuZXhwb3J0IHR5cGUgSW5wdXRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBJbnB1dD47XG5cbmV4cG9ydCBjb25zdCBUZXh0QXJlYSA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGV4dGFyZWFcIiwgZW5hYmxlZFBsdWdpbiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFRleHRBcmVhUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVGV4dEFyZWE+O1xuXG5leHBvcnQgY29uc3QgRm9ybSA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwiZm9ybVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEZvcm1FbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBGb3JtUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgRm9ybT47XG5cbmV4cG9ydCBjb25zdCBTcGFuID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJzcGFuXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MU3BhbkVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFNwYW5Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBTcGFuPjtcblxuZXhwb3J0IGNvbnN0IENsaWNrYWJsZURpdiA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnNoYXJlZENsaWNrYWJsZVBsdWdpbnMsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgQ2xpY2thYmxlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQ2xpY2thYmxlRGl2PjtcblxuZXhwb3J0IGNvbnN0IEkgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIElQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBJPjtcblxuZXhwb3J0IGNvbnN0IEEgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiYVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEFuY2hvckVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEFQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBBPjtcblxuZXhwb3J0IGNvbnN0IEJ1dHRvbiA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFxuICAgIFwiYnV0dG9uXCIsXG4gICAgLi4uc2hhcmVkQ2xpY2thYmxlUGx1Z2lucyxcbiAgICAuLi5zaGFyZWRQbHVnaW5zLFxuICAgIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MQnV0dG9uRWxlbWVudD4oKSxcbiAgKSxcbik7XG5leHBvcnQgdHlwZSBCdXR0b25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBCdXR0b24+O1xuXG5leHBvcnQgY29uc3QgQ29kZSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJjb2RlXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgQ29kZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENvZGU+O1xuXG5leHBvcnQgY29uc3QgTGFiZWwgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwibGFiZWxcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBMYWJlbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIExhYmVsPjtcblxuZXhwb3J0IGNvbnN0IFByZSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJwcmVcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxQcmVFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBQcmVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBQcmU+O1xuXG5leHBvcnQgY29uc3QgTmF2ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcIm5hdlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIE5hdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIE5hdj47XG5cbmV4cG9ydCBjb25zdCBIMSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoMVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBIMVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEgxPjtcblxuZXhwb3J0IGNvbnN0IEgyID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImgyXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEgyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDI+O1xuXG5leHBvcnQgY29uc3QgSDMgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDNcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDNQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIMz47XG5cbmV4cG9ydCBjb25zdCBINCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoNFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBINFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEg0PjtcblxuZXhwb3J0IGNvbnN0IEg1ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImg1XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEg1UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDU+O1xuXG5leHBvcnQgY29uc3QgSDYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDZcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBINj47XG5cbmV4cG9ydCBjb25zdCBPbCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJvbFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTE9MaXN0RWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgT2xQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBPbD47XG5cbmV4cG9ydCBjb25zdCBVbCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJ1bFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFVMaXN0RWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgVWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBVbD47XG5cbmV4cG9ydCBjb25zdCBMaSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJsaVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTExJRWxlbWVudD4oKSkpO1xuXG5leHBvcnQgY29uc3QgQ2xpY2thYmxlTGkgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImxpXCIsIC4uLnNoYXJlZENsaWNrYWJsZVBsdWdpbnMsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MTElFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBDbGlja2FibGVMaVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENsaWNrYWJsZUxpPjtcbmV4cG9ydCB0eXBlIExpUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTGk+O1xuXG5leHBvcnQgY29uc3QgUCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJwXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MUGFyYWdyYXBoRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgUFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFA+O1xuXG5leHBvcnQgY29uc3QgVGggPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRoXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVDZWxsRWxlbWVudD4oKSksXG4pO1xuXG5leHBvcnQgdHlwZSBUaFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRoPjtcblxuZXhwb3J0IGNvbnN0IFRkID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0ZFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCkpLFxuKTtcblxuZXhwb3J0IHR5cGUgVGRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUZD47XG5cbmV4cG9ydCBjb25zdCBUciA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidHJcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZVJvd0VsZW1lbnQ+KCkpLFxuKTtcblxuZXhwb3J0IHR5cGUgVHJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUcj47XG5cbmV4cG9ydCBjb25zdCBUYWJsZSA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGFibGVcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZUVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFRhYmxlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVGFibGU+O1xuXG5leHBvcnQgY29uc3QgVEJvZHkgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRib2R5XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgVEJvZHlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUQm9keT47XG5cbmV4cG9ydCBjb25zdCBEaWFsb2cgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImRpYWxvZ1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTERpYWxvZ0VsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIERpYWxvZ1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIERpYWxvZz47XG5cbmV4cG9ydCBjb25zdCBDYW52YXMgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImNhbnZhc1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTENhbnZhc0VsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIENhbnZhc1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhbnZhcz47XG5cbmV4cG9ydCBjb25zdCBJbWcgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaW1nXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSW1hZ2VFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBJbWdQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBJbWc+O1xuXG4vKiBjOCBpZ25vcmUgZW5kICovXG4iLCAiaW1wb3J0IGZsZXhTdHlsZXMgZnJvbSBcIi4vZmxleC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIEhvcml6b250YWxGbGV4UHJvcHMgPSB7XG4gIGRpcmVjdGlvbj86IFwiaG9yaXpvbnRhbFwiIHwgXCJob3Jpem9udGFsLXJldmVyc2VkXCI7XG5cbiAgaG9yaXpvbnRhbEFsaWduPzogXCJjZW50ZXJcIiB8IFwic3BhY2UtYmV0d2VlblwiIHwgXCJzcGFjZS1hcm91bmRcIiB8IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuICB2ZXJ0aWNhbEFsaWduPzogXCJjZW50ZXJcIiB8IFwic3RyZXRjaFwiIHwgXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG5leHBvcnQgdHlwZSBWZXJ0aWNhbEZsZXhQcm9wcyA9IHtcbiAgZGlyZWN0aW9uPzogXCJ2ZXJ0aWNhbFwiIHwgXCJ2ZXJ0aWNhbC1yZXZlcnNlZFwiO1xuXG4gIGhvcml6b250YWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInN0cmV0Y2hcIiB8IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuICB2ZXJ0aWNhbEFsaWduPzogXCJjZW50ZXJcIiB8IFwic3BhY2UtYmV0d2VlblwiIHwgXCJzcGFjZS1hcm91bmRcIiB8IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxuZXhwb3J0IHR5cGUgTWF4aW1hbEZsZXhQcm9wcyA9IChIb3Jpem9udGFsRmxleFByb3BzIHwgVmVydGljYWxGbGV4UHJvcHMpICYge1xuICBnYXA/OiBUU2hpcnRTaXplIHwgeyByb3c/OiBUU2hpcnRTaXplOyBjb2x1bW4/OiBUU2hpcnRTaXplIH07XG4gIHdyYXA/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgU2ltcGxlRmxleFByb3AgPSBib29sZWFuO1xuXG5leHBvcnQgdHlwZSBGbGV4UGx1Z2luUHJvcHMgPSB7ICRmbGV4PzogU2ltcGxlRmxleFByb3AgfCBNYXhpbWFsRmxleFByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBmbGV4UGx1Z2luID0gZ2V0UGx1Z2luPEZsZXhQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZmxleCB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkZmxleCkge1xuICAgIHJldHVybiB7XG4gICAgICAkZmxleDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBjb25zdCB7XG4gICAgZGlyZWN0aW9uID0gXCJob3Jpem9udGFsXCIsXG4gICAgdmVydGljYWxBbGlnbiA9IFwiXCIsXG4gICAgaG9yaXpvbnRhbEFsaWduID0gXCJcIixcbiAgICBnYXAgPSB1bmRlZmluZWQsXG4gICAgd3JhcCxcbiAgfSA9ICRmbGV4ID09PSB0cnVlID8ge30gOiAkZmxleDtcblxuICBjb25zdCBob3Jpem9udGFsQWxpZ25Qcm9wcyA9IHtcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWNlbnRlcmBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0YF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcInRvcFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcImJvdHRvbVwiLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUFyb3VuZGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInNwYWNlLWFyb3VuZFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwic3BhY2UtYmV0d2VlblwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlcmBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcImNlbnRlclwiLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRgXV06XG4gICAgICAoZGlyZWN0aW9uID09PSBcImhvcml6b250YWxcIiAmJiBob3Jpem9udGFsQWxpZ24gPT09IFwibGVmdFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsLXJldmVyc2VkXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcInJpZ2h0XCIpLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kYF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcInJpZ2h0XCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcImhvcml6b250YWwtcmV2ZXJzZWRcIiAmJiBob3Jpem9udGFsQWxpZ24gPT09IFwibGVmdFwiKSxcbiAgfTtcblxuICBjb25zdCB2ZXJ0aWNhbEFsaWduUHJvcHMgPSB7XG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUFyb3VuZGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzcGFjZS1hcm91bmRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlbmBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzcGFjZS1iZXR3ZWVuXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlcmBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0YF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwidG9wXCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsLXJldmVyc2VkXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJib3R0b21cIiksXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRgXV06XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJib3R0b21cIikgfHxcbiAgICAgIChkaXJlY3Rpb24gPT09IFwidmVydGljYWwtcmV2ZXJzZWRcIiAmJiB2ZXJ0aWNhbEFsaWduID09PSBcInRvcFwiKSxcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwic3RyZXRjaFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0YF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwibGVmdFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwicmlnaHRcIixcbiAgfTtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIGZsZXhTdHlsZXMuZmxleCxcbiAgICAgIGZsZXhTdHlsZXNbYGZsZXhfX2RpcmVjdGlvbi0tJHtkaXJlY3Rpb259YF0sXG5cbiAgICAgIFtcImhvcml6b250YWxcIiwgXCJob3Jpem9udGFsLXJldmVyc2VkXCJdLmluY2x1ZGVzKGRpcmVjdGlvbikgPyBob3Jpem9udGFsQWxpZ25Qcm9wcyA6IHZlcnRpY2FsQWxpZ25Qcm9wcyxcblxuICAgICAgdHlwZW9mIGdhcCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGZsZXhTdHlsZXNbYGZsZXhfX2dhcC0tJHtnYXB9YF1cbiAgICAgICAgOiBnYXBcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgZ2FwLmNvbHVtbiA/IGZsZXhTdHlsZXNbYGZsZXhfX2dhcC0tY29sdW1uLS0ke2dhcC5jb2x1bW59YF0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGdhcC5yb3cgPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLXJvdy0tJHtnYXAucm93fWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgd3JhcCAmJiBmbGV4U3R5bGVzW2BmbGV4X193cmFwLS13cmFwYF0sXG5cbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgXSxcblxuICAgICRmbGV4OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgZ3JpZFN0eWxlcyBmcm9tIFwiLi9ncmlkLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgR3JpZENvbHVtbnMgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG5cbmV4cG9ydCB0eXBlIEdyaWRQcm9wcyA9IHtcbiAgY29sdW1uczogR3JpZENvbHVtbnM7XG4gIGdhcD86IFRTaGlydFNpemUgfCB7IHJvdz86IFRTaGlydFNpemU7IGNvbHVtbj86IFRTaGlydFNpemUgfTtcbiAgYWxpZ25JdGVtcz86IFwic3RyZXRjaFwiIHwgXCJjZW50ZXJcIiB8IFwic3RhcnRcIiB8IFwiZW5kXCI7XG59O1xuXG5leHBvcnQgdHlwZSBHcmlkUGx1Z2luUHJvcHMgPSB7ICRncmlkPzogR3JpZFByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBncmlkUGx1Z2luID0gZ2V0UGx1Z2luPEdyaWRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZ3JpZCB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkZ3JpZCkge1xuICAgIHJldHVybiB7ICRncmlkOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHsgY29sdW1ucywgZ2FwLCBhbGlnbkl0ZW1zIH0gPSAkZ3JpZDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIGdyaWRTdHlsZXMuZ3JpZCxcbiAgICAgIGdyaWRTdHlsZXNbYGdyaWRfX2NvbHVtbnMtLSR7Y29sdW1uc31gXSxcbiAgICAgIGFsaWduSXRlbXMgPyBncmlkU3R5bGVzW2BncmlkX19hbGlnbkl0ZW1zLS0ke2FsaWduSXRlbXN9YF0gOiB1bmRlZmluZWQsXG5cbiAgICAgIHR5cGVvZiBnYXAgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBncmlkU3R5bGVzW2BncmlkX19nYXAtLSR7Z2FwfWBdXG4gICAgICAgIDogZ2FwXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGdhcC5jb2x1bW4gPyBncmlkU3R5bGVzW2BncmlkX19nYXAtLWNvbHVtbi0tJHtnYXAuY29sdW1ufWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBnYXAucm93ID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS1yb3ctLSR7Z2FwLnJvd31gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcblxuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICBdLFxuXG4gICAgJGdyaWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB3aWR0aFN0eWxlcyBmcm9tIFwiLi93aWR0aC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbi8qKiBBIHNoYXJlIG9mIHRoZSBwYXJlbnQncyB3aWR0aCwgZS5nLiBgXCIzMCVcImAsIGZvciBsYXlvdXRzIHRoYXQgZGl2aWRlIGEgcm93IHJhdGhlciB0aGFuIHNpemUgYSBib3guICovXG5leHBvcnQgdHlwZSBQZXJjZW50YWdlID0gYCR7bnVtYmVyfSVgO1xuXG5leHBvcnQgdHlwZSAkV2lkdGhQcm9wcyA9IHtcbiAgd2lkdGg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcInN0cmV0Y2hcIiB8IFBlcmNlbnRhZ2U7XG4gIG1pbj86IFRTaGlydFNpemUgfCBcImZpdFwiIHwgUGVyY2VudGFnZTtcbiAgbWF4PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJjb250ZW50XCIgfCBQZXJjZW50YWdlO1xufTtcblxuZXhwb3J0IHR5cGUgV2lkdGhQbHVnaW5Qcm9wcyA9IHsgJHdpZHRoPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlIHwgJFdpZHRoUHJvcHMgfTtcblxuY29uc3QgaXNQZXJjZW50YWdlID0gKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBQZXJjZW50YWdlID0+IHZhbHVlPy5lbmRzV2l0aChcIiVcIikgPT09IHRydWU7XG5cbmV4cG9ydCBjb25zdCB3aWR0aFBsdWdpbiA9IGdldFBsdWdpbjxXaWR0aFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHdpZHRoLCAkY2xhc3NOYW1lLCAkc3R5bGUgfSA9IHByb3BzO1xuICBjb25zdCB7IHdpZHRoLCBtaW4sIG1heCB9ID0gdHlwZW9mICR3aWR0aCA9PT0gXCJzdHJpbmdcIiA/IHsgd2lkdGg6ICR3aWR0aCB9IDogKCR3aWR0aCA/PyB7fSk7XG4gIGNvbnN0IHBlcmNlbnRhZ2VzID0ge1xuICAgIC4uLihpc1BlcmNlbnRhZ2Uod2lkdGgpID8geyB3aWR0aCB9IDoge30pLFxuICAgIC4uLihpc1BlcmNlbnRhZ2UobWluKSA/IHsgbWluV2lkdGg6IG1pbiB9IDoge30pLFxuICAgIC4uLihpc1BlcmNlbnRhZ2UobWF4KSA/IHsgbWF4V2lkdGg6IG1heCB9IDoge30pLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgd2lkdGggJiYgIWlzUGVyY2VudGFnZSh3aWR0aCkgPyB3aWR0aFN0eWxlc1tgd2lkdGgtLSR7d2lkdGh9YF0gOiB1bmRlZmluZWQsXG4gICAgICBtaW4gJiYgIWlzUGVyY2VudGFnZShtaW4pID8gd2lkdGhTdHlsZXNbYG1pbi13aWR0aC0tJHttaW59YF0gOiB1bmRlZmluZWQsXG4gICAgICBtYXggJiYgIWlzUGVyY2VudGFnZShtYXgpID8gd2lkdGhTdHlsZXNbYG1heC13aWR0aC0tJHttYXh9YF0gOiB1bmRlZmluZWQsXG4gICAgICAkY2xhc3NOYW1lLFxuICAgIF0sXG4gICAgJHN0eWxlOiBPYmplY3Qua2V5cyhwZXJjZW50YWdlcykubGVuZ3RoID4gMCA/IHsgLi4uJHN0eWxlLCAuLi5wZXJjZW50YWdlcyB9IDogJHN0eWxlLFxuICAgICR3aWR0aDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5cbmV4cG9ydCB0eXBlIFN0eWxlUGx1Z2luUHJvcHMgPSB7ICRzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7IHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcyB9O1xuXG5leHBvcnQgY29uc3Qgc3R5bGVQbHVnaW4gPSBnZXRQbHVnaW48U3R5bGVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIC8qIGM4IGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0ICRzdHlsZSA9IHByb3BzLiRzdHlsZSB8fCB7fTtcblxuICBjb25zdCBzdHlsZSA9IHByb3BzLnN0eWxlIHx8IHt9O1xuXG4gIHJldHVybiB7XG4gICAgc3R5bGU6IHsgLi4uJHN0eWxlLCAuLi5zdHlsZSB9LFxuICAgICRzdHlsZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IGhlaWdodFN0eWxlcyBmcm9tIFwiLi9oZWlnaHQubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IHR5cGUgeyBQZXJjZW50YWdlIH0gZnJvbSBcIi4uL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlICRIZWlnaHRQcm9wcyA9IHtcbiAgaGVpZ2h0PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBcImF1dG9cIiB8IFBlcmNlbnRhZ2U7XG4gIG1pbj86IFRTaGlydFNpemUgfCBQZXJjZW50YWdlO1xuICBtYXg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBQZXJjZW50YWdlO1xufTtcblxuZXhwb3J0IHR5cGUgSGVpZ2h0UGx1Z2luUHJvcHMgPSB7ICRoZWlnaHQ/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcImF1dG9cIiB8IFwic3RyZXRjaFwiIHwgUGVyY2VudGFnZSB8ICRIZWlnaHRQcm9wcyB9O1xuXG5jb25zdCBpc1BlcmNlbnRhZ2UgPSAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZhbHVlIGlzIFBlcmNlbnRhZ2UgPT4gdmFsdWU/LmVuZHNXaXRoKFwiJVwiKSA9PT0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGhlaWdodFBsdWdpbiA9IGdldFBsdWdpbjxIZWlnaHRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRoZWlnaHQsICRzdHlsZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgaGVpZ2h0LCBtaW4sIG1heCB9ID0gdHlwZW9mICRoZWlnaHQgPT09IFwic3RyaW5nXCIgPyB7IGhlaWdodDogJGhlaWdodCB9IDogKCRoZWlnaHQgPz8ge30pO1xuICBjb25zdCBwZXJjZW50YWdlcyA9IHtcbiAgICAuLi4oaXNQZXJjZW50YWdlKGhlaWdodCkgPyB7IGhlaWdodCB9IDoge30pLFxuICAgIC4uLihpc1BlcmNlbnRhZ2UobWluKSA/IHsgbWluSGVpZ2h0OiBtaW4gfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1heCkgPyB7IG1heEhlaWdodDogbWF4IH0gOiB7fSksXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBoZWlnaHQgJiYgIWlzUGVyY2VudGFnZShoZWlnaHQpID8gaGVpZ2h0U3R5bGVzW2BoZWlnaHQtLSR7aGVpZ2h0fWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWluICYmICFpc1BlcmNlbnRhZ2UobWluKSA/IGhlaWdodFN0eWxlc1tgbWluLWhlaWdodC0tJHttaW59YF0gOiB1bmRlZmluZWQsXG4gICAgICBtYXggJiYgIWlzUGVyY2VudGFnZShtYXgpID8gaGVpZ2h0U3R5bGVzW2BtYXgtaGVpZ2h0LS0ke21heH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgXSxcbiAgICAkc3R5bGU6IE9iamVjdC5rZXlzKHBlcmNlbnRhZ2VzKS5sZW5ndGggPiAwID8geyAuLi4kc3R5bGUsIC4uLnBlcmNlbnRhZ2VzIH0gOiAkc3R5bGUsXG4gICAgJGhlaWdodDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBjb2xvclN0eWxlcyBmcm9tIFwiLi9jb2xvci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gXCIuLi9fc2hhcmVkL2NvbG9yc1wiO1xuXG5leHBvcnQgdHlwZSBUZXh0Q29sb3IgPSBDb2xvciB8IFRleHRDb2xvckFsaWFzO1xuXG5leHBvcnQgdHlwZSAkQ29sb3JQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbm9ybWFsPzogVGV4dENvbG9yO1xuICByZWFkb25seSBob3Zlcj86IFRleHRDb2xvcjtcbiAgcmVhZG9ubHkgZm9jdXM/OiBUZXh0Q29sb3I7XG4gIHJlYWRvbmx5IGRpc2FibGVkPzogVGV4dENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sb3JQbHVnaW5Qcm9wcyA9IHsgcmVhZG9ubHkgJGNvbG9yPzogVGV4dENvbG9yIHwgJENvbG9yUHJvcHMgfTtcbmV4cG9ydCB0eXBlIFRleHRDb2xvckFsaWFzID0ga2V5b2YgdHlwZW9mIGFsaWFzVG9Ob21pbmFsO1xuXG5jb25zdCBhbGlhc1RvTm9taW5hbCA9IHtcbiAgdGV4dE11dGVkOiBcImdyZXkyNVwiLFxuICB0ZXh0RGVmYXVsdDogXCJncmV5MjBcIixcbiAgdGV4dEhpZ2hsaWdodDogXCJncmV5MTBcIixcbn0gYXMgY29uc3Q7XG5cbmNvbnN0IGlzVGV4dENvbG9yQWxpYXMgPSAoY29sb3I6IFRleHRDb2xvcik6IGNvbG9yIGlzIFRleHRDb2xvckFsaWFzID0+IGNvbG9yIGluIGFsaWFzVG9Ob21pbmFsO1xuXG5leHBvcnQgY29uc3QgY29sb3JQbHVnaW4gPSBnZXRQbHVnaW48Q29sb3JQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkY2xhc3NOYW1lLCAkY29sb3IgfSA9IHByb3BzO1xuICBjb25zdCB7IG5vcm1hbCwgaG92ZXIsIGZvY3VzLCBkaXNhYmxlZCB9ID0gdHlwZW9mICRjb2xvciA9PT0gXCJzdHJpbmdcIiA/IHsgbm9ybWFsOiAkY29sb3IgfSA6ICgkY29sb3IgPz8ge30pO1xuXG4gIGNvbnN0IG5vcm1hbENvbG9yID0gbm9ybWFsID8gKGlzVGV4dENvbG9yQWxpYXMobm9ybWFsKSA/IGFsaWFzVG9Ob21pbmFsW25vcm1hbF0gOiBub3JtYWwpIDogdW5kZWZpbmVkO1xuICBjb25zdCBob3ZlckNvbG9yID0gaG92ZXIgPyAoaXNUZXh0Q29sb3JBbGlhcyhob3ZlcikgPyBhbGlhc1RvTm9taW5hbFtob3Zlcl0gOiBob3ZlcikgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGZvY3VzQ29sb3IgPSBmb2N1cyA/IChpc1RleHRDb2xvckFsaWFzKGZvY3VzKSA/IGFsaWFzVG9Ob21pbmFsW2ZvY3VzXSA6IGZvY3VzKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZGlzYWJsZWRDb2xvciA9IGRpc2FibGVkID8gKGlzVGV4dENvbG9yQWxpYXMoZGlzYWJsZWQpID8gYWxpYXNUb05vbWluYWxbZGlzYWJsZWRdIDogZGlzYWJsZWQpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgJGNsYXNzTmFtZSxcbiAgICAgIG5vcm1hbENvbG9yID8gY29sb3JTdHlsZXNbYGNvbG9yLS0ke25vcm1hbENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgICAgaG92ZXJDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci1ob3Zlci0tJHtob3ZlckNvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgICAgZm9jdXNDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci1mb2N1cy0tJHtmb2N1c0NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgICAgZGlzYWJsZWRDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci1kaXNhYmxlZC0tJHtkaXNhYmxlZENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJGNvbG9yOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGdyYWRpZW50U3R5bGVzIGZyb20gXCIuL2dyYWRpZW50Lm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIEdyYWRpZW50UGx1Z2luUHJvcHMgPSB7ICRncmFkaWVudD86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IGdyYWRpZW50UGx1Z2luID0gZ2V0UGx1Z2luPEdyYWRpZW50UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgcHJvcHMuJGdyYWRpZW50ID8gZ3JhZGllbnRTdHlsZXMuZ3JhZGllbnQgOiB1bmRlZmluZWRdLFxuICAkZ3JhZGllbnQ6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9nZXQtZHJhZ2dhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB7IGFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSB9IGZyb20gXCIuL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IGRyYWdnYWJsZVBsdWdpbiA9IGdldFBsdWdpbjxEcmFnZ2FibGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kZHJhZ2dhYmxlKSB7XG4gICAgcmV0dXJuIHsgJGRyYWdnYWJsZTogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCBbZHJhZ2dpbmcsIHNldERyYWdnaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IGNvbnRleHQsIGl0ZW0gfSA9IHByb3BzLiRkcmFnZ2FibGU7XG5cbiAgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZSA9IHVzZVN5bmNJbmplY3QoZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiB7XG4gICAgZHJhZ2dhYmxlOiB0cnVlLFxuXG4gICAgJHZpc3VhbGx5SGlkZGVuOiBkcmFnZ2luZyxcblxuICAgIG9uRHJhZ1N0YXJ0OiBhY3Rpb24oKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9IFwibW92ZVwiO1xuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyYWdTdGFydD8uKGV2ZW50KTtcblxuICAgICAgbWFrZUNocm9taXVtTm90R2xpdGNoV2hlbkRyYWdnaW5nKGV2ZW50KTtcblxuICAgICAgZHJhZ2dlZEl0ZW1TdGF0ZS5zZXQoaXRlbSk7XG5cbiAgICAgIC8vIERvbid0IHNldCBkcmFnZ2luZyB0b28gZWFybHksIGJlY2F1c2UgaXQgd291bGQgaGlkZSB0aGUgXCJkcmFnIHByZXZpZXdcIiBmb3IgZWxlbWVudCBiZWluZyBkcmFnZ2VkLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldERyYWdnaW5nKHRydWUpO1xuICAgICAgfSwgMCk7XG4gICAgfSksXG5cbiAgICBvbkRyYWdFbmQ6IGFjdGlvbigoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHByb3BzLm9uRHJhZ0VuZD8uKGV2ZW50KTtcblxuICAgICAgZHJhZ2dlZEl0ZW1TdGF0ZS5zZXQodW5kZWZpbmVkKTtcbiAgICAgIHNldERyYWdnaW5nKGZhbHNlKTtcbiAgICB9KSxcblxuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBzdHlsZXMuZHJhZ2dhYmxlXSxcblxuICAgICRkcmFnZ2FibGU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBtYWtlQ2hyb21pdW1Ob3RHbGl0Y2hXaGVuRHJhZ2dpbmcgPSAoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoXCJ0ZXh0L3BsYWluXCIsIFwic3R1Yi1kYXRhLXRvLWZpeC1jaHJvbWl1bVwiKTtcbn07XG4iLCAiaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgbWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlIH0gZnJvbSBcIi4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBEcm9wcGFibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuXG5leHBvcnQgY29uc3QgZHJvcHBhYmxlUGx1Z2luID0gZ2V0UGx1Z2luPERyb3BwYWJsZVBsdWdpblByb3BzPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kZHJvcHBhYmxlKSB7XG4gICAgcmV0dXJuIHsgJGRyb3BwYWJsZTogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB7IGNvbnRleHQsIG9uRHJvcCB9ID0gcHJvcHMuJGRyb3BwYWJsZTtcblxuICBjb25zdCBkcmFnZ2VkSXRlbVN0YXRlID0gdXNlU3luY0luamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSwgY29udGV4dCk7XG4gIGNvbnN0IHNvbWUgPSB1c2VTeW5jSW5qZWN0KG1ha2VTdXJlRHJhZ0FuZERyb3BFdmVudHNIYXZlVGltZVRvSGFwcGVuSW5qZWN0YWJsZSk7XG5cbiAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBkcmFnZ2VkSXRlbVN0YXRlLmdldCgpO1xuXG4gIHJldHVybiB7XG4gICAgb25EcmFnT3ZlcjogKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyYWdPdmVyPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoZHJhZ2dlZEl0ZW0pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgb25Ecm9wOiAoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHByb3BzLm9uRHJvcD8uKGV2ZW50KTtcblxuICAgICAgaWYgKGRyYWdnZWRJdGVtKSB7XG4gICAgICAgIHNvbWUoKCkgPT4ge1xuICAgICAgICAgIG9uRHJvcChkcmFnZ2VkSXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICAkZHJvcHBhYmxlOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHRyYW5zaXRpb25TdHlsZXMgZnJvbSBcIi4vdHJhbnNpdGlvbi5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBUcmFuc2l0aW9uUGx1Z2luUHJvcHMgPSB7ICR0cmFuc2l0aW9uPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgdHJhbnNpdGlvblBsdWdpbiA9IGdldFBsdWdpbjxUcmFuc2l0aW9uUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgeyBbdHJhbnNpdGlvblN0eWxlcy50cmFuc2l0aW9uXTogISFwcm9wcy4kdHJhbnNpdGlvbiB9XSxcbiAgJHRyYW5zaXRpb246IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG9mZnNldFN0eWxlcyBmcm9tIFwiLi9vZmZzZXQubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9uIH0gZnJvbSBcIi4uL19zaGFyZWQvZGlyZWN0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgT2Zmc2V0UGx1Z2luUHJvcHMgPSB7ICRvZmZzZXQ/OiB7IGRpcmVjdGlvbjogRGlyZWN0aW9uOyBzaXplOiBUU2hpcnRTaXplIH0gfTtcblxuZXhwb3J0IGNvbnN0IG9mZnNldFBsdWdpbiA9IGdldFBsdWdpbjxPZmZzZXRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kb2Zmc2V0KSB7XG4gICAgcmV0dXJuIHsgJG9mZnNldDogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBvZmZzZXRTdHlsZXNbYG9mZnNldF9fJHtwcm9wcy4kb2Zmc2V0LmRpcmVjdGlvbn0tLSR7cHJvcHMuJG9mZnNldC5zaXplfWBdXSxcblxuICAgICRvZmZzZXQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgb2Zmc2V0U3R5bGVzIGZyb20gXCIuL29mZnNldC1jaGlsZHJlbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3Rpb24gfSBmcm9tIFwiLi4vX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzID0geyAkb2Zmc2V0Q2hpbGRyZW4/OiB7IGRpcmVjdGlvbjogRGlyZWN0aW9uOyBzaXplOiBUU2hpcnRTaXplIH0gfTtcblxuZXhwb3J0IGNvbnN0IG9mZnNldENoaWxkcmVuUGx1Z2luID0gZ2V0UGx1Z2luPE9mZnNldENoaWxkcmVuUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJG9mZnNldENoaWxkcmVuKSB7XG4gICAgcmV0dXJuIHsgJG9mZnNldENoaWxkcmVuOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIG9mZnNldFN0eWxlc1tgb2Zmc2V0LWNoaWxkcmVuX18ke3Byb3BzLiRvZmZzZXRDaGlsZHJlbi5kaXJlY3Rpb259LS0ke3Byb3BzLiRvZmZzZXRDaGlsZHJlbi5zaXplfWBdLFxuICAgIF0sXG5cbiAgICAkb2Zmc2V0Q2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgaGlkZGVuU3R5bGVzIGZyb20gXCIuL2hpZGRlbi5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBIaWRkZW5QbHVnaW5Qcm9wcyA9IHsgJGhpZGRlbj86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IGhpZGRlblBsdWdpbiA9IGdldFBsdWdpbjxIaWRkZW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFtoaWRkZW5TdHlsZXMuaGlkZGVuXTogISFwcm9wcy4kaGlkZGVuIH1dLFxuXG4gICRoaWRkZW46IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG1hcmdpblN0eWxlcyBmcm9tIFwiLi9tYXJnaW4ubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcImxvZGFzaC9mcFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgRGlyZWN0aW9uYWxNYXJnaW4gPSB7XG4gIHRvcD86IFRTaGlydFNpemU7XG4gIGJvdHRvbT86IFRTaGlydFNpemU7XG4gIGxlZnQ/OiBUU2hpcnRTaXplO1xuICByaWdodD86IFRTaGlydFNpemU7XG4gIGhvcml6b250YWw/OiBUU2hpcnRTaXplO1xuICB2ZXJ0aWNhbD86IFRTaGlydFNpemU7XG59O1xuXG5leHBvcnQgdHlwZSBNYXJnaW5QbHVnaW5Qcm9wcyA9IHsgJG1hcmdpbj86IGJvb2xlYW4gfCBEaXJlY3Rpb25hbE1hcmdpbiB8IFRTaGlydFNpemUgfCBcImF1dG9cIiB9O1xuXG5leHBvcnQgY29uc3QgbWFyZ2luUGx1Z2luID0gZ2V0UGx1Z2luPE1hcmdpblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRtYXJnaW4pIHtcbiAgICByZXR1cm4geyAkbWFyZ2luOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IG1hcmdpbiA9IHByb3BzLiRtYXJnaW4gPT09IHRydWUgPyBcInhzXCIgOiBwcm9wcy4kbWFyZ2luO1xuXG4gIGlmIChpc1N0cmluZyhtYXJnaW4pKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBtYXJnaW5TdHlsZXNbYG1hcmdpbi0tJHttYXJnaW59YF1dLFxuICAgICAgJG1hcmdpbjogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBjb25zdCB0b3BTaXplID0gbWFyZ2luLnRvcCB8fCBtYXJnaW4udmVydGljYWw7XG4gIGNvbnN0IGJvdHRvbVNpemUgPSBtYXJnaW4uYm90dG9tIHx8IG1hcmdpbi52ZXJ0aWNhbDtcbiAgY29uc3QgcmlnaHRTaXplID0gbWFyZ2luLnJpZ2h0IHx8IG1hcmdpbi5ob3Jpem9udGFsO1xuICBjb25zdCBsZWZ0U2l6ZSA9IG1hcmdpbi5sZWZ0IHx8IG1hcmdpbi5ob3Jpem9udGFsO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIHRvcFNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fdG9wLS0ke3RvcFNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgICByaWdodFNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fcmlnaHQtLSR7cmlnaHRTaXplfWBdIDogdW5kZWZpbmVkLFxuICAgICAgYm90dG9tU2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX19ib3R0b20tLSR7Ym90dG9tU2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGxlZnRTaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX2xlZnQtLSR7bGVmdFNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgXSxcbiAgICAkbWFyZ2luOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHZpc3VhbGx5SGlkZGVuU3R5bGVzIGZyb20gXCIuL3Zpc3VhbGx5LWhpZGRlbi5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBWaXN1YWxseUhpZGRlblBsdWdpblByb3BzID0geyAkdmlzdWFsbHlIaWRkZW4/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCB2aXN1YWxseUhpZGRlblBsdWdpbiA9IGdldFBsdWdpbjxWaXN1YWxseUhpZGRlblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHsgW3Zpc3VhbGx5SGlkZGVuU3R5bGVzW1widmlzdWFsbHktaGlkZGVuXCJdXTogISFwcm9wcy4kdmlzdWFsbHlIaWRkZW4gfV0sXG5cbiAgJHZpc3VhbGx5SGlkZGVuOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBvdmVyZmxvd1N0eWxlcyBmcm9tIFwiLi9vdmVyZmxvdy5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBPdmVyZmxvdyA9IFwiaGlkZGVuXCIgfCBcInNjcm9sbFwiIHwgXCJhdXRvXCIgfCBcInZpc2libGVcIjtcblxuZXhwb3J0IHR5cGUgT3ZlcmZsb3dQbHVnaW5Qcm9wcyA9IHsgJG92ZXJmbG93PzogT3ZlcmZsb3cgfCB7IHg/OiBPdmVyZmxvdzsgeT86IE92ZXJmbG93OyBoaWRlU2Nyb2xsYmFyPzogYm9vbGVhbiB9IH07XG5cbmV4cG9ydCBjb25zdCBvdmVyZmxvd1BsdWdpbiA9IGdldFBsdWdpbjxPdmVyZmxvd1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCAkb3ZlcmZsb3cgPSBwcm9wcy4kb3ZlcmZsb3c7XG5cbiAgaWYgKCEkb3ZlcmZsb3cpIHtcbiAgICByZXR1cm4geyAkb3ZlcmZsb3c6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgeCA9IHR5cGVvZiAkb3ZlcmZsb3cgPT09IFwic3RyaW5nXCIgPyAkb3ZlcmZsb3cgOiAkb3ZlcmZsb3cueDtcbiAgY29uc3QgeSA9IHR5cGVvZiAkb3ZlcmZsb3cgPT09IFwic3RyaW5nXCIgPyAkb3ZlcmZsb3cgOiAkb3ZlcmZsb3cueTtcbiAgY29uc3QgaGlkZVNjcm9sbGJhciA9IHR5cGVvZiAkb3ZlcmZsb3cgPT09IFwic3RyaW5nXCIgPyBmYWxzZSA6ICRvdmVyZmxvdy5oaWRlU2Nyb2xsYmFyO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcblxuICAgICAgeCA/IG92ZXJmbG93U3R5bGVzW2BvdmVyZmxvd19feC0tJHt4fWBdIDogdW5kZWZpbmVkLFxuICAgICAgeSA/IG92ZXJmbG93U3R5bGVzW2BvdmVyZmxvd19feS0tJHt5fWBdIDogdW5kZWZpbmVkLFxuICAgICAgeyBbb3ZlcmZsb3dTdHlsZXNbXCJvdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJcIl1dOiBoaWRlU2Nyb2xsYmFyIH0sXG4gICAgXSxcblxuICAgICRvdmVyZmxvdzogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IGZsZXhDaGlsZFN0eWxlcyBmcm9tIFwiLi9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi4vc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG4vKipcbiAqIC0gYHRydWVgOiBzaGFyZSB0aGUgcGFyZW50J3MgcmVtYWluaW5nIHNwYWNlIGVxdWFsbHkgKGBmbGV4OiAxIDEgMGApLlxuICogLSBgXCJzaHJpbmthYmxlXCJgOiBhZGRpdGlvbmFsbHkgcmVtb3ZlIHRoZSBpdGVtJ3MgaW1wbGljaXQgY29udGVudC1zaXplZFxuICogICBtaW5pbXVtIChgbWluLWhlaWdodDogYXV0b2AgLyBgbWluLXdpZHRoOiBhdXRvYCksIHNvIGl0IGNhbiBhY3R1YWxseSBiZVxuICogICBzaXplZCB0byB0aGUgcmVtYWluaW5nIHNwYWNlIGluIGEgY29uc3RyYWluZWQgbGF5b3V0IFx1MjAxNCByZXF1aXJlZCBmb3IgYVxuICogICBkZXNjZW5kYW50IHRvIHNjcm9sbCBpbnRlcm5hbGx5IGluc3RlYWQgb2YgaW5mbGF0aW5nIGV2ZXJ5IGFuY2VzdG9yLlxuICogLSBhIG51bWJlcjogbGlrZSBgXCJzaHJpbmthYmxlXCJgLCBidXQgdGFraW5nIHRoYXQgbWFueSBzaGFyZXMgb2YgdGhlXG4gKiAgIHJlbWFpbmluZyBzcGFjZSBpbnN0ZWFkIG9mIG9uZSAoYGZsZXgtZ3Jvd2ApLCBmb3Igd2VpZ2h0ZWQgc3BsaXRzIGJldHdlZW5cbiAqICAgc2libGluZ3MuXG4gKiAtIGBcImZpeGVkXCJgOiB0aGUgb3Bwb3NpdGUgXHUyMDE0IGtlZXAgdGhlIGl0ZW0ncyBvd24gc2l6ZSAoYGZsZXgtc2hyaW5rOiAwYCksXG4gKiAgIG9wdGluZyBvdXQgb2YgdGhlIHNocmluayBuZWdvdGlhdGlvbiBlbnRpcmVseSAoZS5nLiBhIGNvbnRlbnQtaHVnZ2luZ1xuICogICBwYW5lbCBuZXh0IHRvIGEgZmlsbGluZyBvbmUpLlxuICovXG5leHBvcnQgdHlwZSBGbGV4Q2hpbGRQbHVnaW5Qcm9wcyA9IHsgJGZsZXhDaGlsZD86IGJvb2xlYW4gfCBudW1iZXIgfCBcInNocmlua2FibGVcIiB8IFwiZml4ZWRcIiB9O1xuXG5leHBvcnQgY29uc3QgZmxleENoaWxkUGx1Z2luID0gZ2V0UGx1Z2luPEZsZXhDaGlsZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oXG4gIChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHdlaWdodCA9IHR5cGVvZiBwcm9wcy4kZmxleENoaWxkID09PSBcIm51bWJlclwiID8gcHJvcHMuJGZsZXhDaGlsZCA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzaHJpbmthYmxlID0gcHJvcHMuJGZsZXhDaGlsZCA9PT0gXCJzaHJpbmthYmxlXCIgfHwgd2VpZ2h0ICE9PSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGNsYXNzTmFtZTogW1xuICAgICAgICBwcm9wcy4kZmxleENoaWxkID09PSB0cnVlIHx8IHNocmlua2FibGUgPyBmbGV4Q2hpbGRTdHlsZXNbXCJmbGV4LWNoaWxkXCJdIDogdW5kZWZpbmVkLFxuICAgICAgICBzaHJpbmthYmxlID8gZmxleENoaWxkU3R5bGVzW1wiZmxleC1jaGlsZC0tc2hyaW5rYWJsZVwiXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJvcHMuJGZsZXhDaGlsZCA9PT0gXCJmaXhlZFwiID8gZmxleENoaWxkU3R5bGVzW1wiZmxleC1jaGlsZC0tZml4ZWRcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgICBdLFxuICAgICAgJHN0eWxlOiB3ZWlnaHQgPT09IHVuZGVmaW5lZCA/IHByb3BzLiRzdHlsZSA6IHsgLi4ucHJvcHMuJHN0eWxlLCBmbGV4R3Jvdzogd2VpZ2h0IH0sXG4gICAgICAkZmxleENoaWxkOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSxcbik7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBncmF5c2NhbGVTdHlsZXMgZnJvbSBcIi4vZ3JheXNjYWxlLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIEdyYXlzY2FsZVBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogRnVsbHkgZGVzYXR1cmF0ZXMgdGhlIGVsZW1lbnQgKGBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKWApIHdoZW4gYHRydWVgIFx1MjAxNCBzb1xuICAgKiBldmVuIGZpeGVkLWNvbG91ciBjb250ZW50IChlLmcuIGJyYW5kIGxvZ29zKSBncmV5cyBvdXQsIG5vdCBqdXN0IHRoZW1lZFxuICAgKiBjb2xvdXJzLiBDb21iaW5lIHdpdGggYCRmYWRlZGAgdG8gZGUtZW1waGFzaXNlIGFuIHVuYXZhaWxhYmxlIGl0ZW0uXG4gICAqL1xuICAkZ3JheXNjYWxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBncmF5c2NhbGVQbHVnaW4gPSBnZXRQbHVnaW48R3JheXNjYWxlUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgcHJvcHMuJGdyYXlzY2FsZSA/IGdyYXlzY2FsZVN0eWxlcy5ncmF5c2NhbGUgOiB1bmRlZmluZWRdLFxuICAkZ3JheXNjYWxlOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHRpbnRTdHlsZXMgZnJvbSBcIi4vdGludC5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBUaW50UGx1Z2luUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGVsZW1lbnQncyAoYW5kIGl0cyBkZXNjZW5kYW50cycpIFNWRyBgZmlsbGAgdG8gdGhpcyBjb2xvdXIsIHZpYSBhIENTUyBjdXN0b21cbiAgICogcHJvcGVydHkgXHUyMDE0IGBzdHJva2VgIGlzIGxlZnQgdW50b3VjaGVkLCBzbyBzdHJva2VkIGRldGFpbHMgc3Vydml2ZS4gVW5saWtlIGAkZ3JheXNjYWxlYCAod2hpY2ggb25seVxuICAgKiBkZXNhdHVyYXRlcykgdGhpcyBwYWludHMgdGhlIHNoYXBlIGFuIGV4YWN0IGZsYXQgY29sb3VyIHdoaWxlIHJlc3BlY3RpbmcgdHJhbnNwYXJlbmN5LCBzbyBhXG4gICAqIGZpeGVkLWNvbG91ciBicmFuZCBtYXJrIGNhbiBiZSB0aW50ZWQgKGUuZy4gYW4gQUktdG9vbCBsb2dvIHRpbnRlZCB0byB0aGUgY2x1c3RlciBjb2xvdXIpLiBMZWF2ZVxuICAgKiB1bnNldCB0byByZW5kZXIgdGhlIGVsZW1lbnQncyBuYXR1cmFsIGNvbG91cnMuXG4gICAqL1xuICAkdGludD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCB0aW50UGx1Z2luID0gZ2V0UGx1Z2luPFRpbnRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiR0aW50ID8gdGludFN0eWxlcy50aW50IDogdW5kZWZpbmVkXSxcbiAgLy8gVGhlIHRpbnQgY29sb3VyIGlzIGV4cG9zZWQgYXMgYSBjdXN0b20gcHJvcGVydHkgdGhlIGAudGludGAgY2xhc3MgcmVhZHMgKGBmaWxsOiB2YXIoLS1lbGVtZW50LXRpbnQpYCkuXG4gICRzdHlsZTogcHJvcHMuJHRpbnQgPyAoeyAuLi5wcm9wcy4kc3R5bGUsIFwiLS1lbGVtZW50LXRpbnRcIjogcHJvcHMuJHRpbnQgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzKSA6IHByb3BzLiRzdHlsZSxcbiAgJHRpbnQ6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGZhZGVkU3R5bGVzIGZyb20gXCIuL2ZhZGVkLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIEZhZGVkUGx1Z2luUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBGYWRlcyB0aGUgZWxlbWVudCAoYG9wYWNpdHk6IDUwJWApIHdoZW4gYHRydWVgLiBDb21iaW5lIHdpdGggYCRncmF5c2NhbGVgXG4gICAqIHRvIGRlLWVtcGhhc2lzZSBhbiB1bmF2YWlsYWJsZSBpdGVtLlxuICAgKi9cbiAgJGZhZGVkPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBmYWRlZFBsdWdpbiA9IGdldFBsdWdpbjxGYWRlZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiRmYWRlZCA/IGZhZGVkU3R5bGVzLmZhZGVkIDogdW5kZWZpbmVkXSxcbiAgJGZhZGVkOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHVzZVVwZGF0ZVdoZW5Qcm9wc0NoYW5nZSB9IGZyb20gXCIuL19wcml2YXRlL3VzZS11cGRhdGUtd2hlbi1wcm9wcy1jaGFuZ2VcIjtcbmltcG9ydCB7IHVzZUNsZWFudXBPblVubW91bnQgfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2UtY2xlYW51cC1vbi11bm1vdW50XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB7IHVzZUtleWJvYXJkTmF2aWdhdGlvbiB9IGZyb20gXCIuL19wcml2YXRlL3VzZS1rZXlib2FyZC1uYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBoYW5kbGVGb2N1c0ZvciB9IGZyb20gXCIuL19wcml2YXRlL2hhbmRsZS1mb2N1c1wiO1xuaW1wb3J0IHsgaGFuZGxlQmx1ckZvciB9IGZyb20gXCIuL19wcml2YXRlL2hhbmRsZS1ibHVyXCI7XG5pbXBvcnQgeyB1c2VQcm9ncmFtbWF0aWNGb2N1c2luZyB9IGZyb20gXCIuL19wcml2YXRlL3VzZS1wcm9ncmFtbWF0aWMtZm9jdXNpbmdcIjtcbmltcG9ydCB0eXBlIHsgcmVmUGx1Z2luIH0gZnJvbSBcIi4uL3JlZi9yZWZcIjtcblxuZXhwb3J0IHR5cGUgRm9jdXNhYmxlUGx1Z2luUHJvcHM8VCwgRm9jdXNlZEl0ZW0gPSBhbnk+ID0ge1xuICAkZm9jdXNhYmxlPzoge1xuICAgIGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+O1xuICAgIGl0ZW06IEZvY3VzZWRJdGVtO1xuICAgIG9yZGVyTnVtYmVyPzogbnVtYmVyO1xuICB9O1xuXG4gIG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxUPjtcbiAgb25CbHVyPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8VD47XG4gIG9uS2V5RG93bj86IFJlYWN0LktleWJvYXJkRXZlbnRIYW5kbGVyPFQ+O1xuICB0YWJJbmRleD86IEhUTUxFbGVtZW50W1widGFiSW5kZXhcIl07XG59O1xuXG50eXBlIEZvY3VzYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgZm9jdXNhYmxlOiB7XG4gICAgY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxhbnk+O1xuICAgIGl0ZW06IGFueTtcbiAgICBvcmRlck51bWJlcj86IG51bWJlcjtcbiAgfTtcbiAgcmVhZG9ubHkgdGFiSW5kZXg6IG51bWJlcjtcbiAgcmVhZG9ubHkgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPGFueT47XG4gIHJlYWRvbmx5IG9uQmx1cj86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPGFueT47XG4gIHJlYWRvbmx5IG9uS2V5RG93bj86IFJlYWN0LktleWJvYXJkRXZlbnRIYW5kbGVyPGFueT47XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRm9jdXNhYmxlV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGZvY3VzYWJsZSxcbiAgdGFiSW5kZXgsXG4gIG9uRm9jdXMsXG4gIG9uQmx1cixcbiAgb25LZXlEb3duLFxuICBjb250cmlidXRlUmVmLFxuICBjb250cmlidXRlUHJvcHMsXG4gIGNoaWxkcmVuLFxufTogRm9jdXNhYmxlV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGV4dDogZm9jdXNhYmxlQ29udGV4dCwgaXRlbTogZm9jdXNhYmxlSXRlbSwgb3JkZXJOdW1iZXIgfSA9IGZvY3VzYWJsZTtcblxuICBjb25zdCBbZWxlbWVudCwgc2V0RWxlbWVudF0gPSB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb250cmlidXRlUmVmKHNldEVsZW1lbnQpO1xuXG4gIGNvbnN0IGh0bWxFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50Pih1bmRlZmluZWQpO1xuICBodG1sRWxlbWVudFJlZi5jdXJyZW50ID0gKGVsZW1lbnQgPz8gdW5kZWZpbmVkKSBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdCBodG1sRWxlbWVudElzRm9jdXNlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IG9sZFN0YXRlUmVmID0gdXNlUmVmPElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3Qgc3RhdGUgPSB1c2VTeW5jSW5qZWN0KGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUsIGZvY3VzYWJsZUNvbnRleHQpO1xuXG4gIHVzZVVwZGF0ZVdoZW5Qcm9wc0NoYW5nZShodG1sRWxlbWVudElzRm9jdXNlZFJlZiwgb2xkU3RhdGVSZWYsIHN0YXRlLCBmb2N1c2FibGVJdGVtKTtcbiAgdXNlQ2xlYW51cE9uVW5tb3VudChodG1sRWxlbWVudElzRm9jdXNlZFJlZiwgb2xkU3RhdGVSZWYpO1xuICB1c2VQcm9ncmFtbWF0aWNGb2N1c2luZyhmb2N1c2FibGVDb250ZXh0LCBmb2N1c2FibGVJdGVtLCBodG1sRWxlbWVudFJlZik7XG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSBoYW5kbGVGb2N1c0ZvcihzdGF0ZSwgZm9jdXNhYmxlSXRlbSwgZm9jdXNhYmxlQ29udGV4dCwgaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYpO1xuICBjb25zdCBoYW5kbGVCbHVyID0gaGFuZGxlQmx1ckZvcihmb2N1c2FibGVDb250ZXh0LCBzdGF0ZSwgaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYpO1xuXG4gIGNvbnN0IGtleWJvYXJkTmF2aWdhdGlvbiA9IHVzZUtleWJvYXJkTmF2aWdhdGlvbihcbiAgICBmb2N1c2FibGVDb250ZXh0LmlzS2V5Ym9hcmROYXZpZ2FibGUgPyBmb2N1c2FibGVDb250ZXh0IDogdW5kZWZpbmVkLFxuICAgIGZvY3VzYWJsZUl0ZW0sXG4gICAgb3JkZXJOdW1iZXIsXG4gICAgZWxlbWVudCxcbiAgKTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIHRhYkluZGV4LFxuXG4gICAgb25Gb2N1czogKGU6IFJlYWN0LkZvY3VzRXZlbnQ8YW55PikgPT4ge1xuICAgICAgaGFuZGxlRm9jdXMoZSk7XG4gICAgICBrZXlib2FyZE5hdmlnYXRpb24ub25Gb2N1cygpO1xuICAgICAgb25Gb2N1cz8uKGUpO1xuICAgIH0sXG5cbiAgICBvbkJsdXI6IChlOiBSZWFjdC5Gb2N1c0V2ZW50PGFueT4pID0+IHtcbiAgICAgIGlmICghaHRtbEVsZW1lbnRSZWYuY3VycmVudD8uY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICBoYW5kbGVCbHVyKGUpO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZSk7XG4gICAgfSxcblxuICAgIG9uS2V5RG93bjogKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8YW55PikgPT4ge1xuICAgICAgb25LZXlEb3duPy4oZSk7XG4gICAgICBrZXlib2FyZE5hdmlnYXRpb24ub25LZXlEb3duKGUpO1xuICAgIH0sXG5cbiAgICBvbk1vdXNlRW50ZXI6IGtleWJvYXJkTmF2aWdhdGlvbi5mb2N1c1doYXRUaGVQb2ludGVySXNPbixcbiAgICBvbk1vdXNlTW92ZToga2V5Ym9hcmROYXZpZ2F0aW9uLmZvY3VzV2hhdFRoZVBvaW50ZXJJc09uLFxuICB9KTtcblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzYWJsZVBsdWdpbjxUPigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxGb2N1c2FibGVQbHVnaW5Qcm9wczxUPiwgW1JldHVyblR5cGU8dHlwZW9mIHJlZlBsdWdpbjxUPj5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRmb2N1c2FibGUsIHRhYkluZGV4LCBvbkJsdXIsIG9uRm9jdXMsIG9uS2V5RG93biB9ID0gcHJvcHM7XG5cbiAgICBpZiAoISRmb2N1c2FibGUpIHtcbiAgICAgIHJldHVybiB7ICRmb2N1c2FibGU6IHVuZGVmaW5lZCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAkZm9jdXNhYmxlOiB1bmRlZmluZWQsXG4gICAgICAkd3JhcHBlcjoge1xuICAgICAgICBDb21wb25lbnQ6IEZvY3VzYWJsZVdyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgZm9jdXNhYmxlOiAkZm9jdXNhYmxlLFxuICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCA/PyAtMSxcbiAgICAgICAgICBvbkZvY3VzLFxuICAgICAgICAgIG9uQmx1cixcbiAgICAgICAgICBvbktleURvd24sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IGFzc2VydERlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHJ1bkluQWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdHlwZSBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VVcGRhdGVXaGVuUHJvcHNDaGFuZ2UgPSAoXG4gIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gIG9sZFN0YXRlUmVmOiBNdXRhYmxlUmVmT2JqZWN0PElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4gfCB1bmRlZmluZWQ+LFxuICBzdGF0ZTogSU9ic2VydmFibGVWYWx1ZTx1bmtub3duPixcbiAgZm9jdXNhYmxlSXRlbTogdW5rbm93bixcbikgPT4ge1xuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiByZW1vdmUgd2hlbiBwb3NzaWJsZVxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGZvY3VzZWRSZWYuY3VycmVudCkge1xuICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgc3RhdGUuc2V0KGZvY3VzYWJsZUl0ZW0pO1xuXG4gICAgICAgICAgY29uc3QgY29udGV4dEhhc0NoYW5nZWQgPSBvbGRTdGF0ZVJlZi5jdXJyZW50ICE9PSBzdGF0ZTtcblxuICAgICAgICAgIGlmIChjb250ZXh0SGFzQ2hhbmdlZCAmJiBvbGRTdGF0ZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBhc3NlcnREZWZpbmVkKG9sZFN0YXRlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgb2xkU3RhdGVSZWYuY3VycmVudC5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBvbGRTdGF0ZVJlZi5jdXJyZW50ID0gc3RhdGU7XG4gICAgfSxcbiAgICAvLyBOb3RlOiBmb2N1c2VkUmVmIGFuZCBvbGRTdGF0ZVJlZiBuZXZlciBjaGFuZ2UuXG4gICAgW2ZvY3VzYWJsZUl0ZW0sIHN0YXRlXSxcbiAgKTtcbn07XG4iLCAiaW1wb3J0IHsgYXNzZXJ0RGVmaW5lZCB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSB7IElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgcnVuSW5BY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB0eXBlIE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IHVzZUNsZWFudXBPblVubW91bnQgPSAoXG4gIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gIG9sZFN0YXRlUmVmOiBNdXRhYmxlUmVmT2JqZWN0PElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4gfCB1bmRlZmluZWQ+LFxuKSA9PiB7XG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHJlbW92ZSB3aGVuIHBvc3NpYmxlXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiAoKSA9PiB7XG4gICAgICBpZiAoZm9jdXNlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICBhc3NlcnREZWZpbmVkKG9sZFN0YXRlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgIG9sZFN0YXRlUmVmLmN1cnJlbnQuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyBOb3RlOiBmb2N1c2VkUmVmIGFuZCBvbGRTdGF0ZVJlZiBuZXZlciBjaGFuZ2UuXG4gICAgW10sXG4gICk7XG59O1xuIiwgImltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQge1xuICBrZXlib2FyZE5hdmlnYXRpb25TdGF0ZUluamVjdGFibGUsXG4gIHR5cGUgTmF2aWdhYmxlRW50cnksXG59IGZyb20gXCIuLi9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uIH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuXG50eXBlIEtleWJvYXJkTmF2aWdhdGlvbiA9IHtcbiAgcmVhZG9ubHkgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uRm9jdXM6ICgpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IGZvY3VzV2hhdFRoZVBvaW50ZXJJc09uOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBub0tleWJvYXJkTmF2aWdhdGlvbjogS2V5Ym9hcmROYXZpZ2F0aW9uID0ge1xuICBvbktleURvd246ICgpID0+IHt9LFxuICBvbkZvY3VzOiAoKSA9PiB7fSxcbiAgZm9jdXNXaGF0VGhlUG9pbnRlcklzT246ICgpID0+IHt9LFxufTtcblxuZXhwb3J0IGNvbnN0IHVzZUtleWJvYXJkTmF2aWdhdGlvbiA9IChcbiAgY29udGV4dDogS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PGFueT4gfCB1bmRlZmluZWQsXG4gIGl0ZW06IHVua25vd24sXG4gIG9yZGVyTnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbik6IEtleWJvYXJkTmF2aWdhdGlvbiA9PiB7XG4gIGNvbnN0IG5hdmlnYXRpb24gPSB1c2VTeW5jSW5qZWN0KGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWNvbnRleHQgfHwgIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyeTogTmF2aWdhYmxlRW50cnkgPSB7IGl0ZW0sIG9yZGVyTnVtYmVyOiBvcmRlck51bWJlciA/PyAwLCBlbGVtZW50IH07XG5cbiAgICBuYXZpZ2F0aW9uLnJlZ2lzdGVyKGNvbnRleHQsIGVudHJ5KTtcblxuICAgIGNvbnN0IGZvY3VzV2hhdFNob3VsZEhhdmVGb2N1cyA9ICgpID0+IHtcbiAgICAgIC8vIE9ubHkgd2l0aGluIHRoZSB3aW5kb3cgdGhlIHVzZXIgaXMgYWN0dWFsbHkgaW4uIExlbnMgRGVza3RvcCBpcyBtb3JlIHRoYW4gb25lIHdpbmRvdyxcbiAgICAgIC8vIGFuZCBmb2N1c2luZyBhbiBlbGVtZW50IG9mIGEgd2luZG93IHRoYXQgZG9lcyBub3QgaGF2ZSBmb2N1cyBpcyBob3cgYSBicm93c2VyIGlzIGFza2VkXG4gICAgICAvLyB0byBicmluZyB0aGF0IHdpbmRvdyB0byB0aGUgZnJvbnQ6IGEgbGlzdCB1cGRhdGluZyBpbiB0aGUgYXBwbGljYXRpb24gd2luZG93IHdoaWxlIHRoZVxuICAgICAgLy8gdXNlciByZWFkcyBhIHN1Yi13aW5kb3cgd291bGQga2VlcCBzbmF0Y2hpbmcgdGhlIHN1Yi13aW5kb3cncyBmb2N1cyBhd2F5LiBXaGljaCBtZW1iZXJcbiAgICAgIC8vIHRoaXMgd2luZG93IGlzIG9uIGlzIHN0aWxsIHJlbWVtYmVyZWQsIHNvIGl0IGxhbmRzIHRoZXJlIHdoZW4gdGhlIHVzZXIgY29tZXMgYmFjay5cbiAgICAgIGlmICghZG9jdW1lbnQuaGFzRm9jdXMoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRleHRJbkZvY3VzID0gbmF2aWdhdGlvbi5jb250ZXh0SW5Gb2N1cygpO1xuXG4gICAgICBpZiAoIWNvbnRleHRJbkZvY3VzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50cmllcyA9IG5hdmlnYXRpb24uc29ydGVkRW50cmllc09mKGNvbnRleHRJbkZvY3VzKTtcblxuICAgICAgLy8gVGhlIG1lbWJlciB0aGF0IGNvbnRleHQgd2FzIGxlZnQgb24sIHNvIHN0ZXBwaW5nIGludG8gc29tZXRoaW5nIGFuZCBiYWNrIG91dCBvZiBpdCBsYW5kc1xuICAgICAgLy8gd2hlcmUgaXQgc3RhcnRlZC4gT25seSB0aGUgbG93ZXN0IG9yZGVyIG51bWJlciB3aGVuIGl0IHdhcyBuZXZlciBsZWZ0IGFueXdoZXJlOiB0aGF0IGlzIGFcbiAgICAgIC8vIHNldCBvZiBtZW1iZXJzIGFwcGVhcmluZyByYXRoZXIgdGhhbiBvbmUgYmVpbmcgcmV0dXJuZWQgdG8gXHUyMDE0IGFuZCBhIHNldCB0aGF0IGxlYXZlcyBmb2N1c1xuICAgICAgLy8gd2hlcmUgaXQgaXMgYXMgaXQgYXBwZWFycyBoYXMgbm90aGluZyB0byBvZmZlciB1bnRpbCBvbmUgb2YgaXRzIG1lbWJlcnMgaGFzIGhhZCBmb2N1cy5cbiAgICAgIGNvbnN0IGl0ZW1JbkZvY3VzID0gbmF2aWdhdGlvbi5pdGVtSW5Gb2N1c09mKGNvbnRleHRJbkZvY3VzKTtcbiAgICAgIGNvbnN0IHRvRm9jdXMgPVxuICAgICAgICBlbnRyaWVzLmZpbmQoKGNhbmRpZGF0ZSkgPT4gY2FuZGlkYXRlLml0ZW0gPT09IGl0ZW1JbkZvY3VzKSA/P1xuICAgICAgICAoY29udGV4dEluRm9jdXMudGFrZXNGb2N1c0FzSXRBcHBlYXJzID8gZW50cmllc1swXSA6IHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmICh0b0ZvY3VzPy5lbGVtZW50LmlzQ29ubmVjdGVkICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRvRm9jdXMuZWxlbWVudCkge1xuICAgICAgICB0b0ZvY3VzLmVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gRGVmZXJyZWQgc28gdGhhdCBldmVyeXRoaW5nIGFwcGVhcmluZyB0b2dldGhlciBoYXMgcmVnaXN0ZXJlZCwgYW5kIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIG9mXG4gICAgLy8gdGhlIHdob2xlIHNldCB3aW5zIHJhdGhlciB0aGFuIHdoaWNoZXZlciBhcHBlYXJlZCBmaXJzdC5cbiAgICB2b2lkIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZm9jdXNXaGF0U2hvdWxkSGF2ZUZvY3VzKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBuYXZpZ2F0aW9uLmRlcmVnaXN0ZXIoY29udGV4dCwgZW50cnkpO1xuXG4gICAgICB2b2lkIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZm9jdXNXaGF0U2hvdWxkSGF2ZUZvY3VzKTtcbiAgICB9O1xuICB9LCBbbmF2aWdhdGlvbiwgY29udGV4dCwgaXRlbSwgb3JkZXJOdW1iZXIsIGVsZW1lbnRdKTtcblxuICBpZiAoIWNvbnRleHQpIHtcbiAgICByZXR1cm4gbm9LZXlib2FyZE5hdmlnYXRpb247XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIFdoaWNoIG1lbWJlciB0aGUgY29udGV4dCBpcyBvbiwgcmVtZW1iZXJlZCBmb3IgYXMgbG9uZyBhcyBpdHMgbWVtYmVycyBhcmUgdGhlcmU6IGl0IGlzIHdoYXRcbiAgICAvLyBmb2N1cyByZXR1cm5zIHRvIHdoZW4gc29tZXRoaW5nIHRoYXQgdG9vayBmb2N1cyBvdmVyIGdvZXMgYXdheSBhZ2Fpbi5cbiAgICBvbkZvY3VzOiAoKSA9PiBuYXZpZ2F0aW9uLm5vdGVJdGVtSW5Gb2N1cyhjb250ZXh0LCBpdGVtKSxcblxuICAgIC8vIFdoZXJlIHRoZSBwb2ludGVyIGdvZXMsIGZvY3VzIGdvZXM6IHRoZSBtZW1iZXIgdW5kZXIgaXQgYmVjb21lcyB0aGUgZm9jdXNlZCBvbmUsIHNvIGFycm93aW5nXG4gICAgLy8gb24gZnJvbSB0aGVyZSBjb250aW51ZXMgZnJvbSB3aGF0IHRoZSB1c2VyIGlzIGxvb2tpbmcgYXQgcmF0aGVyIHRoYW4gZnJvbSB3aGVyZXZlciB0aGVcbiAgICAvLyBrZXlib2FyZCB3YXMgbGVmdC4gV2hpY2hldmVyIG9mIHRoZSB0d28gbW92ZWQgbGFzdCBkZWNpZGVzLCB3aGljaCBpcyB3aHkgdGhpcyBhbnN3ZXJzIHRvIHRoZVxuICAgIC8vIHBvaW50ZXIgbW92aW5nIGFzIHdlbGwgYXMgdG8gaXQgYXJyaXZpbmcgXHUyMDE0IHRoZSBrZXlib2FyZCBtYXkgaGF2ZSB0YWtlbiBmb2N1cyBlbHNld2hlcmUgd2hpbGVcbiAgICAvLyB0aGUgcG9pbnRlciByZXN0ZWQgd2hlcmUgaXQgd2FzLCBhbmQgbW92aW5nIGl0IGF0IGFsbCBpcyB0aGUgdXNlciBwb2ludGluZyBhZ2Fpbi5cbiAgICAvL1xuICAgIC8vIFRoZSBlbGVtZW50IGNvbWVzIGZyb20gdGhlIGV2ZW50IHJhdGhlciB0aGFuIGZyb20gdGhlIHJlbmRlciB0aGlzIGhhbmRsZXIgd2FzIGNyZWF0ZWQgaW46XG4gICAgLy8gdGhlIGhhbmRsZXIgdGhlIERPTSBlbmRzIHVwIHdpdGggaXMgdGhlIG9uZSBmcm9tIHRoZSBmaXJzdCByZW5kZXIsIHdoZW4gdGhlcmUgd2FzIG5vIGVsZW1lbnRcbiAgICAvLyB5ZXQgXHUyMDE0IFJlYWN0IGhhcyBubyByZWFzb24gdG8gcmVuZGVyIHRoZSBlbGVtZW50IGFnYWluIGZvciBhIHdyYXBwZXIncyBvd24gc3RhdGUuXG4gICAgZm9jdXNXaGF0VGhlUG9pbnRlcklzT246IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBob3ZlcmVkKSB7XG4gICAgICAgIGhvdmVyZWQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHN0ZXAgPSBzdGVwT2YoZXZlbnQua2V5LCBjb250ZXh0Lm9yaWVudGF0aW9uKTtcblxuICAgICAgaWYgKHN0ZXAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVudHJpZXMgPSBuYXZpZ2F0aW9uLnNvcnRlZEVudHJpZXNPZihjb250ZXh0KTtcblxuICAgICAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gZW50cmllcy5maW5kSW5kZXgoKGNhbmRpZGF0ZSkgPT4gY2FuZGlkYXRlLml0ZW0gPT09IGl0ZW0pO1xuXG4gICAgICBjb25zdCBuZXh0SW5kZXggPVxuICAgICAgICBzdGVwID09PSBcImZpcnN0XCJcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IHN0ZXAgPT09IFwibGFzdFwiXG4gICAgICAgICAgICA/IGVudHJpZXMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgOiAoY3VycmVudEluZGV4ICsgc3RlcCArIGVudHJpZXMubGVuZ3RoKSAlIGVudHJpZXMubGVuZ3RoO1xuXG4gICAgICBjb25zdCBuZXh0ID0gZW50cmllc1tuZXh0SW5kZXhdO1xuXG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBuZXh0LmVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufTtcblxuY29uc3Qgc3RlcE9mID0gKGtleTogc3RyaW5nLCBvcmllbnRhdGlvbjogS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb24pID0+IHtcbiAgc3dpdGNoIChrZXkpIHtcbiAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICByZXR1cm4gb3JpZW50YXRpb24gPT09IFwiaG9yaXpvbnRhbFwiID8gdW5kZWZpbmVkIDogMTtcbiAgICBjYXNlIFwiQXJyb3dSaWdodFwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcInZlcnRpY2FsXCIgPyB1bmRlZmluZWQgOiAxO1xuICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICByZXR1cm4gb3JpZW50YXRpb24gPT09IFwiaG9yaXpvbnRhbFwiID8gdW5kZWZpbmVkIDogLTE7XG4gICAgY2FzZSBcIkFycm93TGVmdFwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcInZlcnRpY2FsXCIgPyB1bmRlZmluZWQgOiAtMTtcbiAgICBjYXNlIFwiSG9tZVwiOlxuICAgICAgcmV0dXJuIFwiZmlyc3RcIiBhcyBjb25zdDtcbiAgICBjYXNlIFwiRW5kXCI6XG4gICAgICByZXR1cm4gXCJsYXN0XCIgYXMgY29uc3Q7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iLCAiaW1wb3J0IHsgcnVuSW5BY3Rpb24sIHR5cGUgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgRm9jdXNhYmxlRXZlbnQgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1ldmVudFwiO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlRm9jdXNGb3IgPVxuICA8Rm9jdXNhYmxlSXRlbT4oXG4gICAgc3RhdGU6IElPYnNlcnZhYmxlVmFsdWU8Rm9jdXNhYmxlSXRlbSB8IHVuZGVmaW5lZD4sXG4gICAgZm9jdXNhYmxlSXRlbTogRm9jdXNhYmxlSXRlbSxcbiAgICBmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PEZvY3VzYWJsZUl0ZW0+LFxuICAgIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gICkgPT5cbiAgPFQ+KGV2ZW50OiBGb2N1c2FibGVFdmVudDxUPikgPT4ge1xuICAgIGNvbnN0IG5hdGl2ZUV2ZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG5cbiAgICBuYXRpdmVFdmVudC5hbHJlYWR5UHJvY2Vzc2VkRm9jdXNhYmxlQ29udGV4dHMgPz89IG5ldyBTZXQoKTtcblxuICAgIGlmIChuYXRpdmVFdmVudC5hbHJlYWR5UHJvY2Vzc2VkRm9jdXNhYmxlQ29udGV4dHMuaGFzKGZvY3VzYWJsZUNvbnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzLmFkZChmb2N1c2FibGVDb250ZXh0KTtcblxuICAgIGZvY3VzZWRSZWYuY3VycmVudCA9IHRydWU7XG5cbiAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICBzdGF0ZS5zZXQoZm9jdXNhYmxlSXRlbSk7XG4gICAgfSk7XG4gIH07XG4iLCAiaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHJ1bkluQWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgRm9jdXNhYmxlRXZlbnQgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1ldmVudFwiO1xuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVCbHVyRm9yID1cbiAgPFQ+KFxuICAgIGZvY3VzYWJsZUNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4sXG4gICAgc3RhdGU6IElPYnNlcnZhYmxlVmFsdWU8VCB8IHVuZGVmaW5lZD4sXG4gICAgZm9jdXNlZFJlZjogTXV0YWJsZVJlZk9iamVjdDxib29sZWFuPixcbiAgKSA9PlxuICA8VD4oZXZlbnQ6IEZvY3VzYWJsZUV2ZW50PFQ+KSA9PiB7XG4gICAgY29uc3QgbmF0aXZlRXZlbnQgPSBldmVudC5uYXRpdmVFdmVudDtcblxuICAgIGlmIChuYXRpdmVFdmVudC5hbHJlYWR5UHJvY2Vzc2VkRm9jdXNhYmxlQ29udGV4dHM/Lmhhcyhmb2N1c2FibGVDb250ZXh0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvY3VzZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXG4gICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgc3RhdGUuc2V0KHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH07XG4iLCAiaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSB9IGZyb20gXCIuLi9fc2hhcmVkL2ZvY3VzYWJsZS1odG1sLWVsZW1lbnQtcmVmLXNldC5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IHVzZVByb2dyYW1tYXRpY0ZvY3VzaW5nID0gPFQ+KFxuICBmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+LFxuICBmb2N1c2FibGVJdGVtOiBULFxuICBodG1sRWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZD4sXG4pID0+IHtcbiAgY29uc3QgaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAgPSB1c2VTeW5jSW5qZWN0KFxuICAgIGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSxcbiAgICBmb2N1c2FibGVDb250ZXh0LFxuICAgIGZvY3VzYWJsZUl0ZW0sXG4gICk7XG5cbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogcmVtb3ZlIHdoZW4gcG9zc2libGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcC5hZGQoaHRtbEVsZW1lbnRSZWYpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGh0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwLmRlbGV0ZShodG1sRWxlbWVudFJlZik7XG4gICAgfTtcbiAgfSwgW2h0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwLCBmb2N1c2FibGVJdGVtLCBodG1sRWxlbWVudFJlZl0pO1xufTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgZmxleFBsdWdpbiB9IGZyb20gXCIuLi9mbGV4L2ZsZXhcIjtcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgb3ZlcmZsb3dQbHVnaW4gfSBmcm9tIFwiLi4vb3ZlcmZsb3cvb3ZlcmZsb3dcIjtcblxuZXhwb3J0IHR5cGUgQXJlYVBsdWdpblByb3BzID0geyAkYXJlYT86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IGFyZWFQbHVnaW4gPSBnZXRQbHVnaW48QXJlYVBsdWdpblByb3BzLCBbdHlwZW9mIGZsZXhQbHVnaW4sIHR5cGVvZiBvdmVyZmxvd1BsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCBleHBsaWNpdEZsZXhQcm9wcyA9IGlzT2JqZWN0KHByb3BzLiRmbGV4KSA/IHByb3BzLiRmbGV4IDoge307XG5cbiAgcmV0dXJuIHtcbiAgICAkYXJlYTogdW5kZWZpbmVkLFxuXG4gICAgJGZsZXg6IHByb3BzLiRhcmVhXG4gICAgICA/IHtcbiAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiBcInN0cmV0Y2hcIixcbiAgICAgICAgICBob3Jpem9udGFsQWxpZ246IFwic3RyZXRjaFwiLFxuICAgICAgICAgIC4uLmV4cGxpY2l0RmxleFByb3BzLFxuICAgICAgICB9XG4gICAgICA6IHByb3BzLiRmbGV4LFxuXG4gICAgJG92ZXJmbG93OiBwcm9wcy4kb3ZlcmZsb3cgPz8gKHByb3BzLiRhcmVhID8gXCJoaWRkZW5cIiA6IHVuZGVmaW5lZCksXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgZmxleENoaWxkUGx1Z2luIH0gZnJvbSBcIi4uL2ZsZXgtY2hpbGQvZmxleC1jaGlsZFwiO1xuXG5leHBvcnQgdHlwZSBBcmVhQ29udGVudFBsdWdpblByb3BzID0geyAkYXJlYUNvbnRlbnQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBhcmVhQ29udGVudFBsdWdpbiA9IGdldFBsdWdpbjxBcmVhQ29udGVudFBsdWdpblByb3BzLCBbdHlwZW9mIGZsZXhDaGlsZFBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGFyZWFDb250ZW50OiB1bmRlZmluZWQsXG4gICRmbGV4Q2hpbGQ6IHByb3BzLiRhcmVhQ29udGVudCA/IHRydWUgOiBwcm9wcy4kZmxleENoaWxkLFxufSkpO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCB0eXBlIHsgd2lkdGhQbHVnaW4gfSBmcm9tIFwiLi4vd2lkdGgvd2lkdGhcIjtcbmltcG9ydCB0eXBlIHsgaGVpZ2h0UGx1Z2luIH0gZnJvbSBcIi4uL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgJFNpemVQcm9wcyA9IHtcbiAgc2l6ZT86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwiYXV0b1wiO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCI7XG4gIG1heD86IFRTaGlydFNpemUgfCBcImZ1bGxcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpemVQbHVnaW5Qcm9wcyA9IHsgJHNpemU/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCAkU2l6ZVByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBzaXplUGx1Z2luID0gZ2V0UGx1Z2luPFNpemVQbHVnaW5Qcm9wcywgW3R5cGVvZiB3aWR0aFBsdWdpbiwgdHlwZW9mIGhlaWdodFBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRzaXplIH0gPSBwcm9wcztcblxuICBpZiAoISRzaXplKSB7XG4gICAgcmV0dXJuIHsgJHNpemU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgeyBzaXplLCBtaW4sIG1heCB9ID0gdHlwZW9mICRzaXplID09PSBcInN0cmluZ1wiID8geyBzaXplOiAkc2l6ZSB9IDogJHNpemU7XG5cbiAgcmV0dXJuIHtcbiAgICAkaGVpZ2h0OiB7IGhlaWdodDogc2l6ZSwgbWluLCBtYXggfSxcbiAgICAkd2lkdGg6IHsgd2lkdGg6IHNpemUsIG1pbiwgbWF4IH0sXG4gICAgJHNpemU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCByYXdTdHlsZXMgZnJvbSBcIi4vY3Vyc29yLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy90ZXN0LXV0aWxzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMocmF3U3R5bGVzKTtcblxuZXhwb3J0IHR5cGUgJEN1cnNvclByb3BzID1cbiAgfCBcImFsaWFzXCJcbiAgfCBcImFsbC1zY3JvbGxcIlxuICB8IFwiY2VsbFwiXG4gIHwgXCJjb2x1bW4tcmVzaXplXCJcbiAgfCBcImNvbnRleHQtbWVudVwiXG4gIHwgXCJjb3B5XCJcbiAgfCBcImNyb3NzaGFpclwiXG4gIHwgXCJkZWZhdWx0XCJcbiAgfCBcImVhc3QtcmVzaXplXCJcbiAgfCBcImVhc3QtYW5kLXdlc3QtcmVzaXplXCJcbiAgfCBcImdyYWJcIlxuICB8IFwiZ3JhYmJpbmdcIlxuICB8IFwiaGVscFwiXG4gIHwgXCJtb3ZlXCJcbiAgfCBcIm5vcnRoLXJlc2l6ZVwiXG4gIHwgXCJub3J0aGVhc3QtcmVzaXplXCJcbiAgfCBcIm5vcnRoZWFzdC1hbmQtc291dGh3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJuby1kcm9wXCJcbiAgfCBcIm5vbmVcIlxuICB8IFwibm90LWFsbG93ZWRcIlxuICB8IFwibm9ydGgtYW5kLXNvdXRoLXJlc2l6ZVwiXG4gIHwgXCJub3J0aHdlc3QtcmVzaXplXCJcbiAgfCBcIm5vcnRod2VzdC1hbmQtc291dGhlYXN0LXJlc2l6ZVwiXG4gIHwgXCJwb2ludGVyXCJcbiAgfCBcInByb2dyZXNzXCJcbiAgfCBcInJvdy1yZXNpemVcIlxuICB8IFwic291dGgtcmVzaXplXCJcbiAgfCBcInNvdXRoZWFzdC1yZXNpemVcIlxuICB8IFwic291dGh3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJ0ZXh0XCJcbiAgfCBcInZlcnRpY2FsLXRleHRcIlxuICB8IFwid2VzdC1yZXNpemVcIlxuICB8IFwid2FpdFwiXG4gIHwgXCJ6b29tLWluXCJcbiAgfCBcInpvb20tb3V0XCI7XG5cbmV4cG9ydCB0eXBlIEN1cnNvclBsdWdpblByb3BzID0ge1xuICAkY3Vyc29yPzogJEN1cnNvclByb3BzO1xufTtcblxuZXhwb3J0IGNvbnN0IGN1cnNvclBsdWdpbiA9IGdldFBsdWdpbjxDdXJzb3JQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkY3Vyc29yLCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRjdXJzb3IpIHtcbiAgICByZXR1cm4geyAkY3Vyc29yOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGN1cnNvcjogdW5kZWZpbmVkLFxuICAgICRjbGFzc05hbWU6IFskY2xhc3NOYW1lLCBzdHlsZXNbJGN1cnNvcl1dLFxuICAgIFwiZGF0YS1jdXJzb3ItdGVzdFwiOiAkY3Vyc29yLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBvbk1pZGRsZUNsaWNrLCBvblRyaWdnZXIgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IGVuYWJsZWRQbHVnaW4gfSBmcm9tIFwiLi4vZW5hYmxlZC9lbmFibGVkXCI7XG5pbXBvcnQgdHlwZSB7ICRDdXJzb3JQcm9wcywgY3Vyc29yUGx1Z2luIH0gZnJvbSBcIi4uL2N1cnNvci9jdXJzb3JcIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSB9IGZyb20gXCIuL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbjJkID0ge1xuICByZWFkb25seSB4OiBudW1iZXI7XG4gIHJlYWRvbmx5IHk6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIENsaWNrSGFuZGxlckRldGFpbHMgPSB7XG4gIHJlYWRvbmx5IGN1cnNvcjogUG9zaXRpb24yZDtcbiAgcmVhZG9ubHkgY2F1c2U6IFwiY2xpY2tcIiB8IFwia2V5Ym9hcmRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIENsaWNrSGFuZGxlciA9ICgoZGV0YWlsczogQ2xpY2tIYW5kbGVyRGV0YWlscykgPT4gdm9pZCkgfCAoKGRldGFpbHM6IENsaWNrSGFuZGxlckRldGFpbHMpID0+IFByb21pc2U8dm9pZD4pO1xuXG5leHBvcnQgdHlwZSBDbGlja1BsdWdpblByb3BzID0ge1xuICAkb25DbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uT25seU1vdXNlQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvbkRvdWJsZUNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25SaWdodENsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25NaWRkbGVDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG59O1xuXG5jb25zdCBjbGlja1VzZWQgPSBTeW1ib2woKTtcblxuZXhwb3J0IGNvbnN0IGNsaWNrYWJsZVBsdWdpbiA9IGdldFBsdWdpbjxDbGlja1BsdWdpblByb3BzLCBbdHlwZW9mIGVuYWJsZWRQbHVnaW4sIHR5cGVvZiBjdXJzb3JQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgLy8gdHlwaW5nIHJlcXVpcmVkIGR1ZSB0byBsYWNrIG9mIGdvb2QgdHlwaW5nIG9mIHByZS1wcm9jZXNzZWQgZGVwZW5kZW50IHBsdWdpbnNcbiAgY29uc3Qge1xuICAgICRjdXJzb3IsXG4gICAgJG9uQ2xpY2ssXG4gICAgJG9uT25seU1vdXNlQ2xpY2ssXG4gICAgJG9uTWlkZGxlQ2xpY2ssXG4gICAgJG9uUmlnaHRDbGljayxcbiAgICAkb25Eb3VibGVDbGljayxcbiAgICBvbkRvdWJsZUNsaWNrLFxuICAgIG9uQXV4Q2xpY2ssXG4gICAgb25DbGljayxcbiAgICBvbkNvbnRleHRNZW51LFxuICAgIG9uS2V5RG93bixcbiAgICB0YWJJbmRleCxcbiAgICBkaXNhYmxlZCxcbiAgICByb2xlLFxuICB9ID0gcHJvcHMgYXMgdHlwZW9mIHByb3BzICYgUmVhY3QuSFRNTFByb3BzPEhUTUxFbGVtZW50PjtcbiAgY29uc3QgW3BlbmRpbmcsIHNldFBlbmRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBvblJpZ2h0VHJpZ2dlciA9IHVzZVN5bmNJbmplY3Qob25SaWdodFRyaWdnZXJJbmplY3RhYmxlKTtcbiAgY29uc3Qgb25Nb3VzZUNsaWNrID0gJG9uQ2xpY2sgPz8gJG9uT25seU1vdXNlQ2xpY2s7XG5cbiAgaWYgKCRvbkNsaWNrICYmICRvbk9ubHlNb3VzZUNsaWNrKSB7XG4gICAgY29uc29sZS53YXJuKFwiQ2Fubm90IGhhdmUgYm90aCAkb25DbGljayBhbmQgJG9uTW91c2VDbGlja09ubHkgb24gdGhlIHNhbWUgY29tcG9uZW50XCIpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkb25DbGljazogdW5kZWZpbmVkLFxuICAgICRvbk1pZGRsZUNsaWNrOiB1bmRlZmluZWQsXG4gICAgJG9uUmlnaHRDbGljazogdW5kZWZpbmVkLFxuICAgICRvbkRvdWJsZUNsaWNrOiB1bmRlZmluZWQsXG4gICAgJG9uT25seU1vdXNlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICB0YWJJbmRleDogdGFiSW5kZXggPz8gKG9uTW91c2VDbGljayB8fCAkb25SaWdodENsaWNrIHx8ICRvbkRvdWJsZUNsaWNrID8gMCA6IHVuZGVmaW5lZCksXG4gICAgJGN1cnNvcjogZ2V0Q3Vyc29yUHJvcHMoJGN1cnNvciwgZGlzYWJsZWQsIHBlbmRpbmcsIG9uTW91c2VDbGljaywgJG9uUmlnaHRDbGljayksXG4gICAgcm9sZTogcm9sZSA/PyAob25Nb3VzZUNsaWNrID8gXCJidXR0b25cIiA6IHJvbGUpLFxuICAgIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uQ2xpY2s/LihldmVudCk7XG5cbiAgICAgIGlmICghZGlzYWJsZWQgJiYgb25Nb3VzZUNsaWNrICYmICEoY2xpY2tVc2VkIGluIGV2ZW50KSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGV2ZW50LCB7IFtjbGlja1VzZWRdOiB0cnVlIH0pO1xuXG4gICAgICAgIGNvbnN0IG1heWJlUHJvbWlzZSA9IG9uTW91c2VDbGljayh0b0RldGFpbHMoZXZlbnQpKTtcblxuICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShtYXliZVByb21pc2UpKSB7XG4gICAgICAgICAgc2V0UGVuZGluZyh0cnVlKTtcbiAgICAgICAgICBtYXliZVByb21pc2UudGhlbigoKSA9PiBzZXRQZW5kaW5nKGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIG9uRG91YmxlQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uRG91YmxlQ2xpY2s/LihldmVudCk7XG4gICAgICAkb25Eb3VibGVDbGljaz8uKHRvRGV0YWlscyhldmVudCkpO1xuICAgIH0sXG4gICAgb25Db250ZXh0TWVudTogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Db250ZXh0TWVudT8uKGV2ZW50KTtcbiAgICAgICRvblJpZ2h0Q2xpY2s/Lih0b0RldGFpbHMoZXZlbnQpKTtcbiAgICB9LFxuICAgIG9uQXV4Q2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uQXV4Q2xpY2s/LihldmVudCk7XG4gICAgICBvbk1pZGRsZUNsaWNrKGV2ZW50LCAoKSA9PiAkb25NaWRkbGVDbGljaz8uKHRvRGV0YWlscyhldmVudCkpKTtcbiAgICB9LFxuICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25LZXlEb3duPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoJG9uQ2xpY2spIHtcbiAgICAgICAgb25UcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgaWYgKCFkaXNhYmxlZCAmJiAhKGNsaWNrVXNlZCBpbiBldmVudCkpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZXZlbnQsIHsgW2NsaWNrVXNlZF06IHRydWUgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1heWJlUHJvbWlzZSA9ICRvbkNsaWNrKHRvRGV0YWlscyhldmVudCkpO1xuXG4gICAgICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShtYXliZVByb21pc2UpKSB7XG4gICAgICAgICAgICAgIHNldFBlbmRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgIG1heWJlUHJvbWlzZS50aGVuKCgpID0+IHNldFBlbmRpbmcoZmFsc2UpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoJG9uUmlnaHRDbGljaykge1xuICAgICAgICBvblJpZ2h0VHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgICRvblJpZ2h0Q2xpY2sodG9EZXRhaWxzKGV2ZW50KSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59KTtcblxuY29uc3QgdG9NaWRkbGUgPSAocmVjdDogRE9NUmVjdCkgPT4gKHtcbiAgeDogcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIsXG4gIHk6IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyLFxufSk7XG5cbmNvbnN0IHRvRGV0YWlscyA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4gfCBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxFbGVtZW50Pik6IENsaWNrSGFuZGxlckRldGFpbHMgPT4ge1xuICBjb25zdCBjdXJzb3IgPVxuICAgIFwiY2xpZW50WFwiIGluIGV2ZW50XG4gICAgICA/IHtcbiAgICAgICAgICB4OiBldmVudC5jbGllbnRYLFxuICAgICAgICAgIHk6IGV2ZW50LmNsaWVudFksXG4gICAgICAgIH1cbiAgICAgIDogdG9NaWRkbGUoZXZlbnQuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG5cbiAgcmV0dXJuIHtcbiAgICBjdXJzb3IsXG4gICAgY2F1c2U6IGV2ZW50LmRldGFpbCA/IFwiY2xpY2tcIiA6IFwia2V5Ym9hcmRcIixcbiAgfTtcbn07XG5cbmNvbnN0IGlzUHJvbWlzZUxpa2UgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBQcm9taXNlPHVua25vd24+ID0+XG4gIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhIXZhbHVlICYmIFwidGhlblwiIGluIHZhbHVlO1xuXG5jb25zdCBnZXRDdXJzb3JQcm9wcyA9IChcbiAgJGN1cnNvcjogJEN1cnNvclByb3BzIHwgdW5kZWZpbmVkLFxuICBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgcGVuZGluZzogYm9vbGVhbixcbiAgJG9uQ2xpY2s6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkLFxuICAkb25SaWdodENsaWNrOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCxcbik6ICRDdXJzb3JQcm9wcyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICgkY3Vyc29yKSB7XG4gICAgcmV0dXJuICRjdXJzb3I7XG4gIH1cblxuICBpZiAocGVuZGluZykge1xuICAgIHJldHVybiBcInByb2dyZXNzXCI7XG4gIH1cblxuICBpZiAoISRvbkNsaWNrICYmICEkb25SaWdodENsaWNrKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChkaXNhYmxlZCkge1xuICAgIHJldHVybiBcIm5vdC1hbGxvd2VkXCI7XG4gIH1cblxuICBpZiAoJG9uQ2xpY2spIHtcbiAgICByZXR1cm4gXCJwb2ludGVyXCI7XG4gIH1cblxuICByZXR1cm4gXCJjb250ZXh0LW1lbnVcIjtcbn07XG4iLCAiaW1wb3J0IHJhd1N0eWxlcyBmcm9tIFwiLi9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy90ZXN0LXV0aWxzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMocmF3U3R5bGVzKTtcblxuZXhwb3J0IHR5cGUgRGlzcGxheUNvbnRlbnRzUGx1Z2luUHJvcHMgPSB7XG4gICRkaXNwbGF5Q29udGVudHM/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGRpc3BsYXlDb250ZW50c1BsdWdpbiA9IGdldFBsdWdpbjxEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZGlzcGxheUNvbnRlbnRzLCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRkaXNwbGF5Q29udGVudHMpIHtcbiAgICByZXR1cm4geyAkZGlzcGxheUNvbnRlbnRzOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGRpc3BsYXlDb250ZW50czogdW5kZWZpbmVkLFxuICAgICRjbGFzc05hbWU6IFskY2xhc3NOYW1lLCBzdHlsZXMuY29udGVudHNdLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi90ZXh0LWFsaWduLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5leHBvcnQgdHlwZSBUZXh0QWxpZ25QbHVnaW5Qcm9wcyA9IHsgJHRleHRBbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIiB8IFwicmlnaHRcIiB9O1xuXG5leHBvcnQgY29uc3QgdGV4dEFsaWduUGx1Z2luID0gZ2V0UGx1Z2luPFRleHRBbGlnblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICR0ZXh0QWxpZ24gfSA9IHByb3BzO1xuXG4gIGlmICghJHRleHRBbGlnbikge1xuICAgIHJldHVybiB7ICR0ZXh0QWxpZ246IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHsgJGNsYXNzTmFtZTogW3N0eWxlc1tgdGV4dC1hbGlnbi0tJHskdGV4dEFsaWdufWBdLCBwcm9wcy4kY2xhc3NOYW1lXSwgJHRleHRBbGlnbjogdW5kZWZpbmVkIH07XG59KTtcbiIsICJpbXBvcnQgc3R5bGVzIGZyb20gXCIuL2Jsb2NrLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSBCbG9ja1BsdWdpblByb3BzID0ge1xuICAkYmxvY2s/OiBib29sZWFuIHwgXCJpbmxpbmVcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBibG9ja1BsdWdpbiA9IGdldFBsdWdpbjxCbG9ja1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRibG9jaywgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkYmxvY2spIHtcbiAgICByZXR1cm4geyAkYmxvY2s6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkYmxvY2s6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgJGJsb2NrID09PSBcImlubGluZVwiID8gc3R5bGVzW1wiYmxvY2stLWlubGluZVwiXSA6IHN0eWxlcy5ibG9ja10sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gXCIuLi9fc2hhcmVkL2NvbG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBSYW5nZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgb3V0bGluZVN0eWxlcyBmcm9tIFwiLi9vdXRsaW5lLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUNsYXNzTmFtZSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMob3V0bGluZVN0eWxlcyk7XG5cbmV4cG9ydCB0eXBlIE91dGxpbmVXaWR0aCA9IFwiemVyb1wiIHwgXCJ4eHNcIiB8IFwieHNcIiB8IFwic1wiIHwgXCJtXCIgfCBcImxcIiB8IFwieGxcIiB8IFwieHhsXCIgfCBgJHtSYW5nZTwzLCA1Pn14bGA7XG5cbmV4cG9ydCB0eXBlICRPdXRsaW5lUHJvcHMgPSB7IGNvbG9yPzogQ29sb3I7IHdpZHRoPzogT3V0bGluZVdpZHRoIH07XG5cbmV4cG9ydCB0eXBlIE91dGxpbmVQbHVnaW5Qcm9wcyA9IHsgJG91dGxpbmU/OiB7IGZvY3VzVmlzaWJsZT86ICRPdXRsaW5lUHJvcHMgfSB9O1xuXG5leHBvcnQgY29uc3Qgb3V0bGluZVBsdWdpbiA9IGdldFBsdWdpbjxPdXRsaW5lUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGdldEZvY3VzVmlzaWJsZU91dGxpbmVTdHlsZXMocHJvcHMuJG91dGxpbmU/LmZvY3VzVmlzaWJsZSldLFxuICAgICRvdXRsaW5lOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3QgZ2V0Rm9jdXNWaXNpYmxlT3V0bGluZVN0eWxlcyA9IChwcm9wczogJE91dGxpbmVQcm9wcyB8IHVuZGVmaW5lZCk6IElDbGFzc05hbWUgPT4ge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHsgY29sb3IsIHdpZHRoIH0gPSBwcm9wcztcblxuICByZXR1cm4gW1xuICAgIGNvbG9yICE9PSB1bmRlZmluZWQgfHwgd2lkdGggIT09IHVuZGVmaW5lZCA/IFtzdHlsZXMub3V0bGluZSwgc3R5bGVzLmZvY3VzVmlzaWJsZV0gOiB1bmRlZmluZWQsXG4gICAgY29sb3IgPyBzdHlsZXNbYGNvbG9yLS0ke2NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIHdpZHRoID8gc3R5bGVzW2B3aWR0aC0tJHt3aWR0aH1gXSA6IHVuZGVmaW5lZCxcbiAgXTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IHR5cGUgSUNsYXNzTmFtZSwgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgaW50ZXJhY3RpdmVTdHlsZXMgZnJvbSBcIi4vaW50ZXJhY3RpdmUubW9kdWxlLnNjc3NcIjtcblxuY29uc3Qgc3R5bGVzID0gc2FuaXRpemVTY3NzTW9kdWxlcyhpbnRlcmFjdGl2ZVN0eWxlcyk7XG5cbmV4cG9ydCB0eXBlICRJbnRlcmFjdGl2ZVByb3BzID0ge1xuICAvKipcbiAgICogU2hvd3MgdGhlIGVsZW1lbnQgYXMgdGhlIGFjdGl2ZSBvbmUsIGUuZy4gdGhlIHRyaWdnZXIgb2YgYSBtZW51IHRoYXQgaXNcbiAgICogb3BlbjogdGhlIGhpZ2hsaWdodCBzdGF5cyBvbiB3aXRoIGEgcmluZyBhcm91bmQgaXQuXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGtleWJvYXJkIGZvY3VzIGRyYXdzIHRoZSBmb2N1cyByaW5nLiBEZWZhdWx0cyB0byBgdHJ1ZWA7IG9wdCBvdXRcbiAgICogb25seSB3aGVyZSB0aGUgc3Vycm91bmRpbmcgY29udHJvbCBkcmF3cyBpdHMgb3duLlxuICAgKi9cbiAgZm9jdXNWaXNpYmxlT3V0bGluZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBJbnRlcmFjdGl2ZVBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogR2l2ZXMgdGhlIGVsZW1lbnQgdGhlIGFmZm9yZGFuY2Ugb2YgYW4gaWNvbiBidXR0b246IGEgaGlnaGxpZ2h0IG9uIGhvdmVyLFxuICAgKiBhIGZvY3VzIHJpbmcgZm9yIGtleWJvYXJkIHVzZXJzLCBhbmQgd2l0aCBgYWN0aXZlYCBhIHJpbmcgdGhhdCBtYXJrcyBpdFxuICAgKiBhcyB0aGUgYWN0aXZlIG9uZS5cbiAgICovXG4gICRpbnRlcmFjdGl2ZT86IGJvb2xlYW4gfCAkSW50ZXJhY3RpdmVQcm9wcztcbn07XG5cbmV4cG9ydCBjb25zdCBpbnRlcmFjdGl2ZVBsdWdpbiA9IGdldFBsdWdpbjxJbnRlcmFjdGl2ZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGdldEludGVyYWN0aXZlQ2xhc3NOYW1lcyhwcm9wcy4kaW50ZXJhY3RpdmUpXSxcbiAgJGludGVyYWN0aXZlOiB1bmRlZmluZWQsXG59KSk7XG5cbmNvbnN0IGdldEludGVyYWN0aXZlQ2xhc3NOYW1lcyA9IChpbnRlcmFjdGl2ZTogYm9vbGVhbiB8ICRJbnRlcmFjdGl2ZVByb3BzIHwgdW5kZWZpbmVkKTogSUNsYXNzTmFtZSA9PiB7XG4gIGlmICghaW50ZXJhY3RpdmUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgeyBhY3RpdmUgPSBmYWxzZSwgZm9jdXNWaXNpYmxlT3V0bGluZSA9IHRydWUgfSA9IGludGVyYWN0aXZlID09PSB0cnVlID8ge30gOiBpbnRlcmFjdGl2ZTtcblxuICByZXR1cm4gW3N0eWxlcy5pbnRlcmFjdGl2ZSwgeyBbc3R5bGVzLmFjdGl2ZV06IGFjdGl2ZSwgW3N0eWxlcy5pZ25vcmVGb2N1c1Zpc2libGVdOiAhZm9jdXNWaXNpYmxlT3V0bGluZSB9XTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBjbGlja2FibGVQbHVnaW4sIENsaWNrSGFuZGxlckRldGFpbHMgfSBmcm9tIFwiLi4vY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHsgZXhwZWN0RGVmaW5lZCwgc3RvcFByb3BhZ2F0aW9uIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vcG9wb3Zlci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgTWluaW1hbERpdiB9IGZyb20gXCIuLi8uLi9lbGVtZW50cy9taW5pbWFsLWRpdlwiO1xuXG5leHBvcnQgdHlwZSBQb3BvdmVyUGx1Z2luUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAkcG9wb3Zlcj86ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb3BvdmVySXNPcGVuQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoZmFsc2UpO1xuXG5leHBvcnQgY29uc3QgdXNlUG9wb3ZlcklzT3BlbiA9ICgpID0+IHVzZUNvbnRleHQocG9wb3ZlcklzT3BlbkNvbnRleHQpO1xuXG5leHBvcnQgY29uc3QgcG9wb3ZlclBsdWdpbiA9IGdldFBsdWdpbjxQb3BvdmVyUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xpY2thYmxlUGx1Z2luLCBSZWZQbHVnaW48YW55Pl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRwb3BvdmVyLCAkb25DbGljaywgJHJlZiB9ID0gcHJvcHM7XG4gIGNvbnN0IFtwb3BvdmVyQ29udGVudElzU2hvd24sIHNldFBvcG92ZXJDb250ZW50SXNTaG93bl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtyZWZlcmVuY2UsIHNldEVsZW1lbnRdID0gdXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY2xvc2VQb3BvdmVyID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0UG9wb3ZlckNvbnRlbnRJc1Nob3duKGZhbHNlKSwgW10pO1xuXG4gIGlmICghJHBvcG92ZXIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJHBvcG92ZXI6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkcG9wb3ZlcjogdW5kZWZpbmVkLFxuICAgICRyZWY6IFskcmVmLCBzZXRFbGVtZW50XSxcbiAgICAkb25DbGljazogKGRldGFpbHM6IENsaWNrSGFuZGxlckRldGFpbHMpID0+IHtcbiAgICAgIHNldFBvcG92ZXJDb250ZW50SXNTaG93bighcG9wb3ZlckNvbnRlbnRJc1Nob3duKTtcbiAgICAgICRvbkNsaWNrPy4oZGV0YWlscyk7XG4gICAgfSxcbiAgICBvbkNsaWNrOiBzdG9wUHJvcGFnYXRpb24sXG4gICAgJHdyYXBwZXI6IHtcbiAgICAgIENvbXBvbmVudDogUG9wb3ZlcldyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczoge1xuICAgICAgICBwb3BvdmVyOiB7XG4gICAgICAgICAgJHBvcG92ZXIsXG4gICAgICAgICAgaXNTaG93bjogcG9wb3ZlckNvbnRlbnRJc1Nob3duLFxuICAgICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgICBjbG9zZVBvcG92ZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59KTtcblxudHlwZSBQb3BvdmVyV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBwb3BvdmVyOiB7XG4gICAgcmVhZG9ubHkgJHBvcG92ZXI6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICByZWFkb25seSBpc1Nob3duOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IHJlZmVyZW5jZTogSFRNTERpdkVsZW1lbnQgfCBudWxsO1xuICAgIHJlYWRvbmx5IGNsb3NlUG9wb3ZlcjogVm9pZEZ1bmN0aW9uO1xuICB9O1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgUG9wb3ZlcldyYXBwZXJDb21wb25lbnQgPSAoeyBwb3BvdmVyLCBjaGlsZHJlbiB9OiBQb3BvdmVyV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHBvcG92ZXIsIGlzU2hvd24sIHJlZmVyZW5jZSwgY2xvc2VQb3BvdmVyIH0gPSBwb3BvdmVyO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtpc1Nob3duICYmXG4gICAgICAgIGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICA8UG9wb3Zlck92ZXJsYXlDb250ZW50XG4gICAgICAgICAgICB7Li4ue1xuICAgICAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgICAgICRwb3BvdmVyLFxuICAgICAgICAgICAgICBjbG9zZVBvcG92ZXIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+LFxuICAgICAgICAgIGRvY3VtZW50LmJvZHksXG4gICAgICAgICl9XG4gICAgICA8cG9wb3ZlcklzT3BlbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2lzU2hvd259PntjaGlsZHJlbn08L3BvcG92ZXJJc09wZW5Db250ZXh0LlByb3ZpZGVyPlxuICAgIDwvPlxuICApO1xufTtcblxudHlwZSBQb3BvdmVyT3ZlcmxheUNvbnRlbnRQcm9wcyA9IHtcbiAgcmVmZXJlbmNlOiBIVE1MRGl2RWxlbWVudCB8IG51bGw7XG4gICRwb3BvdmVyOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGNsb3NlUG9wb3ZlcjogVm9pZEZ1bmN0aW9uO1xufTtcblxuY29uc3QgUG9wb3Zlck92ZXJsYXlDb250ZW50ID0gKHByb3BzOiBQb3BvdmVyT3ZlcmxheUNvbnRlbnRQcm9wcykgPT4ge1xuICBjb25zdCB7ICRwb3BvdmVyLCBjbG9zZVBvcG92ZXIsIHJlZmVyZW5jZSB9ID0gcHJvcHM7XG4gIGNvbnN0IFtmbG9hdGluZywgc2V0RmxvYXRpbmddID0gdXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgeyBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmcoe1xuICAgIHBsYWNlbWVudDogXCJib3R0b21cIixcbiAgICBtaWRkbGV3YXJlOiBbZmxpcCgpLCBvZmZzZXQoOCksIHNoaWZ0KCldLFxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICBmbG9hdGluZyxcbiAgICAgIHJlZmVyZW5jZSxcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBjbG9zZVBvcG92ZXJGcm9tT3ZlcmxheSA9IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIHN0b3BQcm9wYWdhdGlvbihldmVudCk7XG4gICAgY2xvc2VQb3BvdmVyKCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8TWluaW1hbERpdlxuICAgICAgZGF0YS1wb3BvdmVyLW92ZXJsYXktdGVzdFxuICAgICAgJGFic29sdXRlXG4gICAgICAkY2xhc3NOYW1lPXtzdHlsZXMucG9wb3Zlcl9fb3ZlcmxheX1cbiAgICAgIG9uQ2xpY2s9e2Nsb3NlUG9wb3ZlckZyb21PdmVybGF5fVxuICAgID5cbiAgICAgIDxNaW5pbWFsRGl2XG4gICAgICAgICRyZWY9e3NldEZsb2F0aW5nfVxuICAgICAgICBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9XG4gICAgICAgIG9uQ2xpY2s9e3N0b3BQcm9wYWdhdGlvbn1cbiAgICAgICAgJGNsYXNzTmFtZT17c3R5bGVzLnBvcG92ZXJfX2NvbnRlbnR9XG4gICAgICA+XG4gICAgICAgIDxjb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIuUHJvdmlkZXIgdmFsdWU9e2Nsb3NlUG9wb3Zlcn0+eyRwb3BvdmVyKCl9PC9jb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIuUHJvdmlkZXI+XG4gICAgICA8L01pbmltYWxEaXY+XG4gICAgPC9NaW5pbWFsRGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciA9IGNyZWF0ZUNvbnRleHQ8Vm9pZEZ1bmN0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgdXNlQ2xvc2VQb3BvdmVyID0gKCkgPT5cbiAgZXhwZWN0RGVmaW5lZChcbiAgICB1c2VDb250ZXh0KGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciksXG4gICAgXCJUcmllZCB0byB1c2UgY2xvc2UgcG9wb3ZlciB3aGlsZSBjb250ZW50IGlzIG5vdCBzaG93biBpbnNpZGUgdGhlIHBvcG92ZXIgY29udGVudC5cIixcbiAgKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVJlZiwgdHlwZSBQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmUGx1Z2luIH0gZnJvbSBcIi4uL3JlZi9yZWZcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcsIHR5cGUgUGxhY2VtZW50IH0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdC1kb21cIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nQ29udGVudEFyZ3MgPSB7XG4gIHJlYWRvbmx5IGZsb2F0aW5nU3R5bGVzOiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICByZWFkb25seSBjb250ZW50UmVmOiBOb25OdWxsYWJsZTxSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nQ29udGVudEZhY3RvcnkgPSAoYXJnczogRmxvYXRpbmdDb250ZW50QXJncykgPT4gUmVhY3QuUmVhY3ROb2RlO1xuXG5leHBvcnQgdHlwZSAkRmxvYXRpbmdQcm9wcyA9IHtcbiAgcmVhZG9ubHkgcG9zaXRpb24/OiBQbGFjZW1lbnQ7XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IEZsb2F0aW5nQ29udGVudEZhY3Rvcnk7XG59O1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ1BsdWdpblByb3BzID0ge1xuICByZWFkb25seSBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcmVhZG9ubHkgJGZsb2F0aW5nPzogJEZsb2F0aW5nUHJvcHM7XG59O1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ1BsdWdpbiA9IFBsdWdpbjxGbG9hdGluZ1BsdWdpblByb3BzLCB1bmtub3duPjtcblxudHlwZSBGbG9hdGluZ1dyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgZmxvYXRpbmc6ICRGbG9hdGluZ1Byb3BzO1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRmxvYXRpbmdXcmFwcGVyQ29tcG9uZW50ID0gKHsgZmxvYXRpbmcsIGNvbnRyaWJ1dGVSZWYsIGNoaWxkcmVuIH06IEZsb2F0aW5nV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtyZWZlcmVuY2UsIHNldFJlZmVyZW5jZV0gPSB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbZmxvYXRpbmdFbCwgc2V0RmxvYXRpbmddID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb250cmlidXRlUmVmKHNldFJlZmVyZW5jZSk7XG5cbiAgY29uc3QgeyBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmcoe1xuICAgIHBsYWNlbWVudDogZmxvYXRpbmcucG9zaXRpb24gPz8gXCJib3R0b21cIixcbiAgICBtaWRkbGV3YXJlOiBbZmxpcCgpLCBvZmZzZXQoOCksIHNoaWZ0KCldLFxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICBmbG9hdGluZzogZmxvYXRpbmdFbCxcbiAgICAgIHJlZmVyZW5jZSxcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBmbG9hdGluZ0NvbnRlbnQgPSBmbG9hdGluZy5jb250ZW50KHsgZmxvYXRpbmdTdHlsZXMsIGNvbnRlbnRSZWY6IHNldEZsb2F0aW5nIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtmbG9hdGluZ0NvbnRlbnQgPyBjcmVhdGVQb3J0YWwoZmxvYXRpbmdDb250ZW50LCBkb2N1bWVudC5ib2R5KSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZmxvYXRpbmdQbHVnaW48VD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48RmxvYXRpbmdQbHVnaW5Qcm9wcywgW1JlZlBsdWdpbjxUPl0+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGZsb2F0aW5nIH0gPSBwcm9wcztcblxuICAgIGlmICgkZmxvYXRpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHsgJGZsb2F0aW5nOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGZsb2F0aW5nOiB1bmRlZmluZWQsXG4gICAgICAkd3JhcHBlcjoge1xuICAgICAgICBDb21wb25lbnQ6IEZsb2F0aW5nV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHsgZmxvYXRpbmc6ICRmbG9hdGluZyB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgc3R5bGVzIGZyb20gXCIuL2ludmlzaWJsZS1iYWNrZHJvcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHR5cGUgSW52aXNpYmxlQmFja2Ryb3BQbHVnaW5Qcm9wcyA9IHtcbiAgJGludmlzaWJsZUJhY2tkcm9wPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZpc2libGVCYWNrZHJvcFBsdWdpbiA9IGdldFBsdWdpbjxJbnZpc2libGVCYWNrZHJvcFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRpbnZpc2libGVCYWNrZHJvcCwgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkaW52aXNpYmxlQmFja2Ryb3ApIHtcbiAgICByZXR1cm4geyAkaW52aXNpYmxlQmFja2Ryb3A6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkaW52aXNpYmxlQmFja2Ryb3A6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgc3R5bGVzLmludmlzaWJsZUJhY2tkcm9wXSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMsIHR5cGUgQ29udHJpYnV0ZVJlZiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHJvcERvd25NZW51LCB0eXBlIERyb3BEb3duTWVudVNwZWMgfSBmcm9tIFwiQGs4c2xlbnMvZHJvcC1kb3duLW1lbnUtY29udHJhY3RzXCI7XG5pbXBvcnQgeyBjc3NOYW1lcywgb25UcmlnZ2VyIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBhbmNob3JhYmxlQ2xhc3NOYW1lLCBBbmNob3JOYW1lUHJvdmlkZXIsIHVzZUFuY2hvck5hbWVGb3IgfSBmcm9tIFwiLi4vYW5jaG9yL2FuY2hvclwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgfSBmcm9tIFwiLi4vY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBQb3NpdGlvbjJkIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcbmltcG9ydCB0eXBlIHsgY3Vyc29yUGx1Z2luIH0gZnJvbSBcIi4uL2N1cnNvci9jdXJzb3JcIjtcbmltcG9ydCB7IHR5cGUgZW5hYmxlZFBsdWdpbiwgaXNEaXNhYmxlZCB9IGZyb20gXCIuLi9lbmFibGVkL2VuYWJsZWRcIjtcbmltcG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4uL29uLW91dHNpZGUtY2xpY2svb24tb3V0c2lkZS1jbGlja1wiO1xuXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVQbHVnaW5Qcm9wcyA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJlYWRvbmx5IHRhYkluZGV4PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGRyb3AtZG93biBtZW51IHRvIHRoZSBlbGVtZW50LiBDcmVhdGUgdGhlIHZhbHVlIHdpdGggYGRyb3BEb3duTWVudShraW5kLCBvcHRpb25zPylgXG4gICAqIGZyb20gYEBrOHNsZW5zL2Ryb3AtZG93bi1tZW51LWNvbnRyYWN0c2A7IHRoZSBpdGVtcyBjb21lIGZyb20gdGhlIGNvbnRyaWJ1dGlvbnMgcmVnaXN0ZXJlZCBmb3JcbiAgICogdGhlIGtpbmQuXG4gICAqXG4gICAqIFRoZSBtZW51IHBvc2l0aW9ucyBpdHNlbGYgYWdhaW5zdCB0aGUgbmVhcmVzdCBgJGFuY2hvcmAgYXJvdW5kIHRoZSBlbGVtZW50LCBvciBhZ2FpbnN0IHRoZVxuICAgKiBlbGVtZW50IGl0c2VsZiB3aGVuIHRoZXJlIGlzIG5vbmUuIERlY2xhcmUgYCRhbmNob3JgIG9uIGFuIGVuY2xvc2luZyBlbGVtZW50IHRvIGhhdmUgdGhlIG1lbnVcbiAgICogbGluZSB1cCB3aXRoIHRoYXQgaW5zdGVhZCwgYXMgYSBtZW51IG9wZW5lZCBmcm9tIG9uZSBoYWxmIG9mIGEgc3BsaXQgYnV0dG9uIGxpbmVzIHVwIHdpdGggdGhlXG4gICAqIHdob2xlIG9mIGl0LlxuICAgKlxuICAgKiBUaGUgbWVudSB0YWtlcyBmb2N1cyBhcyBpdCBvcGVucywgaXRzIGZpcnN0IGl0ZW0gYmVjb21pbmcgdGhlIGN1cnJlbnQgb25lIFx1MjAxNCBleGNlcHQgd2hlbiBpdFxuICAgKiBvcGVucyBieSBiZWluZyBob3ZlcmVkLCB3aGVyZSBmb2N1cyBzdGF5cyBvbiB0aGUgZWxlbWVudDogdGhlIHJvdyB0aGUgcG9pbnRlciByZXN0cyBvbiBpcyB3aGF0XG4gICAqIHRoZSB1c2VyIGlzIGxvb2tpbmcgYXQuIEZvY3VzIHJldHVybnMgdG8gdGhlIGVsZW1lbnQgb25jZSB0aGUgbWVudSBpcyBnb25lLiBBIG1lbnUgdGhhdCBvcGVucyBvblxuICAgKiBob3ZlcmluZyBvcGVucyB3aXRoIEFycm93UmlnaHQgYXMgd2VsbCwgdGFraW5nIGZvY3VzIHRoZW4sIGFuZCBjbG9zZXMgd2l0aCBBcnJvd0xlZnQgZnJvbVxuICAgKiBhbnl3aGVyZSB3aXRoaW4gaXQsIHNvIGEgbWVudSBoZWxkIGJ5IGEgbWVudSByb3cgaXMgcmVhY2hhYmxlIHdpdGhvdXQgYSBwb2ludGVyLlxuICAgKlxuICAgKiBSZXF1aXJlcyBgZHJvcERvd25NZW51RmVhdHVyZWAgb2YgYEBsZW5zYXBwL2Ryb3AtZG93bi1tZW51YCB0byBiZSByZWdpc3RlcmVkOiB0aGUgbWVudVxuICAgKiBjb21wb25lbnQgaXMgcmVzb2x2ZWQgdGhyb3VnaCBhbiBpbmplY3Rpb24gdG9rZW4gdGhpcyBwYWNrYWdlIGRvZXMgbm90IGltcGxlbWVudC5cbiAgICovXG4gIHJlYWRvbmx5ICRkcm9wRG93bk1lbnU/OiBEcm9wRG93bk1lbnVTcGVjO1xufTtcblxuY29uc3QgaG92ZXJDbG9zZURlbGF5SW5NaWxsaXNlY29uZHMgPSAyMDA7XG5cbnR5cGUgRHJvcERvd25NZW51V3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBkcm9wRG93bk1lbnU6IERyb3BEb3duTWVudVNwZWM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRHJvcERvd25NZW51V3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGRyb3BEb3duTWVudSxcbiAgY29udHJpYnV0ZVJlZixcbiAgY29udHJpYnV0ZVByb3BzLFxuICBjaGlsZHJlbixcbn06IERyb3BEb3duTWVudVdyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAvLyBXaGV0aGVyIHRoZSBtZW51IHRha2VzIGZvY3VzIGFzIGl0IG9wZW5zLiBPbmx5IGEgbWVudSB0aGUgcG9pbnRlciBvcGVuZWQgYnkgcmVzdGluZyBvbiB0aGVcbiAgLy8gZWxlbWVudCBsZWF2ZXMgaXQgYmU6IHRoZSBrZXlib2FyZCBvcGVuaW5nIG9uZSwgb3IgYSBjbGljaywgaXMgdGhlIHVzZXIgYXNraW5nIGZvciB0aGUgbWVudSxcbiAgLy8gYW5kIGl0cyBmaXJzdCBpdGVtIGlzIHdoZXJlIHRoZXkgZ28gb24gZnJvbS5cbiAgY29uc3QgW3Rha2VzRm9jdXMsIHNldFRha2VzRm9jdXNdID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFtjdXJzb3IsIHNldEN1cnNvcl0gPSB1c2VTdGF0ZTxQb3NpdGlvbjJkIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBjbG9zZVRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBvblJpZ2h0VHJpZ2dlciA9IHVzZVN5bmNJbmplY3Qob25SaWdodFRyaWdnZXJJbmplY3RhYmxlKTtcblxuICBjb25zdCBlbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IG1lbnVSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICBjb250cmlidXRlUmVmKFxuICAgIHVzZUNhbGxiYWNrKChlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGVsZW1lbnRSZWYuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgfSwgW10pLFxuICApO1xuXG4gIGNvbnN0IHRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUYWtlc0ZvY3VzKHRydWUpO1xuICAgIHNldElzT3Blbigod2FzT3BlbikgPT4gIXdhc09wZW4pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgY2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gVGhlIGVsZW1lbnQgdGhlIG1lbnUgYmVsb25ncyB0byB0YWtlcyBmb2N1cyBiYWNrIHdoZW4gZm9jdXMgaXMgaW4gdGhlIG1lbnUgdGhhdCBpcyBjbG9zaW5nLFxuICAgIC8vIG9yIG5vd2hlcmUgYXQgYWxsOiB3aGF0ZXZlciB0aGUgdXNlciBkb2VzIG5leHQsIHRoZXkgZG8gZnJvbSB3aGVyZSB0aGV5IHdlcmUuIERlY2lkZWQgaGVyZSxcbiAgICAvLyB3aGlsZSBpdCBpcyBzdGlsbCBjbGVhciB3aGVyZSBmb2N1cyB3YXMsIHJhdGhlciB0aGFuIG9uY2UgdGhlIG1lbnUgaGFzIGdvbmUuXG4gICAgY29uc3QgZm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICBlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYuY3VycmVudCA9XG4gICAgICBmb2N1c2VkID09PSBudWxsIHx8IGZvY3VzZWQgPT09IGRvY3VtZW50LmJvZHkgfHwgbWVudVJlZi5jdXJyZW50Py5jb250YWlucyhmb2N1c2VkKSA9PT0gdHJ1ZTtcblxuICAgIHNldElzT3BlbihmYWxzZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBjYW5jZWxTY2hlZHVsZWRDbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoY2xvc2VUaW1lclJlZi5jdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFyVGltZW91dChjbG9zZVRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIGNvbnN0IG9wZW4gPSB1c2VDYWxsYmFjayhcbiAgICAob3BlbmVkQnk6IFwicG9pbnRlclwiIHwgXCJrZXlib2FyZFwiKSA9PiB7XG4gICAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgICAgc2V0VGFrZXNGb2N1cyhvcGVuZWRCeSA9PT0gXCJrZXlib2FyZFwiKTtcbiAgICAgIHNldElzT3Blbih0cnVlKTtcbiAgICB9LFxuICAgIFtjYW5jZWxTY2hlZHVsZWRDbG9zZV0sXG4gICk7XG5cbiAgY29uc3Qgc2NoZWR1bGVDbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoY2xvc2UsIGhvdmVyQ2xvc2VEZWxheUluTWlsbGlzZWNvbmRzKTtcbiAgfSwgW2NhbmNlbFNjaGVkdWxlZENsb3NlLCBjbG9zZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiBjYW5jZWxTY2hlZHVsZWRDbG9zZSwgW2NhbmNlbFNjaGVkdWxlZENsb3NlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBBIG1lbnUgdGhhdCBpcyBkaXNtaXNzZWQgcmF0aGVyIHRoYW4gY2xvc2VkIFx1MjAxNCBjbGlja2VkIGF3YXkgZnJvbSBcdTIwMTQgbGVhdmVzIGZvY3VzIHdoZXJldmVyIHRoZVxuICAgIC8vIHVzZXIgcHV0IGl0LlxuICAgIGVsZW1lbnRUYWtlc0ZvY3VzQmFja1JlZi5jdXJyZW50ID0gZmFsc2U7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKCFlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIERlZmVycmVkIHBhc3Qgd2hhdCBpcyBiZWluZyB0YWtlbiBhd2F5OiB0aGUgZWxlbWVudCBtYXkgYmUgZ29pbmcgd2l0aCB0aGUgbWVudSwgYSBtZW51XG4gICAgICAvLyBpbnNpZGUgYSBtZW51IHRoYXQgaXMgY2xvc2luZyB0b28sIGFuZCBvbmx5IHRoZW4gaXMgaXQgY2xlYXIgd2hldGhlciBpdCBpcyBzdGlsbCB0aGVyZSB0b1xuICAgICAgLy8gdGFrZSBmb2N1cyBiYWNrLiBBbnl0aGluZyB0aGF0IHRvb2sgZm9jdXMgaW4gdGhlIG1lYW50aW1lIHdhcyBnaXZlbiBpdCBvbiBwdXJwb3NlLCBhbmQgYVxuICAgICAgLy8gbWVudSBjbG9zaW5nIGlzIG5vIHJlYXNvbiB0byB0YWtlIGl0IGF3YXkgYWdhaW4uXG4gICAgICB2b2lkIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuICAgICAgICBjb25zdCBmb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgICAgICBpZiAoZWxlbWVudD8uaXNDb25uZWN0ZWQgJiYgKGZvY3VzZWQgPT09IG51bGwgfHwgZm9jdXNlZCA9PT0gZG9jdW1lbnQuYm9keSkpIHtcbiAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gIH0sIFtpc09wZW5dKTtcblxuICAvLyBUaGUgbmVhcmVzdCBhbmNob3IgYXJvdW5kIHRoZSBlbGVtZW50LCB3aGljaCBpcyB0aGUgZWxlbWVudCBpdHNlbGYgd2hlbiBpdCBkZWNsYXJlcyBgJGFuY2hvcmA7XG4gIC8vIGFuIGVsZW1lbnQgd2l0aCBub25lIGFyb3VuZCBpdCBhbmNob3JzIGl0cyBtZW51IGl0c2VsZiwgc28gYSBtZW51IG5ldmVyIGZhaWxzIHRvIG9wZW4gZm9yIHRoZVxuICAvLyB3YW50IG9mIG9uZS4gTmFtZWQgb25seSB3aGlsZSB0aGUgbWVudSBpcyBvcGVuLCB3aGljaCBpcyB0aGUgb25seSB0aW1lIGFueXRoaW5nIG5lZWRzIHRoZSBuYW1lLlxuICBjb25zdCBhbmNob3JOYW1lID0gdXNlQW5jaG9yTmFtZUZvcihlbGVtZW50UmVmLCBpc09wZW4pO1xuXG4gIGNvbnN0IG9wZW5PbiA9IGRyb3BEb3duTWVudS5vcGVuT24gPz8gXCJjbGlja1wiO1xuXG4gIGNvbnN0IGNsb3NlT25BcnJvd0xlZnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dMZWZ0XCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGNsb3NlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2xvc2VdLFxuICApO1xuXG4gIC8vIE1hcmtzIHRoZSBlbGVtZW50IGFuZCwgYmVsb3csIHRoZSBtZW51IGl0IG9wZW5zIGFzIG9uZSB0aGluZyBmb3Igb3V0c2lkZS1jbGljayBwdXJwb3Nlcy5cbiAgY29uc3Qgb3V0c2lkZUNsaWNrTWFya2luZ1Byb3BzID0gdXNlT25PdXRzaWRlQ2xpY2soXG4gICAgdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgICAgfVxuICAgIH0sIFtpc09wZW5dKSxcbiAgKTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIC4uLm91dHNpZGVDbGlja01hcmtpbmdQcm9wcyxcbiAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJtZW51XCIsXG5cbiAgICAuLi4ob3Blbk9uID09PSBcImNsaWNrXCIgJiYge1xuICAgICAgb25DbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0b2dnbGUoKTtcbiAgICAgIH0sXG5cbiAgICAgIC8vIEEga2V5IHByZXNzIHRoZSBlbGVtZW50IGFuc3dlcnMgd2l0aCBhIG1lbnUgaXMgYW5zd2VyZWQgaGVyZSBhbmQgbm93aGVyZSBlbHNlLFxuICAgICAgLy8gZXhhY3RseSBhcyBpdHMgY2xpY2sgaXM6IHdoYXRldmVyIGVuY2xvc2VzIHRoZSBlbGVtZW50IChhIG1lbnUgcm93IHdpdGggYW5cbiAgICAgIC8vIGFjdGlvbiBvZiBpdHMgb3duLCBzYXkpIG11c3Qgbm90IHRha2UgdGhlIHNhbWUgcHJlc3MgZm9yIGJlaW5nIGFjdGl2YXRlZCB0b28uXG4gICAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBvblRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0b2dnbGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgLi4uKG9wZW5PbiA9PT0gXCJyaWdodC1jbGlja1wiICYmIHtcbiAgICAgIG9uQ29udGV4dE1lbnU6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy8gQSBtZW51IG9wZW5lZCBieSByaWdodC1jbGlja2luZyBiZWxvbmdzIGF0IHRoZSBjdXJzb3IgcmF0aGVyIHRoYW4gYXQgdGhlIGVsZW1lbnQuXG4gICAgICAgIHNldEN1cnNvcih7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfSk7XG4gICAgICAgIHRvZ2dsZSgpO1xuICAgICAgfSxcblxuICAgICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgb25SaWdodFRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAvLyBBIG1lbnUgdGhlIGtleWJvYXJkIG9wZW5lZCBiZWxvbmdzIGF0IHRoZSBlbGVtZW50LCB3aGVyZXZlciB0aGUgY3Vyc29yIGxhc3Qgd2FzLlxuICAgICAgICAgIHNldEN1cnNvcih1bmRlZmluZWQpO1xuICAgICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICAuLi4ob3Blbk9uID09PSBcImhvdmVyXCIgJiYge1xuICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBvcGVuKFwicG9pbnRlclwiKSxcbiAgICAgIG9uTW91c2VMZWF2ZTogc2NoZWR1bGVDbG9zZSxcblxuICAgICAgLy8gQSBtZW51IHRoYXQgb3BlbnMgb24gaG92ZXJpbmcgd291bGQgYmUgb3V0IG9mIHRoZSBrZXlib2FyZCdzIHJlYWNoIG90aGVyd2lzZS4gU2lkZXdheXNcbiAgICAgIC8vIGludG8gaXQsIHNpbmNlIHRoYXQgaXMgd2hlcmUgc3VjaCBhIG1lbnUgc2l0czogYmVzaWRlIHRoZSBlbGVtZW50IGl0IGJlbG9uZ3MgdG8uIEZvY3VzXG4gICAgICAvLyBmb2xsb3dzIG9uIGl0cyBvd24sIHRoZSBtZW51IHRha2luZyBpdCBhcyBpdCBhcHBlYXJzIFx1MjAxNCBvciwgdGhlIHBvaW50ZXIgaGF2aW5nIG9wZW5lZCBpdFxuICAgICAgLy8gYWxyZWFkeSwgYXMgdGhlIGtleWJvYXJkIHN0ZXBzIGludG8gaXQuXG4gICAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93UmlnaHRcIikge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgb3BlbihcImtleWJvYXJkXCIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7Y2hpbGRyZW59XG5cbiAgICAgIHtpc09wZW4gJiYgKFxuICAgICAgICAvLyBNYXJrZWQgYXMgaW5zaWRlIGZvciB0aGUgb3V0c2lkZS1jbGljayBkZXRlY3Rpb24gYWJvdmU6IHRoZSBtZW51IGlzIGEgc2libGluZyBvZiB0aGVcbiAgICAgICAgLy8gZWxlbWVudCBpbiB0aGUgRE9NLCBidXQgcGFydCBvZiB0aGUgc2FtZSB0aGluZyBhcyBmYXIgYXMgYSB1c2VyIGlzIGNvbmNlcm5lZC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQSBjbGljayBsYW5kaW5nIG9uIHRoZSBtZW51IGlzIGEgY2xpY2sgb24gdGhlIG1lbnUgYW5kIG5vdGhpbmcgZWxzZSwgc28gaXQgc3RvcHMgaGVyZVxuICAgICAgICAvLyByYXRoZXIgdGhhbiBnb2luZyBvbiB0byB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCB0aGUgbWVudSB3YXMgb3BlbmVkIGZyb20gXHUyMDE0IGEgcm93XG4gICAgICAgIC8vIG9mIGEgbWVudSBvZiBpdHMgb3duLCBzYXksIHdoaWNoIHdvdWxkIHRha2UgaXQgZm9yIHRoZSByb3cgYmVpbmcgYWN0aXZhdGVkLiBPbmx5XG4gICAgICAgIC8vIGBjbGlja2Agc3RvcHM6IHRoZSBvdXRzaWRlLWNsaWNrIGRldGVjdGlvbiBhYm92ZSB3b3JrcyBvbiBgcG9pbnRlcmRvd25gLlxuICAgICAgICAvL1xuICAgICAgICAvLyBGb2N1cyBsYW5kaW5nIGluIHRoZSBtZW51IGlzIGxpa2V3aXNlIGZvY3VzIGluIHRoZSBtZW51IGFuZCBub3RoaW5nIGVsc2UuIEEgdHJlZSByb3dcbiAgICAgICAgLy8gZW5jbG9zaW5nIHRoZSBlbGVtZW50IHdvdWxkIG90aGVyd2lzZSB0YWtlIGl0IGZvciB0aGUgcm93IGl0c2VsZiBiZWluZyBmb2N1c2VkLCBhbmRcbiAgICAgICAgLy8gdGFrZSBmb2N1cyBzdHJhaWdodCBiYWNrIGZyb20gdGhlIG1lbnUgcm93IHRoZSBwb2ludGVyIGhhZCBqdXN0IHB1dCBpdCBvbiBcdTIwMTQgYW5kIHNpbmNlXG4gICAgICAgIC8vIHRoZSBoaWdobGlnaHQgb2YgYSBtZW51IHJvdyBmb2xsb3dzIGZvY3VzLCB0aGF0IGlzIGEgbWVudSB0aGF0IG5ldmVyIGxvb2tzIHBvaW50ZWQgYXQuXG4gICAgICAgIC8vIE9ubHkgZm9jdXMgc3RvcHMsIG5vdCBibHVyOiB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCB0ZWxscyBmb2N1cyBsZWF2aW5nIGl0IGFwYXJ0XG4gICAgICAgIC8vIGZyb20gZm9jdXMgbW92aW5nIHdpdGhpbiBpdCBieSB3aGVyZSBmb2N1cyB3ZW50LCBhbmQgaGFzIHRvIGhlYXIgb2YgaXQgbGVhdmluZyBmcm9tIHRoZVxuICAgICAgICAvLyBtZW51IGFzIG11Y2ggYXMgZnJvbSBhbnl3aGVyZSBlbHNlLlxuICAgICAgICA8c3BhblxuICAgICAgICAgIHsuLi5vdXRzaWRlQ2xpY2tNYXJraW5nUHJvcHN9XG4gICAgICAgICAgcmVmPXttZW51UmVmfVxuICAgICAgICAgIHN0eWxlPXtkaXNwbGF5Q29udGVudHN9XG4gICAgICAgICAgb25DbGljaz17c3RvcFByb3BhZ2F0aW9ufVxuICAgICAgICAgIG9uRm9jdXM9e3N0b3BQcm9wYWdhdGlvbn1cbiAgICAgICAgICAvLyBTaWRld2F5cyBiYWNrIG91dCBvZiBhIG1lbnUgdGhhdCBvcGVuZWQgc2lkZXdheXMsIGZyb20gd2hlcmV2ZXIgaW4gaXQgZm9jdXMgaGFwcGVucyB0b1xuICAgICAgICAgIC8vIGJlLiBJdCBzdG9wcyBoZXJlLCBzbyB0aGUgbWVudSB0aGlzIG9uZSB3YXMgb3BlbmVkIGZyb20gaXMgbGVmdCBhcyBpdCBpcyByYXRoZXIgdGhhblxuICAgICAgICAgIC8vIGNsb3NpbmcgYWxvbmcgd2l0aCBpdCBcdTIwMTQgb25lIHN0ZXAgb3V0IHBlciBwcmVzcy4gT25seSBzdWNoIGEgbWVudTogZWxzZXdoZXJlIHRoZSBrZXlcbiAgICAgICAgICAvLyBiZWxvbmdzIHRvIHdoYXRldmVyIHRoZSBtZW51IGhvbGRzLCBhbmQgRXNjYXBlIGlzIGhvdyBhIG1lbnUgaXMgZGlzbWlzc2VkLlxuICAgICAgICAgIG9uS2V5RG93bj17b3Blbk9uID09PSBcImhvdmVyXCIgPyBjbG9zZU9uQXJyb3dMZWZ0IDogdW5kZWZpbmVkfVxuICAgICAgICA+XG4gICAgICAgICAgPEFuY2hvck5hbWVQcm92aWRlciB2YWx1ZT17YW5jaG9yTmFtZX0+XG4gICAgICAgICAgICA8RHJvcERvd25NZW51XG4gICAgICAgICAgICAgIHNwZWM9e2Ryb3BEb3duTWVudX1cbiAgICAgICAgICAgICAgYW5jaG9yUG9pbnQ9e29wZW5PbiA9PT0gXCJyaWdodC1jbGlja1wiID8gY3Vyc29yIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICB0YWtlc0ZvY3VzPXt0YWtlc0ZvY3VzfVxuICAgICAgICAgICAgICBvbkNsb3NlPXtjbG9zZX1cbiAgICAgICAgICAgICAgb25NZW51SG92ZXJDaGFuZ2U9e1xuICAgICAgICAgICAgICAgIG9wZW5PbiA9PT0gXCJob3ZlclwiXG4gICAgICAgICAgICAgICAgICA/IChtZW51SXNIb3ZlcmVkKSA9PiAobWVudUlzSG92ZXJlZCA/IGNhbmNlbFNjaGVkdWxlZENsb3NlKCkgOiBzY2hlZHVsZUNsb3NlKCkpXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQW5jaG9yTmFtZVByb3ZpZGVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufTtcblxuY29uc3QgZGlzcGxheUNvbnRlbnRzID0geyBkaXNwbGF5OiBcImNvbnRlbnRzXCIgfSBhcyBjb25zdDtcblxuY29uc3Qgc3RvcFByb3BhZ2F0aW9uID0gKGV2ZW50OiBSZWFjdC5TeW50aGV0aWNFdmVudCkgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbmV4cG9ydCBjb25zdCBkcm9wRG93bk1lbnVQbHVnaW4gPSBnZXRQbHVnaW48XG4gIERyb3BEb3duTWVudVBsdWdpblByb3BzLFxuICBbdHlwZW9mIGVuYWJsZWRQbHVnaW4sIHR5cGVvZiBjdXJzb3JQbHVnaW4sIHR5cGVvZiBjbGFzc05hbWVQbHVnaW5dXG4+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRkcm9wRG93bk1lbnUsICRjdXJzb3IsICRjbGFzc05hbWUsIHJvbGUgfSA9IHByb3BzIGFzIHR5cGVvZiBwcm9wcyAmIFJlYWN0LkhUTUxQcm9wczxIVE1MRWxlbWVudD47XG5cbiAgaWYgKCRkcm9wRG93bk1lbnUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7ICRkcm9wRG93bk1lbnU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3Qgb3BlbnNPbkNsaWNrID0gKCRkcm9wRG93bk1lbnUub3Blbk9uID8/IFwiY2xpY2tcIikgPT09IFwiY2xpY2tcIjtcbiAgLy8gUmVhZCBmcm9tIHdoYXQgdGhlIGVsZW1lbnQgd2FzIGdpdmVuOiB0aGlzIHBsdWdpbiBydW5zIGJlZm9yZSB0aGUgb25lIHRoYXQgdHVybnMgaXQgaW50b1xuICAvLyB0aGUgYGRpc2FibGVkYCBwcm9wLlxuICBjb25zdCBjYW5ub3RCZVVzZWQgPSBpc0Rpc2FibGVkKHByb3BzKTtcblxuICByZXR1cm4ge1xuICAgICRkcm9wRG93bk1lbnU6IHVuZGVmaW5lZCxcblxuICAgIC4uLigkZHJvcERvd25NZW51Lm9wZW5PbiA9PT0gXCJob3ZlclwiID8ge30gOiB7IHRhYkluZGV4OiBwcm9wcy50YWJJbmRleCA/PyAwIH0pLFxuXG4gICAgLy8gQW4gZWxlbWVudCB0aGF0IGFuc3dlcnMgYSBjbGljayB3aXRoIGEgbWVudSBpcyBhIGJ1dHRvbiwgYW5kIHRoZSBjdXJzb3IgaXMgaG93IGl0IHNheXMgc29cbiAgICAvLyAtLSBvciBzYXlzIHRoYXQgaXQgY2Fubm90IHJpZ2h0IG5vdy4gQm90aCB3b3VsZCBvdGhlcndpc2UgY29tZSBmcm9tIGEgY2xpY2sgaGFuZGxlciBzdWNoIGFuXG4gICAgLy8gZWxlbWVudCBoYXMgbm8gcmVhc29uIHRvIGhhdmUuIE9ubHkgYSBjbGljazogc29tZXRoaW5nIHJpZ2h0LWNsaWNrZWQgaXMgbm90IGEgYnV0dG9uLCBhbmQgYVxuICAgIC8vIHJvdyB0aGF0IHJldmVhbHMgYSBtZW51IG9uIGhvdmVyIGlzIGEgcm93LlxuICAgIC4uLihvcGVuc09uQ2xpY2sgJiYge1xuICAgICAgcm9sZTogcm9sZSA/PyBcImJ1dHRvblwiLFxuICAgICAgJGN1cnNvcjogJGN1cnNvciA/PyAoY2Fubm90QmVVc2VkID8gXCJub3QtYWxsb3dlZFwiIDogXCJwb2ludGVyXCIpLFxuICAgIH0pLFxuXG4gICAgLy8gVGhlIGVsZW1lbnQgbWF5IHR1cm4gb3V0IHRvIGJlIHRoZSBhbmNob3Igb2YgaXRzIG93biBtZW51LCB3aGljaCBvbmx5IGl0cyB3cmFwcGVyIGNhbiB0ZWxsLFxuICAgIC8vIHJlbmRlcmluZyB3aXRoaW4gd2hhdGV2ZXIgYW5jaG9ycyBlbmNsb3NlIHRoZSBlbGVtZW50OyB0aGlzIGxldHMgdGhlIG5hbWUgaXQgaXMgdGhlbiBnaXZlblxuICAgIC8vIHRha2UgZWZmZWN0LlxuICAgICRjbGFzc05hbWU6IGNzc05hbWVzKCRjbGFzc05hbWUsIGFuY2hvcmFibGVDbGFzc05hbWUpLFxuXG4gICAgJHdyYXBwZXI6IHtcbiAgICAgIENvbXBvbmVudDogRHJvcERvd25NZW51V3JhcHBlckNvbXBvbmVudCxcbiAgICAgIHByb3BzOiB7IGRyb3BEb3duTWVudTogJGRyb3BEb3duTWVudSB9LFxuICAgIH0sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVByb3BzLCB0eXBlIENvbnRyaWJ1dGVSZWYgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IGNzc05hbWVzIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlSWQsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9hbmNob3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgUG9zaXRpb24yZCB9IGZyb20gXCIuLi9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgeyB0eXBlIFRTaGlydFNpemUsIHRTaGlydFNpemVJblBpeGVscyB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgY29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vY29sb3IvY29sb3JcIjtcbmltcG9ydCB0eXBlIHsgYmFja2dyb3VuZENvbG9yUGx1Z2luIH0gZnJvbSBcIi4uL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvclwiO1xuaW1wb3J0IHR5cGUgeyBib3JkZXJQbHVnaW4gfSBmcm9tIFwiLi4vYm9yZGVyL2JvcmRlclwiO1xuaW1wb3J0IHR5cGUgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4uL3BhZGRpbmcvcGFkZGluZ1wiO1xuaW1wb3J0IHR5cGUgeyBtYXJnaW5QbHVnaW4gfSBmcm9tIFwiLi4vbWFyZ2luL21hcmdpblwiO1xuaW1wb3J0IHR5cGUgeyBvdmVyZmxvd1BsdWdpbiB9IGZyb20gXCIuLi9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG4vKipcbiAqIFdoZXJlIGFuIGVsZW1lbnQgc2l0cyByZWxhdGl2ZSB0byBpdHMgYW5jaG9yOiBhIHNpZGUgb2YgdGhlIGFuY2hvciwgb3B0aW9uYWxseSByZWZpbmVkIHdpdGggaG93XG4gKiB0aGUgZWxlbWVudCBleHRlbmRzIGFsb25nIHRoYXQgc2lkZS4gQSBiYXJlIHNpZGUgY2VudGVycyB0aGUgZWxlbWVudCBvbiBpdDsgYHNwYW4tPGRpcmVjdGlvbj5gXG4gKiBhbGlnbnMgdGhlaXIgZWRnZXMgYW5kIGxldHMgdGhlIGVsZW1lbnQgZXh0ZW5kIHRvd2FyZCB0aGF0IGRpcmVjdGlvbi5cbiAqXG4gKiBXaGVuIHRoZSBlbGVtZW50IHdvdWxkIG5vdCBmaXQgdGhlIHZpZXdwb3J0LCBpdCBmYWxscyBiYWNrIHRvIHRoZSBtaXJyb3JlZCBwb3NpdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIEFuY2hvclBvc2l0aW9uID1cbiAgfCBcInRvcFwiXG4gIHwgXCJib3R0b21cIlxuICB8IFwibGVmdFwiXG4gIHwgXCJyaWdodFwiXG4gIHwgXCJ0b3Agc3Bhbi1sZWZ0XCJcbiAgfCBcInRvcCBzcGFuLXJpZ2h0XCJcbiAgfCBcImJvdHRvbSBzcGFuLWxlZnRcIlxuICB8IFwiYm90dG9tIHNwYW4tcmlnaHRcIlxuICB8IFwibGVmdCBzcGFuLXRvcFwiXG4gIHwgXCJsZWZ0IHNwYW4tYm90dG9tXCJcbiAgfCBcInJpZ2h0IHNwYW4tdG9wXCJcbiAgfCBcInJpZ2h0IHNwYW4tYm90dG9tXCI7XG5cbi8qKlxuICogRWl0aGVyIGEgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIG5lYXJlc3QgYW5jZXN0b3IgYCRhbmNob3JgLCBvciB0aGUgc2FtZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBhXG4gKiBwb2ludCBpbiB0aGUgdmlld3BvcnQuXG4gKi9cbmV4cG9ydCB0eXBlIEFuY2hvcmVkQXQgPVxuICB8IEFuY2hvclBvc2l0aW9uXG4gIHwge1xuICAgICAgcmVhZG9ubHkgcG9zaXRpb246IEFuY2hvclBvc2l0aW9uO1xuXG4gICAgICAvKiogSG93IGZhciBmcm9tIHRoZSBhbmNob3IgdGhlIGVsZW1lbnQgc2l0cy4gRGVmYXVsdHMgdG8gYFwieHNcImAuICovXG4gICAgICByZWFkb25seSBnYXA/OiBUU2hpcnRTaXplO1xuXG4gICAgICAvKiogU2l0IGF0IHRoaXMgdmlld3BvcnQgcG9pbnQgaW5zdGVhZCBvZiBhdCBhbiBhbmNob3IuICovXG4gICAgICByZWFkb25seSBwb2ludD86IFBvc2l0aW9uMmQ7XG4gICAgfTtcblxuY29uc3QgZGVmYXVsdEdhcDogVFNoaXJ0U2l6ZSA9IFwieHNcIjtcblxuZXhwb3J0IHR5cGUgQW5jaG9yUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBNYWtlcyB0aGUgZWxlbWVudCBhbiBhbmNob3IgZm9yIHRoZSBlbGVtZW50cyBvZiBpdHMgc3VidHJlZSB0aGF0IGRlY2xhcmUge0BsaW5rICRhbmNob3JlZEF0fS5cbiAgICogVGhlIG5lYXJlc3Qgc3VjaCBhbmNlc3RvciB3aW5zLCBzbyBuZXN0aW5nIHdvcmtzIHdpdGhvdXQgbmFtaW5nIGFueXRoaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgJGFuY2hvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9ucyB0aGUgZWxlbWVudCByZWxhdGl2ZSB0byBhbiBhbmNob3IsIGFib3ZlIGV2ZXJ5dGhpbmcgZWxzZSBvbiB0aGUgcGFnZSBcdTIwMTQgaXQgZXNjYXBlc1xuICAgKiBjbGlwcGluZyBhbmNlc3RvcnMgYW5kIHN0YWNraW5nIGNvbnRleHRzLCBzbyBpdCBuZWVkcyBubyBwb3J0YWwuXG4gICAqXG4gICAqIFRoZSBhbmNob3IgaXMgdGhlIG5lYXJlc3QgYW5jZXN0b3IgZGVjbGFyaW5nIHtAbGluayAkYW5jaG9yfSwgb3IgdGhlIGdpdmVuIHBvaW50IHdoZW4gYSBwb2ludFxuICAgKiBpcyBwcm92aWRlZCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgJGFuY2hvcmVkQXQ/OiBBbmNob3JlZEF0O1xufTtcblxuY29uc3QgYW5jaG9yTmFtZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuLyoqXG4gKiBMZXRzIHtAbGluayB1c2VBbmNob3JOYW1lRm9yfSBuYW1lIGFuIGVsZW1lbnQgYXMgYW4gYW5jaG9yLiBBIHBsdWdpbiB3aG9zZSB3cmFwcGVyIG1heSBhbmNob3JcbiAqIHdoYXQgaXQgcmVuZGVycyB0byB0aGUgZWxlbWVudCBpdHNlbGYgYWRkcyB0aGlzIHRvIHRoZSBlbGVtZW50J3MgYCRjbGFzc05hbWVgLiBUaGUgbmFtZSBmb2xsb3dzXG4gKiBvbmx5IHdoZW4gbm90aGluZyBlbHNlIGFuY2hvcnMgdGhlIGVsZW1lbnQsIHNvIHRoZSBjbGFzcyBhbG9uZSBjaGFuZ2VzIG5vdGhpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBhbmNob3JhYmxlQ2xhc3NOYW1lID0gc3R5bGVzLmFuY2hvcjtcblxuLyoqXG4gKiBUaGUgYW5jaG9yIG5hbWUgZm9yIHdoYXQgYSBwbHVnaW4ncyB3cmFwcGVyIHJlbmRlcnMgYmVzaWRlIGl0cyBlbGVtZW50IGFuZCBwb3NpdGlvbnMgd2l0aFxuICogYCRhbmNob3JlZEF0YCBcdTIwMTQgYSBtZW51LCBzYXk6IHRoYXQgb2YgdGhlIG5lYXJlc3QgYCRhbmNob3JgIGFyb3VuZCB0aGUgZWxlbWVudCwgdGhlIGVsZW1lbnQncyBvd25cbiAqIGluY2x1ZGVkLCBvciBmYWlsaW5nIHRoYXQgYSBuYW1lIG9mIHRoZSBlbGVtZW50J3Mgb3duLCB3aGljaCB0aGlzIGdpdmVzIGl0LiBSZW5kZXIgd2hhdCBpc1xuICogcG9zaXRpb25lZCBpbnNpZGUge0BsaW5rIEFuY2hvck5hbWVQcm92aWRlcn0gd2l0aCB0aGUgcmV0dXJuZWQgbmFtZSwgc28gaXQgZmluZHMgaXRzIGFuY2hvci5cbiAqXG4gKiBUaGUgZWxlbWVudCBuZWVkcyB7QGxpbmsgYW5jaG9yYWJsZUNsYXNzTmFtZX0gZm9yIGEgbmFtZSBvZiBpdHMgb3duIHRvIHRha2UgZWZmZWN0LCBhbmQgaXMgbmFtZWRcbiAqIG9ubHkgd2hpbGUgYGlzQW5jaG9yaW5nYDogd2hpbGUgd2hhdCBpcyBwb3NpdGlvbmVkIGFnYWluc3QgaXQgaXMgc2hvd24uXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VBbmNob3JOYW1lRm9yID0gKGVsZW1lbnRSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LCBpc0FuY2hvcmluZzogYm9vbGVhbikgPT4ge1xuICBjb25zdCBlbmNsb3NpbmdBbmNob3JOYW1lID0gdXNlQ29udGV4dChhbmNob3JOYW1lQ29udGV4dCk7XG4gIGNvbnN0IGFuY2hvcnNJdHNlbGYgPSBpc0FuY2hvcmluZyAmJiBlbmNsb3NpbmdBbmNob3JOYW1lID09PSB1bmRlZmluZWQ7XG5cbiAgLy8gTmFtZWQgdGhlIGZpcnN0IHRpbWUgaXQgYW5jaG9ycyByYXRoZXIgdGhhbiBmcm9tIHVzZUlkOiBldmVyeSBlbGVtZW50IHRoYXQgbWF5IG9wZW4gYSBtZW51XG4gIC8vIHdvdWxkIG90aGVyd2lzZSB0YWtlIGFuIGlkLCBzaGlmdGluZyB0aG9zZSBvZiBldmVyeXRoaW5nIHJlbmRlcmVkIGFmdGVyIGl0LlxuICBjb25zdCBvd25BbmNob3JOYW1lUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBpZiAoYW5jaG9yc0l0c2VsZiAmJiBvd25BbmNob3JOYW1lUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgIG93bkFuY2hvck5hbWVSZWYuY3VycmVudCA9IGAtLWFuY2hvci1vd24tJHsrK293bkFuY2hvck5hbWVDb3VudH1gO1xuICB9XG5cbiAgY29uc3Qgb3duQW5jaG9yTmFtZSA9IG93bkFuY2hvck5hbWVSZWYuY3VycmVudDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWFuY2hvcnNJdHNlbGYgfHwgIWVsZW1lbnQgfHwgb3duQW5jaG9yTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShhbmNob3JOYW1lUHJvcGVydHksIG93bkFuY2hvck5hbWUpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoYW5jaG9yTmFtZVByb3BlcnR5KTtcblxuICAgICAgLy8gTGVmdCBhcyBpdCB3YXMgZm91bmQ6IGFuIGVsZW1lbnQgd2l0aCBubyBzdHlsZSBvZiBpdHMgb3duIGtlZXBzIG5vIGVtcHR5IGF0dHJpYnV0ZS5cbiAgICAgIGlmIChlbGVtZW50LmdldEF0dHJpYnV0ZShcInN0eWxlXCIpID09PSBcIlwiKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwic3R5bGVcIik7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2FuY2hvcnNJdHNlbGYsIG93bkFuY2hvck5hbWUsIGVsZW1lbnRSZWZdKTtcblxuICByZXR1cm4gZW5jbG9zaW5nQW5jaG9yTmFtZSA/PyBvd25BbmNob3JOYW1lO1xufTtcblxubGV0IG93bkFuY2hvck5hbWVDb3VudCA9IDA7XG5cbi8qKiBUZWxscyB3aGF0IGlzIHJlbmRlcmVkIGluc2lkZSB3aGljaCBhbmNob3IgdG8gcG9zaXRpb24gYWdhaW5zdDsgc2VlIHtAbGluayB1c2VBbmNob3JOYW1lRm9yfS4gKi9cbmV4cG9ydCBjb25zdCBBbmNob3JOYW1lUHJvdmlkZXIgPSBhbmNob3JOYW1lQ29udGV4dC5Qcm92aWRlcjtcblxudHlwZSBBbmNob3JXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGlzQW5jaG9yOiBib29sZWFuO1xuICByZWFkb25seSBhbmNob3JlZEF0OiBBbmNob3JlZEF0IHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEFuY2hvcldyYXBwZXJDb21wb25lbnQgPSAoe1xuICBpc0FuY2hvcixcbiAgYW5jaG9yZWRBdCxcbiAgY29udHJpYnV0ZVJlZixcbiAgY29udHJpYnV0ZVByb3BzLFxuICBjaGlsZHJlbixcbn06IEFuY2hvcldyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCBvd25BbmNob3JOYW1lID0gdG9BbmNob3JOYW1lKHVzZUlkKCkpO1xuICBjb25zdCBpbmhlcml0ZWRBbmNob3JOYW1lID0gdXNlQ29udGV4dChhbmNob3JOYW1lQ29udGV4dCk7XG4gIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgcG9pbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb250cmlidXRlUmVmKFxuICAgIHVzZUNhbGxiYWNrKChlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGVsZW1lbnRSZWYuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgfSwgW10pLFxuICApO1xuXG4gIGNvbnN0IHBvc2l0aW9uID0gdHlwZW9mIGFuY2hvcmVkQXQgPT09IFwic3RyaW5nXCIgPyBhbmNob3JlZEF0IDogYW5jaG9yZWRBdD8ucG9zaXRpb247XG4gIGNvbnN0IHBvaW50ID0gdHlwZW9mIGFuY2hvcmVkQXQgPT09IFwib2JqZWN0XCIgPyBhbmNob3JlZEF0LnBvaW50IDogdW5kZWZpbmVkO1xuICBjb25zdCBnYXAgPSB0eXBlb2YgYW5jaG9yZWRBdCA9PT0gXCJvYmplY3RcIiA/IChhbmNob3JlZEF0LmdhcCA/PyBkZWZhdWx0R2FwKSA6IGRlZmF1bHRHYXA7XG5cbiAgaWYgKHBvc2l0aW9uICYmICFwb2ludCAmJiAhaW5oZXJpdGVkQW5jaG9yTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUcmllZCB0byBwb3NpdGlvbiBhbiBlbGVtZW50IGF0IFwiJHtwb3NpdGlvbn1cIiB3aXRob3V0IGFuIGFuY2hvci4gRWl0aGVyIGdpdmUgYW4gYW5jZXN0b3IgdGhlICRhbmNob3IgcHJvcCwgb3IgYW5jaG9yIHRvIGEgcG9pbnQgaW5zdGVhZC5gLFxuICAgICk7XG4gIH1cblxuICAvLyBBIHBvaW50IGFuY2hvciBpcyB0aGUgZWxlbWVudCdzIG93bjsgb3RoZXJ3aXNlIGl0IHBvc2l0aW9ucyBhZ2FpbnN0IHdoYXRldmVyIGFuY2hvciBlbmNsb3NlcyBpdC5cbiAgY29uc3QgYW5jaG9yTmFtZVRvUG9zaXRpb25BZ2FpbnN0ID0gcG9pbnQgPyBvd25BbmNob3JOYW1lIDogaW5oZXJpdGVkQW5jaG9yTmFtZTtcblxuICBpZiAoYW5jaG9yZWRBdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJpYnV0ZVByb3BzKHsgcG9wb3ZlcjogXCJtYW51YWxcIiB9KTtcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0FuY2hvcikge1xuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShhbmNob3JOYW1lUHJvcGVydHksIG93bkFuY2hvck5hbWUpO1xuICAgIH1cblxuICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb3NpdGlvblByb3BlcnR5LCBwb3NpdGlvbik7XG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGdhcFByb3BlcnR5LCBgJHt0U2hpcnRTaXplSW5QaXhlbHMoZ2FwKX1weGApO1xuXG4gICAgICAvLyBPbmx5IHRvd2FyZCB0aGUgYW5jaG9yLCBzbyB0aGUgZWxlbWVudCBzdGlsbCBsaW5lcyB1cCB3aXRoIGl0IG9uIHRoZSBvdGhlciBheGlzLiBBXG4gICAgICAvLyBmYWxsYmFjayB0aGF0IG1pcnJvcnMgdGhlIHBvc2l0aW9uIG1pcnJvcnMgdGhpcyBtYXJnaW4gd2l0aCBpdC5cbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkobWFyZ2luUHJvcGVydHlUb3dhcmRzQW5jaG9yKHBvc2l0aW9uKSwgYCR7dFNoaXJ0U2l6ZUluUGl4ZWxzKGdhcCl9cHhgKTtcblxuICAgICAgaWYgKGFuY2hvck5hbWVUb1Bvc2l0aW9uQWdhaW5zdCkge1xuICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvc2l0aW9uQW5jaG9yUHJvcGVydHksIGFuY2hvck5hbWVUb1Bvc2l0aW9uQWdhaW5zdCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwb2ludCkge1xuICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvaW50WFByb3BlcnR5LCBgJHtwb2ludC54fXB4YCk7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9pbnRZUHJvcGVydHksIGAke3BvaW50Lnl9cHhgKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRoZSBwb2ludCByaXNlcyB0byB0aGUgdG9wIGxheWVyIGFsb25nIHdpdGggd2hhdCBpcyBhbmNob3JlZCB0byBpdC4gQSBgZml4ZWRgIGVsZW1lbnQgcmVzb2x2ZXNcbiAgLy8gYWdhaW5zdCB0aGUgbmVhcmVzdCBhbmNlc3RvciB0aGF0IHRyYW5zZm9ybXMsIGZpbHRlcnMgb3IgY29udGFpbnMgaXRzIHN1YnRyZWUsIHNvIGEgcG9pbnQgbGVmdFxuICAvLyBpbiB0aGUgdHJlZSBsYW5kcyBhdCB0aGUgY3Vyc29yIHBsdXMgdGhhdCBhbmNlc3RvcidzIG93biBvZmZzZXQgXHUyMDE0IHdoaWNoIGlzIGhvdyBhIG1lbnUgb3BlbmVkXG4gIC8vIG92ZXIgYSBuYXZpZ2F0b3IgaXRlbSB1c2VkIHRvIGFwcGVhciBodW5kcmVkcyBvZiBwaXhlbHMgYmVsb3cgdGhlIGN1cnNvci5cbiAgLy9cbiAgLy8gU2hvd24gYmVmb3JlIHRoZSBlbGVtZW50IGFuY2hvcmVkIHRvIGl0OiBhbiBhbmNob3IgaGFzIHRvIHJlYWNoIHRoZSB0b3AgbGF5ZXIgZmlyc3QsIG9yIHRoZVxuICAvLyBlbGVtZW50IHBvc2l0aW9uaW5nIGFnYWluc3QgaXQgZmluZHMgbm8gYW5jaG9yIGF0IGFsbCBhbmQgbGFuZHMgaW4gdGhlIHZpZXdwb3J0J3MgY29ybmVyLlxuICAvL1xuICAvLyBPbmNlLCBvbiBtb3VudDogYW4gZWxlbWVudCBpcyBhbmNob3JlZCB0byBhIHBvaW50IGZvciBhcyBsb25nIGFzIGl0IGlzIG1vdW50ZWQsIHNpbmNlIHRoZSBwb2ludFxuICAvLyBpcyB3aGVyZSB0aGUgY3Vyc29yIHdhcyB3aGVuIHdoYXRldmVyIG9wZW5lZCBpdCB3YXMgb3BlbmVkLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBwb2ludFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFlbGVtZW50IHx8ICFpc1BvcG92ZXJDYXBhYmxlKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIGVsZW1lbnQuaGlkZVBvcG92ZXIoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFwb3NpdGlvbiB8fCAhZWxlbWVudCB8fCAhaXNQb3BvdmVyQ2FwYWJsZShlbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc2hvd1BvcG92ZXIoKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBlbGVtZW50LmhpZGVQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3Bvc2l0aW9uXSk7XG5cbiAgY29uc3QgY29udGVudCA9IHBvaW50ID8gKFxuICAgIDw+XG4gICAgICB7LyogQSB6ZXJvLXNpemUgYW5jaG9yIGF0IHRoZSBwb2ludCwgc28gYSBjdXJzb3ItYW5jaG9yZWQgZWxlbWVudCBwb3NpdGlvbnMgbGlrZSBhbnkgb3RoZXIuICovfVxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3BvaW50UmVmIGFzIFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD59XG4gICAgICAgIHBvcG92ZXI9XCJtYW51YWxcIlxuICAgICAgICBkYXRhLWFuY2hvci1wb2ludC10ZXN0XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmFuY2hvclBvaW50fVxuICAgICAgICBzdHlsZT17XG4gICAgICAgICAge1xuICAgICAgICAgICAgW2FuY2hvck5hbWVQcm9wZXJ0eV06IG93bkFuY2hvck5hbWUsXG4gICAgICAgICAgICBbcG9pbnRYUHJvcGVydHldOiBgJHtwb2ludC54fXB4YCxcbiAgICAgICAgICAgIFtwb2ludFlQcm9wZXJ0eV06IGAke3BvaW50Lnl9cHhgLFxuICAgICAgICAgIH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllc1xuICAgICAgICB9XG4gICAgICAvPlxuXG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gICkgOiAoXG4gICAgY2hpbGRyZW5cbiAgKTtcblxuICBpZiAoaXNBbmNob3IpIHtcbiAgICByZXR1cm4gPGFuY2hvck5hbWVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtvd25BbmNob3JOYW1lfT57Y29udGVudH08L2FuY2hvck5hbWVDb250ZXh0LlByb3ZpZGVyPjtcbiAgfVxuXG4gIHJldHVybiA8Pntjb250ZW50fTwvPjtcbn07XG5cbmV4cG9ydCBjb25zdCBhbmNob3JQbHVnaW4gPSBnZXRQbHVnaW48XG4gIEFuY2hvclBsdWdpblByb3BzLFxuICBbXG4gICAgdHlwZW9mIGNsYXNzTmFtZVBsdWdpbixcbiAgICB0eXBlb2YgY29sb3JQbHVnaW4sXG4gICAgdHlwZW9mIGJhY2tncm91bmRDb2xvclBsdWdpbixcbiAgICB0eXBlb2YgYm9yZGVyUGx1Z2luLFxuICAgIHR5cGVvZiBwYWRkaW5nUGx1Z2luLFxuICAgIHR5cGVvZiBtYXJnaW5QbHVnaW4sXG4gICAgdHlwZW9mIG92ZXJmbG93UGx1Z2luLFxuICBdXG4+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRhbmNob3IsICRhbmNob3JlZEF0LCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRhbmNob3IgJiYgJGFuY2hvcmVkQXQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7ICRhbmNob3I6IHVuZGVmaW5lZCwgJGFuY2hvcmVkQXQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkYW5jaG9yOiB1bmRlZmluZWQsXG4gICAgJGFuY2hvcmVkQXQ6IHVuZGVmaW5lZCxcblxuICAgIC8vIFJpc2luZyB0byB0aGUgdG9wIGxheWVyIGlzIGEgdGVjaG5pY2FsaXR5IG9mIHBvc2l0aW9uaW5nLCBidXQgdGhlIGJyb3dzZXIgbWFrZXMgaXQgYSBsb29rOlxuICAgIC8vIGNvbG91cnMgb2YgaXRzIG93biwgYSBib3JkZXIsIHBhZGRpbmcsIGFuZCBhIG1hcmdpbiB0aGF0IHdvdWxkIGNlbnRlciB0aGUgZWxlbWVudC4gVW5kbyB0aGF0LFxuICAgIC8vIHNvIGFuIGVsZW1lbnQgcG9zaXRpb25lZCB0aGlzIHdheSBsb29rcyBsaWtlIGl0IGRvZXMgYW55d2hlcmUgZWxzZSwgYW5kIGxldCB3aGF0ZXZlciBpdCBzYXlzXG4gICAgLy8gYWJvdXQgaXRzZWxmIHdpbi5cbiAgICAuLi4oJGFuY2hvcmVkQXQgIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgICAkY29sb3I6IHByb3BzLiRjb2xvciA/PyBcImluaGVyaXRcIixcbiAgICAgICRiYWNrZ3JvdW5kQ29sb3I6IHByb3BzLiRiYWNrZ3JvdW5kQ29sb3IgPz8gXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgJGJvcmRlcjogeyB3aWR0aDogXCJ6ZXJvXCIsIC4uLnByb3BzLiRib3JkZXIgfSxcbiAgICAgICRwYWRkaW5nOiBwcm9wcy4kcGFkZGluZyA/PyBcInplcm9cIixcbiAgICAgICRtYXJnaW46IHByb3BzLiRtYXJnaW4gPz8gXCJ6ZXJvXCIsXG4gICAgICAkb3ZlcmZsb3c6IHByb3BzLiRvdmVyZmxvdyA/PyBcInZpc2libGVcIixcbiAgICB9KSxcblxuICAgICRjbGFzc05hbWU6IGNzc05hbWVzKCRjbGFzc05hbWUsIHtcbiAgICAgIFtzdHlsZXMuYW5jaG9yXTogISEkYW5jaG9yLFxuICAgICAgW3N0eWxlcy5hbmNob3JlZEF0XTogJGFuY2hvcmVkQXQgIT09IHVuZGVmaW5lZCxcbiAgICB9KSxcblxuICAgICR3cmFwcGVyOiB7XG4gICAgICBDb21wb25lbnQ6IEFuY2hvcldyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBpc0FuY2hvcjogISEkYW5jaG9yLCBhbmNob3JlZEF0OiAkYW5jaG9yZWRBdCB9LFxuICAgIH0sXG4gIH07XG59KTtcblxuY29uc3QgbWFyZ2luUHJvcGVydHlUb3dhcmRzQW5jaG9yID0gKHBvc2l0aW9uOiBBbmNob3JQb3NpdGlvbikgPT4ge1xuICBpZiAocG9zaXRpb24uc3RhcnRzV2l0aChcImJvdHRvbVwiKSkge1xuICAgIHJldHVybiBcIm1hcmdpbi10b3BcIjtcbiAgfVxuXG4gIGlmIChwb3NpdGlvbi5zdGFydHNXaXRoKFwidG9wXCIpKSB7XG4gICAgcmV0dXJuIFwibWFyZ2luLWJvdHRvbVwiO1xuICB9XG5cbiAgcmV0dXJuIHBvc2l0aW9uLnN0YXJ0c1dpdGgoXCJyaWdodFwiKSA/IFwibWFyZ2luLWxlZnRcIiA6IFwibWFyZ2luLXJpZ2h0XCI7XG59O1xuXG5jb25zdCBhbmNob3JOYW1lUHJvcGVydHkgPSBcIi0tYW5jaG9yLW5hbWVcIjtcbmNvbnN0IGdhcFByb3BlcnR5ID0gXCItLWFuY2hvci1nYXBcIjtcbmNvbnN0IHBvc2l0aW9uQW5jaG9yUHJvcGVydHkgPSBcIi0tYW5jaG9yLXRhcmdldFwiO1xuY29uc3QgcG9zaXRpb25Qcm9wZXJ0eSA9IFwiLS1hbmNob3ItcG9zaXRpb25cIjtcbmNvbnN0IHBvaW50WFByb3BlcnR5ID0gXCItLWFuY2hvci1wb2ludC14XCI7XG5jb25zdCBwb2ludFlQcm9wZXJ0eSA9IFwiLS1hbmNob3ItcG9pbnQteVwiO1xuXG4vKiogQW5jaG9yIG5hbWVzIGFyZSBkYXNoZWQgaWRlbnRzLCBzbyB0aGUgZ2VuZXJhdGVkIGlkIGhhcyB0byBsb3NlIGV2ZXJ5dGhpbmcgZWxzZS4gKi9cbmNvbnN0IHRvQW5jaG9yTmFtZSA9IChpZDogc3RyaW5nKSA9PiBgLS1hbmNob3ItJHtpZC5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgXCJcIil9YDtcblxudHlwZSBQb3BvdmVyQ2FwYWJsZSA9IEhUTUxFbGVtZW50ICYgeyBzaG93UG9wb3ZlcjogVm9pZEZ1bmN0aW9uOyBoaWRlUG9wb3ZlcjogVm9pZEZ1bmN0aW9uIH07XG5cbmNvbnN0IGlzUG9wb3ZlckNhcGFibGUgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBlbGVtZW50IGlzIFBvcG92ZXJDYXBhYmxlID0+XG4gIHR5cGVvZiAoZWxlbWVudCBhcyBQYXJ0aWFsPFBvcG92ZXJDYXBhYmxlPikuc2hvd1BvcG92ZXIgPT09IFwiZnVuY3Rpb25cIjtcbiIsICJpbXBvcnQgdHlwZSB7IEZvY3VzYWJsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vZm9jdXNhYmxlXCI7XG5cbmV4cG9ydCB0eXBlICRGb2N1c2FibGVQcm9wczxGb2N1c2VkSXRlbT4gPSBSZXF1aXJlZDxGb2N1c2FibGVQbHVnaW5Qcm9wczxGb2N1c2VkSXRlbT4+W1wiJGZvY3VzYWJsZVwiXTtcblxuLyoqXG4gKiBJZGVudGlmaWVzIGEgc2V0IG9mIGZvY3VzYWJsZXMgY29tcGV0aW5nIGZvciBvbmUgZm9jdXNlZCBpdGVtLiBFbGVtZW50cyBqb2luIGl0IGJ5IGRlY2xhcmluZ1xuICogYCRmb2N1c2FibGVgOyBub3RoaW5nIGVudW1lcmF0ZXMgdGhlbSBhdCB0aGUgY2FsbCBzaXRlLlxuICovXG5leHBvcnQgdHlwZSBGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9IHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgaXNLZXlib2FyZE5hdmlnYWJsZTogZmFsc2U7XG4gIGZvY3VzYWJsZTogKGl0ZW06IEZvY3VzZWRJdGVtKSA9PiAkRm9jdXNhYmxlUHJvcHM8Rm9jdXNlZEl0ZW0+O1xufTtcblxuLyoqIFdoaWNoIGFycm93IGtleXMgbW92ZSBmb2N1cyB3aXRoaW4gYSBrZXlib2FyZC1uYXZpZ2FibGUgY29udGV4dC4gKi9cbmV4cG9ydCB0eXBlIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uID0gXCJ2ZXJ0aWNhbFwiIHwgXCJob3Jpem9udGFsXCIgfCBcImJvdGhcIjtcblxuLyoqXG4gKiBBIGZvY3VzYWJsZSBjb250ZXh0IHdob3NlIG1lbWJlcnMgYXJlIGFsc28gbmF2aWdhdGVkIHdpdGggYXJyb3cga2V5cywgaW4gdGhlIG9yZGVyIHRoZXkgc3RhdGUuXG4gKiBUaGUgbG93ZXN0IG9yZGVyIG51bWJlciBpcyBmb2N1c2VkIHdoZW4gdGhlIG1lbWJlcnMgYXBwZWFyLCB1bmxlc3MgdGhlIGNvbnRleHQgc2F5cyBvdGhlcndpc2UsXG4gKiBhbmQgZm9jdXMgcmV0dXJucyB0byB0aGUgZW5jbG9zaW5nIGNvbnRleHQgd2hlbiB0aGV5IGdvIGF3YXkuXG4gKi9cbmV4cG9ydCB0eXBlIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzS2V5Ym9hcmROYXZpZ2FibGU6IHRydWU7XG4gIHJlYWRvbmx5IG9yaWVudGF0aW9uOiBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbjtcbiAgcmVhZG9ubHkgdGFrZXNGb2N1c0FzSXRBcHBlYXJzOiBib29sZWFuO1xuICBmb2N1c2FibGU6IChpdGVtOiBGb2N1c2VkSXRlbSwgb3JkZXJOdW1iZXI6IG51bWJlcikgPT4gJEZvY3VzYWJsZVByb3BzPEZvY3VzZWRJdGVtPjtcbn07XG5cbmV4cG9ydCB0eXBlIEFueUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0gPSBhbnk+ID1cbiAgfCBGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPlxuICB8IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT47XG5cbmNvbnN0IGNvbnRleHRzQnlLZXkgPSBuZXcgTWFwPHN0cmluZywgQW55Rm9jdXNhYmxlQ29udGV4dD4oKTtcblxuLyoqXG4gKiBEZWNsYXJlcyBhIGZvY3VzYWJsZSBjb250ZXh0LiBUaGUgc2FtZSBpZCBhbHdheXMgeWllbGRzIHRoZSBzYW1lIGNvbnRleHQsIHNvIGNhbGxpbmcgdGhpcyBkdXJpbmdcbiAqIHJlbmRlciBpcyBzdGFibGUgXHUyMDE0IHdoaWNoIGlzIHdoYXQgbGV0cyBhIHN1cmZhY2Ugd2l0aCBzZXZlcmFsIGxpdmUgaW5zdGFuY2VzIG5hbWUgb25lIGNvbnRleHQgcGVyXG4gKiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEZvY3VzYWJsZUNvbnRleHQgPSA8Rm9jdXNlZEl0ZW0sPihpZDogc3RyaW5nKTogRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPT5cbiAgZ2V0T3JDcmVhdGVDb250ZXh0KGBmb2N1c2FibGU6JHtpZH1gLCAoKSA9PiB7XG4gICAgY29uc3QgY29udGV4dDogRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gICAgICBpZCxcbiAgICAgIGlzS2V5Ym9hcmROYXZpZ2FibGU6IGZhbHNlLFxuICAgICAgZm9jdXNhYmxlOiAoaXRlbSkgPT4gKHsgY29udGV4dCwgaXRlbSB9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0pO1xuXG5leHBvcnQgdHlwZSBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHRPcHRpb25zID0ge1xuICAvKipcbiAgICogV2hpY2ggYXJyb3cga2V5cyBtb3ZlIGZvY3VzLiBEb3dud2FyZHMgYnkgZGVmYXVsdCwgYXMgbW9zdCBzZXRzIG9mIHRoaW5ncyBhcmUgbGFpZCBvdXQ6IHRoZVxuICAgKiBrZXlzIG9mIHRoZSBvdGhlciBheGlzIGFyZSB0aGVuIGxlZnQgdG8gd2hhdGV2ZXIgdGhlIG1lbWJlcnMgd2FudCB0aGVtIGZvciwgc3VjaCBhcyBhIG1lbWJlclxuICAgKiBvcGVuaW5nIHNvbWV0aGluZyBvZiBpdHMgb3duIHdpdGggQXJyb3dSaWdodC5cbiAgICovXG4gIHJlYWRvbmx5IG9yaWVudGF0aW9uPzogS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxvd2VzdCBvcmRlciBudW1iZXIgaXMgZm9jdXNlZCBhcyB0aGUgbWVtYmVycyBhcHBlYXIuIEl0IGlzIGJ5IGRlZmF1bHQ6IGEgc2V0IG9mXG4gICAqIG1lbWJlcnMgYXBwZWFyaW5nIGlzIHVzdWFsbHkgc29tZXRoaW5nIHRoZSB1c2VyIGFza2VkIGZvciBhbmQgd2lsbCBnbyBvbiB3aXRoLiBOb3Qgc28gZm9yIGEgc2V0XG4gICAqIHRoYXQgYXBwZWFycyBiZWNhdXNlIHRoZSBwb2ludGVyIHJlc3RzIG9uIHNvbWV0aGluZywgd2hlcmUgd2hhdCB0aGUgdXNlciBpcyBsb29raW5nIGF0IGlzIHdoYXRcbiAgICogdGhlIHBvaW50ZXIgaXMgb24sIGFuZCBmb2N1cyBzdGF5cyB0aGVyZSB1bnRpbCBlaXRoZXIgdGhlIHBvaW50ZXIgb3IgdGhlIGtleWJvYXJkIG1vdmVzIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFrZXNGb2N1c0FzSXRBcHBlYXJzPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogRGVjbGFyZXMgYSBmb2N1c2FibGUgY29udGV4dCB3aG9zZSBtZW1iZXJzIGFyZSBuYXZpZ2F0ZWQgd2l0aCBhcnJvdyBrZXlzLiBBcyB3aXRoXG4gKiB7QGxpbmsgZ2V0Rm9jdXNhYmxlQ29udGV4dH0sIHRoZSBzYW1lIGlkIGFsd2F5cyB5aWVsZHMgdGhlIHNhbWUgY29udGV4dCBcdTIwMTQgdGhlIHNhbWUgaWQgd2l0aCB0aGVcbiAqIHNhbWUgb3B0aW9ucywgdGhhdCBpcy4gQSBjb250ZXh0IHdpdGggb3RoZXIgb3B0aW9ucyBpcyBhIGNvbnRleHQgb2YgaXRzIG93biwgd2hhdGV2ZXIgaXQgaXNcbiAqIG5hbWVkLCBzbyBhIHN1cmZhY2UgdGhhdCBhc2tzIGZvciBpdHMgY29udGV4dCBieSB0aGUgc2FtZSBuYW1lIHdpdGggb3RoZXIgb3B0aW9ucyBtb3ZlcyBpdHNcbiAqIG1lbWJlcnMgdGhlcmUgYXMgdGhleSByZW5kZXIgYWdhaW4sIGFuZCB0aGV5IGFwcGVhciBhbmV3IGFzIGZhciBhcyB0aGF0IGNvbnRleHQgaXMgY29uY2VybmVkLlxuICovXG5leHBvcnQgY29uc3QgZ2V0S2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0ID0gPEZvY3VzZWRJdGVtLD4oXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMgPSB7fSxcbik6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPT4ge1xuICBjb25zdCBvcmllbnRhdGlvbiA9IG9wdGlvbnMub3JpZW50YXRpb24gPz8gXCJ2ZXJ0aWNhbFwiO1xuICBjb25zdCB0YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPSBvcHRpb25zLnRha2VzRm9jdXNBc0l0QXBwZWFycyA/PyB0cnVlO1xuXG4gIGNvbnN0IGtleSA9IGBrZXlib2FyZC1uYXZpZ2FibGU6JHtpZH18JHtvcmllbnRhdGlvbn18JHt0YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPyBcInRha2luZ1wiIDogXCJsZWF2aW5nXCJ9LWZvY3VzYDtcblxuICByZXR1cm4gZ2V0T3JDcmVhdGVDb250ZXh0KGtleSwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gICAgICBpZCxcbiAgICAgIGlzS2V5Ym9hcmROYXZpZ2FibGU6IHRydWUsXG4gICAgICBvcmllbnRhdGlvbixcbiAgICAgIHRha2VzRm9jdXNBc0l0QXBwZWFycyxcbiAgICAgIGZvY3VzYWJsZTogKGl0ZW0sIG9yZGVyTnVtYmVyKSA9PiAoeyBjb250ZXh0LCBpdGVtLCBvcmRlck51bWJlciB9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0pO1xufTtcblxuY29uc3QgZ2V0T3JDcmVhdGVDb250ZXh0ID0gPFQgZXh0ZW5kcyBBbnlGb2N1c2FibGVDb250ZXh0PihrZXk6IHN0cmluZywgY3JlYXRlOiAoKSA9PiBUKTogVCA9PiB7XG4gIGNvbnN0IGV4aXN0aW5nID0gY29udGV4dHNCeUtleS5nZXQoa2V5KTtcblxuICBpZiAoZXhpc3RpbmcpIHtcbiAgICByZXR1cm4gZXhpc3RpbmcgYXMgVDtcbiAgfVxuXG4gIGNvbnN0IGNyZWF0ZWQgPSBjcmVhdGUoKTtcblxuICBjb250ZXh0c0J5S2V5LnNldChrZXksIGNyZWF0ZWQpO1xuXG4gIHJldHVybiBjcmVhdGVkO1xufTtcbiIsICJpbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRGb2N1c2FibGVQcm9wcyB9IGZyb20gXCIuL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuXG4vKipcbiAqIENhcnJpZXMgdGhlIGZvY3VzYWJsZSBhbiBlbGVtZW50IGlzLCBhcyBkZWNpZGVkIGJ5IHRoZSBzdXJmYWNlIGl0IHJlbmRlcnMgaW4gcmF0aGVyIHRoYW4gYnkgdGhlXG4gKiBlbGVtZW50IGl0c2VsZjogd2hpY2ggY29udGV4dCBpdCBjb21wZXRlcyBpbiwgd2hpY2ggaXRlbSBpdCBzdGFuZHMgZm9yLCBhbmQgd2hlcmUgaXQgc2l0cyBhbW9uZ1xuICogdGhlIG90aGVycy5cbiAqXG4gKiBBIHN1cmZhY2UgdGhhdCBrbm93cyBpdHMgaXRlbXMgXHUyMDE0IGEgbWVudSwgYSB0b29sYmFyIFx1MjAxNCBwcm92aWRlcyBvbmUgb2YgdGhlc2UgcGVyIGl0ZW07IHdoYXRldmVyXG4gKiBkcmF3cyB0aGUgaXRlbSBhZG9wdHMgaXQgdGhyb3VnaCB7QGxpbmsgdXNlRm9jdXNhYmxlSXRlbX0gd2hpbGUga25vd2luZyBub3RoaW5nIGFib3V0IHRoZVxuICogc3VyZmFjZSwgd2hpY2ggaXMgd2hhdCBsZXRzIGEgZHVtYiBjb21wb25lbnQgYmUga2V5Ym9hcmQtbmF2aWdhYmxlIGluIG9uZSBzdXJmYWNlIGFuZCBvcmRpbmFyeVxuICogaW4gYW5vdGhlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnRleHRGb3JGb2N1c2FibGVJdGVtID0gY3JlYXRlQ29udGV4dDwkRm9jdXNhYmxlUHJvcHM8YW55PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuLyoqXG4gKiBUaGUgYCRmb2N1c2FibGVgIG9mIHRoZSBpdGVtIGEgY29tcG9uZW50IGRyYXdzLCB3aGVuIHRoZSBzdXJmYWNlIGFyb3VuZCBpdCBkZWNpZGVkIG9uZS5cbiAqIGB1bmRlZmluZWRgIG91dHNpZGUgc3VjaCBhIHN1cmZhY2UsIHdoaWNoIGlzIHdoYXQgbWFrZXMgYWRvcHRpbmcgaXQgYSBtYXR0ZXIgb2YgcGFzc2luZyBpdCBvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBSb3cgPSAoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkgPT4gKFxuICogICA8Q2xpY2thYmxlTGkgJGZvY3VzYWJsZT17dXNlRm9jdXNhYmxlSXRlbSgpfT57Y2hpbGRyZW59PC9DbGlja2FibGVMaT5cbiAqICk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUZvY3VzYWJsZUl0ZW0gPSAoKSA9PiB1c2VDb250ZXh0KGNvbnRleHRGb3JGb2N1c2FibGVJdGVtKTtcbiIsICJpbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyB0eXBlIE11dGFibGVSZWZPYmplY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSB9IGZyb20gXCIuL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCB1c2VMb2NhbEhvdmVyYWJsZSA9IDxFbGVtIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4ge1xuICBjb25zdCBob3ZlcmFibGVDb250ZXh0ID0gdXNlTWVtbygoKSA9PiBnZXRIb3ZlcmFibGVDb250ZXh0PE11dGFibGVSZWZPYmplY3Q8RWxlbSB8IG51bGw+PigpLCBbXSk7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxFbGVtPihudWxsKTtcbiAgY29uc3QgaXRlbUJlaW5nSG92ZXJlZCA9IHVzZVN5bmNJbmplY3QoY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSwgaG92ZXJhYmxlQ29udGV4dCk7XG5cbiAgcmV0dXJuIHtcbiAgICByZWYsXG4gICAgY29udGV4dDogaG92ZXJhYmxlQ29udGV4dC5ob3ZlcmFibGUocmVmKSxcbiAgICBjb21wb25lbnRJc0hvdmVyZWQ6IGl0ZW1CZWluZ0hvdmVyZWQsXG4gIH07XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0FBLCtCQUFnRDtBQUVoRCxtQkFBK0M7QUF3RHRDO0FBcENGLElBQU0sb0JBQW9CLENBQUMsbUJBQWtEO0FBQ2xGLFFBQU0sK0JBQTJCLHFCQUEwQixNQUFTO0FBQ3BFLFFBQU0saUJBQWEscUJBQU8sY0FBYztBQUV4Qyw4QkFBVSxNQUFNO0FBQ2QsZUFBVyxVQUFVO0FBQUEsRUFDdkIsQ0FBQztBQUVELDhCQUFVLE1BQU07QUFDZCxVQUFNLDRCQUE0QixDQUFDLFVBQXdCO0FBQ3pELFVBQUksVUFBVSx5QkFBeUIsU0FBUztBQUM5QyxtQkFBVyxRQUFRLEtB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SUFBTSxtQkFBbUIsVUFBTSwyQkFBVyx1QkFBdUI7OztBQzFCeEUsSUFBQUMsc0JBQThCO0FBRTlCLElBQUFDLGlCQUF1RDtBQUdoRCxJQUFNLG9CQUFvQixNQUFnQztBQUMvRCxRQUFNLHVCQUFtQix3QkFBUSxNQUFNLG9CQUFtRCxHQUFHLENBQUMsQ0FBQztBQUMvRixRQUFNLFVBQU0sdUJBQWEsSUFBSTtBQUM3QixRQUFNLHVCQUFtQixtQ0FBYyxpQ0FBaUMsZ0JBQWdCO0FBRXhGLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQSxTQUFTLGlCQUFpQixVQUFVLEdBQUc7QUFBQSxJQUN2QyxvQkFBb0I7QUFBQSxFQUN0QjtBQUNGOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJ0b0NvbnRleHRNYXAiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfcmVhY3RfZG9tIiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9mcCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlcyIsICJpbXBvcnRfZnAiLCAibG9kYXNoQ2FwaXRhbGl6ZSIsICJpbXBvcnRfZnAiLCAiYWxpYXNUb05vbWluYWwiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJpbXBvcnRfZmVhdHVyZV9jb3JlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9mcCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJtb2R1bGVzIiwgIm1vZHVsZXMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAibW9kdWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpc1BlcmNlbnRhZ2UiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImFsaWFzVG9Ob21pbmFsIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9mcCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF90ZXN0X3V0aWxzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF90ZXN0X3V0aWxzIiwgInN0eWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgInN0eWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3RfZG9tIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaXNQb3BvdmVyQ2FwYWJsZSIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAic3RvcFByb3BhZ2F0aW9uIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiXQp9Cg==
|
|
3338
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2NvbXB1dGVkLW5vdy5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MiLCAiLi4vc3JjL2VsZW1lbnRzL21pbmltYWwtZGl2LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtY29ybmVyLXN0eWxlcy50cyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvZ2V0LXNpZGUtc3R5bGVzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9yZWYvcmVmLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWUudHMiLCAiLi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2dldC1kcmFnZ2FibGUtY29udGV4dC50cyIsICIuLi9zcmMvZmVhdHVyZS50cyIsICIuLi9zcmMvcGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy90ZXN0LXV0aWwtcnVubmFibGUuaW5qZWN0YWJsZS50cyIsICJpbXBvcnQtZ2xvYjouLyoqLyouZ2xvYmFsLW92ZXJyaWRlLWZvci1pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvN2I4NzYyMmItYWQ0YS00ZmMwLTk0NmMtZjRhYjFhMDA2OTQ0IiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmRlZmF1bHQtb3ZlcnJpZGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cyIsICIuLi9zcmMvcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzIiwgImltcG9ydC1nbG9iOi4vKiovKi5kZWZhdWx0LW92ZXJyaWRlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvYzlmOTFjZWYtZmE3Yi00YzRiLWJiMDItZmVmY2FmODAzNjliIiwgImltcG9ydC1nbG9iOi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvYjViYzJiOTUtNzkxZS00NGZhLWI1ZjktOGY0YjdiZmQ1NWY2IiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzIiwgImltcG9ydC1nbG9iOi4vKiovIShfKikuKHNjc3N8Y3NzKS9wcm9vZi1vZi11bmlxdWVuZXNzLzA5MDBmNjk2LTljMjMtNGE4Yi1hZGY1LTc3ODYyNDVjN2IyZSIsICIuLi9zcmMvcGx1Z2lucy9fc2hhcmVkL3NpemVzLnRzIiwgIi4uL3NyYy9lbGVtZW50cy50cyIsICIuLi9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvY29sb3IvY29sb3IudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQudHMiLCAiLi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24udHMiLCAiLi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC50cyIsICIuLi9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4udHMiLCAiLi4vc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi50cyIsICIuLi9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC50cyIsICIuLi9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3RpbnQvdGludC50cyIsICIuLi9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnQudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvbi50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvaGFuZGxlLWZvY3VzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS9oYW5kbGUtYmx1ci50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZy50cyIsICIuLi9zcmMvcGx1Z2lucy9hcmVhL2FyZWEudHMiLCAiLi4vc3JjL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudC50cyIsICIuLi9zcmMvcGx1Z2lucy9zaXplL3NpemUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24udHMiLCAiLi4vc3JjL3BsdWdpbnMvYmxvY2svYmxvY2sudHN4IiwgIi4uL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS50cyIsICIuLi9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS50cyIsICIuLi9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS50c3giLCAiLi4vc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2dldC1mb2N1c2FibGUtY29udGV4dC50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZS1pdGVtLWNvbnRleHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB0eXBlIHsgQmxvY2tQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5leHBvcnQgdHlwZSB7IEFuY2hvcmVkQXQsIEFuY2hvclBsdWdpblByb3BzLCBBbmNob3JQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcbmV4cG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5leHBvcnQgdHlwZSB7IE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcbmV4cG9ydCB0eXBlIHsgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBUZXh0QWxpZ25QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuXG5leHBvcnQgeyB0eXBlIERvRm9jdXMsIHR5cGUgRG9Gb2N1c0ZvciwgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHsgaXRlbUJlaW5nRm9jdXNlZEluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlXCI7XG5leHBvcnQgdHlwZSB7IEl0ZW1CZWluZ0ZvY3VzZWQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGVcIjtcbmV4cG9ydCB7IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzLCBpc0Rpc2FibGVkIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkXCI7XG5leHBvcnQgdHlwZSB7IEdyYXlzY2FsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuZXhwb3J0IHR5cGUgeyBUaW50UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90aW50L3RpbnRcIjtcbmV4cG9ydCB0eXBlIHsgRmFkZWRQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5cbmV4cG9ydCB0eXBlIHsgU2lkZVN0eWxlcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtc2lkZS1zdHlsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ29ybmVyU3R5bGVzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2dldC1jb3JuZXItc3R5bGVzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsXG4gIEJhY2tncm91bmRDb2xvcixcbiAgQmFja2dyb3VuZENvbG9yQWxpYXMsXG4gICRCYWNrZ3JvdW5kQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgT3V0bGluZVdpZHRoLFxuICAkT3V0bGluZVByb3BzLFxuICBPdXRsaW5lUGx1Z2luUHJvcHMsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nQ29udGVudEFyZ3MsXG4gIEZsb2F0aW5nQ29udGVudEZhY3RvcnksXG4gICRGbG9hdGluZ1Byb3BzLFxuICBGbG9hdGluZ1BsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mbG9hdGluZy9mbG9hdGluZ1wiO1xuXG5leHBvcnQgdHlwZSB7IFBhZGRpbmdQbHVnaW5Qcm9wcywgRGlyZWN0aW9uYWxQYWRkaW5nIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5leHBvcnQgdHlwZSB7IE1hcmdpblBsdWdpblByb3BzLCBEaXJlY3Rpb25hbE1hcmdpbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW5cIjtcbmV4cG9ydCB0eXBlIHsgT3ZlcmZsb3dQbHVnaW5Qcm9wcywgT3ZlcmZsb3cgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSB7IEJveFNoYWRvd1BsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzLFxuICAkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nXCI7XG5leHBvcnQgeyBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEhvdmVyYWJsZUNvbnRleHQsXG4gICRIb3ZlcmFibGVQcm9wcyxcbiAgSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEhvdmVyYWJsZVBsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBob3ZlcmFibGVQbHVnaW4sIGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBSZWZQbHVnaW5Qcm9wcywgJFJlZlByb3AsIFJlZkxpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIHsgQWJzb2x1dGVQbHVnaW5Qcm9wcywgQWJzb2x1dGVQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5leHBvcnQgdHlwZSB7IEhpZGRlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuZXhwb3J0IHR5cGUgeyBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzXCI7XG5leHBvcnQgdHlwZSB7IE9mZnNldFBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuZXhwb3J0IHR5cGUgeyBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlblwiO1xuZXhwb3J0IHR5cGUgeyBSZWxhdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVHJhbnNpdGlvblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5leHBvcnQgdHlwZSB7ICRJbnRlcmFjdGl2ZVByb3BzLCBJbnRlcmFjdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcblxuZXhwb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIEN1cnNvclBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuXG5leHBvcnQgeyBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQbHVnaW5Qcm9wcywgJFRvb2x0aXBQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuZXhwb3J0IHsgU3R5bGVkVG9vbHRpcENvbnRhaW5lciwgZ2V0VG9vbHRpcFByb3BzLCBzdXBwcmVzc1Rvb2x0aXAgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXBcIjtcblxuZXhwb3J0IHR5cGUgeyBEcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBnZXREcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB7IGVsZW1lbnRDb21wb25lbnRGZWF0dXJlIH0gZnJvbSBcIi4vc3JjL2ZlYXR1cmVcIjtcblxuZXhwb3J0IHR5cGUgeyBTaXplUGx1Z2luUHJvcHMsICRTaXplUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9zaXplL3NpemVcIjtcblxuZXhwb3J0IHR5cGUgeyBXaWR0aFBsdWdpblByb3BzLCAkV2lkdGhQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlIHsgU3R5bGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlXCI7XG5cbmV4cG9ydCB0eXBlIHsgSGVpZ2h0UGx1Z2luUHJvcHMsICRIZWlnaHRQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgeyBGb250UGx1Z2luUHJvcHMsIEZvbnRTaXplLCBGb250TGluZUhlaWdodCB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuXG5leHBvcnQgdHlwZSB7IEdyaWRQbHVnaW5Qcm9wcywgR3JpZFByb3BzLCBHcmlkQ29sdW1ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIERyYWdnYWJsZVBsdWdpblByb3BzLFxuICBEcm9wcGFibGVQbHVnaW5Qcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIHsgQ29sb3JQbHVnaW5Qcm9wcywgJENvbG9yUHJvcHMsIFRleHRDb2xvciwgVGV4dENvbG9yQWxpYXMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuZXhwb3J0IHR5cGUgeyBDbGFzc05hbWVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEJvcmRlclBsdWdpblByb3BzLFxuICBCb3JkZXJDb2xvckFsaWFzLFxuICBCb3JkZXJDb2xvcixcbiAgJEJvcmRlclByb3BzLFxuICAkQm9yZGVyQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2JvcmRlclwiO1xuXG5leHBvcnQgdHlwZSB7IEJvcmRlclJhZGl1c1NpemUsIEJvcmRlcldpZHRoLCBCb3JkZXJTaWRlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcbmV4cG9ydCB7IHRTaGlydFNpemVJblBpeGVscywgc2l6ZVVuaXRJblBpeGVscyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgeyBEaXJlY3Rpb24sIFNob3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUge1xuICBDbGlja0hhbmRsZXIsXG4gIENsaWNrSGFuZGxlckRldGFpbHMsXG4gIENsaWNrUGx1Z2luUHJvcHMsXG4gIFBvc2l0aW9uMmQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcblxuZXhwb3J0IHR5cGUge1xuICBGbGV4UGx1Z2luUHJvcHMsXG4gIEhvcml6b250YWxGbGV4UHJvcHMsXG4gIE1heGltYWxGbGV4UHJvcHMsXG4gIFNpbXBsZUZsZXhQcm9wLFxuICBWZXJ0aWNhbEZsZXhQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZmxleC9mbGV4XCI7XG5cbmltcG9ydCB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyxcbiAgc2hvd0Nzc01vZHVsZUNsdXR0ZXJGb3JQcm9kdWN0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHsgcmVtb3ZlQ3NzTW9kdWxlQ2x1dHRlckZvclVuaXRUZXN0aW5nLCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gfTtcblxuZXhwb3J0IHtcbiAgQ2xpY2thYmxlRGl2LFxuICBOYXYsXG4gIFN2ZyxcbiAgRGl2LFxuICBCdXR0b24sXG4gIEksXG4gIElucHV0LFxuICBGb3JtLFxuICBTcGFuLFxuICBUZXh0QXJlYSxcbiAgQSxcbiAgQ29kZSxcbiAgUHJlLFxuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxuICBQLFxuICBDbGlja2FibGVMaSxcbiAgTGksXG4gIE9sLFxuICBVbCxcbiAgVGgsXG4gIFRkLFxuICBUcixcbiAgVGFibGUsXG4gIExhYmVsLFxuICBUQm9keSxcbiAgRGlhbG9nLFxuICBDYW52YXMsXG4gIEltZyxcbn0gZnJvbSBcIi4vc3JjL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tbW9uUHJvcHMsXG4gIENsaWNrYWJsZURpdlByb3BzLFxuICBDbGlja2FibGVMaVByb3BzLFxuICBOYXZQcm9wcyxcbiAgU3ZnUHJvcHMsXG4gIERpdlByb3BzLFxuICBCdXR0b25Qcm9wcyxcbiAgSVByb3BzLFxuICBJbnB1dFByb3BzLFxuICBGb3JtUHJvcHMsXG4gIFNwYW5Qcm9wcyxcbiAgVGV4dEFyZWFQcm9wcyxcbiAgQVByb3BzLFxuICBDb2RlUHJvcHMsXG4gIFByZVByb3BzLFxuICBIMVByb3BzLFxuICBIMlByb3BzLFxuICBIM1Byb3BzLFxuICBINFByb3BzLFxuICBINVByb3BzLFxuICBINlByb3BzLFxuICBQUHJvcHMsXG4gIExpUHJvcHMsXG4gIE9sUHJvcHMsXG4gIFVsUHJvcHMsXG4gIFRoUHJvcHMsXG4gIFRkUHJvcHMsXG4gIFRyUHJvcHMsXG4gIFRhYmxlUHJvcHMsXG4gIExhYmVsUHJvcHMsXG4gIFRCb2R5UHJvcHMsXG4gIERpYWxvZ1Byb3BzLFxuICBDYW52YXNQcm9wcyxcbiAgSW1nUHJvcHMsXG59IGZyb20gXCIuL3NyYy9lbGVtZW50c1wiO1xuXG5leHBvcnQge1xuICBnZXRGb2N1c2FibGVDb250ZXh0LFxuICBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgJEZvY3VzYWJsZVByb3BzLFxuICBBbnlGb2N1c2FibGVDb250ZXh0LFxuICBGb2N1c2FibGVDb250ZXh0LFxuICBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG4gIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSwgdXNlRm9jdXNhYmxlSXRlbSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGUtaXRlbS1jb250ZXh0XCI7XG5leHBvcnQgeyB1c2VDbG9zZVBvcG92ZXIsIHVzZVBvcG92ZXJJc09wZW4sIGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuZXhwb3J0IHsgdXNlTG9jYWxIb3ZlcmFibGUgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZVwiO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHBvaW50ZXItZG93biBsYW5kcyBvdXRzaWRlIHRoZSBlbGVtZW50J3MgUmVhY3QgdHJlZS4gVGhlIHRyZWUgaW5jbHVkZXMgY29udGVudFxuICAgKiB0aGUgZWxlbWVudCBwb3J0YWxzIGVsc2V3aGVyZSwgc28gcG9ydGFsZWQgY2hpbGRyZW4gY291bnQgYXMgaW5zaWRlLiBDYXZlYXQ6IGFuIG91dHNpZGVcbiAgICogcG9pbnRlci1kb3duIHdob3NlIHByb3BhZ2F0aW9uIHRvIHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIG5hdGl2ZWx5IGdvZXMgdW5kZXRlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5ICRvbk91dHNpZGVDbGljaz86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBSZWFjdC10cmVlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uOiBhIGNhcHR1cmUtcGhhc2UgaGFuZGxlciBvbiB0aGUgZWxlbWVudCByZWNvcmRzIHRoZVxuICogcG9pbnRlci1kb3duIGV2ZW50cyBvZiBpdHMgb3duIFJlYWN0IHRyZWUgKHBvcnRhbHMgaW5jbHVkZWQsIHNpbmNlIFJlYWN0IGV2ZW50cyBwcm9wYWdhdGVcbiAqIHRocm91Z2ggdGhlbSksIGFuZCBhIGRvY3VtZW50LWxldmVsIGxpc3RlbmVyIHJlcG9ydHMgZXZlcnkgcG9pbnRlci1kb3duIGl0IGRpZCBub3QgcmVjb3JkLlxuICogUmV0dXJucyB0aGUgcHJvcHMgbWFya2luZyB0aGUgZWxlbWVudCdzIHRyZWU7IGdpdmUgdGhlbSB0byBgY29udHJpYnV0ZVByb3BzYCBvciBzcHJlYWQgdGhlbVxuICogb250byB0aGUgc3VidHJlZSdzIHJvb3QuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VPbk91dHNpZGVDbGljayA9IChvbk91dHNpZGVDbGljazogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHZvaWQpID0+IHtcbiAgY29uc3QgbGFzdEluc2lkZVBvaW50ZXJEb3duUmVmID0gdXNlUmVmPEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBoYW5kbGVyUmVmID0gdXNlUmVmKG9uT3V0c2lkZUNsaWNrKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGhhbmRsZXJSZWYuY3VycmVudCA9IG9uT3V0c2lkZUNsaWNrO1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ICE9PSBsYXN0SW5zaWRlUG9pbnRlckRvd25SZWYuY3VycmVudCkge1xuICAgICAgICBoYW5kbGVyUmVmLmN1cnJlbnQoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlRG9jdW1lbnRQb2ludGVyRG93bik7XG5cbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24pO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25Qb2ludGVyRG93bkNhcHR1cmUgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGxhc3RJbnNpZGVQb2ludGVyRG93blJlZi5jdXJyZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG4gIH0sIFtdKTtcblxuICByZXR1cm4geyBvblBvaW50ZXJEb3duQ2FwdHVyZSB9O1xufTtcblxudHlwZSBPbk91dHNpZGVDbGlja1dyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgb25PdXRzaWRlQ2xpY2s6IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IE9uT3V0c2lkZUNsaWNrV3JhcHBlckNvbXBvbmVudCA9ICh7IG9uT3V0c2lkZUNsaWNrLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IE9uT3V0c2lkZUNsaWNrV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnRyaWJ1dGVQcm9wcyh1c2VPbk91dHNpZGVDbGljayhvbk91dHNpZGVDbGljaykpO1xuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG59O1xuXG5leHBvcnQgY29uc3Qgb25PdXRzaWRlQ2xpY2tQbHVnaW4gPSBnZXRQbHVnaW48T25PdXRzaWRlQ2xpY2tQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJG9uT3V0c2lkZUNsaWNrIH0gPSBwcm9wcztcblxuICBpZiAoJG9uT3V0c2lkZUNsaWNrID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBPbk91dHNpZGVDbGlja1dyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBvbk91dHNpZGVDbGljazogJG9uT3V0c2lkZUNsaWNrIH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1odG1sLWVsZW1lbnQtcmVmLXNldC5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgRG9Gb2N1czxUPiA9IChpdGVtOiBUKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgRG9Gb2N1c0ZvciA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBEb0ZvY3VzPFQ+O1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gRG9Gb2N1c0ZvciB9Pih7XG4gIGlkOiBcImRvLWZvY3VzLWZvci1pbmplY3Rpb24tdG9rZW5cIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRvLWZvY3VzLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRSZWZTZXQgPSBkaS5pbmplY3QoZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICAoZm9jdXNhYmxlSXRlbTogVCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtmaXJzdFJlbmRlcmVkRm9jdXNhYmxlRWxlbWVudFJlZl0gPSBnZXRSZWZTZXQoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSk7XG5cbiAgICAgICAgICBpZiAoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIGFzc2VydERlZmluZWQoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICAgIGZpcnN0UmVuZGVyZWRGb2N1c2FibGVFbGVtZW50UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIGFzIERvRm9jdXNGb3I7XG4gIH0sXG5cbiAgaW5qZWN0aW9uVG9rZW46IGRvRm9jdXNGb3JJbmplY3Rpb25Ub2tlbixcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIEZvY3VzYWJsZUl0ZW0gPSBhbnk7XG5cbi8vIFR3byBpbnN0YW50aWF0aW9uIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gb25lIGNvbXBvc2l0ZSBrZXk6IHYyIGtleXMgYVxuLy8gc2luZ2xldG9uIGJ5IGFsbCBvZiB0aGVtLCBzbyB0aGUgY29udGV4dCBhbmQgdGhlIGl0ZW0gY29tcG9zZSBieSBpZGVudGl0eSBvblxuLy8gdGhlaXIgb3duLlxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaHRtbC1lbGVtZW50cy1ieS1mb2N1c2FibGUtbWFwXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPiwgX2l0ZW06IEZvY3VzYWJsZUl0ZW0pID0+XG4gICAgbmV3IFNldDxNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPj4oKSxcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBJQ29tcHV0ZWRWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgSXRlbUJlaW5nRm9jdXNlZCA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBJQ29tcHV0ZWRWYWx1ZTxUIHwgdW5kZWZpbmVkPjtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0ZvY3VzZWRJbmplY3Rpb25Ub2tlbiA9IGdldEluamVjdGlvblRva2VuMjx7IHNpbmdsZUZhY3Rvcnk6ICgpID0+IEl0ZW1CZWluZ0ZvY3VzZWQgfT4oe1xuICBpZDogXCJpdGVtLWJlaW5nLWZvY3VzZWRcIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgcHJpdmF0ZUl0ZW1CZWluZ0ZvY3VzZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJwcml2YXRlLWl0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRGb2N1c2FibGVJdGVtU3RhdGUgPSBkaS5pbmplY3QoZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0Rm9jdXNhYmxlSXRlbVN0YXRlKGNvbnRleHQpLmdldCgpKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nRm9jdXNlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdGb2N1c2VkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+KSBhcyBJdGVtQmVpbmdGb2N1c2VkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdGb2N1c2VkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImZvY3VzYWJsZS1pdGVtLXN0YXRlXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxhbnk+KSA9PiBvYnNlcnZhYmxlLmJveDx1bmtub3duPigpLFxufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBlbmFibGVkU3R5bGVzIGZyb20gXCIuL2VuYWJsZWQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogVGhpcyBmaWVsZCBoYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gJGRpc2FibGVkXG4gICAqL1xuICAkZW5hYmxlZD86IGJvb2xlYW47XG4gICRkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIGlzIG92ZXJyaWRkZW4gdmlhICRkaXNhYmxlZCBhbmQgJGVuYWJsZWRcbiAgICovXG4gIGRpc2FibGVkPzogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuYWJsZWRQbHVnaW4gPSBnZXRQbHVnaW48RW5hYmxlZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCBkaXNhYmxlZCA9IGlzRGlzYWJsZWQocHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGRpc2FibGVkID8gZW5hYmxlZFN0eWxlcy5kaXNhYmxlZCA6IHVuZGVmaW5lZF0sXG4gICAgZGlzYWJsZWQsXG4gICAgJGVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAkZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNEaXNhYmxlZCA9IChwcm9wczogRW5hYmxlZFBsdWdpblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGVuYWJsZWQsICRkaXNhYmxlZCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIHR5cGVvZiAkZW5hYmxlZCA9PT0gXCJib29sZWFuXCIgPyAhJGVuYWJsZWQgOiAoJGRpc2FibGVkID8/IGZhbHNlKTtcbn07XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5lbmFibGVkLW1vZHVsZV9fZGlzYWJsZWRfX19MTDNzdyB7XFxuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkaXNhYmxlZFwiOlwiZW5hYmxlZC1tb2R1bGVfX2Rpc2FibGVkX19fTEwzc3dcIn07IiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IHR5cGUgQ29udGV4dE1hcFZhbHVlLCBob3Zlckl0ZW1TdGF0ZUZvckluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgYWN0aW9uLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGlzRGVmaW5lZCwgbm9vcCwgdHlwZSBTaW5nbGVPck1hbnkgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHR5cGUgeyAkSG92ZXJhYmxlUHJvcHMgfSBmcm9tIFwiLi9ob3ZlcmFibGVcIjtcblxuZXhwb3J0IHR5cGUgJEhvdmVyYWJsZUJ5RHJhZ2dpbmdQcm9wczxUPiA9IFBpY2s8JEhvdmVyYWJsZVByb3BzPFQ+LCBcImNvbnRleHRcIiB8IFwiaXRlbVwiPjtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzPFQgPSBhbnk+ID0ge1xuICAkaG92ZXJhYmxlQnlEcmFnZ2luZz86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzPFQ+Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW5Qcm9wcywgW1JldHVyblR5cGU8dHlwZW9mIHJlZlBsdWdpbjxUPj5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRob3ZlcmFibGVCeURyYWdnaW5nLCAkcmVmIH0gPSBwcm9wcztcblxuICAgIGlmICgkaG92ZXJhYmxlQnlEcmFnZ2luZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaG92ZXJhYmxlQnlEcmFnZ2luZzogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gICAgY29uc3QgaG92ZXJhYmxlUHJvcHNSZWYgPSB1c2VSZWYob2JzZXJ2YWJsZS5tYXAodG9Db250ZXh0TWFwKCRob3ZlcmFibGVCeURyYWdnaW5nKSwgeyBkZWVwOiBmYWxzZSB9KSk7XG4gICAgY29uc3QgY29udHJvbGxlciA9IHVzZVJlZihuZXcgQWJvcnRDb250cm9sbGVyKCkpO1xuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcCgkaG92ZXJhYmxlQnlEcmFnZ2luZykpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGFjdGlvbigoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmN1cnJlbnQuYWJvcnQoKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY3VycmVudCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdlbnRlclwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgIGdldFByb3BzOiAoKSA9PiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmdldChjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5jdXJyZW50LnNpZ25hbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkU3RhdGUgPSBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KTtcblxuICAgICAgICAgICAgICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICAgICAgICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLmN1cnJlbnQuc2lnbmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJHJlZjogWyRyZWYsIGNhbGxiYWNrUmVmXSxcbiAgICAgICRob3ZlcmFibGVCeURyYWdnaW5nOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVCeURyYWdnaW5nUHJvcHM8dW5rbm93bj4+IHwgdW5kZWZpbmVkKSA9PiB7XG4gIGNvbnN0IGl0ZW1zID0gW3Byb3BzXS5mbGF0KCkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gIGNvbnN0IHJlc3VsdHM6IFtvYmplY3QsIENvbnRleHRNYXBWYWx1ZV1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gb2YgaXRlbXMpIHtcbiAgICByZXN1bHRzLnB1c2goW2NvbnRleHQsIHsgaXRlbSwgZGVsYXk6IDAsIG9uSG92ZXI6IG5vb3AsIG9uVW5ob3Zlcjogbm9vcCB9XSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn07XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBJT2JzZXJ2YWJsZVZhbHVlLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1hcFZhbHVlID0ge1xuICByZWFkb25seSBpdGVtOiB1bmtub3duO1xuICByZWFkb25seSBkZWxheTogbnVtYmVyO1xuICBvbkhvdmVyOiBWb2lkRnVuY3Rpb247XG4gIG9uVW5ob3ZlcjogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJlZEl0ZW1TdGF0ZSA9IHtcbiAgcmVhZG9ubHkgaG92ZXJlZEF0OiBJT2JzZXJ2YWJsZVZhbHVlPG51bWJlcj47XG4gIHJlYWRvbmx5IGdldFByb3BzOiAoKSA9PiBDb250ZXh0TWFwVmFsdWUgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImhvdmVyZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IG9iamVjdCkgPT4gb2JzZXJ2YWJsZS5tYXA8c3RyaW5nLCBIb3ZlcmVkSXRlbVN0YXRlPihbXSwgeyBkZWVwOiBmYWxzZSB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJob3Zlci1pdGVtLXN0YXRlLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRIb3ZlcmVkSXRlbVN0YXRlID0gZGkuaW5qZWN0KGhvdmVyZWRJdGVtU3RhdGVJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiAoY29udGV4dDogb2JqZWN0KSA9PiBnZXRIb3ZlcmVkSXRlbVN0YXRlKGNvbnRleHQpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcyB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgdHlwZSBDb250ZXh0TWFwVmFsdWUsIGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuL2hvdmVyZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIGNvbXBhcmVyLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IG5vb3AgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCB0eXBlIFNpbmdsZU9yTWFueSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCB0eXBlIEhvdmVyYWJsZUNvbnRleHRPcHRpb25zID0ge1xuICAvKipcbiAgICogSW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZWxheT86IG51bWJlcjtcbiAgcmVhZG9ubHkgb25Ib3Zlcj86IFZvaWRGdW5jdGlvbjtcbiAgcmVhZG9ubHkgb25VbmhvdmVyPzogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQ29udGV4dDxIb3ZlcmVkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGhvdmVyYWJsZTogKGl0ZW06IEhvdmVyZWRJdGVtLCBvcHRpb25zPzogSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMpID0+ICRIb3ZlcmFibGVQcm9wczxIb3ZlcmVkSXRlbT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlICRIb3ZlcmFibGVQcm9wczxUSXRlbSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgY29udGV4dDogb2JqZWN0O1xuICByZWFkb25seSBpdGVtOiBUSXRlbTtcbiAgcmVhZG9ubHkgb3B0aW9uczogUmVxdWlyZWQ8SG92ZXJhYmxlQ29udGV4dE9wdGlvbnM+O1xufVxuXG5leHBvcnQgdHlwZSBIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PiA9IHtcbiAgcmVhZG9ubHkgJGhvdmVyYWJsZT86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlUHJvcHM+O1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUVudGVyXCJdO1xuICBvbk1vdXNlTGVhdmU/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUxlYXZlXCJdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhvdmVyYWJsZUNvbnRleHQgPSA8SG92ZXJlZEl0ZW0sPigpOiBIb3ZlcmFibGVDb250ZXh0PEhvdmVyZWRJdGVtPiA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgaG92ZXJhYmxlOiAoaXRlbTogSG92ZXJlZEl0ZW0sIHsgZGVsYXkgPSAwLCBvbkhvdmVyID0gbm9vcCwgb25VbmhvdmVyID0gbm9vcCB9OiBIb3ZlcmFibGVDb250ZXh0T3B0aW9ucyA9IHt9KSA9PiAoe1xuICAgICAgY29udGV4dCxcbiAgICAgIGl0ZW0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICBvblVuaG92ZXIsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4gPSBSZXR1cm5UeXBlPHR5cGVvZiBob3ZlcmFibGVQbHVnaW48VD4+O1xuXG50eXBlIEhvdmVyYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgaG92ZXJhYmxlOiBTaW5nbGVPck1hbnk8JEhvdmVyYWJsZVByb3BzPjtcbiAgcmVhZG9ubHkgb25Nb3VzZUVudGVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICByZWFkb25seSBvbk1vdXNlTGVhdmU/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGhvdmVyYWJsZSxcbiAgb25Nb3VzZUVudGVyLFxuICBvbk1vdXNlTGVhdmUsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBIb3ZlcmFibGVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbik7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcblxuICBjb25zdCBob3ZlcmFibGVQcm9wc1JlZiA9IHVzZVJlZihcbiAgICBvYnNlcnZhYmxlLm1hcCh0b0NvbnRleHRNYXAoaG92ZXJhYmxlKSwgeyBkZWVwOiBmYWxzZSwgZXF1YWxzOiBjb21wYXJlci5zdHJ1Y3R1cmFsIH0pLFxuICApO1xuXG4gIHVzZUVmZmVjdChcbiAgICBhY3Rpb24oKCkgPT4ge1xuICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcChob3ZlcmFibGUpKTtcbiAgICB9KSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CeUNvbnRleHQgPSBuZXcgTWFwPG9iamVjdCwgdW5rbm93bj4oKTtcblxuICAgIHJldHVybiBhdXRvcnVuKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2NvbnRleHQsIHsgaXRlbSwgb25Ib3Zlciwgb25VbmhvdmVyIH1dIG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaG92ZXJlZEl0ZW0gPSBpdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQgYXMgSG92ZXJhYmxlQ29udGV4dDx1bmtub3duPikuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbSA9IGl0ZW1CeUNvbnRleHQuZ2V0KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChob3ZlcmVkSXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgIG9uSG92ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmV2aW91c0l0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICBvblVuaG92ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW1CeUNvbnRleHQuc2V0KGNvbnRleHQsIGhvdmVyZWRJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW2l0ZW1CZWluZ0hvdmVyZWRdKTtcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIGFjdGlvbigoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgY29udGV4dCBvZiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmtleXMoKSkge1xuICAgICAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjayhcbiAgICBhY3Rpb24oKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Nb3VzZUVudGVyPy4oZXZlbnQpO1xuXG4gICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbnRleHQgb2YgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5rZXlzKCkpIHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoY29udGV4dCkuc2V0KGlkLCB7XG4gICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgZ2V0UHJvcHM6ICgpID0+IGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQuZ2V0KGNvbnRleHQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soXG4gICAgYWN0aW9uKChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uTW91c2VMZWF2ZT8uKGV2ZW50KTtcblxuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRTdGF0ZSA9IGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpO1xuXG4gICAgICAgIGhvdmVyZWRTdGF0ZS5kZWxldGUoaWQpO1xuICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgW10sXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICBvbk1vdXNlRW50ZXI6IGhhbmRsZU1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZUxlYXZlOiBoYW5kbGVNb3VzZUxlYXZlLFxuICB9KTtcblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhvdmVyYWJsZVBsdWdpbjxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudD4+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGhvdmVyYWJsZSwgb25Nb3VzZUVudGVyLCBvbk1vdXNlTGVhdmUgfSA9IHByb3BzO1xuXG4gICAgaWYgKCRob3ZlcmFibGUgPT09IHVuZGVmaW5lZCB8fCAoQXJyYXkuaXNBcnJheSgkaG92ZXJhYmxlKSAmJiAkaG92ZXJhYmxlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBob3ZlcmFibGU6ICRob3ZlcmFibGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVQcm9wczx1bmtub3duPj4gfCB1bmRlZmluZWQpID0+IHtcbiAgY29uc3QgaXRlbXMgPSBbcHJvcHNdLmZsYXQoKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgY29uc3QgcmVzdWx0czogW29iamVjdCwgQ29udGV4dE1hcFZhbHVlXVtdID0gW107XG5cbiAgZm9yIChjb25zdCB7IGNvbnRleHQsIGl0ZW0sIG9wdGlvbnMgfSBvZiBpdGVtcykge1xuICAgIHJlc3VsdHMucHVzaChbY29udGV4dCwgeyBpdGVtLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiwgZ2V0SW5qZWN0aW9uVG9rZW4yIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSUNvbXB1dGVkVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4vaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZE5vd0luamVjdGFibGUgfSBmcm9tIFwiLi9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSBJdGVtQmVpbmdIb3ZlcmVkID0gPFQ+KGhvdmVyYWJsZUNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+IElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gSXRlbUJlaW5nSG92ZXJlZCB9Pih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuICBjYXJkaW5hbGl0eTogXCJvbmVcIixcbn0pKCk7XG5cbmV4cG9ydCBjb25zdCBwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcInByaXZhdGUtaXRlbS1iZWluZy1ob3ZlcmVkXCIsXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGdldEhvdmVyZWRJdGVtU3RhdGUgPSBkaS5pbmplY3QoaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUpO1xuICAgIGNvbnN0IGdldENvbXB1dGVkTm93ID0gZGkuaW5qZWN0KGNvbXB1dGVkTm93SW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IG9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZSA9IGdldEhvdmVyZWRJdGVtU3RhdGUoY29udGV4dCk7XG4gICAgICBjb25zdCBjb21wdXRlZE5vdyA9IGdldENvbXB1dGVkTm93KDEpO1xuXG4gICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b3BJdGVtID0gWy4uLmhvdmVyZWRJdGVtU3RhdGUudmFsdWVzKCldLmF0KC0xKTtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0b3BJdGVtPy5nZXRQcm9wcygpO1xuXG4gICAgICAgIGlmICghdG9wSXRlbSB8fCAhcHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2hlbkNvbnNpZGVyZWRIb3ZlcmVkID0gdG9wSXRlbS5ob3ZlcmVkQXQuZ2V0KCkgKyBwcm9wcy5kZWxheTtcbiAgICAgICAgY29uc3Qgbm93ID0gY29tcHV0ZWROb3cuZ2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vdyA+PSB3aGVuQ29uc2lkZXJlZEhvdmVyZWQgPyBwcm9wcy5pdGVtIDogdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nSG92ZXJlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQ+KSBhcyBJdGVtQmVpbmdIb3ZlcmVkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZCwgb2JzZXJ2YWJsZSwgb25CZWNvbWVPYnNlcnZlZCwgb25CZWNvbWVVbm9ic2VydmVkLCBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5cbi8qKlxuICogQSBjbG9jayB0aGF0IGFkdmFuY2VzIG9ubHkgd2hpbGUgc29tZXRoaW5nIG9ic2VydmVzIGl0LCBzbyBhIGhvdmVyIGRlbGF5XG4gKiBrZWVwcyBiZWluZyByZS1ldmFsdWF0ZWQgdW50aWwgaXQgaGFzIGVsYXBzZWQgYW5kIGNvc3RzIG5vdGhpbmcgb25jZSBub2JvZHlcbiAqIGlzIHdhdGNoaW5nLlxuICpcbiAqIExvY2FsIHJhdGhlciB0aGFuIHRha2VuIGZyb20gdGhlIHNoYXJlZCBpbnRlcnZhbCBmZWF0dXJlOiBhIGRlc2lnbiBzeXN0ZW1cbiAqIGNhbm5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZCB0aGUgaG92ZXJhYmxlIHBsdWdpbiBpcyB0aGUgb25seVxuICogdGhpbmcgaGVyZSB0aGF0IG5lZWRzIGEgY2xvY2suIFRoZSBpbnRlcnZhbCBpcyB0aGUgaW5zdGFudGlhdGlvbiBwYXJhbWV0ZXIsXG4gKiBzbyB2MiBrZXlzIG9uZSBjbG9jayBwZXIgaW50ZXJ2YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wdXRlZE5vd0luamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImNvbXB1dGVkLW5vd1wiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoaW50ZXJ2YWxNczogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgbm93ID0gb2JzZXJ2YWJsZS5ib3goRGF0ZS5ub3coKSk7XG5cbiAgICBsZXQgaGFuZGxlOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCB1bmRlZmluZWQ7XG5cbiAgICBvbkJlY29tZU9ic2VydmVkKG5vdywgKCkgPT4ge1xuICAgICAgcnVuSW5BY3Rpb24oKCkgPT4gbm93LnNldChEYXRlLm5vdygpKSk7XG5cbiAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKCgpID0+IHJ1bkluQWN0aW9uKCgpID0+IG5vdy5zZXQoRGF0ZS5ub3coKSkpLCBpbnRlcnZhbE1zKTtcbiAgICB9KTtcblxuICAgIG9uQmVjb21lVW5vYnNlcnZlZChub3csICgpID0+IHtcbiAgICAgIGlmIChoYW5kbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhckludGVydmFsKGhhbmRsZSk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBub3cuZ2V0KCkpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIsIGdldEluamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IElDb21wdXRlZFZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlQ29udGV4dCB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIEl0ZW1CZWluZ0RyYWdnZWQgPSA8VD4oZHJhZ2dhYmxlQ29udGV4dDogRHJhZ2dhYmxlQ29udGV4dDxUPikgPT4gSUNvbXB1dGVkVmFsdWU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjb25zdCBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8eyBzaW5nbGVGYWN0b3J5OiAoKSA9PiBJdGVtQmVpbmdEcmFnZ2VkIH0+KHtcbiAgaWQ6IFwiaXRlbS1iZWluZy1kcmFnZ2VkXCIsXG4gIGNhcmRpbmFsaXR5OiBcIm9uZVwiLFxufSkoKTtcblxuZXhwb3J0IGNvbnN0IHByaXZhdGVJdGVtQmVpbmdEcmFnZ2VkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwicHJpdmF0ZS1pdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0RHJhZ2dlZEl0ZW1TdGF0ZSA9IGRpLmluamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0RHJhZ2dlZEl0ZW1TdGF0ZShjb250ZXh0KS5nZXQoKSk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJpdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0UHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWQgPSBkaS5pbmplY3QocHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICBnZXRQcml2YXRlSXRlbUJlaW5nRHJhZ2dlZChjb250ZXh0KSBhcyBJQ29tcHV0ZWRWYWx1ZTxUPikgYXMgSXRlbUJlaW5nRHJhZ2dlZDtcbiAgfSxcblxuICBpbmplY3Rpb25Ub2tlbjogaXRlbUJlaW5nRHJhZ2dlZEluamVjdGlvblRva2VuLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbi8vIFRoZSBjb250ZXh0IGlzIHRoZSBpbnN0YW50aWF0aW9uIHBhcmFtZXRlciwgc28gdjIga2V5cyBvbmUgc3RhdGUgYm94IHBlclxuLy8gY29udGV4dCBpZGVudGl0eSBcdTIwMTQgd2hhdCB0aGUga2V5ZWRTaW5nbGV0b24gdXNlZCB0byBzcGVsbCBvdXQuXG5leHBvcnQgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRyYWdnZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gb2JzZXJ2YWJsZS5ib3godW5kZWZpbmVkLCB7IGRlZXA6IGZhbHNlIH0pLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEhvdmVyYWJsZVBsdWdpbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB7IGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB0b29sdGlwRGVsYXlJbmplY3RhYmxlIH0gZnJvbSBcIi4vdG9vbHRpcC1kZWxheS90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdG9vbHRpcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHsgbm9vcCwgdHlwZSBNYXliZUFzeW5jVm9pZEZ1bmN0aW9uIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYsIHR5cGUgTWluaW1hbERpdlByb3BzIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzL21pbmltYWwtZGl2XCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIG9ic2VydmFibGUgfSBmcm9tIFwibW9ieFwiO1xuXG50eXBlIFRvb2x0aXBDb250ZW50UHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3Q+ID1cbiAgfCB7XG4gICAgICAvKiogUGxhaW4tdGV4dCBjb250ZW50IG9mIHRoZSB0b29sdGlwLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgQ29udGVudGAuICovXG4gICAgICByZWFkb25seSBjb250ZW50VGV4dDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgQ29udGVudD86IHVuZGVmaW5lZDtcbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgcmVhZG9ubHkgY29udGVudFRleHQ/OiB1bmRlZmluZWQ7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb21wb25lbnQgcmVuZGVyZWQgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIHRvb2x0aXAuIE11c3QgaGF2ZSBhIHN0YWJsZVxuICAgICAgICogaWRlbnRpdHkgKG1vZHVsZSBzY29wZSkgXHUyMDE0IGRhdGEgZmxvd3MgaW4gdGhyb3VnaCBgY29udGVudFByb3BzYCwgbmV2ZXJcbiAgICAgICAqIHRocm91Z2ggY2xvc3VyZSBjYXB0dXJlLlxuICAgICAgICovXG4gICAgICByZWFkb25seSBDb250ZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPjtcbiAgICAgIC8qKiBUaGUgcHJvcHMgdGhlIHRvb2x0aXAgcGFzc2VzIHRvIGBDb250ZW50YCB3aGVuIHJlbmRlcmluZyBpdC4gKi9cbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IFByb3BzO1xuICAgIH07XG5cbmV4cG9ydCB0eXBlICRUb29sdGlwUHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8bmV2ZXIsIG5ldmVyPj4gPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBvblRvb2x0aXBTaG93bj86IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59ICYgVG9vbHRpcENvbnRlbnRQcm9wczxQcm9wcz47XG5cbi8qKlxuICogVHlwZS1jaGVja3MgdGhlIHBhaXJpbmcgb2YgYENvbnRlbnRgIGFuZCBgY29udGVudFByb3BzYCBvZiBhbiBvYmplY3QtZm9ybVxuICogYCR0b29sdGlwYDogYGNvbnRlbnRQcm9wc2AgaXMgcmVxdWlyZWQgdG8gYmUgdGhlIHByb3BzIG9mIGBDb250ZW50YCwgYW5kIGl0XG4gKiBpcyByZXF1aXJlZCB0byBiZSBwcmVzZW50IHdoZW4gYENvbnRlbnRgIGhhcyByZXF1aXJlZCBwcm9wcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHMpOiAkVG9vbHRpcFByb3BzPGFueT47XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcFByb3BzPFByb3BzIGV4dGVuZHMgb2JqZWN0PihcbiAgdG9vbHRpcFByb3BzOiAkVG9vbHRpcFByb3BzPFByb3BzPiAmIHsgcmVhZG9ubHkgY29udGVudFByb3BzOiBQcm9wcyB9LFxuKTogJFRvb2x0aXBQcm9wczxhbnk+O1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHM8YW55Pik6ICRUb29sdGlwUHJvcHM8YW55PiB7XG4gIHJldHVybiB0b29sdGlwUHJvcHM7XG59XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqIE51bGxpc2ggbWVhbnMgbm8gdG9vbHRpcCwgc28gY29uZGl0aW9uYWwgc291cmNlcyAoYHN0cmluZyB8IG51bGxgKSBwYXNzIHRocm91Z2ggYXMtaXMuICovXG4gICR0b29sdGlwPzogc3RyaW5nIHwgJFRvb2x0aXBQcm9wczxhbnk+IHwgbnVsbDtcbn07XG5cbi8qKlxuICogQSB0b29sdGlwIG9mIG5vdGhpbmc6IHRoZSBlbGVtZW50IHRha2VzIHRoZSBob3Zlciwgc28gbm8gZW5jbG9zaW5nIGVsZW1lbnQgc2hvd3MgaXRzIHRvb2x0aXBcbiAqIHdoaWxlIHRoZSBwb2ludGVyIGlzIG92ZXIgdGhpcyBvbmUsIGFuZCBzaG93cyBub3RoaW5nIG9mIGl0cyBvd24uIE51bGxpc2ggYCR0b29sdGlwYCBsZWF2ZXMgdGhlXG4gKiBlbmNsb3NpbmcgdG9vbHRpcCBhbG9uZSBpbnN0ZWFkIFx1MjAxNCB1c2UgdGhpcyB3aGVyZSBhbiBlbGVtZW50IG11c3Qgbm90IGJlIGRlc2NyaWJlZCBieSB3aGF0ZXZlclxuICogZW5jbG9zZXMgaXQsIGEgcGFuZWwgb3BlbmVkIGZyb20gYSByb3cgd2l0aCBhIHRvb2x0aXAgYmVpbmcgdGhlIGNhc2UgdGhhdCBuZWVkcyBpdDogYSB0b29sdGlwXG4gKiBnb2VzIGludG8gdGhlIHRvcCBsYXllciwgc28gaXQgd291bGQgcGFpbnQgb3ZlciB3aGF0IHRoZSBwYW5lbCBpcyB0aGVyZSBmb3IuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogPExpICR0b29sdGlwPXtzdXBwcmVzc1Rvb2x0aXB9PlxuICogICA8U2V0dGluZ3MgLz5cbiAqIDwvTGk+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHByZXNzVG9vbHRpcDogJFRvb2x0aXBQcm9wcyA9IHsgY29udGVudFRleHQ6IFwiXCIgfTtcblxuY29uc3QgaG92ZXJhYmxlVG9vbHRpcENvbnRleHQgPSBnZXRIb3ZlcmFibGVDb250ZXh0PEhUTUxFbGVtZW50IHwgbnVsbD4oKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IE1pbmltYWxEaXZQcm9wcykgPT4ge1xuICBjb25zdCB7ICRjbGFzc05hbWUsIC4uLnJlc3QgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgICRwYWRkaW5nXG4gICAgICAkYmFja2dyb3VuZENvbG9yPVwiYmFja2dyb3VuZFNlY29uZGFyeVwiXG4gICAgICAkYm9yZGVyPXt7IHJhZGl1czogdHJ1ZSB9fVxuICAgICAgJGZvbnQ9e3sgc2l6ZTogXCJzXCIgfX1cbiAgICAgICRib3hTaGFkb3dcbiAgICAgICRub1BvaW50ZXJFdmVudHNcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17W3N0eWxlcy50b29sdGlwLCAkY2xhc3NOYW1lXX1cbiAgICAgIGRhdGEtdG9vbHRpcC1jb250YWluZXItdGVzdFxuICAgICAgey4uLnJlc3R9XG4gICAgLz5cbiAgKTtcbn07XG5cbnR5cGUgRmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyUHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVmZXJlbmNlOiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uVG9vbHRpcFNob3duOiBWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFBvcG92ZXJDYXBhYmxlID0gSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiBWb2lkRnVuY3Rpb247IGhpZGVQb3BvdmVyOiBWb2lkRnVuY3Rpb24gfTtcblxuY29uc3QgaXNQb3BvdmVyQ2FwYWJsZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgUG9wb3ZlckNhcGFibGUgPT5cbiAgdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8UG9wb3ZlckNhcGFibGU+KS5zaG93UG9wb3ZlciA9PT0gXCJmdW5jdGlvblwiO1xuXG5jb25zdCBGbG9hdGluZ1N0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IEZsb2F0aW5nU3R5bGVkVG9vbHRpcENvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcG9zaXRpb24sIHJlZmVyZW5jZSwgb25Ub29sdGlwU2hvd24gfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IHBvc2l0aW9uLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHdlIGRvbid0IHdhbnQgdG8gY2FsbCBvblRvb2x0aXBTaG93biBldmVyeSB0aW1lIGl0IHVwZGF0ZXMgd2hpbGUgdGhlIHRvb2x0aXAgaXMgYmVpbmcgc2hvd1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgb25Ub29sdGlwU2hvd24oKTtcbiAgfSwgW10pO1xuXG4gIC8vIEludG8gdGhlIHRvcCBsYXllciwgd2hlcmUgYSBkcm9wLWRvd24gbWVudSBhbHJlYWR5IHB1dHMgaXRzZWxmOiBubyB6LWluZGV4IGNhblxuICAvLyBwYWludCBvdmVyIGEgcG9wb3Zlciwgc28gYSB0b29sdGlwIGFueXdoZXJlIG5lYXIgYW4gb3BlbiBtZW51IHdvdWxkIGJlIGhpZGRlblxuICAvLyBiZWhpbmQgaXQuIFNob3duIGFmdGVyIHRoZSBtZW51IG9wZW5lZCwgc28gaXQgbGFuZHMgYWJvdmUgaXQuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFmbG9hdGluZyB8fCAhaXNQb3BvdmVyQ2FwYWJsZShmbG9hdGluZykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmbG9hdGluZy5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChmbG9hdGluZy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBmbG9hdGluZy5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtmbG9hdGluZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFRvb2x0aXBDb250YWluZXIgJHJlZj17c2V0RmxvYXRpbmd9IHBvcG92ZXI9XCJtYW51YWxcIiBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9TdHlsZWRUb29sdGlwQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFBsdWdpbjxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+ID0gUmV0dXJuVHlwZTx0eXBlb2YgdG9vbHRpcFBsdWdpbjxUPj47XG5cbnR5cGUgTm9ybWFsaXplZFRvb2x0aXBQcm9wcyA9IHtcbiAgcmVhZG9ubHkgY29udGVudFRleHQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IENvbnRlbnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT47XG4gIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IGFueTtcbiAgcmVhZG9ubHkgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVhZG9ubHkgb25Ub29sdGlwU2hvd246IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFRvb2x0aXBXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHRvb2x0aXA6IE5vcm1hbGl6ZWRUb29sdGlwUHJvcHM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgVG9vbHRpcFdyYXBwZXJDb21wb25lbnQgPSAoeyB0b29sdGlwLCBjb250cmlidXRlUmVmLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IFRvb2x0aXBXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnRyaWJ1dGVSZWYoc2V0UmVmZXJlbmNlKTtcblxuICBjb25zdCB0b29sdGlwRGVsYXkgPSB1c2VTeW5jSW5qZWN0KHRvb2x0aXBEZWxheUluamVjdGFibGUpO1xuICBjb25zdCBob3Zlckl0ZW1TdGF0ZUZvciA9IHVzZVN5bmNJbmplY3QoaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlKTtcbiAgY29uc3QgaG92ZXJlZEl0ZW0gPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbikoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlUmVmID0gdXNlUmVmKHJlZmVyZW5jZSk7XG4gIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlO1xuXG4gIGNvbnN0IHRvb2x0aXBEZWxheVJlZiA9IHVzZVJlZih0b29sdGlwRGVsYXkpO1xuICB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA9IHRvb2x0aXBEZWxheTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIG9uTW91c2VFbnRlcjogYWN0aW9uKCgpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWRBdCA9IERhdGUubm93KCk7XG5cbiAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGhvdmVyYWJsZVRvb2x0aXBDb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgIGdldFByb3BzOiAoKSA9PiAoe1xuICAgICAgICAgIGl0ZW06IHJlZmVyZW5jZVJlZi5jdXJyZW50LFxuICAgICAgICAgIGRlbGF5OiB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA/PyAwLFxuICAgICAgICAgIG9uSG92ZXI6IG5vb3AsXG4gICAgICAgICAgb25VbmhvdmVyOiBub29wLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgIH0pLFxuXG4gICAgb25Nb3VzZUxlYXZlOiBhY3Rpb24oKCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZFN0YXRlID0gaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgfSksXG4gIH0pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICB9KSxcbiAgICBbaG92ZXJJdGVtU3RhdGVGb3IsIGlkXSxcbiAgKTtcblxuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gYXV0b3J1bigoKSA9PiB7XG4gICAgICBjb25zdCBpc0hvdmVyZWQgPSBob3ZlcmVkSXRlbS5nZXQoKSA9PT0gcmVmZXJlbmNlUmVmLmN1cnJlbnQ7XG4gICAgICBzZXRIb3ZlcmVkKGlzSG92ZXJlZCk7XG4gICAgfSk7XG4gIH0sIFtob3ZlcmVkSXRlbV0pO1xuXG4gIGNvbnN0IHsgY29udGVudFRleHQsIENvbnRlbnQsIGNvbnRlbnRQcm9wcywgcG9zaXRpb24sIG9uVG9vbHRpcFNob3duIH0gPSB0b29sdGlwO1xuICBjb25zdCBjb250ZW50ID0gaG92ZXJlZCA/IENvbnRlbnQgPT09IHVuZGVmaW5lZCA/IGNvbnRlbnRUZXh0IDogPENvbnRlbnQgey4uLmNvbnRlbnRQcm9wc30gLz4gOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NvbnRlbnRcbiAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyIHsuLi57IGNvbnRlbnQsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biwgcmVmZXJlbmNlIH19IC8+LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b29sdGlwUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48VG9vbHRpcFBsdWdpblByb3BzLCBbSG92ZXJhYmxlUGx1Z2luPFQ+LCBSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICR0b29sdGlwIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiB7IHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH07XG5cbiAgICBpZiAoJHRvb2x0aXAgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJHRvb2x0aXA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgY29udGVudFRleHQsXG4gICAgICBDb250ZW50LFxuICAgICAgY29udGVudFByb3BzLFxuICAgICAgcG9zaXRpb24gPSBcImJvdHRvbVwiLFxuICAgICAgb25Ub29sdGlwU2hvd24gPSBub29wLFxuICAgIH06ICRUb29sdGlwUHJvcHM8YW55PiA9IHR5cGVvZiAkdG9vbHRpcCA9PT0gXCJzdHJpbmdcIiA/IHsgY29udGVudFRleHQ6ICR0b29sdGlwIH0gOiAkdG9vbHRpcDtcblxuICAgIHJldHVybiB7XG4gICAgICAkdG9vbHRpcDogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBUb29sdGlwV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICB0b29sdGlwOiB7IGNvbnRlbnRUZXh0LCBDb250ZW50LCBjb250ZW50UHJvcHMsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCB0b29sdGlwRGVsYXlJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJ0b29sdGlwLWRlbGF5XCIsXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IDUwMCxcbn0pO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudG9vbHRpcC1tb2R1bGVfX3Rvb2x0aXBfX192YU9BdSB7XFxuICB6LWluZGV4OiAxMDAwMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XFxuICBtYXgtd2lkdGg6IDYwMHB4O1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLnRvb2x0aXAtbW9kdWxlX190b29sdGlwX19fdmFPQXU6cG9wb3Zlci1vcGVuIHtcXG4gIGluc2V0OiBhdXRvO1xcbiAgbWFyZ2luOiAwO1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0b29sdGlwXCI6XCJ0b29sdGlwLW1vZHVsZV9fdG9vbHRpcF9fX3ZhT0F1XCJ9OyIsICJpbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBvYnNlcnZlciB9IGZyb20gXCJtb2J4LXJlYWN0XCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5pbXBvcnQgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB7IGZvbnRQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvd1wiO1xuaW1wb3J0IHsgbm9Qb2ludGVyRXZlbnRzUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL3JlZi9yZWZcIjtcbmltcG9ydCB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZVwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZVwiO1xuXG5jb25zdCBwbHVnaW5zID0gW1xuICBwYWRkaW5nUGx1Z2luLFxuICBib3hTaGFkb3dQbHVnaW4sXG4gIGJvcmRlclBsdWdpbixcbiAgZm9udFBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBub1BvaW50ZXJFdmVudHNQbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY2xhc3NOYW1lUGx1Z2luLFxuXTtcblxuY29uc3QgZ2V0VHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbaG92ZXJhYmxlUGx1Z2luPFQ+KCksIHJlZlBsdWdpbjxUPigpXTtcblxuZXhwb3J0IGNvbnN0IE1pbmltYWxEaXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnBsdWdpbnMsIC4uLmdldFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBNaW5pbWFsRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTWluaW1hbERpdj47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBhYnNvbHV0ZVN0eWxlcyBmcm9tIFwiLi9hYnNvbHV0ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBvc2l0aW9uID1cbiAgfCBcImFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCJcbiAgfCBcImFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlclwiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBsdWdpblByb3BzID0geyAkYWJzb2x1dGU/OiBBYnNvbHV0ZVBvc2l0aW9uIHwgYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYWJzb2x1dGVQbHVnaW4gPSBnZXRQbHVnaW48QWJzb2x1dGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtcbiAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIHsgW2Fic29sdXRlU3R5bGVzLmFic29sdXRlXTogISFwcm9wcy4kYWJzb2x1dGUgfSxcbiAgICB0eXBlb2YgcHJvcHMuJGFic29sdXRlID09PSBcInN0cmluZ1wiID8gYWJzb2x1dGVTdHlsZXNbYGFic29sdXRlLS0ke3Byb3BzLiRhYnNvbHV0ZX1gXSA6IHVuZGVmaW5lZCxcbiAgXSxcblxuICAkYWJzb2x1dGU6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodF9fX2xKMHByIHtcXG4gIGxlZnQ6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0X19fM2cwc0Qge1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMTAwJTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzgge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvdHRvbTogMTAwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4uYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZS0tYWJzb2x1dGUtYm90dG9tLXRvLXJlbGF0aXZlLWJvdHRvbV9fX0NsbTBtIHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1IHtcXG4gIGxlZnQ6IDUwJTtcXG4gIHRvcDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhYnNvbHV0ZVwiOlwiYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWxlZnQtdG8tcmVsYXRpdmUtY2VudGVyLXJpZ2h0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1jZW50ZXItbGVmdC10by1yZWxhdGl2ZS1jZW50ZXItcmlnaHRfX19sSjBwclwiLFwiYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdF9fXzNnMHNEXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWNlbnRlci10by1yZWxhdGl2ZS1ib3R0b20tcmlnaHRcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzhcIixcImFic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tX19fQ2xtMG1cIixcImFic29sdXRlLS1hYnNvbHV0ZS10b3AtY2VudGVyLXRvLXJlbGF0aXZlLXRvcC1jZW50ZXJcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1XCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHBhZGRpbmdTdHlsZXMgZnJvbSBcIi4vcGFkZGluZy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb25hbFBhZGRpbmcgPSB7XG4gIHRvcD86IFRTaGlydFNpemU7XG4gIGJvdHRvbT86IFRTaGlydFNpemU7XG4gIGxlZnQ/OiBUU2hpcnRTaXplO1xuICByaWdodD86IFRTaGlydFNpemU7XG4gIGhvcml6b250YWw/OiBUU2hpcnRTaXplO1xuICB2ZXJ0aWNhbD86IFRTaGlydFNpemU7XG59O1xuXG5leHBvcnQgdHlwZSBQYWRkaW5nUGx1Z2luUHJvcHMgPSB7ICRwYWRkaW5nPzogYm9vbGVhbiB8IERpcmVjdGlvbmFsUGFkZGluZyB8IFRTaGlydFNpemUgfTtcblxuZXhwb3J0IGNvbnN0IHBhZGRpbmdQbHVnaW4gPSBnZXRQbHVnaW48UGFkZGluZ1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRwYWRkaW5nKSB7XG4gICAgcmV0dXJuIHsgJHBhZGRpbmc6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgcGFkZGluZyA9IHByb3BzLiRwYWRkaW5nID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJHBhZGRpbmc7XG5cbiAgaWYgKGlzU3RyaW5nKHBhZGRpbmcpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwYWRkaW5nU3R5bGVzW2BwYWRkaW5nLS0ke3BhZGRpbmd9YF1dLFxuICAgICAgJHBhZGRpbmc6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IHBhZGRpbmcudG9wIHx8IHBhZGRpbmcudmVydGljYWw7XG4gIGNvbnN0IGJvdHRvbVNpemUgPSBwYWRkaW5nLmJvdHRvbSB8fCBwYWRkaW5nLnZlcnRpY2FsO1xuICBjb25zdCByaWdodFNpemUgPSBwYWRkaW5nLnJpZ2h0IHx8IHBhZGRpbmcuaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBwYWRkaW5nLmxlZnQgfHwgcGFkZGluZy5ob3Jpem9udGFsO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJ0b3BcIiwgdG9wU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwicmlnaHRcIiwgcmlnaHRTaXplKSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJib3R0b21cIiwgYm90dG9tU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwibGVmdFwiLCBsZWZ0U2l6ZSksXG4gICAgXSxcblxuICAgICRwYWRkaW5nOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3Qgc2lkZUNsYXNzTmFtZSA9IChzaWRlOiBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiLCBzaXplOiBUU2hpcnRTaXplIHwgdW5kZWZpbmVkKSA9PlxuICBzaXplID8gcGFkZGluZ1N0eWxlc1tgcGFkZGluZ19fJHtzaWRlfS0tJHtzaXplfWBdIDogdW5kZWZpbmVkO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzXCIsIGNzczogXCIucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0temVyb19fX2dxcWZaIHtcXG4gIHBhZGRpbmctdG9wOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5cyB7XFxuICBwYWRkaW5nLXRvcDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tM3hzX19fb2NjNE4ge1xcbiAgcGFkZGluZy10b3A6IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXh4c19fX043QnNsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14c19fX0wwVUREIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1zX19fa2xRZTIge1xcbiAgcGFkZGluZy10b3A6IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1tX19fY3RhNXQge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHEge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14bF9fX1h2c3ZMIHtcXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhsX19fMWtlb2Uge1xcbiAgcGFkZGluZy10b3A6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0zeGxfX19jVVBzOSB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTR4bF9fX3FpazJlIHtcXG4gIHBhZGRpbmctdG9wOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNXhsX19fczlrcFEge1xcbiAgcGFkZGluZy10b3A6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS02eGxfX19xYzNGWiB7XFxuICBwYWRkaW5nLXRvcDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTd4bF9fX3RhQy1QIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tOHhsX19fTFdoanEge1xcbiAgcGFkZGluZy10b3A6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS05eGxfX19MMTNjcCB7XFxuICBwYWRkaW5nLXRvcDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5QyB7XFxuICBwYWRkaW5nLXRvcDogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTExeGxfX19IdHRTYyB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0temVyb19fXzZ2WWJUIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhzX19faGpPOEQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3RyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4c19fX0ZuM09oIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHNfX19rcHNRUCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEViB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1tX19feEdkdHUge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbF9fX015eWM0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhsX19fLUdHakoge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHhsX19fMHlORVoge1xcbiAgcGFkZGluZy1yaWdodDogMjhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tM3hsX19fYmJPUEMge1xcbiAgcGFkZGluZy1yaWdodDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhsX19fdkFaRVUge1xcbiAgcGFkZGluZy1yaWdodDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNXhsX19fcHNOaGIge1xcbiAgcGFkZGluZy1yaWdodDogNDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNnhsX19fSnd3a1Ige1xcbiAgcGFkZGluZy1yaWdodDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tN3hsX19fZ29tdzkge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOHhsX19fVmh2Vloge1xcbiAgcGFkZGluZy1yaWdodDogNTJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOXhsX19fNE9CTm4ge1xcbiAgcGFkZGluZy1yaWdodDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tMTB4bF9fX2VPVUEzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0temVyb19fX0ZTOTg0IHtcXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tM3hzX19fZTVya1kge1xcbiAgcGFkZGluZy1ib3R0b206IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXh4c19fX3hRdlZ2IHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14c19fX29jeWkwIHtcXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1zX19fNkliblYge1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1tX19fZ3hCMk0ge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzcge1xcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14bF9fX3RMQW96IHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhsX19fZzM1Qi0ge1xcbiAgcGFkZGluZy1ib3R0b206IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0zeGxfX19BejhraSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTR4bF9fX2tiUy1SIHtcXG4gIHBhZGRpbmctYm90dG9tOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNXhsX19fd2psT28ge1xcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS02eGxfX19JRHhSTCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTd4bF9fX0hxRm1pIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tOHhsX19fdUxOZUIge1xcbiAgcGFkZGluZy1ib3R0b206IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS05eGxfX19rWGpmLSB7XFxuICBwYWRkaW5nLWJvdHRvbTogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTExeGxfX19MUi1tcyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1kge1xcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNHhzX19fMDg5MDgge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hzX19fZmVDMC0ge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkoge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS1zX19fa3NpZ3Ige1xcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tbF9fX2tHZ3huIHtcXG4gIHBhZGRpbmctbGVmdDogMjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhYyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmIge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuIHtcXG4gIHBhZGRpbmctbGVmdDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUEge1xcbiAgcGFkZGluZy1sZWZ0OiA0NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OSB7XFxuICBwYWRkaW5nLWxlZnQ6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTAge1xcbiAgcGFkZGluZy1sZWZ0OiA1NnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTEweGxfX19Qd0RTViB7XFxuICBwYWRkaW5nLWxlZnQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tMTF4bF9fXzJIc3ZKIHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnAge1xcbiAgcGFkZGluZzogMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdSB7XFxuICBwYWRkaW5nOiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0oge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhzX19fUXdoYUIge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYSB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMayB7XFxuICBwYWRkaW5nOiAyMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhsX19fY3VQYU4ge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSCB7XFxuICBwYWRkaW5nOiAyOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTN4bF9fX2t2aXJUIHtcXG4gIHBhZGRpbmc6IDMycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNHhsX19feTE3QTAge1xcbiAgcGFkZGluZzogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOSB7XFxuICBwYWRkaW5nOiA0MHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTZ4bF9fXzJLQ21hIHtcXG4gIHBhZGRpbmc6IDQ0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tN3hsX19fU3NJeG4ge1xcbiAgcGFkZGluZzogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbSB7XFxuICBwYWRkaW5nOiA1MnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTl4bF9fX29WY0lnIHtcXG4gIHBhZGRpbmc6IDU2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTB4bF9fX2pLR2tuIHtcXG4gIHBhZGRpbmc6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTF4bF9fX0FnSnJHIHtcXG4gIHBhZGRpbmc6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wicGFkZGluZ19fdG9wLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS16ZXJvX19fZ3FxZlpcIixcInBhZGRpbmdfX3RvcC0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5c1wiLFwicGFkZGluZ19fdG9wLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4c19fX29jYzROXCIsXCJwYWRkaW5nX190b3AtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhzX19fTjdCc2xcIixcInBhZGRpbmdfX3RvcC0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhzX19fTDBVRERcIixcInBhZGRpbmdfX3RvcC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tc19fX2tsUWUyXCIsXCJwYWRkaW5nX190b3AtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLW1fX19jdGE1dFwiLFwicGFkZGluZ19fdG9wLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHFcIixcInBhZGRpbmdfX3RvcC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhsX19fWHZzdkxcIixcInBhZGRpbmdfX3RvcC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14eGxfX18xa2VvZVwiLFwicGFkZGluZ19fdG9wLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4bF9fX2NVUHM5XCIsXCJwYWRkaW5nX190b3AtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNHhsX19fcWlrMmVcIixcInBhZGRpbmdfX3RvcC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS01eGxfX19zOWtwUVwiLFwicGFkZGluZ19fdG9wLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTZ4bF9fX3FjM0ZaXCIsXCJwYWRkaW5nX190b3AtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tN3hsX19fdGFDLVBcIixcInBhZGRpbmdfX3RvcC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS04eGxfX19MV2hqcVwiLFwicGFkZGluZ19fdG9wLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTl4bF9fX0wxM2NwXCIsXCJwYWRkaW5nX190b3AtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5Q1wiLFwicGFkZGluZ19fdG9wLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0xMXhsX19fSHR0U2NcIixcInBhZGRpbmdfX3JpZ2h0LS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXplcm9fX182dlliVFwiLFwicGFkZGluZ19fcmlnaHQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS00eHNfX19oak84RFwiLFwicGFkZGluZ19fcmlnaHQtLTN4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3R1wiLFwicGFkZGluZ19fcmlnaHQtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14eHNfX19GbjNPaFwiLFwicGFkZGluZ19fcmlnaHQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhzX19fa3BzUVBcIixcInBhZGRpbmdfX3JpZ2h0LS1zXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEVlwiLFwicGFkZGluZ19fcmlnaHQtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbV9fX3hHZHR1XCIsXCJwYWRkaW5nX19yaWdodC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1sX19fTXl5YzRcIixcInBhZGRpbmdfX3JpZ2h0LS14bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14bF9fXy1HR2pKXCIsXCJwYWRkaW5nX19yaWdodC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4bF9fXzB5TkVaXCIsXCJwYWRkaW5nX19yaWdodC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTN4bF9fX2JiT1BDXCIsXCJwYWRkaW5nX19yaWdodC0tNHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTR4bF9fX3ZBWkVVXCIsXCJwYWRkaW5nX19yaWdodC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTV4bF9fX3BzTmhiXCIsXCJwYWRkaW5nX19yaWdodC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTZ4bF9fX0p3d2tSXCIsXCJwYWRkaW5nX19yaWdodC0tN3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTd4bF9fX2dvbXc5XCIsXCJwYWRkaW5nX19yaWdodC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTh4bF9fX1ZodlZaXCIsXCJwYWRkaW5nX19yaWdodC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTl4bF9fXzRPQk5uXCIsXCJwYWRkaW5nX19yaWdodC0tMTB4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0xMHhsX19fZU9VQTNcIixcInBhZGRpbmdfX3JpZ2h0LS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZ1wiLFwicGFkZGluZ19fYm90dG9tLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS16ZXJvX19fRlM5ODRcIixcInBhZGRpbmdfX2JvdHRvbS0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeFwiLFwicGFkZGluZ19fYm90dG9tLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4c19fX2U1cmtZXCIsXCJwYWRkaW5nX19ib3R0b20tLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhzX19feFF2VnZcIixcInBhZGRpbmdfX2JvdHRvbS0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhzX19fb2N5aTBcIixcInBhZGRpbmdfX2JvdHRvbS0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tc19fXzZJYm5WXCIsXCJwYWRkaW5nX19ib3R0b20tLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLW1fX19neEIyTVwiLFwicGFkZGluZ19fYm90dG9tLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzdcIixcInBhZGRpbmdfX2JvdHRvbS0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhsX19fdExBb3pcIixcInBhZGRpbmdfX2JvdHRvbS0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14eGxfX19nMzVCLVwiLFwicGFkZGluZ19fYm90dG9tLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4bF9fX0F6OGtpXCIsXCJwYWRkaW5nX19ib3R0b20tLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNHhsX19fa2JTLVJcIixcInBhZGRpbmdfX2JvdHRvbS0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS01eGxfX193amxPb1wiLFwicGFkZGluZ19fYm90dG9tLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTZ4bF9fX0lEeFJMXCIsXCJwYWRkaW5nX19ib3R0b20tLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tN3hsX19fSHFGbWlcIixcInBhZGRpbmdfX2JvdHRvbS0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS04eGxfX191TE5lQlwiLFwicGFkZGluZ19fYm90dG9tLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTl4bF9fX2tYamYtXCIsXCJwYWRkaW5nX19ib3R0b20tLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeFwiLFwicGFkZGluZ19fYm90dG9tLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0xMXhsX19fTFItbXNcIixcInBhZGRpbmdfX2xlZnQtLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1lcIixcInBhZGRpbmdfX2xlZnQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4c19fXzA4OTA4XCIsXCJwYWRkaW5nX19sZWZ0LS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0zeHNfX19mZUMwLVwiLFwicGFkZGluZ19fbGVmdC0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkpcIixcInBhZGRpbmdfX2xlZnQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WFwiLFwicGFkZGluZ19fbGVmdC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLXNfX19rc2lnclwiLFwicGFkZGluZ19fbGVmdC0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbFwiLFwicGFkZGluZ19fbGVmdC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLWxfX19rR2d4blwiLFwicGFkZGluZ19fbGVmdC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JXCIsXCJwYWRkaW5nX19sZWZ0LS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhY1wiLFwicGFkZGluZ19fbGVmdC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmJcIixcInBhZGRpbmdfX2xlZnQtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuXCIsXCJwYWRkaW5nX19sZWZ0LS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUFwiLFwicGFkZGluZ19fbGVmdC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUFcIixcInBhZGRpbmdfX2xlZnQtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoXCIsXCJwYWRkaW5nX19sZWZ0LS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OVwiLFwicGFkZGluZ19fbGVmdC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTBcIixcInBhZGRpbmdfX2xlZnQtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMHhsX19fUHdEU1ZcIixcInBhZGRpbmdfX2xlZnQtLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMXhsX19fMkhzdkpcIixcInBhZGRpbmctLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnBcIixcInBhZGRpbmctLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCXCIsXCJwYWRkaW5nLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdVwiLFwicGFkZGluZy0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0pcIixcInBhZGRpbmctLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHNfX19Rd2hhQlwiLFwicGFkZGluZy0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLVwiLFwicGFkZGluZy0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYVwiLFwicGFkZGluZy0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMa1wiLFwicGFkZGluZy0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14bF9fX2N1UGFOXCIsXCJwYWRkaW5nLS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSFwiLFwicGFkZGluZy0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tM3hsX19fa3ZpclRcIixcInBhZGRpbmctLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4bF9fX3kxN0EwXCIsXCJwYWRkaW5nLS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOVwiLFwicGFkZGluZy0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNnhsX19fMktDbWFcIixcInBhZGRpbmctLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTd4bF9fX1NzSXhuXCIsXCJwYWRkaW5nLS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbVwiLFwicGFkZGluZy0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tOXhsX19fb1ZjSWdcIixcInBhZGRpbmctLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMHhsX19faktHa25cIixcInBhZGRpbmctLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMXhsX19fQWdKckdcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgYmFja2dyb3VuZENvbG9yU3R5bGVzIGZyb20gXCIuL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yQWxpYXMgPSBrZXlvZiB0eXBlb2YgYWxpYXNUb05vbWluYWw7XG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kQ29sb3IgPSBDb2xvciB8IEJhY2tncm91bmRDb2xvckFsaWFzO1xuXG5leHBvcnQgdHlwZSAkQmFja2dyb3VuZENvbG9yUHJvcHMgPSB7XG4gIG5vcm1hbD86IEJhY2tncm91bmRDb2xvcjtcbiAgaG92ZXI/OiBCYWNrZ3JvdW5kQ29sb3I7XG4gIGZvY3VzPzogQmFja2dyb3VuZENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMgPSB7ICRiYWNrZ3JvdW5kQ29sb3I/OiBCYWNrZ3JvdW5kQ29sb3IgfCAkQmFja2dyb3VuZENvbG9yUHJvcHMgfTtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIGJhY2tncm91bmRQcmltYXJ5OiBcImdyZXk4MFwiLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiBcImdyZXkxMDBcIixcbiAgYmFja2dyb3VuZFByaW1hcnlEaW1tZWQ6IFwiZ3JleTgwQWxwaGE4NVwiLFxufSBhcyBjb25zdDtcblxuY29uc3QgaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyA9IChjb2xvcjogQmFja2dyb3VuZENvbG9yKTogY29sb3IgaXMgQmFja2dyb3VuZENvbG9yQWxpYXMgPT4gY29sb3IgaW4gYWxpYXNUb05vbWluYWw7XG5cbmV4cG9ydCBjb25zdCBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gPSBnZXRQbHVnaW48QmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGJhY2tncm91bmRDb2xvcjogY29sb3IgfSA9IHByb3BzO1xuICBjb25zdCB7IG5vcm1hbCwgaG92ZXIsIGZvY3VzIH0gPSB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogY29sb3IgfSA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgPyAoaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyhub3JtYWwpID8gYWxpYXNUb05vbWluYWxbbm9ybWFsXSA6IG5vcm1hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGhvdmVyQ29sb3IgPSBob3ZlciA/IChpc0JhY2tncm91bmRDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZm9jdXNDb2xvciA9IGZvY3VzID8gKGlzQmFja2dyb3VuZENvbG9yQWxpYXMoZm9jdXMpID8gYWxpYXNUb05vbWluYWxbZm9jdXNdIDogZm9jdXMpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIG5vcm1hbENvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItLSR7bm9ybWFsQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBob3ZlckNvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBiYWNrZ3JvdW5kQ29sb3JTdHlsZXNbYGJhY2tncm91bmRDb2xvci1mb2N1cy0tJHtmb2N1c0NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJGJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS10cmFuc3BhcmVudF9fX1ZkdC1ZIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk2MF9fX1BQQVNsIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NDBfX193RkJhbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyNV9fX1lFOFFmIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjBfX182MDBqUSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk3MF9fX1YtWkdMIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1wcmltYXJ5X19fT0huckwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1hY2NlbnRfX19kdDQ3ZiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NfX19XVVIzeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLW5vdGljZV9fX2xWTlJkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nX19fQXJWdmwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50X19fMlVQM1kge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ1RpbnRfX19xd0YwOCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbFRpbnRfX19pSy1qbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY29kZV9fX0VtLWJKIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0taW5oZXJpdF9fX215MlJxOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13aGl0ZV9fX3RlLWdwOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX18xRDJJajpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMDBfX18tSkh1Mjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MF9fX3otODVJOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZMzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTQwX19fM0EtZTY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMF9fXzctQ0ZqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTIwX19fb01BY0Q6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMF9fX2dSMTkzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwQWxwaGE4NV9fX0Nkay0tOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVE6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzX19fRzMwVkg6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ub3RpY2VfX19qV0ZjQzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxfX19yNmJaSTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fWGk2MkY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm86aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWxpbmtfX19YOUxGcTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWluaGVyaXRfX19SSlBXSjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVfX194Rjh1Mzpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXg6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTAwX19feHQxeEw6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBfX19lMjhqajpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwX19fd3REd1Q6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MzBfX19aVnZENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1X19fQXNWNmY6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTBfX19tYWl6Zjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwX19fdlJuTDI6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19WaHl1Tjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXByaW1hcnlfX183VHprdTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudF9fX210REdPOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjE6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdfX19xbG4ydTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsX19fUGdESTU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRfX19jcS1ENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fX2VKOU5oOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1saW5rX19fVGxSUlk6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jb2RlX19fZmE2NVU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYmFja2dyb3VuZENvbG9yLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFlcIixcImJhY2tncm91bmRDb2xvci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHVcIixcImJhY2tncm91bmRDb2xvci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXRyYW5zcGFyZW50X19fVmR0LVlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHVcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NjBfX19QUEFTbFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk0MF9fX3dGQmFsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVRcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjVfX19ZRThRZlwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyMF9fXzYwMGpRXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NzBfX19WLVpHTFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDNcIixcImJhY2tncm91bmRDb2xvci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tcHJpbWFyeV9fX09IbnJMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tYWNjZW50X19fZHQ0N2ZcIixcImJhY2tncm91bmRDb2xvci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tc3VjY2Vzc19fX1dVUjN5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbm90aWNlX19fbFZOUmRcIixcImJhY2tncm91bmRDb2xvci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ19fX0FyVnZsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1zdWNjZXNzVGludF9fXzJVUDNZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nVGludF9fX3F3RjA4XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY3JpdGljYWxUaW50X19faUstamxcIixcImJhY2tncm91bmRDb2xvci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWNvZGVfX19FbS1iSlwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0X19fbXkyUnFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdoaXRlX19fdGUtZ3BcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXRyYW5zcGFyZW50X19fMUQySWpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMF9fXy1KSHUyXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwX19fei04NUlcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZM1wiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk0MF9fXzNBLWU2XCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTMwX19fNy1DRmpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkyMF9fX29NQWNEXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwX19fZ1IxOTNcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fQ2RrLS1cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc19fX0czMFZIXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbm90aWNlX19faldGY0NcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1jcml0aWNhbF9fX3I2YlpJXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13YXJuaW5nVGludF9fX1hpNjJGXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm9cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua19fX1g5TEZxXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZ1wiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0X19fUkpQV0pcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdoaXRlX19feEY4dTNcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMF9fX3h0MXhMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTgwX19fZTI4ampcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NjBfX193dER3VFwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTMwX19fWlZ2RDVcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjVfX19Bc1Y2ZlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwX19fbWFpemZcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NzBfX192Um5MMlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1X19fVmh5dU5cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeV9fXzdUemt1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tYWNjZW50X19fbXRER09cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjFcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ19fX3FsbjJ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jcml0aWNhbF9fX1BnREk1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1zdWNjZXNzVGludF9fX2NxLUQ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tY3JpdGljYWxUaW50X19fZUo5TmhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua19fX1RsUlJZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVfX19mYTY1VVwifTsiLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlcldpZHRoIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHR5cGUgQ29ybmVyU3R5bGVzLCBnZXRDb3JuZXJTdHlsZXMgfSBmcm9tIFwiLi9nZXQtY29ybmVyLXN0eWxlc1wiO1xuaW1wb3J0IHsgZ2V0U2lkZVN0eWxlcywgdHlwZSBTaWRlU3R5bGVzIH0gZnJvbSBcIi4vZ2V0LXNpZGUtc3R5bGVzXCI7XG5pbXBvcnQgeyBjb21wYWN0IH0gZnJvbSBcImxvZGFzaC9mcFwiO1xuXG5leHBvcnQgdHlwZSBCb3JkZXJDb2xvckFsaWFzID0ga2V5b2YgdHlwZW9mIGFsaWFzVG9Ob21pbmFsO1xuZXhwb3J0IHR5cGUgQm9yZGVyQ29sb3IgPSBDb2xvciB8IEJvcmRlckNvbG9yQWxpYXM7XG5cbmNvbnN0IGFsaWFzVG9Ob21pbmFsID0geyBib3JkZXJQcmltYXJ5OiBcImdyZXk2MFwiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IGlzQm9yZGVyQ29sb3JBbGlhcyA9IChjb2xvcjogQm9yZGVyQ29sb3IpOiBjb2xvciBpcyBCb3JkZXJDb2xvckFsaWFzID0+IGNvbG9yIGluIGFsaWFzVG9Ob21pbmFsO1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyQ29sb3JQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbm9ybWFsPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGhvdmVyPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGRpc2FibGVkPzogQm9yZGVyQ29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyUHJvcHMgPSB7XG4gIGNvbG9yPzogQm9yZGVyQ29sb3IgfCAkQm9yZGVyQ29sb3JQcm9wcztcbiAgd2lkdGg/OiBCb3JkZXJXaWR0aCB8IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMZWF2ZSB0aGUgbGFzdCBvZiB0aGUgZWxlbWVudCdzIHNpYmxpbmdzIHdpdGhvdXQgdGhlIGJvcmRlciwgc28gdGhhdCBhIHN0YWNrXG4gICAqIG9mIGJvcmRlcmVkIHJvd3MgcmVhZHMgYXMgcm93cyBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIHJhdGhlciB0aGFuIGZyYW1lZC5cbiAgICovXG4gIGV4Y2VwdExhc3Q/OiBib29sZWFuO1xufSAmIFNpZGVTdHlsZXMgJlxuICBDb3JuZXJTdHlsZXM7XG5cbmV4cG9ydCB0eXBlIEJvcmRlclBsdWdpblByb3BzID0geyAkYm9yZGVyPzogJEJvcmRlclByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBib3JkZXJQbHVnaW4gPSBnZXRQbHVnaW48Qm9yZGVyUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJvcmRlcikge1xuICAgIHJldHVybiB7ICRib3JkZXI6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0Q29ybmVyU3R5bGVzKHByb3BzLiRib3JkZXIpLCBnZXRCb3JkZXJTdHlsZXMocHJvcHMuJGJvcmRlcildLFxuICAgICRib3JkZXI6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBnZXRCb3JkZXJTdHlsZXMgPSAoeyB3aWR0aCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBjb2xvciwgZXhjZXB0TGFzdCB9OiAkQm9yZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgYm9yZGVyV2lkdGggPSB3aWR0aCA9PT0gdHJ1ZSB8fCAod2lkdGggPT09IHVuZGVmaW5lZCAmJiBjb2xvcikgPyBcInh4c1wiIDogd2lkdGg7XG4gIGNvbnN0IHsgbm9ybWFsLCBob3ZlciwgZGlzYWJsZWQgfSA9XG4gICAgYm9yZGVyV2lkdGggJiYgY29sb3IgPT09IHVuZGVmaW5lZFxuICAgICAgPyB7IG5vcm1hbDogXCJib3JkZXJQcmltYXJ5XCIgYXMgY29uc3QgfVxuICAgICAgOiB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyB7IG5vcm1hbDogY29sb3IgfVxuICAgICAgICA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgJiYgaXNCb3JkZXJDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsO1xuICBjb25zdCBob3ZlckNvbG9yID0gaG92ZXIgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyO1xuICBjb25zdCBkaXNhYmxlZENvbG9yID0gZGlzYWJsZWQgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkO1xuXG4gIGNvbnN0IHN0eWxlQ2xhc3NlcyA9IGNvbXBhY3QoW1xuICAgIGJvcmRlcldpZHRoID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3dpZHRoLS0ke2JvcmRlcldpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIG5vcm1hbENvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX2NvbG9yLS0ke25vcm1hbENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIGhvdmVyQ29sb3IgPyBib3JkZXJTdHlsZXNbYGJvcmRlcl9fY29sb3ItLSR7aG92ZXJDb2xvcn0tLWhvdmVyYF0gOiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZWRDb2xvciA/IGJvcmRlclN0eWxlc1tgYm9yZGVyX19jb2xvci0tJHtkaXNhYmxlZENvbG9yfS0tZGlzYWJsZWRgXSA6IHVuZGVmaW5lZCxcbiAgICAuLi5nZXRTaWRlU3R5bGVzKHsgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wIH0pLFxuICAgIGV4Y2VwdExhc3QgPyBib3JkZXJTdHlsZXNbXCJib3JkZXItLWV4Y2VwdC1sYXN0XCJdIDogdW5kZWZpbmVkLFxuICBdKTtcblxuICByZXR1cm4gW3N0eWxlQ2xhc3Nlcywgc3R5bGVDbGFzc2VzLmxlbmd0aCA+IDAgJiYgYm9yZGVyU3R5bGVzW1wiYm9yZGVyX19zdHlsZS0tc29saWRcIl1dO1xufTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JvcmRlci9ib3JkZXIubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3N0eWxlLS1zb2xpZF9fXzFReTFKIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDIHtcXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1zX19fdmxtdWwge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1fX19Fb0h2aiB7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbWxfX19rc0tQZSB7XFxuICBib3JkZXItcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54IHtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tNTBfX19FYzVjYyB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tZnVsbF9fX2YwT2tMIHtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXplcm9fX191TGNPMiB7XFxuICBib3JkZXItd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5IHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSSB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXNfX194OU5VaiB7XFxuICBib3JkZXItd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLW1fX19DRjhDRSB7XFxuICBib3JkZXItd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NSB7XFxuICBib3JkZXItd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE4ge1xcbiAgYm9yZGVyLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS14eGxfX18tZHJnUCB7XFxuICBib3JkZXItd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS0zeGxfX19kcW1pRiB7XFxuICBib3JkZXItd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS00eGxfX19iRUw5MCB7XFxuICBib3JkZXItd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS01eGxfX196ajFWWCB7XFxuICBib3JkZXItd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0X19fRTJNU3Mge1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJfX19XeW5CUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlX19fZ1Qyb2cge1xcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlLS1ob3Zlcl9fX1FkcFZiOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYSzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRfX19zd2FtSCB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXo6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZF9fX3NpRHJ5OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwX19fdjVsODMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkX19fUWpLUlI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0taG92ZXJfX19DcHBsVjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWRpc2FibGVkX19fLThQS2w6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwX19fUDlKTUgge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk2MC0tZGlzYWJsZWRfX19nY1ZkRDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDBfX19mNlNEdyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDAtLWhvdmVyX19fVUhkSXI6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0taG92ZXJfX19WTkRTUjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWRpc2FibGVkX19fcHlKT3E6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1X19fc25WbmQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyNS0tZGlzYWJsZWRfX19vbVBKUDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjBfX19nYm4zWiB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjAtLWhvdmVyX19feFJzd2M6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0taG92ZXJfX19VWmgtZDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWRpc2FibGVkX19fOVotT1Q6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwX19feXI5aU0ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk3MC0tZGlzYWJsZWRfX19Td1JRaTpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fNkRiZFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkX19feVA0Ty06ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXByaW1hcnlfX19nZnhCTyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0taG92ZXJfX19wdUhEcDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzRzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50X19fZS1IbEQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWFjY2VudC0taG92ZXJfX19TMm9WRTpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1kaXNhYmxlZF9fX3kzQmJiOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzX19fWnVybFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk06aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkX19fVFAzUnY6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0taG92ZXJfX19NSlFVaDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWRpc2FibGVkX19feVZ1aTI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3Zlcl9fX21Bb1NCOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1kaXNhYmxlZF9fX1djQUstOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWwtLWhvdmVyX19fdU1GamE6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRfX19LOWdsNzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUFNSTW4ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZzpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50LS1kaXNhYmxlZF9fX1drT3BBOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRfX19JVFdtTSB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3Zlcl9fX0pjLU5uOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm86ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19PUXV4dCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnQtLWhvdmVyX19fbFdhOUQ6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWxpbmtfX19pWWVGayB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0taG92ZXJfX180eVJKUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQjpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3Zlcl9fX1o1czVkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1kaXNhYmxlZF9fX3VEUVpNOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS16ZXJvX19fVktScS0ge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHhzX19fOHppN1Qge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHNfX19STkVLMiB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1zX19fYVZuMVcge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogM3B4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLWxfX18tb2VQUCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiA2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6IHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS0zeGxfX181eEstLSB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tNHhsX19fcEVEdGMge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMTRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdoaXRlX19fdS11UWIge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudF9fX1BzTW14IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTgwX19fZUhqekYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBfX19IaXJnZiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTMwX19fQkJyQlEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBfX18xbHVwUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwX19fRTJHZlQge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1wcmltYXJ5X19fNTExamsge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NfX183OS11aiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1gge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUGEwTkcge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRfX18yZVVRVCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19ISkFvMiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tbGlua19fX0tZRkdLIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS16ZXJvX19fcmxESW4ge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4c19fXy16NzlhIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS1zX19fTXRZVDYge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLW1fX19TRDk3dyB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14bF9fXzA1bjAwIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eGxfX18tYUV3diB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTN4bF9fX0R1MFJvIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGsge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS01eGxfX19TcDQ4ayB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRfX185eVBlSSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmQge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwX19fYWFTbmEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWoge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NjBfX19vTlctVSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MF9fXzJKd2k5IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHgge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjVfX19RYkZVSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMF9fX2VzTVFNIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NzBfX190a3pBSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qNDVVTiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1wcmltYXJ5X19fSElrMkEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tYWNjZW50X19fV1gyTFMge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tc3VjY2Vzc19fX1JJd2FIIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLW5vdGljZV9fX3ZVTGFUIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ19fX1kyaVBpIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsX19fWG02dFEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fbTFudlkge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNvZGVfX19VQ2RNMCB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0temVyb19fX1BsQUJMIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXh4c19fX1pGbS1VIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXhzX19faER6U3Mge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tc19fX0lXdC11IHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItcyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1sX19fMEh2bDEge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0cyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tM3hsX19fR2pMWVUge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLTR4bF9fX0J2SldQIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZV9fX0RabWo2IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRfX19xa05nRiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eCB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXk4MF9fX3RuTWo1IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwbiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwX19fYzd1YzAge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkzMF9fX1k4NUM0IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwX19fdk8tbUoge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMF9fX0ZhLWh5IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrViB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tcHJpbWFyeV9fX0otcjVKIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVMge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzX19fZnhadlIge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzVGludF9fX0FzdnRjIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50X19fNE9QZk8ge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxUaW50X19feDJVTFEge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWxpbmtfX19SMlhEdSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS0ge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcCB7XFxuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXhzX19fejJYSUYge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmMge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1tX19fNGpQdTUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1sX19fbFBhUksge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14bF9fX01jLS1SIHtcXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHhsX19fS1hPUloge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNHhsX19fY2RVbFcge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNXhsX19fN2w5SDAge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdF9fX3FkNGtEIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlX19fLXJ6czcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50X19fdVVVRXgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBfX19RRGJWMiB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwX19fN2hWeTgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTYwX19fcTlUczIge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTMwX19faXRVVXMge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTI1X19fejlFZ0Qge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTEwX19feXRaUE4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTcwX19fRW95Vlcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fXzJHSVcyIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHkge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWFjY2VudF9fXzFSUzByIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXUge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLW5vdGljZV9fX21oSkFuIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdfX191VjV0VyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxfX19BNkppTyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludF9fX043VWNUIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxUaW50X19fYS1mYUcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tbGlua19fX213Ukt3IHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jb2RlX19fdUpXRkgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0ViB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNfX192bzVlbCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1fX19HSUVjdCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1sX19fbUVjRHYge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1sX19fcmctRDAge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHcyB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxfX181Wkl2OCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXplcm9fX19POGRFMyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TCB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1fX19TbDVSUiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGIge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sX19fNTJKb2wge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBfX183LXdPRyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLXNfX196RklMMyB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1tX19fS05TY1Qge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxfX192dDd4MiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1sX19fazhwaWsge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHUge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tZnVsbF9fX2VIajZzIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLXplcm9fX19QMVl0dyB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGUge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbV9fXzNMUlIwIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHcge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbF9fXzNzMkNKIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS01MF9fX3dOWXdRIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwJTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUiB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDAwMDAwMDAwMDAwMDAwMDAwcHg7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXItLWV4Y2VwdC1sYXN0X19fMjJZc0I6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYm9yZGVyX19zdHlsZS0tc29saWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fc3R5bGUtLXNvbGlkX19fMVF5MUpcIixcImJvcmRlcl9fcmFkaXVzLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDXCIsXCJib3JkZXJfX3JhZGl1cy0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLXNfX192bG11bFwiLFwiYm9yZGVyX19yYWRpdXMtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1tX19fRW9IdmpcIixcImJvcmRlcl9fcmFkaXVzLS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1sX19fa3NLUGVcIixcImJvcmRlcl9fcmFkaXVzLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54XCIsXCJib3JkZXJfX3JhZGl1cy0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS01MF9fX0VjNWNjXCIsXCJib3JkZXJfX3JhZGl1cy0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLWZ1bGxfX19mME9rTFwiLFwiYm9yZGVyX193aWR0aC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0temVyb19fX3VMY08yXCIsXCJib3JkZXJfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5XCIsXCJib3JkZXJfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSVwiLFwiYm9yZGVyX193aWR0aC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tc19fX3g5TlVqXCIsXCJib3JkZXJfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS1tX19fQ0Y4Q0VcIixcImJvcmRlcl9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NVwiLFwiYm9yZGVyX193aWR0aC0teGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE5cIixcImJvcmRlcl9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHhsX19fLWRyZ1BcIixcImJvcmRlcl9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tM3hsX19fZHFtaUZcIixcImJvcmRlcl9fd2lkdGgtLTR4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNHhsX19fYkVMOTBcIixcImJvcmRlcl9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNXhsX19femoxVlhcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXRfX19FMk1Tc1wiLFwiYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXQtLWhvdmVyX19fV3luQlBcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFXCIsXCJib3JkZXJfX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2hpdGVfX19nVDJvZ1wiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0taG92ZXJfX19RZHBWYlwiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYS1wiLFwiYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50X19fc3dhbUhcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXpcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWRpc2FibGVkX19fc2lEcnlcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDBfX192NWw4M1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTEwMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1FcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwLS1kaXNhYmxlZF9fX1FqS1JSXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyX19fQ3BwbFZcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRfX18tOFBLbFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjBfX19QOUpNSFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkX19fZ2NWZERcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwX19fZjZTRHdcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJfX19VSGRJclwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1XCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyX19fVk5EU1JcIixcImJvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRfX19weUpPcVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjVfX19zblZuZFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkX19fb21QSlBcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwX19fZ2JuM1pcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJfX194UnN3Y1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyX19fVVpoLWRcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRfX185Wi1PVFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzBfX195cjlpTVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkX19fU3dSUWlcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVfX182RGJkU1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTgwQWxwaGE4NS0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0FcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1LS1kaXNhYmxlZF9fX3lQNE8tXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5X19fZ2Z4Qk9cIixcImJvcmRlcl9fY29sb3ItLXByaW1hcnktLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1ob3Zlcl9fX3B1SERwXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzR1wiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnRfX19lLUhsRFwiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3Zlcl9fX1Myb1ZFXCIsXCJib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkX19feTNCYmJcIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NfX19adXJsU1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzcy0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk1cIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzLS1kaXNhYmxlZF9fX1RQM1J2XCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUXCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyX19fTUpRVWhcIixcImJvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRfX195VnVpMlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6XCIsXCJib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZy0taG92ZXJfX19tQW9TQlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZy0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmctLWRpc2FibGVkX19fV2NBSy1cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1ob3Zlcl9fX3VNRmphXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1kaXNhYmxlZF9fX0s5Z2w3XCIsXCJib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QU1JNblwiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZ1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0tZGlzYWJsZWRfX19Xa09wQVwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50X19fSVRXbU1cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWhvdmVyX19fSmMtTm5cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm9cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50X19fT1F1eHRcIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJfX19sV2E5RFwiLFwiYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0XCIsXCJib3JkZXJfX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rX19faVllRmtcIixcImJvcmRlcl9fY29sb3ItLWxpbmstLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rLS1ob3Zlcl9fXzR5UkpQXCIsXCJib3JkZXJfX2NvbG9yLS1saW5rLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQlwiLFwiYm9yZGVyX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpXCIsXCJib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZS0taG92ZXJfX19aNXM1ZFwiLFwiYm9yZGVyX19jb2xvci0tY29kZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNvZGUtLWRpc2FibGVkX19fdURRWk1cIixcImJvcmRlclRvcF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXplcm9fX19WS1JxLVwiLFwiYm9yZGVyVG9wX193aWR0aC0teHhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14eHNfX184emk3VFwiLFwiYm9yZGVyVG9wX193aWR0aC0teHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXhzX19fUk5FSzJcIixcImJvcmRlclRvcF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXNfX19hVm4xV1wiLFwiYm9yZGVyVG9wX193aWR0aC0tbVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqXCIsXCJib3JkZXJUb3BfX3dpZHRoLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1sX19fLW9lUFBcIixcImJvcmRlclRvcF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJXCIsXCJib3JkZXJUb3BfX3dpZHRoLS14eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6XCIsXCJib3JkZXJUb3BfX3dpZHRoLS0zeGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTN4bF9fXzV4Sy0tXCIsXCJib3JkZXJUb3BfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTR4bF9fX3BFRHRjXCIsXCJib3JkZXJUb3BfX3dpZHRoLS01eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmFcIixcImJvcmRlclRvcF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13aGl0ZV9fX3UtdVFiXCIsXCJib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tdHJhbnNwYXJlbnRfX19Qc01teFwiLFwiYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk4MF9fX2VIanpGXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk0MF9fX0hpcmdmXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkzMF9fX0JCckJRXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyMF9fXzFsdXBQXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkxMF9fX0UyR2ZUXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXZcIixcImJvcmRlclRvcF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXByaW1hcnlfX181MTFqa1wiLFwiYm9yZGVyVG9wX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUFwiLFwiYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc19fXzc5LXVqXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwXCIsXCJib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1hcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QYTBOR1wiLFwiYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdhcm5pbmdUaW50X19fMmVVUVRcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY3JpdGljYWxUaW50X19fSEpBbzJcIixcImJvcmRlclRvcF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWxpbmtfX19LWUZHS1wiLFwiYm9yZGVyVG9wX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0temVyb19fX3JsREluXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eHNfX18tejc5YVwiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tc19fX010WVQ2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbV9fX1NEOTd3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXhsX19fMDVuMDBcIixcImJvcmRlclJpZ2h0X193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4bF9fXy1hRXd2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS0zeGxfX19EdTBSb1wiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGtcIixcImJvcmRlclJpZ2h0X193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTV4bF9fX1NwNDhrXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0taW5oZXJpdF9fXzl5UGVJXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmRcIixcImJvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSlwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkxMDBfX19hYVNuYVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWpcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk2MF9fX29OVy1VXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NDBfX18ySndpOVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHhcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyNV9fX1FiRlVKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjBfX19lc01RTVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk3MF9fX3RrekFKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2o0NVVOXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tcHJpbWFyeV9fX0hJazJBXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1hY2NlbnRfX19XWDJMU1wiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NfX19SSXdhSFwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbm90aWNlX19fdlVMYVRcIixcImJvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS13YXJuaW5nX19fWTJpUGlcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxfX19YbTZ0UVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludF9fX20xbnZZXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44XCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY29kZV9fX1VDZE0wXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvX19fUGxBQkxcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teHhzX19fWkZtLVVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14c19fX2hEelNzXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1zX19fSVd0LXVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItc1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tbF9fXzBIdmwxXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS14bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0c1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRlwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS0zeGxfX19HakxZVVwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS00eGxfX19CdkpXUFwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2hpdGVfX19EWm1qNlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXRyYW5zcGFyZW50X19fcWtOZ0ZcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5ODBfX190bk1qNVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwblwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NDBfX19jN3VjMFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTMwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MzBfX19ZODVDNFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjBfX192Ty1tSlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTEwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MTBfX19GYS1oeVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrVlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5X19fSi1yNUpcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NfX19meFp2UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tbm90aWNlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tc3VjY2Vzc1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fQXN2dGNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13YXJuaW5nVGludF9fXzRPUGZPXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3gyVUxRXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rX19fUjJYRHVcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS1cIixcImJvcmRlckxlZnRfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcFwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHNfX196MlhJRlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmNcIixcImJvcmRlckxlZnRfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tbV9fXzRqUHU1XCIsXCJib3JkZXJMZWZ0X193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLWxfX19sUGFSS1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teGxfX19NYy0tUlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXh4bF9fX0tYT1JaXCIsXCJib3JkZXJMZWZ0X193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUVcIixcImJvcmRlckxlZnRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS00eGxfX19jZFVsV1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLTV4bF9fXzdsOUgwXCIsXCJib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWluaGVyaXRfX19xZDRrRFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0td2hpdGVfX18tcnpzN1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tdHJhbnNwYXJlbnRfX191VVVFeFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTAwX19fUURiVjJcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBfX183aFZ5OFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MF9fX3E5VHMyXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEpcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBfX19pdFVVc1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNV9fX3o5RWdEXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm5cIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBfX195dFpQTlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MF9fX0VveVZXXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk4MEFscGhhODVfX18yR0lXMlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHlcIixcImJvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRfX18xUlMwclwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXVcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VfX19taEpBblwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nX19fdVY1dFdcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWNyaXRpY2FsX19fQTZKaU9cIixcImJvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWpcIixcImJvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdUaW50X19fTjdVY1RcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19hLWZhR1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1saW5rX19fbXdSS3dcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jb2RlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY29kZV9fX3VKV0ZIXCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0VlwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1zX19fdm81ZWxcIixcImJvcmRlclJhZGl1c1RvcFJpZ2h0LS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tbV9fX0dJRWN0XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1tbF9fX21FY0R2XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWxfX19yZy1EMFwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLTUwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHc1wiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1mdWxsX19fNVpJdjhcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0temVyb19fX084ZEUzXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tX19fU2w1UlJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tbF9fXzUySm9sXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS01MF9fXzctd09HXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNlwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtXCIsXCJib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zX19fekZJTDNcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1fX19LTlNjVFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1sX19fdnQ3eDJcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxfX19rOHBpa1wiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHVcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxfX19lSGo2c1wiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb19fX1AxWXR3XCIsXCJib3JkZXJSYWRpdXNUb3BMZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGVcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1fX18zTFJSMFwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHdcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWxfX18zczJDSlwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLTUwX19fd05Zd1FcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUlwiLFwiYm9yZGVyLS1leGNlcHQtbGFzdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyLS1leGNlcHQtbGFzdF9fXzIyWXNCXCJ9OyIsICJpbXBvcnQgYm9yZGVyU3R5bGVzIGZyb20gXCIuL2JvcmRlci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBCb3JkZXJSYWRpdXNTaXplIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb3JuZXJTdHlsZXMge1xuICByYWRpdXM/OiBCb3JkZXJSYWRpdXNTaXplIHwgYm9vbGVhbjtcbiAgcmFkaXVzVG9wUmlnaHQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNCb3R0b21SaWdodD86IEJvcmRlclJhZGl1c1NpemU7XG4gIHJhZGl1c0JvdHRvbUxlZnQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNUb3BMZWZ0PzogQm9yZGVyUmFkaXVzU2l6ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvcm5lclN0eWxlcyA9IChzdHlsZXM6IENvcm5lclN0eWxlcykgPT4ge1xuICBjb25zdCB7IHJhZGl1cywgcmFkaXVzVG9wUmlnaHQsIHJhZGl1c0JvdHRvbVJpZ2h0LCByYWRpdXNCb3R0b21MZWZ0LCByYWRpdXNUb3BMZWZ0IH0gPSBzdHlsZXM7XG5cbiAgaWYgKHJhZGl1cykge1xuICAgIGNvbnN0IGJvcmRlclJhZGl1c1NpemUgPSByYWRpdXMgPT09IHRydWUgPyBcInNcIiA6IHJhZGl1cztcblxuICAgIHJldHVybiBib3JkZXJSYWRpdXNTaXplID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3JhZGl1cy0tJHtib3JkZXJSYWRpdXNTaXplfWBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICByYWRpdXNUb3BSaWdodCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyUmFkaXVzVG9wUmlnaHQtLSR7cmFkaXVzVG9wUmlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgcmFkaXVzQm90dG9tUmlnaHQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS0ke3JhZGl1c0JvdHRvbVJpZ2h0fWBdIDogdW5kZWZpbmVkLFxuICAgIHJhZGl1c0JvdHRvbUxlZnQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLSR7cmFkaXVzQm90dG9tTGVmdH1gXSA6IHVuZGVmaW5lZCxcbiAgICByYWRpdXNUb3BMZWZ0ID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJSYWRpdXNUb3BMZWZ0LS0ke3JhZGl1c1RvcExlZnR9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlclNpZGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplIGFzIGxvZGFzaENhcGl0YWxpemUgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZVN0eWxlcyB7XG4gIHRvcD86IEJvcmRlclNpZGU7XG4gIHJpZ2h0PzogQm9yZGVyU2lkZTtcbiAgYm90dG9tPzogQm9yZGVyU2lkZTtcbiAgbGVmdD86IEJvcmRlclNpZGU7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTaWRlU3R5bGVzID0gKHNpZGVzOiBTaWRlU3R5bGVzKSA9PiBbXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInRvcFwiLCBzaWRlcyksXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInJpZ2h0XCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwiYm90dG9tXCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwibGVmdFwiLCBzaWRlcyksXG5dO1xuXG5jb25zdCBnZXRTcGVjaWZpY1NpZGVTdHlsZXMgPSAoc2lkZToga2V5b2YgU2lkZVN0eWxlcywgc2lkZXM6IFNpZGVTdHlsZXMpID0+IHtcbiAgY29uc3QgeyB3aWR0aCwgY29sb3IgfSA9IHNpZGVzW3NpZGVdID8/IHt9O1xuICBjb25zdCBzaWRlTmFtZSA9IGNhcGl0YWxpemUoc2lkZSk7XG5cbiAgcmV0dXJuIFtcbiAgICB3aWR0aCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyJHtzaWRlTmFtZX1fX3dpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXIke3NpZGVOYW1lfV9fY29sb3ItLSR7Y29sb3J9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuXG5jb25zdCBjYXBpdGFsaXplID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHRhcmdldDogVCkgPT4gbG9kYXNoQ2FwaXRhbGl6ZSh0YXJnZXQpIGFzIENhcGl0YWxpemU8VD47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmb250U3R5bGVzIGZyb20gXCIuL2ZvbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRm9udFNpemUgPSBcInh4c1wiIHwgXCJ4c1wiIHwgXCJzXCIgfCBcIm1cIiB8IFwibFwiIHwgXCJ4bFwiIHwgXCJ4eGxcIiB8IFwiM3hsXCIgfCBcIjR4bFwiO1xuXG5leHBvcnQgdHlwZSBGb250Qm9sZCA9IFwiNjAwXCI7XG5cbmV4cG9ydCB0eXBlIEZvbnRMaW5lSGVpZ2h0ID0gXCJub25lXCIgfCBcInRpZ2h0XCIgfCBcIm5vcm1hbFwiIHwgXCJsb29zZVwiO1xuXG5leHBvcnQgdHlwZSBGb250UGx1Z2luUHJvcHMgPSB7XG4gICRmb250PzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgc2l6ZT86IEZvbnRTaXplO1xuICAgICAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgICAgICBib2xkPzogYm9vbGVhbiB8IEZvbnRCb2xkO1xuICAgICAgICBsaW5lSGVpZ2h0PzogRm9udExpbmVIZWlnaHQ7XG4gICAgICAgIGZvcmNlV3JhcD86IGJvb2xlYW47XG4gICAgICAgIG5vV3JhcD86IGJvb2xlYW47XG4gICAgICAgIHVwcGVyY2FzZT86IGJvb2xlYW47XG4gICAgICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgICAgIHRleHRPdmVyZmxvdz86IFwiY2xpcFwiIHwgXCJlbGxpcHNpc1wiIHwgXCJkZWZhdWx0XCI7XG4gICAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGZvbnRQbHVnaW4gPSBnZXRQbHVnaW48Rm9udFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRmb250KSB7XG4gICAgcmV0dXJuIHsgJGZvbnQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIHNpemUgPSB1bmRlZmluZWQsXG4gICAgYm9sZCA9IGZhbHNlLFxuICAgIGxpbmVIZWlnaHQgPSB1bmRlZmluZWQsXG4gICAgbm9XcmFwID0gZmFsc2UsXG4gICAgdXBwZXJjYXNlID0gZmFsc2UsXG4gICAgaXRhbGljID0gZmFsc2UsXG4gICAgZm9yY2VXcmFwID0gZmFsc2UsXG4gICAgdW5kZXJsaW5lID0gZmFsc2UsXG4gICAgdGV4dE92ZXJmbG93ID0gXCJkZWZhdWx0XCIsXG4gIH0gPSBwcm9wcy4kZm9udCA9PT0gdHJ1ZSA/IHt9IDogcHJvcHMuJGZvbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgc2l6ZSA/IGZvbnRTdHlsZXNbYGZvbnRfX3NpemUtLSR7c2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvbGQgPT09IHRydWUgPyBmb250U3R5bGVzW1wiZm9udC0tYm9sZFwiXSA6IGJvbGQgPyBmb250U3R5bGVzW2Bmb250LS13ZWlnaHQtJHtib2xkfWBdIDogdW5kZWZpbmVkLFxuICAgICAgbGluZUhlaWdodCA/IGZvbnRTdHlsZXNbYGZvbnRfX2xpbmUtaGVpZ2h0LS0ke2xpbmVIZWlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgICB0ZXh0T3ZlcmZsb3cgPT09IFwiZGVmYXVsdFwiID8gdW5kZWZpbmVkIDogZm9udFN0eWxlc1tgZm9udC0tdGV4dC1vdmVyZmxvdy0tJHt0ZXh0T3ZlcmZsb3d9YF0sXG4gICAgICB7XG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tbm8td3JhcFwiXV06IG5vV3JhcCxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS1mb3JjZS13cmFwXCJdXTogZm9yY2VXcmFwLFxuICAgICAgICBbZm9udFN0eWxlc1tcImZvbnQtLWl0YWxpY1wiXV06IGl0YWxpYyxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS11cHBlcmNhc2VcIl1dOiB1cHBlcmNhc2UsXG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tdW5kZXJsaW5lXCJdXTogdW5kZXJsaW5lLFxuICAgICAgfSxcbiAgICBdLFxuICAgICRmb250OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLSB7XFxuICBmb250LXNpemU6IGNhbGMoMS4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtYWxsKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS1zX19fVGJuTWwge1xcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLW1fX19mREpBaiB7XFxuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iaWcpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLWxfX191S2N1ayB7XFxuICBmb250LXNpemU6IGNhbGMoMi4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14bF9fX1JlaG9RIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygyLjUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0teHhsX19fQ2dvS1Age1xcbiAgZm9udC1zaXplOiBjYWxjKDIuNzUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tM3hsX19fc0NJZXoge1xcbiAgZm9udC1zaXplOiBjYWxjKDMgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2Uge1xcbiAgZm9udC1zaXplOiBjYWxjKDQgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5SyB7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tdGlnaHRfX19yLUVCOSB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxfX19ySjRWTiB7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtIHtcXG4gIGxpbmUtaGVpZ2h0OiAyO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWJvbGRfX19iamUtYiB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS13ZWlnaHQtNjAwX19fRWdkem0ge1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1uby13cmFwX19fcWJSUk8ge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1mb3JjZS13cmFwX19fT0dDRnoge1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtbiB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWl0YWxpY19fX0pINFRaIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11bmRlcmxpbmVfX19kNG9uTCB7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc19fX0hxZlgtIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5mb250LW1vZHVsZV9fZm9udC0tdGV4dC1vdmVyZmxvdy0tY2xpcF9fXzk2eEI5IHtcXG4gIHRleHQtb3ZlcmZsb3c6IGNsaXA7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmb250X19zaXplLS14eHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLVwiLFwiZm9udF9fc2l6ZS0teHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5XCIsXCJmb250X19zaXplLS1zXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tc19fX1Ribk1sXCIsXCJmb250X19zaXplLS1tXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbV9fX2ZESkFqXCIsXCJmb250X19zaXplLS1sXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbF9fX3VLY3VrXCIsXCJmb250X19zaXplLS14bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXhsX19fUmVob1FcIixcImZvbnRfX3NpemUtLXh4bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXh4bF9fX0Nnb0tQXCIsXCJmb250X19zaXplLS0zeGxcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS0zeGxfX19zQ0llelwiLFwiZm9udF9fc2l6ZS0tNHhsXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2VcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub25lXCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5S1wiLFwiZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0XCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0X19fci1FQjlcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxcIjpcImZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tbm9ybWFsX19fcko0Vk5cIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtXCIsXCJmb250LS1ib2xkXCI6XCJmb250LW1vZHVsZV9fZm9udC0tYm9sZF9fX2JqZS1iXCIsXCJmb250LS13ZWlnaHQtNjAwXCI6XCJmb250LW1vZHVsZV9fZm9udC0td2VpZ2h0LTYwMF9fX0VnZHptXCIsXCJmb250LS1uby13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tbm8td3JhcF9fX3FiUlJPXCIsXCJmb250LS1mb3JjZS13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tZm9yY2Utd3JhcF9fX09HQ0Z6XCIsXCJmb250LS11cHBlcmNhc2VcIjpcImZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtblwiLFwiZm9udC0taXRhbGljXCI6XCJmb250LW1vZHVsZV9fZm9udC0taXRhbGljX19fSkg0VFpcIixcImZvbnQtLXVuZGVybGluZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXVuZGVybGluZV9fX2Q0b25MXCIsXCJmb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc1wiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXRleHQtb3ZlcmZsb3ctLWVsbGlwc2lzX19fSHFmWC1cIixcImZvbnQtLXRleHQtb3ZlcmZsb3ctLWNsaXBcIjpcImZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1jbGlwX19fOTZ4QjlcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgQm94U2hhZG93UGx1Z2luUHJvcHMgPSB7XG4gICRib3hTaGFkb3c/OiBib29sZWFuIHwgXCJlbGV2YXRlZFwiIHwgXCJzdWJ0bGVcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBib3hTaGFkb3dQbHVnaW4gPSBnZXRQbHVnaW48Qm94U2hhZG93UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJveFNoYWRvdykge1xuICAgIHJldHVybiB7XG4gICAgICAkYm94U2hhZG93OiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHZhcmlhbnQgPSBwcm9wcy4kYm94U2hhZG93ID09PSB0cnVlID8gXCJlbGV2YXRlZFwiIDogcHJvcHMuJGJveFNoYWRvdztcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBzdHlsZXNbYGJveC1zaGFkb3ctLSR7dmFyaWFudH1gXV0sXG4gICAgJGJveFNoYWRvdzogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3gtc2hhZG93LW1vZHVsZV9fYm94LXNoYWRvdy0tZWxldmF0ZWRfX19qYWg3ZiB7XFxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xcbn1cXG4uYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNIHtcXG4gIGJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMjI3NDUwOTgwNCksIDAgMC42cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yMjc0NTA5ODA0KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJib3gtc2hhZG93LS1lbGV2YXRlZFwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLWVsZXZhdGVkX19famFoN2ZcIixcImJveC1zaGFkb3ctLXN1YnRsZVwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNXCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyA9IHsgJG5vUG9pbnRlckV2ZW50cz86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IG5vUG9pbnRlckV2ZW50c1BsdWdpbiA9IGdldFBsdWdpbjxOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFtzdHlsZXNbXCJuby1wb2ludGVyLWV2ZW50c1wiXV06IHByb3BzLiRub1BvaW50ZXJFdmVudHMgfV0sXG4gICRub1BvaW50ZXJFdmVudHM6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIubm8tcG9pbnRlci1ldmVudHMtbW9kdWxlX19uby1wb2ludGVyLWV2ZW50c19fXzdtRjBiICoge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibm8tcG9pbnRlci1ldmVudHNcIjpcIm5vLXBvaW50ZXItZXZlbnRzLW1vZHVsZV9fbm8tcG9pbnRlci1ldmVudHNfX183bUYwYlwifTsiLCAiaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gU2ltcGxpZmllZCB0eXBlIHNpbmNlIFJlZkNhbGxiYWNrIGZyb20gXCJyZWFjdFwiIGNhdXNlcyBVTkRFRklORURfVk9JRF9PTkxZIGVycm9yXG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQ29uZnVzaW5nVm9pZFR5cGU6IHZvaWQgdHlwaW5nIHJlcXVpcmVkXG50eXBlIFJlZkNhbGxiYWNrPFQ+ID0gKGluc3RhbmNlOiBUIHwgbnVsbCkgPT4gdW5kZWZpbmVkIHwgdm9pZCB8ICgoKSA9PiBhbnkpO1xuXG5leHBvcnQgdHlwZSBSZWZMaWtlPFQ+ID0gUmVmQ2FsbGJhY2s8VD4gfCBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQgfCBudWxsPiB8IFJlYWN0LlJlZk9iamVjdDxUPiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgJFJlZlByb3A8VD4gPSBSZWZMaWtlPFQ+IHwgJFJlZlByb3A8VD5bXTtcblxuZXhwb3J0IHR5cGUgUmVmUGx1Z2luUHJvcHM8VD4gPSB7XG4gICRyZWY/OiAkUmVmUHJvcDxUPjtcbiAgcmVmPzogUmVmTGlrZTxUPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlZlBsdWdpbjxUPiA9IFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPiwgdW5rbm93bj47XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZQbHVnaW48VCA9IEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPj4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkcmVmIH0gPSBwcm9wcztcbiAgICBjb25zdCBwcmV2UmVmcyA9IHVzZVJlZihuZXcgU2V0PFJlZkxpa2U8VD4+KCkpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpO1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIGRvIG5vdCB3YW50IHRvIHJ1biB0aGlzIG11bHRpcGxlIHRpbWVzXG4gICAgY29uc3QgcmVmID0gdXNlQ2FsbGJhY2soKGN1cnJlbnQ6IFQpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0UmVmcyA9IGZsYXR0ZW5SZWZzKCRyZWYpO1xuXG4gICAgICBmaXJzdFJlZnMuZm9yRWFjaChoYW5kbGVSZWZzRm9yKGN1cnJlbnQpKTtcbiAgICAgIHByZXZSZWZzLmN1cnJlbnQgPSBmaXJzdFJlZnM7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBjdXJyZW50O1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBwcmV2UmVmcy5jdXJyZW50LmZvckVhY2goaGFuZGxlUmVmc0ZvcjxUPihudWxsKSk7XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBmaXJzdFJlbmRlciA9IHVzZVJlZih0cnVlKTtcblxuICAgIGlmICghZmlyc3RSZW5kZXIuY3VycmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFJlZnMgPSBmbGF0dGVuUmVmcygkcmVmKTtcbiAgICAgIGNvbnN0IGFkZGVkUmVmcyA9IGN1cnJlbnRSZWZzLmRpZmZlcmVuY2UocHJldlJlZnMuY3VycmVudCk7XG4gICAgICBjb25zdCByZW1vdmVkUmVmcyA9IHByZXZSZWZzLmN1cnJlbnQuZGlmZmVyZW5jZShjdXJyZW50UmVmcyk7XG5cbiAgICAgIGFkZGVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4oZWxlbWVudFJlZi5jdXJyZW50KSk7XG4gICAgICByZW1vdmVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4obnVsbCkpO1xuICAgICAgcHJldlJlZnMuY3VycmVudCA9IGN1cnJlbnRSZWZzO1xuICAgIH1cblxuICAgIGZpcnN0UmVuZGVyLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICAkcmVmOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IGZsYXR0ZW5SZWZzID0gPFQsPihyZWZzOiAkUmVmUHJvcDxUPik6IFNldDxSZWZMaWtlPFQ+PiA9PlxuICBuZXcgU2V0KChbcmVmc10uZmxhdChJbmZpbml0eSBhcyAxKSBhcyBBcnJheTxOb25OdWxsYWJsZTxSZWZMaWtlPFQ+Pj4pLmZpbHRlcihpc0RlZmluZWQpKTtcblxuY29uc3QgaGFuZGxlUmVmc0ZvciA9XG4gIDxULD4odmFsdWU6IFQgfCBudWxsKSA9PlxuICAocmVmczogJFJlZlByb3A8VD4pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgcmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3IodmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWZzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlZnModmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocmVmcykge1xuICAgICAgKHJlZnMgYXMgTXV0YWJsZVJlZk9iamVjdDxUIHwgbnVsbD4pLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gIH07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcywgdHlwZSBJQ2xhc3NOYW1lIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgQ2xhc3NOYW1lUGx1Z2luUHJvcHMgPSB7ICRjbGFzc05hbWU/OiBJQ2xhc3NOYW1lOyBjbGFzc05hbWU/OiBzdHJpbmcgfTtcblxubGV0IHNob3dDbHV0dGVyID0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTmFtZVBsdWdpbiA9IGdldFBsdWdpbjxDbGFzc05hbWVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGNzc05hbWVzKHByb3BzLmNsYXNzTmFtZSwgcHJvcHMuJGNsYXNzTmFtZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi4oY2xhc3NOYW1lID8geyBjbGFzc05hbWU6IHNob3dDbHV0dGVyID8gY2xhc3NOYW1lIDogcmVtb3ZlQ2x1dHRlcihjbGFzc05hbWUpIH0gOiB7fSksXG4gICAgJGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IHJlbW92ZUNsdXR0ZXIgPSAoY2xhc3NOYW1lOiBzdHJpbmcpID0+XG4gIGNsYXNzTmFtZS5yZXBsYWNlKC9fX18uKj8oPz1cXHN8JCkvZywgXCJcIikucmVwbGFjZSgvXFxiW2EtekEtWjAtOS1dKy1tb2R1bGVfXy9nLCBcIlwiKTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyA9ICgpID0+IHtcbiAgc2hvd0NsdXR0ZXIgPSBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gPSAoKSA9PiB7XG4gIHNob3dDbHV0dGVyID0gdHJ1ZTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCByZWxhdGl2ZVN0eWxlcyBmcm9tIFwiLi9yZWxhdGl2ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVBsdWdpblByb3BzID0geyAkcmVsYXRpdmU/OiBib29sZWFuOyAkZml4ZWQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZVBsdWdpbiA9IGdldFBsdWdpbjxSZWxhdGl2ZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW1xuICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgeyBbcmVsYXRpdmVTdHlsZXMucmVsYXRpdmVdOiAhIXByb3BzLiRyZWxhdGl2ZSwgW3JlbGF0aXZlU3R5bGVzLmZpeGVkXTogISFwcm9wcy4kZml4ZWQgfSxcbiAgXSxcbiAgJGZpeGVkOiB1bmRlZmluZWQsXG4gICRyZWxhdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5yZWxhdGl2ZS1tb2R1bGVfX3JlbGF0aXZlX19fa3dNNXEge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4ucmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJyZWxhdGl2ZVwiOlwicmVsYXRpdmUtbW9kdWxlX19yZWxhdGl2ZV9fX2t3TTVxXCIsXCJmaXhlZFwiOlwicmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEXCJ9OyIsICJleHBvcnQgdHlwZSBEcmFnZ2FibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyYWdnYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIGl0ZW06IFQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcm9wcGFibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyb3BwYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIG9uRHJvcDogKGl0ZW06IFQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcmFnZ2FibGVDb250ZXh0PERyYWdnZWRJdGVtPiA9IHtcbiAgZHJhZ2dhYmxlOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IE5vbk51bGxhYmxlPERyYWdnYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltgJGRyYWdnYWJsZWBdPjtcbiAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+IE5vbk51bGxhYmxlPERyb3BwYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltcIiRkcm9wcGFibGVcIl0+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERyYWdnYWJsZUNvbnRleHQgPSA8RHJhZ2dlZEl0ZW0+KCk6IERyYWdnYWJsZUNvbnRleHQ8RHJhZ2dlZEl0ZW0+ID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBkcmFnZ2FibGU6IChpdGVtOiBEcmFnZ2VkSXRlbSkgPT4gKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBpdGVtLFxuICAgIH0pLFxuXG4gICAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+ICh7XG4gICAgICBjb250ZXh0LFxuICAgICAgb25Ecm9wLFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcbiIsICJpbXBvcnQgeyBnZXRGZWF0dXJlIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IG1vZHVsZXNXaXRoSW5qZWN0YWJsZXMgZnJvbSBcIi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpXCI7XG5pbXBvcnQgc3R5bGVzaGVldHMgZnJvbSBcIi4vKiovIShfKikuKHNjc3N8Y3NzKVwiO1xuXG5leHBvcnQgY29uc3QgZWxlbWVudENvbXBvbmVudEZlYXR1cmUgPSBnZXRGZWF0dXJlKHtcbiAgaWQ6IFwiZWxlbWVudC1jb21wb25lbnRcIixcbiAgcmVnaXN0ZXI6IChkaSkgPT4gcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzKGRpLCBbLi4ubW9kdWxlc1dpdGhJbmplY3RhYmxlcywgLi4uc3R5bGVzaGVldHNdKSxcbiAgLy8gTm8gZmVhdHVyZSBkZXBlbmRlbmNpZXM6IGEgZGVzaWduIHN5c3RlbSBldmVyeW9uZSBtYXkgaW5zdGFsbCBjYW5ub3QgZHJhZ1xuICAvLyBMZW5zIGZlYXR1cmVzIGludG8gdGhlIGNsb3N1cmUuIFRoZSBjbG9jayB0aGUgaG92ZXJhYmxlIHBsdWdpbiBuZWVkcyBpc1xuICAvLyBsb2NhbCwgYW5kIHRoZSBwbGF0Zm9ybSBpcyByZWFkIGRpcmVjdGx5LlxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGtleWJvYXJkIGNvbnZlbnRpb25zIG9mIG1hY09TIGFwcGx5LlxuICpcbiAqIFJlYWQgZnJvbSB0aGUgYnJvd3NlciByYXRoZXIgdGhhbiBmcm9tIGBwcm9jZXNzYCBvciB0aGUgdmFycyBmZWF0dXJlOiB0aGlzIGlzXG4gKiBhIHJlbmRlcmVyLW9ubHkgZGVzaWduIHN5c3RlbSwgaXQgbWF5IG5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZFxuICogYHByb2Nlc3NgIGlzIG5vdCB0aGVyZSB0byByZWFkIG9uY2UgdGhlIHJlbmRlcmVyIHN0b3BzIHJ1bm5pbmcgd2l0aCBub2RlXG4gKiBpbnRlZ3JhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzTWFjSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaXMtbWFjXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IHtcbiAgICBjb25zdCB7IHVzZXJBZ2VudERhdGEsIHBsYXRmb3JtLCB1c2VyQWdlbnQgfSA9IG5hdmlnYXRvciBhcyBOYXZpZ2F0b3IgJiB7XG4gICAgICByZWFkb25seSB1c2VyQWdlbnREYXRhPzogeyByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZyB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gL21hYy9pLnRlc3QodXNlckFnZW50RGF0YT8ucGxhdGZvcm0gPz8gcGxhdGZvcm0gPz8gdXNlckFnZW50ID8/IFwiXCIpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWF0Y2hlcyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB7IGlzTWFjSW5qZWN0YWJsZSB9IGZyb20gXCIuL2lzLW1hYy5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm9uLXJpZ2h0LXRyaWdnZXJcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgaXNNYWMgPSBkaS5pbmplY3QoaXNNYWNJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiBvblJpZ2h0VHJpZ2dlckZvcihpc01hYygpID8gaXNNYWNvc1Nob3J0Y3V0IDogaXNMaW51eE9yV2luZG93c1Nob3J0Y3V0KTtcbiAgfSxcbn0pO1xuXG5jb25zdCBvblJpZ2h0VHJpZ2dlckZvciA9XG4gIDxUPihjYjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+KSA9PiBib29sZWFuKSA9PlxuICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8VD4sIGNhbGxiYWNrOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPikgPT4ge1xuICAgIGlmIChjYihldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfVxuICB9O1xuXG5jb25zdCBpc01hY29zU2hvcnRjdXQgPSBtYXRjaGVzKHtcbiAgc2hpZnRLZXk6IGZhbHNlLFxuICBhbHRLZXk6IGZhbHNlLFxuICBjdHJsS2V5OiBmYWxzZSxcbiAgbWV0YUtleTogdHJ1ZSxcbiAgY29kZTogXCJFbnRlclwiLFxufSk7XG5cbmNvbnN0IGlzTGludXhPcldpbmRvd3NTaG9ydGN1dCA9IG1hdGNoZXMoe1xuICBzaGlmdEtleTogZmFsc2UsXG4gIGFsdEtleTogZmFsc2UsXG4gIGN0cmxLZXk6IHRydWUsXG4gIG1ldGFLZXk6IGZhbHNlLFxuICBjb2RlOiBcIkVudGVyXCIsXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm1ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LCA1MCk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgTmF2aWdhYmxlRW50cnkgPSB7XG4gIHJlYWRvbmx5IGl0ZW06IHVua25vd247XG4gIHJlYWRvbmx5IG9yZGVyTnVtYmVyOiBudW1iZXI7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufTtcblxudHlwZSBOYXZpZ2FibGVDb250ZXh0ID0gS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PGFueT47XG5cbi8qKlxuICogVGhlIG1lbWJlcnMgb2YgZXZlcnkga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQsIHRoZSBvcmRlciB0aGUgY29udGV4dHMgYXBwZWFyZWQgaW4sIGFuZCB3aGljaFxuICogbWVtYmVyIG9mIGVhY2ggaGFkIGZvY3VzLiBGb2N1cyBiZWxvbmdzIHRvIHRoZSBjb250ZXh0IHRoYXQgYXBwZWFyZWQgbGFzdDsgd2hlbiBpdCBnb2VzIGF3YXksIHRoZVxuICogcHJldmlvdXMgb25lIHRha2VzIGl0IGJhY2sgXHUyMDE0IGF0IHRoZSBtZW1iZXIgaXQgd2FzIGxlZnQgb24sIHdoaWNoIGlzIHdoYXQgbWFrZXMgc3RlcHBpbmcgaW50b1xuICogc29tZXRoaW5nIGFuZCBiYWNrIG91dCBvZiBpdCBsYW5kIHdoZXJlIGl0IHN0YXJ0ZWQgcmF0aGVyIHRoYW4gYXQgdGhlIGJlZ2lubmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwia2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiB7XG4gICAgY29uc3QgZW50cmllc0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgU2V0PE5hdmlnYWJsZUVudHJ5Pj4oKTtcbiAgICBjb25zdCBpdGVtSW5Gb2N1c0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgdW5rbm93bj4oKTtcbiAgICBjb25zdCBjb250ZXh0U3RhY2s6IE5hdmlnYWJsZUNvbnRleHRbXSA9IFtdO1xuXG4gICAgY29uc3QgZW50cmllc09mID0gKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gZW50cmllc0J5Q29udGV4dC5nZXQoY29udGV4dCk7XG5cbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNyZWF0ZWQgPSBuZXcgU2V0PE5hdmlnYWJsZUVudHJ5PigpO1xuXG4gICAgICBlbnRyaWVzQnlDb250ZXh0LnNldChjb250ZXh0LCBjcmVhdGVkKTtcblxuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfTtcblxuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgc29ydGVkRW50cmllc09mOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCkgPT5cbiAgICAgICAgWy4uLmVudHJpZXNPZihjb250ZXh0KV0uc29ydCgoYSwgYikgPT4gYS5vcmRlck51bWJlciAtIGIub3JkZXJOdW1iZXIpLFxuXG4gICAgICBjb250ZXh0SW5Gb2N1czogKCkgPT4gY29udGV4dFN0YWNrLmF0KC0xKSxcblxuICAgICAgaXRlbUluRm9jdXNPZjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IGl0ZW1JbkZvY3VzQnlDb250ZXh0LmdldChjb250ZXh0KSxcblxuICAgICAgbm90ZUl0ZW1JbkZvY3VzOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCwgaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5zZXQoY29udGV4dCwgaXRlbSk7XG4gICAgICB9LFxuXG4gICAgICByZWdpc3RlcjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQsIGVudHJ5OiBOYXZpZ2FibGVFbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gZW50cmllc09mKGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChlbnRyaWVzLnNpemUgPT09IDApIHtcbiAgICAgICAgICBjb250ZXh0U3RhY2sucHVzaChjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVudHJpZXMuYWRkKGVudHJ5KTtcbiAgICAgIH0sXG5cbiAgICAgIGRlcmVnaXN0ZXI6IChjb250ZXh0OiBOYXZpZ2FibGVDb250ZXh0LCBlbnRyeTogTmF2aWdhYmxlRW50cnkpID0+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGVudHJpZXNPZihjb250ZXh0KTtcblxuICAgICAgICBlbnRyaWVzLmRlbGV0ZShlbnRyeSk7XG5cbiAgICAgICAgaWYgKGVudHJpZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4SW5TdGFjayA9IGNvbnRleHRTdGFjay5sYXN0SW5kZXhPZihjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChpbmRleEluU3RhY2sgIT09IC0xKSB7XG4gICAgICAgICAgICBjb250ZXh0U3RhY2suc3BsaWNlKGluZGV4SW5TdGFjaywgMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQSBjb250ZXh0IHRoYXQgaXMgZ29uZSByZW1lbWJlcnMgbm90aGluZzogdGhlIG5leHQgdGltZSBpdHMgbWVtYmVycyBhcHBlYXIsIHRoZXlcbiAgICAgICAgICAvLyBhcHBlYXIgYW5ldywgYW5kIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRha2VzIGZvY3VzIGFzIGl0IGRpZCB0aGUgZmlyc3QgdGltZS5cbiAgICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5kZWxldGUoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi4vLi4vaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSG92ZXJhYmxlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9ob3ZlcmFibGVcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuXG5leHBvcnQgY29uc3QgY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkXCIsXG4gIGNvbnN1bXB0aW9uczogW2l0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbl0sXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSBkaS5pbmplY3QoaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuKTtcblxuICAgIHJldHVybiAoY29udGV4dDogSG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PGFueT4+KSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkSXRlbSA9IGl0ZW1CZWluZ0hvdmVyZWQoKShjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICEhaG92ZXJlZEl0ZW0uZ2V0KCkpO1xuICAgIH07XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcbmltcG9ydCBnbG9iYWxPdmVycmlkZXMgZnJvbSBcIi4vKiovKi5nbG9iYWwtb3ZlcnJpZGUtZm9yLWluamVjdGFibGUuKHRzfHRzeClcIjtcbmltcG9ydCBkZWZhdWx0T3ZlcnJpZGVzIGZyb20gXCIuLyoqLyouZGVmYXVsdC1vdmVycmlkZS4odHN8dHN4KVwiO1xuXG5leHBvcnQgY29uc3QgdGVzdFV0aWxSdW5uYWJsZUluamVjdGFibGUgPSBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzKHtcbiAgZ2xvYmFsT3ZlcnJpZGVzLFxuICBkZWZhdWx0T3ZlcnJpZGVzLFxufSk7XG4iLCAiXG5cbmNvbnN0IG1vZHVsZXMgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbXVxuIiwgImltcG9ydCB0eXBlIHsgRGlDb250YWluZXIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlIH0gZnJvbSBcIi4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZVwiO1xuXG4vLyBSdW5zIHRoZSBjYWxsYmFjayBzdHJhaWdodCBhd2F5IGluIHRlc3RzLCBpbnN0ZWFkIG9mIGFmdGVyIHRoZSByZWFsIGRlbGF5LlxuZXhwb3J0IGRlZmF1bHQgKGRpOiBEaUNvbnRhaW5lcikgPT4ge1xuICBkaS5vdmVycmlkZTIobWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlLCAoKSA9PiAoKSA9PiAoY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IGNhbGxiYWNrKCkpO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IERpQ29udGFpbmVyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB7IHRvb2x0aXBEZWxheUluamVjdGFibGUgfSBmcm9tIFwiLi90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcblxuLy8gTm8gZGVsYXkgaW4gdGVzdHMsIHNvIGEgdG9vbHRpcCBhcHBlYXJzIHdpdGhvdXQgYW55b25lIGFkdmFuY2luZyB0aW1lcnMuXG4vLyBXcml0dGVuIGFzIGEgcGxhaW4gZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhyb3VnaCBnZXREZWZhdWx0TW9ja2luZ092ZXJyaWRlLFxuLy8gd2hpY2ggaXMgYW4gaWRlbnRpdHkgZnVuY3Rpb24gaW4gYSB0ZXN0IHBhY2thZ2UgdGhpcyBvbmUgbWF5IG5vdCBpbXBvcnQuXG5leHBvcnQgZGVmYXVsdCAoZGk6IERpQ29udGFpbmVyKSA9PiB7XG4gIGRpLm92ZXJyaWRlMih0b29sdGlwRGVsYXlJbmplY3RhYmxlLCAoKSA9PiAoKSA9PiB1bmRlZmluZWQpO1xufTtcbiIsICJpbXBvcnQgeyByZW1vdmVDc3NNb2R1bGVDbHV0dGVyRm9yVW5pdFRlc3RpbmcgfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZygpO1xufTtcbiIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbJ3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uZGVmYXVsdC1vdmVycmlkZS50cycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cycsJ3JlbW92ZS1jc3MtbW9kdWxlLWNsdXR0ZXIuZGVmYXVsdC1vdmVycmlkZS50cyddXG4iLCAiaW1wb3J0ICogYXMgbW9kdWxlMCBmcm9tICcuL3BsdWdpbnMvY2xpY2thYmxlL2lzLW1hYy5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9jbGlja2FibGUvb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTcgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9pdGVtLWJlaW5nLWZvY3VzZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUvX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTE0IGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3Rlc3QtdXRpbC1ydW5uYWJsZS5pbmplY3RhYmxlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTVdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvY29tcHV0ZWQtbm93LmluamVjdGFibGUudHMnLCdwbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvaG92ZXJhYmxlL2l0ZW0tYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJywndGVzdC11dGlsLXJ1bm5hYmxlLmluamVjdGFibGUudHMnXVxuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmFuY2hvci1tb2R1bGVfX2FuY2hvcl9fX20tNXViIHtcXG4gIGFuY2hvci1uYW1lOiB2YXIoLS1hbmNob3ItbmFtZSk7XFxufVxcblxcbi5hbmNob3ItbW9kdWxlX19hbmNob3JlZEF0X19fVUFyVUsge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcG9zaXRpb24tYW5jaG9yOiB2YXIoLS1hbmNob3ItdGFyZ2V0KTtcXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLWFuY2hvci1wb3NpdGlvbik7XFxuICAvKiBUaGUgYnJvd3NlciBjZW50ZXJzIGEgcG9wb3ZlciBpbiB0aGUgdmlld3BvcnQ7IHRoZSBwb3NpdGlvbiBhcmVhIHBsYWNlcyB0aGlzIG9uZSBpbnN0ZWFkLiAqL1xcbiAgaW5zZXQ6IGF1dG87XFxuICAvKiBNaXJyb3IgdG8gdGhlIG9wcG9zaXRlIHNpZGUsIHRoZW4gdGhlIG9wcG9zaXRlIHNwYW4sIGJlZm9yZSBnaXZpbmcgdXAuICovXFxuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiBmbGlwLWJsb2NrLCBmbGlwLWlubGluZSwgZmxpcC1ibG9jayBmbGlwLWlubGluZTtcXG4gIC8qIFRoZSBnYXAgYmVsb25ncyB0byB0aGUgZWxlbWVudCBhcyBmYXIgYXMgdGhlIHBvaW50ZXIgaXMgY29uY2VybmVkLCBzbyBtb3Zpbmcgb250byBpdCBhY3Jvc3NcXG4gICAgIHRoZSBnYXAgbmV2ZXIgY291bnRzIGFzIGxlYXZpbmcuIFJlYWNoZXMgb3V0IG9uIGV2ZXJ5IHNpZGUsIHNvIGl0IGhvbGRzIGhvd2V2ZXIgdGhlIGVsZW1lbnRcXG4gICAgIGVuZHMgdXAgZmxpcHBlZC4gKi9cXG59XFxuLmFuY2hvci1tb2R1bGVfX2FuY2hvcmVkQXRfX19VQXJVSzo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1hbmNob3ItZ2FwLCAwcHgpKTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG4uYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBYyB7XFxuICAvKiBJbiB0aGUgdG9wIGxheWVyLCBsaWtlIHdoYXRldmVyIGlzIGFuY2hvcmVkIHRvIGl0LCBzbyB0aGUgcG9pbnQgaXMgdGhlIG9uZSBpbiB0aGUgdmlld3BvcnQgdGhlXFxuICAgICBjdXJzb3Igd2FzIGF0IHJhdGhlciB0aGFuIG9uZSBvZmZzZXQgYnkgZXZlcnkgdHJhbnNmb3JtaW5nIGFuY2VzdG9yIGluIGJldHdlZW4uICovXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBpbnNldDogYXV0bztcXG4gIGxlZnQ6IHZhcigtLWFuY2hvci1wb2ludC14KTtcXG4gIHRvcDogdmFyKC0tYW5jaG9yLXBvaW50LXkpO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBhbmNob3ItbmFtZTogdmFyKC0tYW5jaG9yLW5hbWUpO1xcbiAgLyogVW5kbyB3aGF0IHRoZSBicm93c2VyIGdpdmVzIGFuIGVsZW1lbnQgb2YgdGhlIHRvcCBsYXllcjogdGhpcyBvbmUgaGFzIG5vdGhpbmcgdG8gc2hvdy4gKi9cXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYW5jaG9yXCI6XCJhbmNob3ItbW9kdWxlX19hbmNob3JfX19tLTV1YlwiLFwiYW5jaG9yZWRBdFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yZWRBdF9fX1VBclVLXCIsXCJhbmNob3JQb2ludFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBY1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmJsb2NrLW1vZHVsZV9fYmxvY2tfX19ZNHR6aiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmJsb2NrLW1vZHVsZV9fYmxvY2stLWlubGluZV9fXy0xWUNnIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJibG9ja1wiOlwiYmxvY2stbW9kdWxlX19ibG9ja19fX1k0dHpqXCIsXCJibG9jay0taW5saW5lXCI6XCJibG9jay1tb2R1bGVfX2Jsb2NrLS1pbmxpbmVfX18tMVlDZ1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNjpob3ZlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZTpmb2N1cyB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSTpkaXNhYmxlZCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fZjhjMXMge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2hpdGVfX19NNmFSZzpob3ZlciB7XFxuICBjb2xvcjogd2hpdGU7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13aGl0ZV9fX2k2dVl6OmZvY3VzIHtcXG4gIGNvbG9yOiB3aGl0ZTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdoaXRlX19fbnRqWUU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX18xdmZydiB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS10cmFuc3BhcmVudF9fX3htN0JEOmhvdmVyIHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fcGRlLVc6Zm9jdXMge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRfX19aMFF1VTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenYge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTEwMF9fX0dGQ29tOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMDBfX19BTTdvTTpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUo6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTgwX19fRDcxZm4ge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4Yjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MF9fXzhQbHlvOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTgwX19fdzFucGM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk2MF9fX3hmWm1iOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTYwX19fa3dtMkc6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX2lST3pSIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTQwX19fcmJOMDQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk0MF9fX05pWnhpOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTMwX19fTHduTDIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaDpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkzMF9fX1FVYjRTOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTMwX19fS3E5Z1c6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1byB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyNV9fX3RZeWdEOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTI1X19fVHhpNWw6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xYzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX0VGMk9MIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTIwX19fdVB0WFU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXYzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkyMF9fX3ZwdXkxOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTEwX19fbDVhWnAge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjcjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMF9fX1Z3VzcxOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTEwX19fWTVxeXc6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITSB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk3MF9fXzNrcnRMOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTcwX19fcDNpZXg6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVjpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fRG9mbzA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwQWxwaGE4NV9fX1Q0QmdGOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6czpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fMDhXblYge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tcHJpbWFyeV9fX1Z0LTNmOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1wcmltYXJ5X19fMFhzazk6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm8ge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tYWNjZW50X19fNGgzTFQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tYWNjZW50X19fQWpTN1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3dvVEYyIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NfX183RUlXYzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc19fX05lMldJOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tbm90aWNlX19fZU9kVXA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ub3RpY2VfX19OZ1VSTDpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdfX19HajJoTTpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13YXJuaW5nX19fY0JtdDk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnEge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNyaXRpY2FsX19fUlFXWlk6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsX19fOVlsQ1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fRGQwUnkge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50X19fTEtsemc6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHA6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXN1Y2Nlc3NUaW50X19fbHNtSmg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fajNQWlgge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3U6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXdhcm5pbmdUaW50X19fQzZ6bkQ6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50X19fVzZqSTg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3lSSmFBIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRfX184dERtZzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsVGludF9fX1RBQkhrOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tbGlua19fX25TTW05IHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZMzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1saW5rX19fODZKdGY6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tbGlua19fX0ZvSjVYOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQSB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1jb2RlX19fVjV1dVY6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tY29kZV9fX0lBSzdkOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVdzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29sb3ItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYVwiLFwiY29sb3ItaG92ZXItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNlwiLFwiY29sb3ItZm9jdXMtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZVwiLFwiY29sb3ItZGlzYWJsZWQtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSVwiLFwiY29sb3ItLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX2Y4YzFzXCIsXCJjb2xvci1ob3Zlci0td2hpdGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdoaXRlX19fTTZhUmdcIixcImNvbG9yLWZvY3VzLS13aGl0ZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2hpdGVfX19pNnVZelwiLFwiY29sb3ItZGlzYWJsZWQtLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13aGl0ZV9fX250allFXCIsXCJjb2xvci0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fMXZmcnZcIixcImNvbG9yLWhvdmVyLS10cmFuc3BhcmVudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX194bTdCRFwiLFwiY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS10cmFuc3BhcmVudF9fX3BkZS1XXCIsXCJjb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXRyYW5zcGFyZW50X19fWjBRdVVcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenZcIixcImNvbG9yLWhvdmVyLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTAwX19fR0ZDb21cIixcImNvbG9yLWZvY3VzLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MTAwX19fQU03b01cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUpcIixcImNvbG9yLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0Q3MWZuXCIsXCJjb2xvci1ob3Zlci0tZ3JleTgwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4YlwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwX19fOFBseW9cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MF9fX3cxbnBjXCIsXCJjb2xvci0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WFwiLFwiY29sb3ItaG92ZXItLWdyZXk2MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTYwX19feGZabWJcIixcImNvbG9yLWZvY3VzLS1ncmV5NjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk2MF9fX2t3bTJHXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncVwiLFwiY29sb3ItLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTQwX19faVJPelJcIixcImNvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk0MF9fX3JiTjA0XCIsXCJjb2xvci1mb2N1cy0tZ3JleTQwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTQwX19fTmlaeGlcIixcImNvbG9yLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fX0x3bkwyXCIsXCJjb2xvci1ob3Zlci0tZ3JleTMwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaFwiLFwiY29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTMwX19fUVViNFNcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkzMF9fX0txOWdXXCIsXCJjb2xvci0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1b1wiLFwiY29sb3ItaG92ZXItLWdyZXkyNVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTI1X19fdFl5Z0RcIixcImNvbG9yLWZvY3VzLS1ncmV5MjVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkyNV9fX1R4aTVsXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xY1wiLFwiY29sb3ItLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTIwX19fRUYyT0xcIixcImNvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyMF9fX3VQdFhVXCIsXCJjb2xvci1mb2N1cy0tZ3JleTIwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXY1wiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTIwX19fdnB1eTFcIixcImNvbG9yLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2w1YVpwXCIsXCJjb2xvci1ob3Zlci0tZ3JleTEwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjclwiLFwiY29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTEwX19fVndXNzFcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkxMF9fX1k1cXl3XCIsXCJjb2xvci0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITVwiLFwiY29sb3ItaG92ZXItLWdyZXk3MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTcwX19fM2tydExcIixcImNvbG9yLWZvY3VzLS1ncmV5NzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk3MF9fX3AzaWV4XCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVlwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZFwiLFwiY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVfX19Eb2ZvMFwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19UNEJnRlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6c1wiLFwiY29sb3ItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX18wOFduVlwiLFwiY29sb3ItaG92ZXItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXByaW1hcnlfX19WdC0zZlwiLFwiY29sb3ItZm9jdXMtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMlwiLFwiY29sb3ItZGlzYWJsZWQtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXByaW1hcnlfX18wWHNrOVwiLFwiY29sb3ItLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm9cIixcImNvbG9yLWhvdmVyLS1hY2NlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWFjY2VudF9fXzRoM0xUXCIsXCJjb2xvci1mb2N1cy0tYWNjZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1hY2NlbnRfX19BalM3WVwiLFwiY29sb3ItZGlzYWJsZWQtLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzVcIixcImNvbG9yLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19fd29URjJcIixcImNvbG9yLWhvdmVyLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzX19fN0VJV2NcIixcImNvbG9yLWZvY3VzLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGlcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1zdWNjZXNzX19fTmUyV0lcIixcImNvbG9yLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHXCIsXCJjb2xvci1ob3Zlci0tbm90aWNlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ub3RpY2VfX19lT2RVcFwiLFwiY29sb3ItZm9jdXMtLW5vdGljZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tbm90aWNlX19fTmdVUkxcIixcImNvbG9yLWRpc2FibGVkLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyXCIsXCJjb2xvci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2FybmluZ19fX0dqMmhNXCIsXCJjb2xvci1mb2N1cy0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ19fX2NCbXQ5XCIsXCJjb2xvci1kaXNhYmxlZC0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnFcIixcImNvbG9yLWhvdmVyLS1jcml0aWNhbFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxfX19SUVdaWVwiLFwiY29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbF9fXzlZbENZXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTNcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19EZDBSeVwiLFwiY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fX0xLbHpnXCIsXCJjb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHBcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc1RpbnRfX19sc21KaFwiLFwiY29sb3ItLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX2ozUFpYXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3VcIixcImNvbG9yLWZvY3VzLS13YXJuaW5nVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ1RpbnRfX19DNnpuRFwiLFwiY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13YXJuaW5nVGludF9fX1c2akk4XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX195UkphQVwiLFwiY29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjVcIixcImNvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fXzh0RG1nXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1jcml0aWNhbFRpbnRfX19UQUJIa1wiLFwiY29sb3ItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWxpbmtfX19uU01tOVwiLFwiY29sb3ItaG92ZXItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZM1wiLFwiY29sb3ItZm9jdXMtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWxpbmtfX184Nkp0ZlwiLFwiY29sb3ItZGlzYWJsZWQtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWxpbmtfX19Gb0o1WFwiLFwiY29sb3ItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQVwiLFwiY29sb3ItaG92ZXItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNvZGVfX19WNXV1VlwiLFwiY29sb3ItZm9jdXMtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNvZGVfX19JQUs3ZFwiLFwiY29sb3ItZGlzYWJsZWQtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVd1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMiB7XFxuICBjdXJzb3I6IGFsaWFzO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84IHtcXG4gIGN1cnNvcjogYWxsLXNjcm9sbDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2NlbGxfX181V08yRiB7XFxuICBjdXJzb3I6IGNlbGw7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb2x1bW4tcmVzaXplX19fcExxM3Mge1xcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY29udGV4dC1tZW51X19fSXFwNTYge1xcbiAgY3Vyc29yOiBjb250ZXh0LW1lbnU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb3B5X19fWFU3eUwge1xcbiAgY3Vyc29yOiBjb3B5O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY3Jvc3NoYWlyX19fMThheWsge1xcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFQge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1yZXNpemVfX19TNEhGNSB7XFxuICBjdXJzb3I6IGUtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLSB7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2dyYWJfX19VdkFGNyB7XFxuICBjdXJzb3I6IGdyYWI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ncmFiYmluZ19fX01NaXZYIHtcXG4gIGN1cnNvcjogZ3JhYmJpbmc7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19oZWxwX19faUI4RzQge1xcbiAgY3Vyc29yOiBoZWxwO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbW92ZV9fX3lwZC1QIHtcXG4gIGN1cnNvcjogbW92ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vcnRoLXJlc2l6ZV9fXzdOa2hWIHtcXG4gIGN1cnNvcjogbi1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtcmVzaXplX19fTTRNSXoge1xcbiAgY3Vyc29yOiBuZS1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcSB7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5IHtcXG4gIGN1cnNvcjogbm8tZHJvcDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vbmVfX19FaTlzeiB7XFxuICBjdXJzb3I6IG5vbmU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1IHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU4ge1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtcmVzaXplX19fY2tDb2gge1xcbiAgY3Vyc29yOiBudy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWUyB7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Byb2dyZXNzX19fSWdFeHkge1xcbiAgY3Vyc29yOiBwcm9ncmVzcztcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Jvdy1yZXNpemVfX18wU3NlNiB7XFxuICBjdXJzb3I6IHJvdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19zb3V0aC1yZXNpemVfX180RmVuUyB7XFxuICBjdXJzb3I6IHMtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGhlYXN0LXJlc2l6ZV9fX3c4aEdxIHtcXG4gIGN1cnNvcjogc2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGh3ZXN0LXJlc2l6ZV9fXzZVdjRHIHtcXG4gIGN1cnNvcjogc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3IHtcXG4gIGN1cnNvcjogdGV4dDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3ZlcnRpY2FsLXRleHRfX18zT2F6RSB7XFxuICBjdXJzb3I6IHZlcnRpY2FsLXRleHQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2IHtcXG4gIGN1cnNvcjogdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEcge1xcbiAgY3Vyc29yOiB3YWl0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fem9vbS1pbl9fX3pFREhRIHtcXG4gIGN1cnNvcjogem9vbS1pbjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzYge1xcbiAgY3Vyc29yOiB6b29tLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhbGlhc1wiOlwiY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMlwiLFwiYWxsLXNjcm9sbFwiOlwiY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84XCIsXCJjZWxsXCI6XCJjdXJzb3ItbW9kdWxlX19jZWxsX19fNVdPMkZcIixcImNvbHVtbi1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX2NvbHVtbi1yZXNpemVfX19wTHEzc1wiLFwiY29udGV4dC1tZW51XCI6XCJjdXJzb3ItbW9kdWxlX19jb250ZXh0LW1lbnVfX19JcXA1NlwiLFwiY29weVwiOlwiY3Vyc29yLW1vZHVsZV9fY29weV9fX1hVN3lMXCIsXCJjcm9zc2hhaXJcIjpcImN1cnNvci1tb2R1bGVfX2Nyb3NzaGFpcl9fXzE4YXlrXCIsXCJkZWZhdWx0XCI6XCJjdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFRcIixcImVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19lYXN0LXJlc2l6ZV9fX1M0SEY1XCIsXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLVwiLFwiZ3JhYlwiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYl9fX1V2QUY3XCIsXCJncmFiYmluZ1wiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYmJpbmdfX19NTWl2WFwiLFwiaGVscFwiOlwiY3Vyc29yLW1vZHVsZV9faGVscF9fX2lCOEc0XCIsXCJtb3ZlXCI6XCJjdXJzb3ItbW9kdWxlX19tb3ZlX19feXBkLVBcIixcIm5vcnRoLXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fbm9ydGgtcmVzaXplX19fN05raFZcIixcIm5vcnRoZWFzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRoZWFzdC1yZXNpemVfX19NNE1JelwiLFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcVwiLFwibm8tZHJvcFwiOlwiY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5XCIsXCJub25lXCI6XCJjdXJzb3ItbW9kdWxlX19ub25lX19fRWk5c3pcIixcIm5vdC1hbGxvd2VkXCI6XCJjdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1XCIsXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU5cIixcIm5vcnRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRod2VzdC1yZXNpemVfX19ja0NvaFwiLFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWU1wiLFwicG9pbnRlclwiOlwiY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLXCIsXCJwcm9ncmVzc1wiOlwiY3Vyc29yLW1vZHVsZV9fcHJvZ3Jlc3NfX19JZ0V4eVwiLFwicm93LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fcm93LXJlc2l6ZV9fXzBTc2U2XCIsXCJzb3V0aC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRoLXJlc2l6ZV9fXzRGZW5TXCIsXCJzb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19zb3V0aGVhc3QtcmVzaXplX19fdzhoR3FcIixcInNvdXRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRod2VzdC1yZXNpemVfX182VXY0R1wiLFwidGV4dFwiOlwiY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3XCIsXCJ2ZXJ0aWNhbC10ZXh0XCI6XCJjdXJzb3ItbW9kdWxlX192ZXJ0aWNhbC10ZXh0X19fM09hekVcIixcIndlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2XCIsXCJ3YWl0XCI6XCJjdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEdcIixcInpvb20taW5cIjpcImN1cnNvci1tb2R1bGVfX3pvb20taW5fX196RURIUVwiLFwiem9vbS1vdXRcIjpcImN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZGlzcGxheS1jb250ZW50cy1tb2R1bGVfX2NvbnRlbnRzX19fbVJlWEsge1xcbiAgZGlzcGxheTogY29udGVudHM7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29udGVudHNcIjpcImRpc3BsYXktY29udGVudHMtbW9kdWxlX19jb250ZW50c19fX21SZVhLXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzIGltZyxcXG4uZHJhZ2dhYmxlLW1vZHVsZV9fZHJhZ2dhYmxlX19fYmpDQTMgYSB7XFxuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkcmFnZ2FibGVcIjpcImRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmFkZWQtbW9kdWxlX19mYWRlZF9fXy11YmJNIHtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmYWRlZFwiOlwiZmFkZWQtbW9kdWxlX19mYWRlZF9fXy11YmJNXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkX19fN0JkaGQge1xcbiAgZmxleDogMSAxIDA7XFxufVxcblxcbi5mbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tc2hyaW5rYWJsZV9fXzZINS0tIHtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxufVxcblxcbi5mbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tZml4ZWRfX19GS2V0TCB7XFxuICBmbGV4LXNocmluazogMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmbGV4LWNoaWxkXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZF9fXzdCZGhkXCIsXCJmbGV4LWNoaWxkLS1zaHJpbmthYmxlXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tc2hyaW5rYWJsZV9fXzZINS0tXCIsXCJmbGV4LWNoaWxkLS1maXhlZFwiOlwiZmxleC1jaGlsZC1tb2R1bGVfX2ZsZXgtY2hpbGQtLWZpeGVkX19fRktldExcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmxleC1tb2R1bGVfX2ZsZXhfX19lRkxFYyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX3dyYXAtLXdyYXBfX18yTHFUZyB7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbF9fXzBBaU9mIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbC1yZXZlcnNlZF9fX0lvZS01IHtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWxfX19hMzJ6byB7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZF9fX2lMd0RLIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuX19fYTZvTUgge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUFyb3VuZF9fXzVZT1U0IHtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJfX191clpZRyB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaF9fX001YXowIHtcXG4gIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0X19fUEhGMUUge1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kX19fYU1QeDAge1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoX19fYkFOaWcge1xcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyX19fMFZzeTkge1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRfX19qMEp6eCB7XFxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kX19fRG1VNVIge1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0temVyb19fX3czLVRnIHtcXG4gIGdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS16ZXJvX19fOTYwQTcge1xcbiAgY29sdW1uLWdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS16ZXJvX19fb0t1c1Qge1xcbiAgcm93LWdhcDogMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhzX19fcnJUSmUge1xcbiAgZ2FwOiAxcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4c19fX1RSM1lFIHtcXG4gIGNvbHVtbi1nYXA6IDFweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhzX19fNmluM2oge1xcbiAgcm93LWdhcDogMXB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hzX19fUmN1bVIge1xcbiAgZ2FwOiAycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4c19fX1gtQzFhIHtcXG4gIGNvbHVtbi1nYXA6IDJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hzX19fa1cwaU8ge1xcbiAgcm93LWdhcDogMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHhzX19fVUIzRmoge1xcbiAgZ2FwOiA0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4c19fX3VJWnYyIHtcXG4gIGNvbHVtbi1nYXA6IDRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teHhzX19fdC1ncU4ge1xcbiAgcm93LWdhcDogNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHNfX190dDNTbyB7XFxuICBnYXA6IDhweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHNfX19CNW9YYyB7XFxuICBjb2x1bW4tZ2FwOiA4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhzX19fMUVYMmYge1xcbiAgcm93LWdhcDogOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tc19fXzltWXpTIHtcXG4gIGdhcDogMTJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tc19fX2F2dGYtIHtcXG4gIGNvbHVtbi1nYXA6IDEycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXNfX19ZT0JWViB7XFxuICByb3ctZ2FwOiAxMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbV9fX0FiLXQwIHtcXG4gIGdhcDogMTZweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbV9fX1E2Y0ItIHtcXG4gIGNvbHVtbi1nYXA6IDE2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLW1fX183LURRMCB7XFxuICByb3ctZ2FwOiAxNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbF9fX2N2bWp3IHtcXG4gIGdhcDogMjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbF9fX0VwUXRUIHtcXG4gIGNvbHVtbi1nYXA6IDIwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLWxfX194WWlLaCB7XFxuICByb3ctZ2FwOiAyMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teGxfX19DSXNOUCB7XFxuICBnYXA6IDI0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXhsX19fbUxVeFIge1xcbiAgY29sdW1uLWdhcDogMjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teGxfX19LV04zMyB7XFxuICByb3ctZ2FwOiAyNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHhsX19fMTJ0LTYge1xcbiAgZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eGxfX192QUx0ZiB7XFxuICBjb2x1bW4tZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eGxfX19JZGNxVSB7XFxuICByb3ctZ2FwOiAyOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hsX19faVVyeDEge1xcbiAgZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0zeGxfX18tTlYwWiB7XFxuICBjb2x1bW4tZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeGxfX19WWWNSaCB7XFxuICByb3ctZ2FwOiAzMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhsX19fZlppS1Yge1xcbiAgZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS00eGxfX19YOUtweSB7XFxuICBjb2x1bW4tZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eGxfX19kYnZXMCB7XFxuICByb3ctZ2FwOiAzNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNXhsX19fNDNoSHYge1xcbiAgZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS01eGxfX18yWHllUSB7XFxuICBjb2x1bW4tZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS01eGxfX19xdmpPRSB7XFxuICByb3ctZ2FwOiA0MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNnhsX19fc1B5Nkwge1xcbiAgZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS02eGxfX196YWdXTSB7XFxuICBjb2x1bW4tZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS02eGxfX19VLXVaSiB7XFxuICByb3ctZ2FwOiA0NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tN3hsX19fT2F3di0ge1xcbiAgZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS03eGxfX19LenJNciB7XFxuICBjb2x1bW4tZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS03eGxfX19wQXZMdiB7XFxuICByb3ctZ2FwOiA0OHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOHhsX19fRWVvRS0ge1xcbiAgZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS04eGxfX19rYmlvSiB7XFxuICBjb2x1bW4tZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS04eGxfX19QLTktZSB7XFxuICByb3ctZ2FwOiA1MnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOXhsX19fVGduVVMge1xcbiAgZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS05eGxfX19OR2wzSiB7XFxuICBjb2x1bW4tZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS05eGxfX19FR3VlaCB7XFxuICByb3ctZ2FwOiA1NnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTB4bF9fX0NmMXc2IHtcXG4gIGdhcDogNjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTB4bF9fX0xKUkdsIHtcXG4gIGNvbHVtbi1nYXA6IDYwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTEweGxfX196UHR5TiB7XFxuICByb3ctZ2FwOiA2MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTF4bF9fX29yZmdJIHtcXG4gIGdhcDogNjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTF4bF9fX2RES2RwIHtcXG4gIGNvbHVtbi1nYXA6IDY0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTExeGxfX192REctQSB7XFxuICByb3ctZ2FwOiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZsZXhcIjpcImZsZXgtbW9kdWxlX19mbGV4X19fZUZMRWNcIixcImZsZXhfX3dyYXAtLXdyYXBcIjpcImZsZXgtbW9kdWxlX19mbGV4X193cmFwLS13cmFwX19fMkxxVGdcIixcImZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsX19fMEFpT2ZcIixcImZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWwtcmV2ZXJzZWRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsLXJldmVyc2VkX19fSW9lLTVcIixcImZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbF9fX2EzMnpvXCIsXCJmbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWwtcmV2ZXJzZWRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLWhvcml6b250YWwtcmV2ZXJzZWRfX19pTHdES1wiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlblwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5fX19hNm9NSFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kX19fNVlPVTRcIixcImZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tY2VudGVyX19fdXJaWUdcIixcImZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hfX19NNWF6MFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRfX19QSEYxRVwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZF9fX2FNUHgwXCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX2JBTmlnXCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJfX18wVnN5OVwiLFwiZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0XCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0X19fajBKenhcIixcImZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kX19fRG1VNVJcIixcImZsZXhfX2dhcC0temVyb1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0temVyb19fX3czLVRnXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0temVyb1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS16ZXJvX19fOTYwQTdcIixcImZsZXhfX2dhcC0tcm93LS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXplcm9fX19vS3VzVFwiLFwiZmxleF9fZ2FwLS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTR4c19fX3JyVEplXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4c19fX1RSM1lFXCIsXCJmbGV4X19nYXAtLXJvdy0tNHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTR4c19fXzZpbjNqXCIsXCJmbGV4X19nYXAtLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hzX19fUmN1bVJcIixcImZsZXhfX2dhcC0tY29sdW1uLS0zeHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hzX19fWC1DMWFcIixcImZsZXhfX2dhcC0tcm93LS0zeHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hzX19fa1cwaU9cIixcImZsZXhfX2dhcC0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eHNfX19VQjNGalwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXh4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eHNfX191SVp2MlwiLFwiZmxleF9fZ2FwLS1yb3ctLXh4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eHNfX190LWdxTlwiLFwiZmxleF9fZ2FwLS14c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0teHNfX190dDNTb1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXhzX19fQjVvWGNcIixcImZsZXhfX2dhcC0tcm93LS14c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14c19fXzFFWDJmXCIsXCJmbGV4X19nYXAtLXNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXNfX185bVl6U1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tc19fX2F2dGYtXCIsXCJmbGV4X19nYXAtLXJvdy0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS1zX19fWU9CVlZcIixcImZsZXhfX2dhcC0tbVwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tbV9fX0FiLXQwXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tbVwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1tX19fUTZjQi1cIixcImZsZXhfX2dhcC0tcm93LS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLW1fX183LURRMFwiLFwiZmxleF9fZ2FwLS1sXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1sX19fY3ZtandcIixcImZsZXhfX2dhcC0tY29sdW1uLS1sXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLWxfX19FcFF0VFwiLFwiZmxleF9fZ2FwLS1yb3ctLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbF9fX3hZaUtoXCIsXCJmbGV4X19nYXAtLXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14bF9fX0NJc05QXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teGxfX19tTFV4UlwiLFwiZmxleF9fZ2FwLS1yb3ctLXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhsX19fS1dOMzNcIixcImZsZXhfX2dhcC0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eGxfX18xMnQtNlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLXh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14eGxfX192QUx0ZlwiLFwiZmxleF9fZ2FwLS1yb3ctLXh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eGxfX19JZGNxVVwiLFwiZmxleF9fZ2FwLS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTN4bF9fX2lVcngxXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tM3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4bF9fXy1OVjBaXCIsXCJmbGV4X19nYXAtLXJvdy0tM3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTN4bF9fX1ZZY1JoXCIsXCJmbGV4X19nYXAtLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhsX19fZlppS1ZcIixcImZsZXhfX2dhcC0tY29sdW1uLS00eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhsX19fWDlLcHlcIixcImZsZXhfX2dhcC0tcm93LS00eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhsX19fZGJ2VzBcIixcImZsZXhfX2dhcC0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS01eGxfX180M2hIdlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTV4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS01eGxfX18yWHllUVwiLFwiZmxleF9fZ2FwLS1yb3ctLTV4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS01eGxfX19xdmpPRVwiLFwiZmxleF9fZ2FwLS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTZ4bF9fX3NQeTZMXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNnhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX3phZ1dNXCIsXCJmbGV4X19nYXAtLXJvdy0tNnhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTZ4bF9fX1UtdVpKXCIsXCJmbGV4X19nYXAtLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tN3hsX19fT2F3di1cIixcImZsZXhfX2dhcC0tY29sdW1uLS03eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tN3hsX19fS3pyTXJcIixcImZsZXhfX2dhcC0tcm93LS03eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tN3hsX19fcEF2THZcIixcImZsZXhfX2dhcC0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS04eGxfX19FZW9FLVwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS04eGxfX19rYmlvSlwiLFwiZmxleF9fZ2FwLS1yb3ctLTh4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS04eGxfX19QLTktZVwiLFwiZmxleF9fZ2FwLS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTl4bF9fX1RnblVTXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tOXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTl4bF9fX05HbDNKXCIsXCJmbGV4X19nYXAtLXJvdy0tOXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTl4bF9fX0VHdWVoXCIsXCJmbGV4X19nYXAtLTEweGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTEweGxfX19DZjF3NlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTEweGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tMTB4bF9fX0xKUkdsXCIsXCJmbGV4X19nYXAtLXJvdy0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0xMHhsX19felB0eU5cIixcImZsZXhfX2dhcC0tMTF4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTF4bF9fX29yZmdJXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tMTF4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMXhsX19fZERLZHBcIixcImZsZXhfX2dhcC0tcm93LS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTExeGxfX192REctQVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmdyYWRpZW50LW1vZHVsZV9fZ3JhZGllbnRfX19NREJ2RiB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1zdXJmYWNlR3JhZGllbnQpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImdyYWRpZW50XCI6XCJncmFkaWVudC1tb2R1bGVfX2dyYWRpZW50X19fTURCdkZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmdyYXlzY2FsZS1tb2R1bGVfX2dyYXlzY2FsZV9fXzNtWlA2IHtcXG4gIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImdyYXlzY2FsZVwiOlwiZ3JheXNjYWxlLW1vZHVsZV9fZ3JheXNjYWxlX19fM21aUDZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JpZC1tb2R1bGVfX2dyaWRfX19NUFRoTyB7XFxuICBkaXNwbGF5OiBncmlkO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTFfX19ZMFUyTSB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMl9fX1lnUzRIIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS0zX19fbWFCRDIge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTRfX183M0JqQSB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNV9fX1NsdC1EIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS02X19fbnlNOHoge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX194WGQzWiB7XFxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJfX19FOG1MLSB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0YXJ0X19fMk5kdlMge1xcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLWVuZF9fXzFJcFltIHtcXG4gIGFsaWduLWl0ZW1zOiBlbmQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS16ZXJvX19fRzFxOGQge1xcbiAgZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXplcm9fX195Z1FwSiB7XFxuICBjb2x1bW4tZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXplcm9fX193MS1PeCB7XFxuICByb3ctZ2FwOiAwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eHNfX196TzBtdiB7XFxuICBnYXA6IDFweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhzX19fR1VvZDMge1xcbiAgY29sdW1uLWdhcDogMXB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS00eHNfX19zVlFaZSB7XFxuICByb3ctZ2FwOiAxcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeHNfX18tSXhTdyB7XFxuICBnYXA6IDJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hzX19fdXc0NjYge1xcbiAgY29sdW1uLWdhcDogMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0zeHNfX19KZndtWSB7XFxuICByb3ctZ2FwOiAycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eHNfX19naDhjLSB7XFxuICBnYXA6IDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHhzX19fRTc2Z0sge1xcbiAgY29sdW1uLWdhcDogNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eHNfX19uaHh6LSB7XFxuICByb3ctZ2FwOiA0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14c19fX0dINGgyIHtcXG4gIGdhcDogOHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14c19fX3VScXJpIHtcXG4gIGNvbHVtbi1nYXA6IDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teHNfX19sQU5FdSB7XFxuICByb3ctZ2FwOiA4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1zX19fN1IwcHMge1xcbiAgZ2FwOiAxMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1zX19fYURWQUcge1xcbiAgY29sdW1uLWdhcDogMTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tc19fX0FSRG14IHtcXG4gIHJvdy1nYXA6IDEycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1tX19fbTNYaWgge1xcbiAgZ2FwOiAxNnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1tX19fQ3N5ZU0ge1xcbiAgY29sdW1uLWdhcDogMTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbV9fX3NPQVhuIHtcXG4gIHJvdy1nYXA6IDE2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1sX19fMFN5S2wge1xcbiAgZ2FwOiAyMHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1sX19fSnZKaE0ge1xcbiAgY29sdW1uLWdhcDogMjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbF9fX2FwSDhiIHtcXG4gIHJvdy1nYXA6IDIwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14bF9fX0ktdlJ0IHtcXG4gIGdhcDogMjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teGxfX190MFNPMyB7XFxuICBjb2x1bW4tZ2FwOiAyNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14bF9fX2V2TkVkIHtcXG4gIHJvdy1nYXA6IDI0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eGxfX19lV1MwMiB7XFxuICBnYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3MtLS1iIHtcXG4gIGNvbHVtbi1nYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4bF9fX0o0RjdvIHtcXG4gIHJvdy1nYXA6IDI4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeGxfX19IVmxrRCB7XFxuICBnYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4bF9fX3pLdExMIHtcXG4gIGNvbHVtbi1nYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4bF9fX0U5U1Y5IHtcXG4gIHJvdy1nYXA6IDMycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eGxfX19NM0czZiB7XFxuICBnYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4bF9fX25udC1wIHtcXG4gIGNvbHVtbi1nYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4bF9fXzFXOGJkIHtcXG4gIHJvdy1nYXA6IDM2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS01eGxfX195QW5YRCB7XFxuICBnYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJ3NFIxIHtcXG4gIGNvbHVtbi1nYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTV4bF9fX1ZDZmpnIHtcXG4gIHJvdy1nYXA6IDQwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS02eGxfX19oRWwwRiB7XFxuICBnYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX0Z4UHRwIHtcXG4gIGNvbHVtbi1nYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTZ4bF9fX3luMWYtIHtcXG4gIHJvdy1nYXA6IDQ0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS03eGxfX19nYkdIdSB7XFxuICBnYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTd4bF9fX1Z5ajFwIHtcXG4gIGNvbHVtbi1nYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTd4bF9fXzVCQnNTIHtcXG4gIHJvdy1nYXA6IDQ4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS04eGxfX19qQ2xtQyB7XFxuICBnYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2JxN0V6IHtcXG4gIGNvbHVtbi1nYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTh4bF9fX3dOdVoyIHtcXG4gIHJvdy1nYXA6IDUycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS05eGxfX19pbkUxRSB7XFxuICBnYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTl4bF9fX01zZmpxIHtcXG4gIGNvbHVtbi1nYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTl4bF9fX2kyMy1jIHtcXG4gIHJvdy1nYXA6IDU2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMHhsX19fTENEdGMge1xcbiAgZ2FwOiA2MHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMHhsX19fbzhjQnkge1xcbiAgY29sdW1uLWdhcDogNjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTB4bF9fX1JqUnc5IHtcXG4gIHJvdy1nYXA6IDYwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMXhsX19fU3F1TmEge1xcbiAgZ2FwOiA2NHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMXhsX19fdVNlV3oge1xcbiAgY29sdW1uLWdhcDogNjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTF4bF9fX2pxRy1JIHtcXG4gIHJvdy1nYXA6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JpZFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX19NUFRoT1wiLFwiZ3JpZF9fY29sdW1ucy0tMVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTFfX19ZMFUyTVwiLFwiZ3JpZF9fY29sdW1ucy0tMlwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTJfX19ZZ1M0SFwiLFwiZ3JpZF9fY29sdW1ucy0tM1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTNfX19tYUJEMlwiLFwiZ3JpZF9fY29sdW1ucy0tNFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTRfX183M0JqQVwiLFwiZ3JpZF9fY29sdW1ucy0tNVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTVfX19TbHQtRFwiLFwiZ3JpZF9fY29sdW1ucy0tNlwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTZfX19ueU04elwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX194WGQzWlwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tY2VudGVyXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tY2VudGVyX19fRThtTC1cIixcImdyaWRfX2FsaWduSXRlbXMtLXN0YXJ0XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRfX18yTmR2U1wiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tZW5kXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tZW5kX19fMUlwWW1cIixcImdyaWRfX2dhcC0temVyb1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0temVyb19fX0cxcThkXCIsXCJncmlkX19nYXAtLWNvbHVtbi0temVyb1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS16ZXJvX19feWdRcEpcIixcImdyaWRfX2dhcC0tcm93LS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXplcm9fX193MS1PeFwiLFwiZ3JpZF9fZ2FwLS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4c19fX3pPMG12XCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4c19fX0dVb2QzXCIsXCJncmlkX19nYXAtLXJvdy0tNHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4c19fX3NWUVplXCIsXCJncmlkX19nYXAtLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tM3hzX19fLUl4U3dcIixcImdyaWRfX2dhcC0tY29sdW1uLS0zeHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hzX19fdXc0NjZcIixcImdyaWRfX2dhcC0tcm93LS0zeHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hzX19fSmZ3bVlcIixcImdyaWRfX2dhcC0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eHNfX19naDhjLVwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eHNfX19FNzZnS1wiLFwiZ3JpZF9fZ2FwLS1yb3ctLXh4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eHNfX19uaHh6LVwiLFwiZ3JpZF9fZ2FwLS14c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0teHNfX19HSDRoMlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzX19fdVJxcmlcIixcImdyaWRfX2dhcC0tcm93LS14c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14c19fX2xBTkV1XCIsXCJncmlkX19nYXAtLXNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXNfX183UjBwc1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tc19fX2FEVkFHXCIsXCJncmlkX19nYXAtLXJvdy0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1zX19fQVJEbXhcIixcImdyaWRfX2dhcC0tbVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tbV9fX20zWGloXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tbVwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1tX19fQ3N5ZU1cIixcImdyaWRfX2dhcC0tcm93LS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLW1fX19zT0FYblwiLFwiZ3JpZF9fZ2FwLS1sXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1sX19fMFN5S2xcIixcImdyaWRfX2dhcC0tY29sdW1uLS1sXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLWxfX19KdkpoTVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbF9fX2FwSDhiXCIsXCJncmlkX19nYXAtLXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14bF9fX0ktdlJ0XCIsXCJncmlkX19nYXAtLWNvbHVtbi0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teGxfX190MFNPM1wiLFwiZ3JpZF9fZ2FwLS1yb3ctLXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhsX19fZXZORWRcIixcImdyaWRfX2dhcC0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14eGxfX19lV1MwMlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eGxfX19zLS0tYlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14eGxfX19KNEY3b1wiLFwiZ3JpZF9fZ2FwLS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4bF9fX0hWbGtEXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tM3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4bF9fX3pLdExMXCIsXCJncmlkX19nYXAtLXJvdy0tM3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4bF9fX0U5U1Y5XCIsXCJncmlkX19nYXAtLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNHhsX19fTTNHM2ZcIixcImdyaWRfX2dhcC0tY29sdW1uLS00eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhsX19fbm50LXBcIixcImdyaWRfX2dhcC0tcm93LS00eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhsX19fMVc4YmRcIixcImdyaWRfX2dhcC0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS01eGxfX195QW5YRFwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS01eGxfX18ydzRSMVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTV4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS01eGxfX19WQ2ZqZ1wiLFwiZ3JpZF9fZ2FwLS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTZ4bF9fX2hFbDBGXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNnhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX0Z4UHRwXCIsXCJncmlkX19nYXAtLXJvdy0tNnhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTZ4bF9fX3luMWYtXCIsXCJncmlkX19nYXAtLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tN3hsX19fZ2JHSHVcIixcImdyaWRfX2dhcC0tY29sdW1uLS03eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tN3hsX19fVnlqMXBcIixcImdyaWRfX2dhcC0tcm93LS03eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tN3hsX19fNUJCc1NcIixcImdyaWRfX2dhcC0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS04eGxfX19qQ2xtQ1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS04eGxfX19icTdFelwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTh4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS04eGxfX193TnVaMlwiLFwiZ3JpZF9fZ2FwLS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTl4bF9fX2luRTFFXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tOXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTl4bF9fX01zZmpxXCIsXCJncmlkX19nYXAtLXJvdy0tOXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTl4bF9fX2kyMy1jXCIsXCJncmlkX19nYXAtLTEweGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTEweGxfX19MQ0R0Y1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTEweGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tMTB4bF9fX284Y0J5XCIsXCJncmlkX19nYXAtLXJvdy0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMHhsX19fUmpSdzlcIixcImdyaWRfX2dhcC0tMTF4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tMTF4bF9fX1NxdU5hXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tMTF4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMXhsX19fdVNlV3pcIixcImdyaWRfX2dhcC0tcm93LS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTExeGxfX19qcUctSVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9oZWlnaHQvaGVpZ2h0Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tZnVsbF9fXy1pb2pmIHtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS16ZXJvX19fZDU3d1cge1xcbiAgbWF4LWhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhzX19fTEpVQm4ge1xcbiAgbWF4LWhlaWdodDogMXB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hzX19fLTJXby0ge1xcbiAgbWF4LWhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhzX19faEZyQmUge1xcbiAgbWF4LWhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHNfX19jMnBhRCB7XFxuICBtYXgtaGVpZ2h0OiA4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1zX19fQWNwNlQge1xcbiAgbWF4LWhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLW1fX19Wem9ROSB7XFxuICBtYXgtaGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbF9fX1dnbHFiIHtcXG4gIG1heC1oZWlnaHQ6IDIwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14bF9fX0xVbWxKIHtcXG4gIG1heC1oZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eGxfX19kUjN6SyB7XFxuICBtYXgtaGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hsX19fYnViVEQge1xcbiAgbWF4LWhlaWdodDogMzJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTR4bF9fX2JkWlg2IHtcXG4gIG1heC1oZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS01eGxfX19UVVRBUiB7XFxuICBtYXgtaGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNnhsX19fR2MtSGwge1xcbiAgbWF4LWhlaWdodDogNDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTd4bF9fX1l4ZHRYIHtcXG4gIG1heC1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS04eGxfX19BMld2ZCB7XFxuICBtYXgtaGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOXhsX19fSnZyR0oge1xcbiAgbWF4LWhlaWdodDogNTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTEweGxfX193TFJRdSB7XFxuICBtYXgtaGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTF4bF9fX2dVM3hJIHtcXG4gIG1heC1oZWlnaHQ6IDY0cHg7XFxufVxcblxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS16ZXJvX19fUEJWNDcge1xcbiAgbWluLWhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhzX19fVjNOLWIge1xcbiAgbWluLWhlaWdodDogMXB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hzX19fdGdEUVEge1xcbiAgbWluLWhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHhzX19fLXFoU3oge1xcbiAgbWluLWhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHNfX19aSXBxdSB7XFxuICBtaW4taGVpZ2h0OiA4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1zX19feE1pR2Mge1xcbiAgbWluLWhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLW1fX19WRVdMciB7XFxuICBtaW4taGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbF9fX2E2LUY3IHtcXG4gIG1pbi1oZWlnaHQ6IDIwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14bF9fXy15bEZ1IHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eGxfX183SzZmLSB7XFxuICBtaW4taGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hsX19fMEZaUW0ge1xcbiAgbWluLWhlaWdodDogMzJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTR4bF9fX2NHb0prIHtcXG4gIG1pbi1oZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS01eGxfX19mVjNhTyB7XFxuICBtaW4taGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNnhsX19fRmtVR0Mge1xcbiAgbWluLWhlaWdodDogNDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTd4bF9fX0NzaXdWIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS04eGxfX19oLS1ESyB7XFxuICBtaW4taGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tOXhsX19fbkZNU0gge1xcbiAgbWluLWhlaWdodDogNTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTEweGxfX19LYS1jQSB7XFxuICBtaW4taGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTF4bF9fX2ZRc2djIHtcXG4gIG1pbi1oZWlnaHQ6IDY0cHg7XFxufVxcblxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXN0cmV0Y2hfX19yWWFZbiB7XFxuICBoZWlnaHQ6IHN0cmV0Y2g7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLWZ1bGxfX192V3hpZSB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLWF1dG9fX182N25GTiB7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXplcm9fX19BcUEwUCB7XFxuICBoZWlnaHQ6IDBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhzX19fRmRKMGgge1xcbiAgaGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTN4c19fX2FzVUpiIHtcXG4gIGhlaWdodDogMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eHNfX19ZcVRxcCB7XFxuICBoZWlnaHQ6IDRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teHNfX19sTlJ0WSB7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tc19fX0g3bS0tIHtcXG4gIGhlaWdodDogMTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tbV9fX0NtTHAxIHtcXG4gIGhlaWdodDogMTZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tbF9fXzJ0a2toIHtcXG4gIGhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teGxfX183eEJKaSB7XFxuICBoZWlnaHQ6IDI0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4bF9fX0NqU3U1IHtcXG4gIGhlaWdodDogMjhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hsX19fcFVkdk4ge1xcbiAgaGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS00eGxfX19RSFpZeSB7XFxuICBoZWlnaHQ6IDM2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTV4bF9fX1diZ283IHtcXG4gIGhlaWdodDogNDBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNnhsX19fa3djOGEge1xcbiAgaGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS03eGxfX19tdU8xbCB7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTh4bF9fXzlwRU1OIHtcXG4gIGhlaWdodDogNTJweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tOXhsX19fNmU0NlEge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMHhsX19fWGdYcC0ge1xcbiAgaGVpZ2h0OiA2MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMXhsX19fYWR3dUgge1xcbiAgaGVpZ2h0OiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1heC1oZWlnaHQtLWZ1bGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLWZ1bGxfX18taW9qZlwiLFwibWF4LWhlaWdodC0temVyb1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0temVyb19fX2Q1N3dXXCIsXCJtYXgtaGVpZ2h0LS00eHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTR4c19fX0xKVUJuXCIsXCJtYXgtaGVpZ2h0LS0zeHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTN4c19fXy0yV28tXCIsXCJtYXgtaGVpZ2h0LS14eHNcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXh4c19fX2hGckJlXCIsXCJtYXgtaGVpZ2h0LS14c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHNfX19jMnBhRFwiLFwibWF4LWhlaWdodC0tc1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tc19fX0FjcDZUXCIsXCJtYXgtaGVpZ2h0LS1tXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1tX19fVnpvUTlcIixcIm1heC1oZWlnaHQtLWxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLWxfX19XZ2xxYlwiLFwibWF4LWhlaWdodC0teGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXhsX19fTFVtbEpcIixcIm1heC1oZWlnaHQtLXh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhsX19fZFIzektcIixcIm1heC1oZWlnaHQtLTN4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hsX19fYnViVERcIixcIm1heC1oZWlnaHQtLTR4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhsX19fYmRaWDZcIixcIm1heC1oZWlnaHQtLTV4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNXhsX19fVFVUQVJcIixcIm1heC1oZWlnaHQtLTZ4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNnhsX19fR2MtSGxcIixcIm1heC1oZWlnaHQtLTd4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tN3hsX19fWXhkdFhcIixcIm1heC1oZWlnaHQtLTh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOHhsX19fQTJXdmRcIixcIm1heC1oZWlnaHQtLTl4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tOXhsX19fSnZyR0pcIixcIm1heC1oZWlnaHQtLTEweGxcIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTEweGxfX193TFJRdVwiLFwibWF4LWhlaWdodC0tMTF4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTF4bF9fX2dVM3hJXCIsXCJtaW4taGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS16ZXJvX19fUEJWNDdcIixcIm1pbi1oZWlnaHQtLTR4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhzX19fVjNOLWJcIixcIm1pbi1oZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tM3hzX19fdGdEUVFcIixcIm1pbi1oZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teHhzX19fLXFoU3pcIixcIm1pbi1oZWlnaHQtLXhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14c19fX1pJcHF1XCIsXCJtaW4taGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1zX19feE1pR2NcIixcIm1pbi1oZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLW1fX19WRVdMclwiLFwibWluLWhlaWdodC0tbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbF9fX2E2LUY3XCIsXCJtaW4taGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0teGxfX18teWxGdVwiLFwibWluLWhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eGxfX183SzZmLVwiLFwibWluLWhlaWdodC0tM3hsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeGxfX18wRlpRbVwiLFwibWluLWhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eGxfX19jR29Ka1wiLFwibWluLWhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS01eGxfX19mVjNhT1wiLFwibWluLWhlaWdodC0tNnhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS02eGxfX19Ga1VHQ1wiLFwibWluLWhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS03eGxfX19Dc2l3VlwiLFwibWluLWhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS04eGxfX19oLS1ES1wiLFwibWluLWhlaWdodC0tOXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS05eGxfX19uRk1TSFwiLFwibWluLWhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTB4bF9fX0thLWNBXCIsXCJtaW4taGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMXhsX19fZlFzZ2NcIixcImhlaWdodC0tc3RyZXRjaFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1zdHJldGNoX19fcllhWW5cIixcImhlaWdodC0tZnVsbFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1mdWxsX19fdld4aWVcIixcImhlaWdodC0tYXV0b1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1hdXRvX19fNjduRk5cIixcImhlaWdodC0temVyb1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS16ZXJvX19fQXFBMFBcIixcImhlaWdodC0tNHhzXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4c19fX0ZkSjBoXCIsXCJoZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeHNfX19hc1VKYlwiLFwiaGVpZ2h0LS14eHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0teHhzX19fWXFUcXBcIixcImhlaWdodC0teHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0teHNfX19sTlJ0WVwiLFwiaGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXNfX19IN20tLVwiLFwiaGVpZ2h0LS1tXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLW1fX19DbUxwMVwiLFwiaGVpZ2h0LS1sXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWxfX18ydGtraFwiLFwiaGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14bF9fXzd4QkppXCIsXCJoZWlnaHQtLXh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eGxfX19DalN1NVwiLFwiaGVpZ2h0LS0zeGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hsX19fcFVkdk5cIixcImhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4bF9fX1FIWll5XCIsXCJoZWlnaHQtLTV4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS01eGxfX19XYmdvN1wiLFwiaGVpZ2h0LS02eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNnhsX19fa3djOGFcIixcImhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTd4bF9fX211TzFsXCIsXCJoZWlnaHQtLTh4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS04eGxfX185cEVNTlwiLFwiaGVpZ2h0LS05eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tOXhsX19fNmU0NlFcIixcImhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMHhsX19fWGdYcC1cIixcImhlaWdodC0tMTF4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0xMXhsX19fYWR3dUhcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmhpZGRlbi1tb2R1bGVfX2hpZGRlbl9fX25VVWkxIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaGlkZGVuXCI6XCJoaWRkZW4tbW9kdWxlX19oaWRkZW5fX19uVVVpMVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aCB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICB0cmFuc2l0aW9uOiAyNTBtcyBjb2xvciwgMjUwbXMgb3BhY2l0eSwgMTUwbXMgYmFja2dyb3VuZC1jb2xvciwgMTUwbXMgYm94LXNoYWRvdztcXG59XFxuLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aDpub3QoLmludGVyYWN0aXZlLW1vZHVsZV9faWdub3JlRm9jdXNWaXNpYmxlX19fV2RyREcpOmZvY3VzLXZpc2libGUge1xcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJsdWUpO1xcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xcbn1cXG4uaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQ29sb3IpO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMCB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxufVxcbi5pbnRlcmFjdGl2ZS1tb2R1bGVfX2ludGVyYWN0aXZlX19fRmxVdWguaW50ZXJhY3RpdmUtbW9kdWxlX19hY3RpdmVfX19vbW03eSB7XFxuICBjb2xvcjogdmFyKC0taWNvbkFjdGl2ZUNvbG9yKTtcXG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQmFja2dyb3VuZCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaW50ZXJhY3RpdmVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aFwiLFwiaWdub3JlRm9jdXNWaXNpYmxlXCI6XCJpbnRlcmFjdGl2ZS1tb2R1bGVfX2lnbm9yZUZvY3VzVmlzaWJsZV9fX1dkckRHXCIsXCJhY3RpdmVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9fYWN0aXZlX19fb21tN3lcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmludmlzaWJsZS1iYWNrZHJvcC1tb2R1bGVfX2ludmlzaWJsZUJhY2tkcm9wX19faE9oNWI6OmJhY2tkcm9wIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImludmlzaWJsZUJhY2tkcm9wXCI6XCJpbnZpc2libGUtYmFja2Ryb3AtbW9kdWxlX19pbnZpc2libGVCYWNrZHJvcF9fX2hPaDViXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0temVyb19fX2dHTHF3IHtcXG4gIG1hcmdpbi10b3A6IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS00eHNfX19FdjhyNyB7XFxuICBtYXJnaW4tdG9wOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hzX19fbTRZT1oge1xcbiAgbWFyZ2luLXRvcDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4c19fX29wWHZwIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14c19fX0pJallDIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1zX19fWU44REkge1xcbiAgbWFyZ2luLXRvcDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1tX19fWHdrLVMge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1sX19fS1RXaUcge1xcbiAgbWFyZ2luLXRvcDogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14bF9fXzlJT2JaIHtcXG4gIG1hcmdpbi10b3A6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhsX19fM01XenAge1xcbiAgbWFyZ2luLXRvcDogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeGxfX19NOHhIMyB7XFxuICBtYXJnaW4tdG9wOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4bF9fX3J2TkhSIHtcXG4gIG1hcmdpbi10b3A6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNXhsX19fSW5FUngge1xcbiAgbWFyZ2luLXRvcDogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS02eGxfX19QUy10NiB7XFxuICBtYXJnaW4tdG9wOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTd4bF9fX1A1WWJ6IHtcXG4gIG1hcmdpbi10b3A6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOHhsX19fOTZNb0sge1xcbiAgbWFyZ2luLXRvcDogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS05eGxfX19vcGVEYyB7XFxuICBtYXJnaW4tdG9wOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTEweGxfX19wdkY2eCB7XFxuICBtYXJnaW4tdG9wOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTExeGxfX19wQnpBbSB7XFxuICBtYXJnaW4tdG9wOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0temVyb19fX0JXdzZPIHtcXG4gIG1hcmdpbi1yaWdodDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhzX19fcmRQT28ge1xcbiAgbWFyZ2luLXJpZ2h0OiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeHNfX18tWTlPTyB7XFxuICBtYXJnaW4tcmlnaHQ6IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXh4c19fX0pyb0FBIHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHNfX19abDhNaSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXNfX18yNERJbiB7XFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1tX19fWkxsNkIge1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tbF9fX2VIUy1CIHtcXG4gIG1hcmdpbi1yaWdodDogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXhsX19fSVc4ZDQge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhsX19fLU9EN0wge1xcbiAgbWFyZ2luLXJpZ2h0OiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hsX19fdEdZUlIge1xcbiAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhsX19fRVhxaDMge1xcbiAgbWFyZ2luLXJpZ2h0OiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNXhsX19fQ3VZVkcge1xcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNnhsX19fREtnRFQge1xcbiAgbWFyZ2luLXJpZ2h0OiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tN3hsX19fRnp4NGIge1xcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOHhsX19fRWxTV00ge1xcbiAgbWFyZ2luLXJpZ2h0OiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOXhsX19fMG9hVHgge1xcbiAgbWFyZ2luLXJpZ2h0OiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTB4bF9fX1E1NVBDIHtcXG4gIG1hcmdpbi1yaWdodDogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTExeGxfX19wMDJrbiB7XFxuICBtYXJnaW4tcmlnaHQ6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0temVyb19fX24tTlZRIHtcXG4gIG1hcmdpbi1ib3R0b206IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS00eHNfX19pSkphYSB7XFxuICBtYXJnaW4tYm90dG9tOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hzX19fZndRZDEge1xcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4c19fXzZVYWZIIHtcXG4gIG1hcmdpbi1ib3R0b206IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14c19fX3oySjFlIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1zX19fLUhGNlEge1xcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1tX19fSkpPUkUge1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1sX19fR0laY0Yge1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14bF9fX000QXdOIHtcXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhsX19fVHI4bVoge1xcbiAgbWFyZ2luLWJvdHRvbTogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeGxfX18tMFotSCB7XFxuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4bF9fXzRsa1NGIHtcXG4gIG1hcmdpbi1ib3R0b206IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNXhsX19feml6VVAge1xcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS02eGxfX19zTW10SyB7XFxuICBtYXJnaW4tYm90dG9tOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTd4bF9fX0pPQVpyIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOHhsX19fQTVRNEMge1xcbiAgbWFyZ2luLWJvdHRvbTogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS05eGxfX183dVN6diB7XFxuICBtYXJnaW4tYm90dG9tOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTEweGxfX19KbVFKNSB7XFxuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTExeGxfX182S0VZcyB7XFxuICBtYXJnaW4tYm90dG9tOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS16ZXJvX19fdkN2U28ge1xcbiAgbWFyZ2luLWxlZnQ6IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhzX19fbEs1LXkge1xcbiAgbWFyZ2luLWxlZnQ6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hzX19fNy14Vi0ge1xcbiAgbWFyZ2luLWxlZnQ6IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHhzX19fZ2U2Vkoge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHNfX19kdnJVaiB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1zX19fRE1aSjIge1xcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLW1fX181cGVkdyB7XFxuICBtYXJnaW4tbGVmdDogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbF9fXy1TeERJIHtcXG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14bF9fXzZOLWtaIHtcXG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eGxfX19Za2FwWSB7XFxuICBtYXJnaW4tbGVmdDogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hsX19fOFVVdXgge1xcbiAgbWFyZ2luLWxlZnQ6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTR4bF9fX2FxbDViIHtcXG4gIG1hcmdpbi1sZWZ0OiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS01eGxfX19oUU50cCB7XFxuICBtYXJnaW4tbGVmdDogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNnhsX19fU3FQMzEge1xcbiAgbWFyZ2luLWxlZnQ6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTd4bF9fX2Uwai1qIHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS04eGxfX191a3BWeiB7XFxuICBtYXJnaW4tbGVmdDogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tOXhsX19fbE5IQlQge1xcbiAgbWFyZ2luLWxlZnQ6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTEweGxfX19DQlVTbiB7XFxuICBtYXJnaW4tbGVmdDogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTF4bF9fX3VjS0M4IHtcXG4gIG1hcmdpbi1sZWZ0OiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS16ZXJvX19feUtMREgge1xcbiAgbWFyZ2luOiAwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTR4c19fXzduanNpIHtcXG4gIG1hcmdpbjogMXB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0zeHNfX19rV0JiZSB7XFxuICBtYXJnaW46IDJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHhzX19fZlppVWEge1xcbiAgbWFyZ2luOiA0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhzX19fLXRkT2oge1xcbiAgbWFyZ2luOiA4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXNfX18weFAwZyB7XFxuICBtYXJnaW46IDEycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLW1fX19XZDRwcCB7XFxuICBtYXJnaW46IDE2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLWxfX195TVVYcyB7XFxuICBtYXJnaW46IDIwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhsX19fd2paUFIge1xcbiAgbWFyZ2luOiAyNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eGxfX19FbTRUNyB7XFxuICBtYXJnaW46IDI4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4bF9fX2NRWkhmIHtcXG4gIG1hcmdpbjogMzJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhsX19fN0lXck0ge1xcbiAgbWFyZ2luOiAzNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS01eGxfX19jU09VUSB7XFxuICBtYXJnaW46IDQwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTZ4bF9fX0YzYlNtIHtcXG4gIG1hcmdpbjogNDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tN3hsX19fMVVRbUoge1xcbiAgbWFyZ2luOiA0OHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS04eGxfX19HRTBTdiB7XFxuICBtYXJnaW46IDUycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTl4bF9fX2g1aGhFIHtcXG4gIG1hcmdpbjogNTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTB4bF9fX2RHSy1SIHtcXG4gIG1hcmdpbjogNjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTF4bF9fXzN5eEJwIHtcXG4gIG1hcmdpbjogNjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tYXV0b19fX3k3Z2Y5IHtcXG4gIG1hcmdpbjogYXV0bztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJtYXJnaW5fX3RvcC0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXplcm9fX19nR0xxd1wiLFwibWFyZ2luX190b3AtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4c19fX0V2OHI3XCIsXCJtYXJnaW5fX3RvcC0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hzX19fbTRZT1pcIixcIm1hcmdpbl9fdG9wLS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14eHNfX19vcFh2cFwiLFwibWFyZ2luX190b3AtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHNfX19KSWpZQ1wiLFwibWFyZ2luX190b3AtLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1zX19fWU44RElcIixcIm1hcmdpbl9fdG9wLS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tbV9fX1h3ay1TXCIsXCJtYXJnaW5fX3RvcC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLWxfX19LVFdpR1wiLFwibWFyZ2luX190b3AtLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teGxfX185SU9iWlwiLFwibWFyZ2luX190b3AtLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4bF9fXzNNV3pwXCIsXCJtYXJnaW5fX3RvcC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tM3hsX19fTTh4SDNcIixcIm1hcmdpbl9fdG9wLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS00eGxfX19ydk5IUlwiLFwibWFyZ2luX190b3AtLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTV4bF9fX0luRVJ4XCIsXCJtYXJnaW5fX3RvcC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNnhsX19fUFMtdDZcIixcIm1hcmdpbl9fdG9wLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS03eGxfX19QNVlielwiLFwibWFyZ2luX190b3AtLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTh4bF9fXzk2TW9LXCIsXCJtYXJnaW5fX3RvcC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOXhsX19fb3BlRGNcIixcIm1hcmdpbl9fdG9wLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTB4bF9fX3B2RjZ4XCIsXCJtYXJnaW5fX3RvcC0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTExeGxfX19wQnpBbVwiLFwibWFyZ2luX19yaWdodC0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0temVyb19fX0JXdzZPXCIsXCJtYXJnaW5fX3JpZ2h0LS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTR4c19fX3JkUE9vXCIsXCJtYXJnaW5fX3JpZ2h0LS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTN4c19fXy1ZOU9PXCIsXCJtYXJnaW5fX3JpZ2h0LS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXh4c19fX0pyb0FBXCIsXCJtYXJnaW5fX3JpZ2h0LS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHNfX19abDhNaVwiLFwibWFyZ2luX19yaWdodC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tc19fXzI0REluXCIsXCJtYXJnaW5fX3JpZ2h0LS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1tX19fWkxsNkJcIixcIm1hcmdpbl9fcmlnaHQtLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLWxfX19lSFMtQlwiLFwibWFyZ2luX19yaWdodC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLXhsX19fSVc4ZDRcIixcIm1hcmdpbl9fcmlnaHQtLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhsX19fLU9EN0xcIixcIm1hcmdpbl9fcmlnaHQtLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hsX19fdEdZUlJcIixcIm1hcmdpbl9fcmlnaHQtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhsX19fRVhxaDNcIixcIm1hcmdpbl9fcmlnaHQtLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNXhsX19fQ3VZVkdcIixcIm1hcmdpbl9fcmlnaHQtLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNnhsX19fREtnRFRcIixcIm1hcmdpbl9fcmlnaHQtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tN3hsX19fRnp4NGJcIixcIm1hcmdpbl9fcmlnaHQtLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOHhsX19fRWxTV01cIixcIm1hcmdpbl9fcmlnaHQtLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tOXhsX19fMG9hVHhcIixcIm1hcmdpbl9fcmlnaHQtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTEweGxfX19RNTVQQ1wiLFwibWFyZ2luX19yaWdodC0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTF4bF9fX3AwMmtuXCIsXCJtYXJnaW5fX2JvdHRvbS0temVyb1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXplcm9fX19uLU5WUVwiLFwibWFyZ2luX19ib3R0b20tLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4c19fX2lKSmFhXCIsXCJtYXJnaW5fX2JvdHRvbS0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hzX19fZndRZDFcIixcIm1hcmdpbl9fYm90dG9tLS14eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14eHNfX182VWFmSFwiLFwibWFyZ2luX19ib3R0b20tLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHNfX196MkoxZVwiLFwibWFyZ2luX19ib3R0b20tLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1zX19fLUhGNlFcIixcIm1hcmdpbl9fYm90dG9tLS1tXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tbV9fX0pKT1JFXCIsXCJtYXJnaW5fX2JvdHRvbS0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLWxfX19HSVpjRlwiLFwibWFyZ2luX19ib3R0b20tLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teGxfX19NNEF3TlwiLFwibWFyZ2luX19ib3R0b20tLXh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4bF9fX1RyOG1aXCIsXCJtYXJnaW5fX2JvdHRvbS0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tM3hsX19fLTBaLUhcIixcIm1hcmdpbl9fYm90dG9tLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS00eGxfX180bGtTRlwiLFwibWFyZ2luX19ib3R0b20tLTV4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTV4bF9fX3ppelVQXCIsXCJtYXJnaW5fX2JvdHRvbS0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNnhsX19fc01tdEtcIixcIm1hcmdpbl9fYm90dG9tLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS03eGxfX19KT0FaclwiLFwibWFyZ2luX19ib3R0b20tLTh4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTh4bF9fX0E1UTRDXCIsXCJtYXJnaW5fX2JvdHRvbS0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOXhsX19fN3VTenZcIixcIm1hcmdpbl9fYm90dG9tLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTB4bF9fX0ptUUo1XCIsXCJtYXJnaW5fX2JvdHRvbS0tMTF4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTExeGxfX182S0VZc1wiLFwibWFyZ2luX19sZWZ0LS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXplcm9fX192Q3ZTb1wiLFwibWFyZ2luX19sZWZ0LS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhzX19fbEs1LXlcIixcIm1hcmdpbl9fbGVmdC0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTN4c19fXzcteFYtXCIsXCJtYXJnaW5fX2xlZnQtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eHNfX19nZTZWSlwiLFwibWFyZ2luX19sZWZ0LS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14c19fX2R2clVqXCIsXCJtYXJnaW5fX2xlZnQtLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tc19fX0RNWkoyXCIsXCJtYXJnaW5fX2xlZnQtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbV9fXzVwZWR3XCIsXCJtYXJnaW5fX2xlZnQtLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbF9fXy1TeERJXCIsXCJtYXJnaW5fX2xlZnQtLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhsX19fNk4ta1pcIixcIm1hcmdpbl9fbGVmdC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4bF9fX1lrYXBZXCIsXCJtYXJnaW5fX2xlZnQtLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeGxfX184VVV1eFwiLFwibWFyZ2luX19sZWZ0LS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhsX19fYXFsNWJcIixcIm1hcmdpbl9fbGVmdC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTV4bF9fX2hRTnRwXCIsXCJtYXJnaW5fX2xlZnQtLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS02eGxfX19TcVAzMVwiLFwibWFyZ2luX19sZWZ0LS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tN3hsX19fZTBqLWpcIixcIm1hcmdpbl9fbGVmdC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTh4bF9fX3VrcFZ6XCIsXCJtYXJnaW5fX2xlZnQtLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS05eGxfX19sTkhCVFwiLFwibWFyZ2luX19sZWZ0LS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTEweGxfX19DQlVTblwiLFwibWFyZ2luX19sZWZ0LS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTExeGxfX191Y0tDOFwiLFwibWFyZ2luLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXplcm9fX195S0xESFwiLFwibWFyZ2luLS00eHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhzX19fN25qc2lcIixcIm1hcmdpbi0tM3hzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4c19fX2tXQmJlXCIsXCJtYXJnaW4tLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eHNfX19mWmlVYVwiLFwibWFyZ2luLS14c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14c19fXy10ZE9qXCIsXCJtYXJnaW4tLXNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tc19fXzB4UDBnXCIsXCJtYXJnaW4tLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbV9fX1dkNHBwXCIsXCJtYXJnaW4tLWxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbF9fX3lNVVhzXCIsXCJtYXJnaW4tLXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhsX19fd2paUFJcIixcIm1hcmdpbi0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4bF9fX0VtNFQ3XCIsXCJtYXJnaW4tLTN4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0zeGxfX19jUVpIZlwiLFwibWFyZ2luLS00eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhsX19fN0lXck1cIixcIm1hcmdpbi0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTV4bF9fX2NTT1VRXCIsXCJtYXJnaW4tLTZ4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS02eGxfX19GM2JTbVwiLFwibWFyZ2luLS03eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tN3hsX19fMVVRbUpcIixcIm1hcmdpbi0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTh4bF9fX0dFMFN2XCIsXCJtYXJnaW4tLTl4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS05eGxfX19oNWhoRVwiLFwibWFyZ2luLS0xMHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTEweGxfX19kR0stUlwiLFwibWFyZ2luLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTExeGxfX18zeXhCcFwiLFwibWFyZ2luLS1hdXRvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLWF1dG9fX195N2dmOVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXplcm9fX184bHlHaSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXplcm9fX19EYkkzaiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9fX19paG5TWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb19fX1E0TFhPID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS00eHNfX19MZk0weCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTR4c19fX1lleXc2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhzX19fVEFhREsgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4c19fXzZpV1VvID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNfX191cmtpZyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c19fX3lYSDN6ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tM3hzX19fZ0F6VkEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4c19fX1dyNDhjID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14eHNfX19kcVRUUyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4c19fX0VwNjZSID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzX19fOXZQWWQgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c19fX2p1dUtwID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14c19fX253NWFhID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHNfX19KZ0M2bCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzX19fY3h0VnggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzX19fMmlQNWcgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXNfX19IbTJpcCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1zX19fV2EzOE4gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tc19fX1dXQkZoID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tc19fX3d6RlY5ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tbV9fX1pqT0NNID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLW1fX19pcERrVyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1tX19fWThxRFcgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tX19fNFhKZnYgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1sX19fUXZUUm8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbF9fX0VHa0FSID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxfX19VblVIdiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLWxfX19qVk5OWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhsX19fRU5jY1ggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teGxfX19ibXJzYSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14bF9fX0tqby1jID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teGxfX19ESFJ1eSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4bF9fX29uamVBID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4bF9fX3YtMVRsID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4bF9fX2ktYzJoID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsX19fcUcwODUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxfX19MOW1zUSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0zeGxfX193TU1ibSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeGxfX19iU1NPciA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4bF9fX2U5Vzd2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhsX19fVkFrLXggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsX19fRHl5NVggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsX19fWDB4NWEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eGxfX19RdWwtaiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDM2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTV4bF9fX2VXNVFrID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTV4bF9fX3BpYS1aID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTV4bF9fX2lBQWhvID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsX19feGp1Q0wgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxfX19DMFd2ayA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS02eGxfX184NHpwLSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQ0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS02eGxfX19pdWVCRiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTZ4bF9fX1VOUS1CID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tN3hsX19faFBjbGMgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsX19fNVJad1EgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0OHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsX19fSElwNkIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS03eGxfX19GaU9FSSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTh4bF9fX2d0NGZ1ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTh4bF9fX2ZQRU9EID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTh4bF9fXy10VGZQID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsX19fZFVYUmggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxfX19rUk5BNiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS05eGxfX19qYkhhQiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDU2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS05eGxfX19TRmdQbCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTl4bF9fX1RKaWVIID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTB4bF9fXy11dE9uID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTEweGxfX19hNTl3VCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMHhsX19fS2NlemUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsX19fTm9tWXUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsX19fU1l0Z24gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bF9fX1A2MnU0ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxfX19nMG9vZSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTExeGxfX19FT1dMLSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDY0cHgpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0temVyb19fXzhseUdpXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0temVyb1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXplcm9fX19EYkkzalwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9fX19paG5TWFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb19fX1E0TFhPXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhzX19fTGZNMHhcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eHNfX19ZZXl3NlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhzX19fVEFhREtcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhzX19fNmlXVW9cIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNfX191cmtpZ1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c19fX3lYSDN6XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeHNfX19nQXpWQVwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeHNfX19XcjQ4Y1wiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c19fX2RxVFRTXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzX19fRXA2NlJcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4c19fXzl2UFlkXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c19fX2p1dUtwXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14c19fX253NWFhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14c19fX0pnQzZsXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzX19fY3h0VnhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14c19fXzJpUDVnXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXNfX19IbTJpcFwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1zX19fV2EzOE5cIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1zX19fV1dCRmhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXNfX193ekZWOVwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1tX19fWmpPQ01cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1tXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbV9fX2lwRGtXXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tbV9fX1k4cURXXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tX19fNFhKZnZcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tbF9fX1F2VFJvXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLWxfX19FR2tBUlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxfX19VblVIdlwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbF9fX2pWTk5YXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14bF9fX0VOY2NYXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14bF9fX2JtcnNhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsX19fS2pvLWNcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14bF9fX0RIUnV5XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsX19fb25qZUFcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eGxfX192LTFUbFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhsX19faS1jMmhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsX19fcUcwODVcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxfX19MOW1zUVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bF9fX3dNTWJtXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeGxfX19iU1NPclwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeGxfX19lOVc3dlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4bF9fX1ZBay14XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsX19fRHl5NVhcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTR4bF9fX1gweDVhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4bF9fX1F1bC1qXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsX19fZVc1UWtcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS01eGxfX19waWEtWlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNXhsX19faUFBaG9cIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTV4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsX19feGp1Q0xcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxfX19DMFd2a1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bF9fXzg0enAtXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS02eGxfX19pdWVCRlwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNnhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS02eGxfX19VTlEtQlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTd4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTd4bF9fX2hQY2xjXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsX19fNVJad1FcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTd4bF9fX0hJcDZCXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS03eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTd4bF9fX0ZpT0VJXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsX19fZ3Q0ZnVcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS04eGxfX19mUEVPRFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tOHhsX19fLXRUZlBcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsX19fZFVYUmhcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxfX19rUk5BNlwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bF9fX2piSGFCXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS05eGxfX19TRmdQbFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS05eGxfX19USmllSFwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMHhsX19fLXV0T25cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTB4bF9fX2E1OXdUXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTB4bF9fX0tjZXplXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsX19fTm9tWXVcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTF4bF9fX1NZdGduXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTExeGxfX19QNjJ1NFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxfX19nMG9vZVwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bF9fX0VPV0wtXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL29mZnNldC9vZmZzZXQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0temVyb19fX2Fwck9yIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS16ZXJvX19fYkZOeTQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXplcm9fX181S2RNeCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS16ZXJvX19fRHJqMHUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhzX19fRmE4emUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4c19fX0pjN1p3IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS00eHNfX190N2pHeiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eHNfX18ybWNMWiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeHNfX19oSHhBSyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tM3hzX19fcVAzTHYge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTN4c19fX05tRDdpIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTN4c19fXzlZbHVlIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4c19fX1pBS3hvIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eHNfX19rOUY0eCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHhzX19fRUVmNEQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHhzX19fLUo3NUsge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHNfX19pcnBuYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHNfX18zR1hvSCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHNfX183V1lKSSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLThweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14c19fX3FZLWxPIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXNfX19OZFJLcSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXNfX19ZS2Y5ZSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXNfX19taXhwQSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tc19fX202amY1IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1tX19fRVhrcWkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1tX19fT3ZsWXIge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1tX19fWFMtUEcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLW1fX19vMHpaLSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbF9fXzBiR2FQIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tbF9fX1MxLUxXIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tbF9fX2hTMWIzIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1sX19fdlE0WXoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXhsX19fNk1mS1Yge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14bF9fX2RnYldXIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teGxfX18wYVdCNSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teGxfX195UHo4TyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHhsX19faXZKUmQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eGxfX19adEU2WiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4bF9fXzRsSy1FIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eGxfX19FTThyQiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hsX19fQTlCa24ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeGxfX196QzgtYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTN4bF9fX1dyTC1UIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0zeGxfX19uZVdhcCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhsX19fQldROWkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS00eGxfX184WDRrRSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4bF9fX0hjNDBUIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eGxfX19zUmpHUSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNXhsX19fNnVSWFkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS01eGxfX19uV2M2biB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTV4bF9fX1ZrV3pKIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS01eGxfX19jbmdLRSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNnhsX19fdHI3aEgge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS02eGxfX19DWVUxTSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTZ4bF9fXzBJdU1iIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS02eGxfX18tMXN3byB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tN3hsX19fTjctWGQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS03eGxfX18tcEFoeSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTd4bF9fX214VnJrIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS03eGxfX19uenVsUCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOHhsX19fZU0tN1cge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS04eGxfX19lbnBFbSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTh4bF9fX2ppRlluIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS04eGxfX19GTnFOcyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOXhsX19fLUNtaDkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS05eGxfX190d0UzdCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTl4bF9fXzc1bXViIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS05eGxfX19rQ1NzQyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTB4bF9fX2psYmhaIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tMTB4bF9fX3JleVRxIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tMTB4bF9fXzlwM2NuIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0xMHhsX19fdC12bzcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTExeGxfX18wbnJaYSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTY0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTExeGxfX193Y2ZXZyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTExeGxfX19zSXRnNSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTY0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTF4bF9fX05VcC1uIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2NHB4KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJvZmZzZXRfX3RvcC0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXplcm9fX19hcHJPclwiLFwib2Zmc2V0X19ib3R0b20tLXplcm9cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS16ZXJvX19fYkZOeTRcIixcIm9mZnNldF9fbGVmdC0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS16ZXJvX19fNUtkTXhcIixcIm9mZnNldF9fcmlnaHQtLXplcm9cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXplcm9fX19EcmowdVwiLFwib2Zmc2V0X190b3AtLTR4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTR4c19fX0ZhOHplXCIsXCJvZmZzZXRfX2JvdHRvbS0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNHhzX19fSmM3WndcIixcIm9mZnNldF9fbGVmdC0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4c19fX3Q3akd6XCIsXCJvZmZzZXRfX3JpZ2h0LS00eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4c19fXzJtY0xaXCIsXCJvZmZzZXRfX3RvcC0tM3hzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hzX19faEh4QUtcIixcIm9mZnNldF9fYm90dG9tLS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeHNfX19xUDNMdlwiLFwib2Zmc2V0X19sZWZ0LS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hzX19fTm1EN2lcIixcIm9mZnNldF9fcmlnaHQtLTN4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hzX19fOVlsdWVcIixcIm9mZnNldF9fdG9wLS14eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14eHNfX19aQUt4b1wiLFwib2Zmc2V0X19ib3R0b20tLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXh4c19fX2s5RjR4XCIsXCJvZmZzZXRfX2xlZnQtLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14eHNfX19FRWY0RFwiLFwib2Zmc2V0X19yaWdodC0teHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eHNfX18tSjc1S1wiLFwib2Zmc2V0X190b3AtLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHNfX19pcnBuYVwiLFwib2Zmc2V0X19ib3R0b20tLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHNfX18zR1hvSFwiLFwib2Zmc2V0X19sZWZ0LS14c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14c19fXzdXWUpJXCIsXCJvZmZzZXRfX3JpZ2h0LS14c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHNfX19xWS1sT1wiLFwib2Zmc2V0X190b3AtLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1zX19fTmRSS3FcIixcIm9mZnNldF9fYm90dG9tLS1zXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tc19fX1lLZjllXCIsXCJvZmZzZXRfX2xlZnQtLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tc19fX21peHBBXCIsXCJvZmZzZXRfX3JpZ2h0LS1zXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1zX19fbTZqZjVcIixcIm9mZnNldF9fdG9wLS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbV9fX0VYa3FpXCIsXCJvZmZzZXRfX2JvdHRvbS0tbVwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLW1fX19PdmxZclwiLFwib2Zmc2V0X19sZWZ0LS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLW1fX19YUy1QR1wiLFwib2Zmc2V0X19yaWdodC0tbVwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tbV9fX28welotXCIsXCJvZmZzZXRfX3RvcC0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLWxfX18wYkdhUFwiLFwib2Zmc2V0X19ib3R0b20tLWxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1sX19fUzEtTFdcIixcIm9mZnNldF9fbGVmdC0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1sX19faFMxYjNcIixcIm9mZnNldF9fcmlnaHQtLWxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLWxfX192UTRZelwiLFwib2Zmc2V0X190b3AtLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teGxfX182TWZLVlwiLFwib2Zmc2V0X19ib3R0b20tLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teGxfX19kZ2JXV1wiLFwib2Zmc2V0X19sZWZ0LS14bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14bF9fXzBhV0I1XCIsXCJvZmZzZXRfX3JpZ2h0LS14bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teGxfX195UHo4T1wiLFwib2Zmc2V0X190b3AtLXh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4bF9fX2l2SlJkXCIsXCJvZmZzZXRfX2JvdHRvbS0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHhsX19fWnRFNlpcIixcIm9mZnNldF9fbGVmdC0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4bF9fXzRsSy1FXCIsXCJvZmZzZXRfX3JpZ2h0LS14eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXh4bF9fX0VNOHJCXCIsXCJvZmZzZXRfX3RvcC0tM3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hsX19fQTlCa25cIixcIm9mZnNldF9fYm90dG9tLS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeGxfX196QzgtYVwiLFwib2Zmc2V0X19sZWZ0LS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hsX19fV3JMLVRcIixcIm9mZnNldF9fcmlnaHQtLTN4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hsX19fbmVXYXBcIixcIm9mZnNldF9fdG9wLS00eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS00eGxfX19CV1E5aVwiLFwib2Zmc2V0X19ib3R0b20tLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4bF9fXzhYNGtFXCIsXCJvZmZzZXRfX2xlZnQtLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS00eGxfX19IYzQwVFwiLFwib2Zmc2V0X19yaWdodC0tNHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eGxfX19zUmpHUVwiLFwib2Zmc2V0X190b3AtLTV4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTV4bF9fXzZ1UlhZXCIsXCJvZmZzZXRfX2JvdHRvbS0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNXhsX19fbldjNm5cIixcIm9mZnNldF9fbGVmdC0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTV4bF9fX1ZrV3pKXCIsXCJvZmZzZXRfX3JpZ2h0LS01eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTV4bF9fX2NuZ0tFXCIsXCJvZmZzZXRfX3RvcC0tNnhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNnhsX19fdHI3aEhcIixcIm9mZnNldF9fYm90dG9tLS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS02eGxfX19DWVUxTVwiLFwib2Zmc2V0X19sZWZ0LS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNnhsX19fMEl1TWJcIixcIm9mZnNldF9fcmlnaHQtLTZ4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNnhsX19fLTFzd29cIixcIm9mZnNldF9fdG9wLS03eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS03eGxfX19ONy1YZFwiLFwib2Zmc2V0X19ib3R0b20tLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTd4bF9fXy1wQWh5XCIsXCJvZmZzZXRfX2xlZnQtLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS03eGxfX19teFZya1wiLFwib2Zmc2V0X19yaWdodC0tN3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS03eGxfX19uenVsUFwiLFwib2Zmc2V0X190b3AtLTh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTh4bF9fX2VNLTdXXCIsXCJvZmZzZXRfX2JvdHRvbS0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tOHhsX19fZW5wRW1cIixcIm9mZnNldF9fbGVmdC0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTh4bF9fX2ppRlluXCIsXCJvZmZzZXRfX3JpZ2h0LS04eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTh4bF9fX0ZOcU5zXCIsXCJvZmZzZXRfX3RvcC0tOXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOXhsX19fLUNtaDlcIixcIm9mZnNldF9fYm90dG9tLS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS05eGxfX190d0UzdFwiLFwib2Zmc2V0X19sZWZ0LS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOXhsX19fNzVtdWJcIixcIm9mZnNldF9fcmlnaHQtLTl4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tOXhsX19fa0NTc0NcIixcIm9mZnNldF9fdG9wLS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTB4bF9fX2psYmhaXCIsXCJvZmZzZXRfX2JvdHRvbS0tMTB4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTEweGxfX19yZXlUcVwiLFwib2Zmc2V0X19sZWZ0LS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTEweGxfX185cDNjblwiLFwib2Zmc2V0X19yaWdodC0tMTB4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTB4bF9fX3Qtdm83XCIsXCJvZmZzZXRfX3RvcC0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTExeGxfX18wbnJaYVwiLFwib2Zmc2V0X19ib3R0b20tLTExeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0xMXhsX19fd2NmV2dcIixcIm9mZnNldF9fbGVmdC0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0xMXhsX19fc0l0ZzVcIixcIm9mZnNldF9fcmlnaHQtLTExeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTExeGxfX19OVXAtblwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0taW5oZXJpdF9fXzBXUDByIHtcXG4gIG91dGxpbmUtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0td2hpdGVfX19VcS1nZCB7XFxuICBvdXRsaW5lLWNvbG9yOiB3aGl0ZTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS10cmFuc3BhcmVudF9fX1ROb012IHtcXG4gIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkxMDBfX19WTUY3WSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5ODBfX19LZDhmTSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk2MF9fX1pHak90IHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTQwX19fdWFGbkcge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MzBfX183UUJWViB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkyNV9fX3ItYmJKIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTIwX19faXd6ZUwge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTBfX19oSnR0UyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk3MF9fXzBPR2xVIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2pSd0huIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX19QeGNteCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1hY2NlbnRfX19qTWhJTiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19feGpKTG4ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tbm90aWNlX19fQ1JpWWIge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS13YXJuaW5nX19fMU9lN1cge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxfX195UXgtTCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19HSGFxLSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ1RpbnRfX19ZQW50dSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxUaW50X19fUTFtZGgge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1saW5rX19fdUlrM28ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tY29kZV9fX3libndpIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXplcm9fX19Fa2Z6TiB7XFxuICBvdXRsaW5lLXdpZHRoOiAwcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teHhzX19fYkd5VHIge1xcbiAgb3V0bGluZS13aWR0aDogMXB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhzX19fWlpSMkIge1xcbiAgb3V0bGluZS13aWR0aDogMnB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXNfX184ZERFeiB7XFxuICBvdXRsaW5lLXdpZHRoOiAzcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tbV9fX2cydUc1IHtcXG4gIG91dGxpbmUtd2lkdGg6IDRweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS1sX19fV2gwYkMge1xcbiAgb3V0bGluZS13aWR0aDogNnB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhsX19fOGRPTWoge1xcbiAgb3V0bGluZS13aWR0aDogOHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0JFc1VtIHtcXG4gIG91dGxpbmUtd2lkdGg6IDEwcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tM3hsX19fRXMwU1kge1xcbiAgb3V0bGluZS13aWR0aDogMTJweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS00eGxfX19ZZW92OCB7XFxuICBvdXRsaW5lLXdpZHRoOiAxNHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTV4bF9fX05zVjhQIHtcXG4gIG91dGxpbmUtd2lkdGg6IDE2cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wib3V0bGluZVwiOlwib3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0RlwiLFwiZm9jdXNWaXNpYmxlXCI6XCJvdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEpcIixcImNvbG9yLS1pbmhlcml0XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX18wV1AwclwiLFwiY29sb3ItLXdoaXRlXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fVXEtZ2RcIixcImNvbG9yLS10cmFuc3BhcmVudFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS10cmFuc3BhcmVudF9fX1ROb012XCIsXCJjb2xvci0tZ3JleTEwMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fVk1GN1lcIixcImNvbG9yLS1ncmV5ODBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwX19fS2Q4Zk1cIixcImNvbG9yLS1ncmV5NjBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTYwX19fWkdqT3RcIixcImNvbG9yLS1ncmV5NDBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTQwX19fdWFGbkdcIixcImNvbG9yLS1ncmV5MzBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTMwX19fN1FCVlZcIixcImNvbG9yLS1ncmV5MjVcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTI1X19fci1iYkpcIixcImNvbG9yLS1ncmV5MjBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTIwX19faXd6ZUxcIixcImNvbG9yLS1ncmV5MTBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTEwX19faEp0dFNcIixcImNvbG9yLS1ncmV5NzBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTcwX19fME9HbFVcIixcImNvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qUndIblwiLFwiY29sb3ItLXByaW1hcnlcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tcHJpbWFyeV9fX1B4Y214XCIsXCJjb2xvci0tYWNjZW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWFjY2VudF9fX2pNaElOXCIsXCJjb2xvci0tc3VjY2Vzc1wiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19feGpKTG5cIixcImNvbG9yLS1ub3RpY2VcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tbm90aWNlX19fQ1JpWWJcIixcImNvbG9yLS13YXJuaW5nXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdfX18xT2U3V1wiLFwiY29sb3ItLWNyaXRpY2FsXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19feVF4LUxcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzVGludF9fX0dIYXEtXCIsXCJjb2xvci0td2FybmluZ1RpbnRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ1RpbnRfX19ZQW50dVwiLFwiY29sb3ItLWNyaXRpY2FsVGludFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19RMW1kaFwiLFwiY29sb3ItLWxpbmtcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tbGlua19fX3VJazNvXCIsXCJjb2xvci0tY29kZVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jb2RlX19feWJud2lcIixcIndpZHRoLS16ZXJvXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXplcm9fX19Fa2Z6TlwiLFwid2lkdGgtLXh4c1wiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS14eHNfX19iR3lUclwiLFwid2lkdGgtLXhzXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhzX19fWlpSMkJcIixcIndpZHRoLS1zXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXNfX184ZERFelwiLFwid2lkdGgtLW1cIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tbV9fX2cydUc1XCIsXCJ3aWR0aC0tbFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS1sX19fV2gwYkNcIixcIndpZHRoLS14bFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS14bF9fXzhkT01qXCIsXCJ3aWR0aC0teHhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0JFc1VtXCIsXCJ3aWR0aC0tM3hsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0VzMFNZXCIsXCJ3aWR0aC0tNHhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTR4bF9fX1llb3Y4XCIsXCJ3aWR0aC0tNXhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTV4bF9fX05zVjhQXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJfX193YzZqUCB7XFxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1oaWRkZW5fX19VQklYUSB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW47XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS12aXNpYmxlX19fc2ZPYlUge1xcbiAgb3ZlcmZsb3cteTogdmlzaWJsZTtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLXNjcm9sbF9fX3lrWjIxIHtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWF1dG9fX18xT05ISyB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0taGlkZGVuX19fTEszVWgge1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tdmlzaWJsZV9fX3UtLTZGIHtcXG4gIG92ZXJmbG93LXg6IHZpc2libGU7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1zY3JvbGxfX19haUlINiB7XFxuICBvdmVyZmxvdy14OiBzY3JvbGw7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1hdXRvX19fUzZvVkwge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJvdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3ctLWhpZGUtc2Nyb2xsYmFyX19fd2M2alBcIixcIm92ZXJmbG93X195LS1oaWRkZW5cIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWhpZGRlbl9fX1VCSVhRXCIsXCJvdmVyZmxvd19feS0tdmlzaWJsZVwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tdmlzaWJsZV9fX3NmT2JVXCIsXCJvdmVyZmxvd19feS0tc2Nyb2xsXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1zY3JvbGxfX195a1oyMVwiLFwib3ZlcmZsb3dfX3ktLWF1dG9cIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWF1dG9fX18xT05IS1wiLFwib3ZlcmZsb3dfX3gtLWhpZGRlblwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0taGlkZGVuX19fTEszVWhcIixcIm92ZXJmbG93X194LS12aXNpYmxlXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS12aXNpYmxlX19fdS0tNkZcIixcIm92ZXJmbG93X194LS1zY3JvbGxcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLXNjcm9sbF9fX2FpSUg2XCIsXCJvdmVyZmxvd19feC0tYXV0b1wiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tYXV0b19fX1M2b1ZMXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19vdmVybGF5X19fVGNLdi0ge1xcbiAgaW5zZXQ6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIHotaW5kZXg6IDk5OTtcXG59XFxuLnBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19jb250ZW50X19fVUNVWjYge1xcbiAgei1pbmRleDogMTAwMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJwb3BvdmVyX19vdmVybGF5XCI6XCJwb3BvdmVyLW1vZHVsZV9fcG9wb3Zlcl9fb3ZlcmxheV9fX1RjS3YtXCIsXCJwb3BvdmVyX19jb250ZW50XCI6XCJwb3BvdmVyLW1vZHVsZV9fcG9wb3Zlcl9fY29udGVudF9fX1VDVVo2XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1jZW50ZXJfX19iRHJSMiB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi50ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tcmlnaHRfX19KVlJNUCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1sZWZ0X19fTExMazYge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0ZXh0LWFsaWduLS1jZW50ZXJcIjpcInRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1jZW50ZXJfX19iRHJSMlwiLFwidGV4dC1hbGlnbi0tcmlnaHRcIjpcInRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1yaWdodF9fX0pWUk1QXCIsXCJ0ZXh0LWFsaWduLS1sZWZ0XCI6XCJ0ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tbGVmdF9fX0xMTGs2XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RpbnQvdGludC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRpbnQtbW9kdWxlX190aW50X19fZ0N6RzcsIC50aW50LW1vZHVsZV9fdGludF9fX2dDekc3ICoge1xcbiAgZmlsbDogdmFyKC0tZWxlbWVudC10aW50KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0aW50XCI6XCJ0aW50LW1vZHVsZV9fdGludF9fX2dDekc3XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RyYW5zaXRpb24vdHJhbnNpdGlvbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnRyYW5zaXRpb24tbW9kdWxlX190cmFuc2l0aW9uX19fU3d3T0Uge1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1widHJhbnNpdGlvblwiOlwidHJhbnNpdGlvbi1tb2R1bGVfX3RyYW5zaXRpb25fX19Td3dPRVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudmlzdWFsbHktaGlkZGVuLW1vZHVsZV9fdmlzdWFsbHktaGlkZGVuX19fRFB1bE0ge1xcbiAgb3BhY2l0eTogMDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ2aXN1YWxseS1oaWRkZW5cIjpcInZpc3VhbGx5LWhpZGRlbi1tb2R1bGVfX3Zpc3VhbGx5LWhpZGRlbl9fX0RQdWxNXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzXCIsIGNzczogXCIud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWZ1bGxfX19ub0lrVCB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tY29udGVudF9fX3lrc1VyIHtcXG4gIG1heC13aWR0aDogOTAwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0temVyb19fXzhOVUYxIHtcXG4gIG1heC13aWR0aDogMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTR4c19fX2dIbExJIHtcXG4gIG1heC13aWR0aDogMXB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4c19fX3Jkb1A4IHtcXG4gIG1heC13aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXh4c19fX2pscDh2IHtcXG4gIG1heC13aWR0aDogNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXhzX19fa1FzV3gge1xcbiAgbWF4LXdpZHRoOiA4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tc19fX01nR2F6IHtcXG4gIG1heC13aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1tX19fYUZ6U2Mge1xcbiAgbWF4LXdpZHRoOiAxNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWxfX19pS2xhSCB7XFxuICBtYXgtd2lkdGg6IDIwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teGxfX180elVkQyB7XFxuICBtYXgtd2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhsX19fNTh6M1Age1xcbiAgbWF4LXdpZHRoOiAyOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4bF9fXzJZWG5IIHtcXG4gIG1heC13aWR0aDogMzJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eGxfX19qRko5ViB7XFxuICBtYXgtd2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNXhsX19fNy1WUUcge1xcbiAgbWF4LXdpZHRoOiA0MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTZ4bF9fX1BTMzdKIHtcXG4gIG1heC13aWR0aDogNDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS03eGxfX19zU0J3ayB7XFxuICBtYXgtd2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tOHhsX19fVjNJSHkge1xcbiAgbWF4LXdpZHRoOiA1MnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTl4bF9fXzRWV0VNIHtcXG4gIG1heC13aWR0aDogNTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMHhsX19fejk3VFEge1xcbiAgbWF4LXdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTExeGxfX19qeGVuWCB7XFxuICBtYXgtd2lkdGg6IDY0cHg7XFxufVxcblxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aF9fX3FubFlDIHtcXG4gIC8qIEFzIHdpZGUgYXMgdGhlIGNvbnRlbnQgd2FudHMgdG8gYmUsIHNvIGl0IG5ldmVyIGhhcyB0byB3cmFwIHRvIGZpdCBpdHMgc3Vycm91bmRpbmdzLiAqL1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWZpdF9fXzJXLVREIHtcXG4gIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0temVyb19fXzk0MjlTIHtcXG4gIG1pbi13aWR0aDogMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4c19fXzNUR00tIHtcXG4gIG1pbi13aWR0aDogMXB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4c19fX1I2ajMyIHtcXG4gIG1pbi13aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXh4c19fX3ZqS2RDIHtcXG4gIG1pbi13aWR0aDogNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXhzX19fVi1MMXMge1xcbiAgbWluLXdpZHRoOiA4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tc19fX2RJZlptIHtcXG4gIG1pbi13aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1tX19fSkg1SVAge1xcbiAgbWluLXdpZHRoOiAxNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWxfX19HZ2tFOCB7XFxuICBtaW4td2lkdGg6IDIwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teGxfX19hR0x1aSB7XFxuICBtaW4td2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhsX19felFPdFQge1xcbiAgbWluLXdpZHRoOiAyOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4bF9fX0pldkRaIHtcXG4gIG1pbi13aWR0aDogMzJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS00eGxfX18xZTZOMSB7XFxuICBtaW4td2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNXhsX19fS3VtdG8ge1xcbiAgbWluLXdpZHRoOiA0MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTZ4bF9fX1lFa204IHtcXG4gIG1pbi13aWR0aDogNDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS03eGxfX192WDFGWSB7XFxuICBtaW4td2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOHhsX19fVmJRaGsge1xcbiAgbWluLXdpZHRoOiA1MnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTl4bF9fX2VVS1FpIHtcXG4gIG1pbi13aWR0aDogNTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0xMHhsX19fWm9OM04ge1xcbiAgbWluLXdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTExeGxfX19CTkZqQSB7XFxuICBtaW4td2lkdGg6IDY0cHg7XFxufVxcblxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1mdWxsX19fMW1waXoge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1zdHJldGNoX19fUnF3MDAge1xcbiAgd2lkdGg6IHN0cmV0Y2g7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS16ZXJvX19fSU5kVnYge1xcbiAgd2lkdGg6IDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTR4c19fX2RSVWhXIHtcXG4gIHdpZHRoOiAxcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS0zeHNfX19vUkoweiB7XFxuICB3aWR0aDogMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0teHhzX19fSHlsOVIge1xcbiAgd2lkdGg6IDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXhzX19fRzNqUXoge1xcbiAgd2lkdGg6IDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXNfX18tbXpxbSB7XFxuICB3aWR0aDogMTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLW1fX19tRVo3NyB7XFxuICB3aWR0aDogMTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLWxfX19xeUlONyB7XFxuICB3aWR0aDogMjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXhsX19fbU8yNUkge1xcbiAgd2lkdGg6IDI0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS14eGxfX19FR1FNcCB7XFxuICB3aWR0aDogMjhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0h1bDctIHtcXG4gIHdpZHRoOiAzMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tNHhsX19fek9QYlMge1xcbiAgd2lkdGg6IDM2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS01eGxfX194YnFuaSB7XFxuICB3aWR0aDogNDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTZ4bF9fX05tYmY5IHtcXG4gIHdpZHRoOiA0NHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tN3hsX19fQjBudncge1xcbiAgd2lkdGg6IDQ4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS04eGxfX19XMUhEUCB7XFxuICB3aWR0aDogNTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTl4bF9fX0tKTDhVIHtcXG4gIHdpZHRoOiA1NnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tMTB4bF9fXzk0ejE5IHtcXG4gIHdpZHRoOiA2MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tMTF4bF9fX2pCLUxuIHtcXG4gIHdpZHRoOiA2NHB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1heC13aWR0aC0tZnVsbFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWZ1bGxfX19ub0lrVFwiLFwibWF4LXdpZHRoLS1jb250ZW50XCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tY29udGVudF9fX3lrc1VyXCIsXCJtYXgtd2lkdGgtLXplcm9cIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS16ZXJvX19fOE5VRjFcIixcIm1heC13aWR0aC0tNHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNHhzX19fZ0hsTElcIixcIm1heC13aWR0aC0tM3hzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tM3hzX19fcmRvUDhcIixcIm1heC13aWR0aC0teHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhzX19famxwOHZcIixcIm1heC13aWR0aC0teHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14c19fX2tRc1d4XCIsXCJtYXgtd2lkdGgtLXNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1zX19fTWdHYXpcIixcIm1heC13aWR0aC0tbVwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLW1fX19hRnpTY1wiLFwibWF4LXdpZHRoLS1sXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tbF9fX2lLbGFIXCIsXCJtYXgtd2lkdGgtLXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0teGxfX180elVkQ1wiLFwibWF4LXdpZHRoLS14eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14eGxfX181OHozUFwiLFwibWF4LXdpZHRoLS0zeGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0zeGxfX18yWVhuSFwiLFwibWF4LXdpZHRoLS00eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eGxfX19qRko5VlwiLFwibWF4LXdpZHRoLS01eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS01eGxfX183LVZRR1wiLFwibWF4LXdpZHRoLS02eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS02eGxfX19QUzM3SlwiLFwibWF4LXdpZHRoLS03eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS03eGxfX19zU0J3a1wiLFwibWF4LXdpZHRoLS04eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS04eGxfX19WM0lIeVwiLFwibWF4LXdpZHRoLS05eGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS05eGxfX180VldFTVwiLFwibWF4LXdpZHRoLS0xMHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tMTB4bF9fX3o5N1RRXCIsXCJtYXgtd2lkdGgtLTExeGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMXhsX19fanhlblhcIixcIm1pbi13aWR0aFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGhfX19xbmxZQ1wiLFwibWluLXdpZHRoLS1maXRcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1maXRfX18yVy1URFwiLFwibWluLXdpZHRoLS16ZXJvXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0temVyb19fXzk0MjlTXCIsXCJtaW4td2lkdGgtLTR4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4c19fXzNUR00tXCIsXCJtaW4td2lkdGgtLTN4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4c19fX1I2ajMyXCIsXCJtaW4td2lkdGgtLXh4c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXh4c19fX3ZqS2RDXCIsXCJtaW4td2lkdGgtLXhzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHNfX19WLUwxc1wiLFwibWluLXdpZHRoLS1zXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tc19fX2RJZlptXCIsXCJtaW4td2lkdGgtLW1cIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1tX19fSkg1SVBcIixcIm1pbi13aWR0aC0tbFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWxfX19HZ2tFOFwiLFwibWluLXdpZHRoLS14bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXhsX19fYUdMdWlcIixcIm1pbi13aWR0aC0teHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhsX19felFPdFRcIixcIm1pbi13aWR0aC0tM3hsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hsX19fSmV2RFpcIixcIm1pbi13aWR0aC0tNHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNHhsX19fMWU2TjFcIixcIm1pbi13aWR0aC0tNXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNXhsX19fS3VtdG9cIixcIm1pbi13aWR0aC0tNnhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNnhsX19fWUVrbThcIixcIm1pbi13aWR0aC0tN3hsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tN3hsX19fdlgxRllcIixcIm1pbi13aWR0aC0tOHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOHhsX19fVmJRaGtcIixcIm1pbi13aWR0aC0tOXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOXhsX19fZVVLUWlcIixcIm1pbi13aWR0aC0tMTB4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTEweGxfX19ab04zTlwiLFwibWluLXdpZHRoLS0xMXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tMTF4bF9fX0JORmpBXCIsXCJ3aWR0aC0tZnVsbFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tZnVsbF9fXzFtcGl6XCIsXCJ3aWR0aC0tc3RyZXRjaFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tc3RyZXRjaF9fX1JxdzAwXCIsXCJ3aWR0aC0temVyb1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0temVyb19fX0lOZFZ2XCIsXCJ3aWR0aC0tNHhzXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS00eHNfX19kUlVoV1wiLFwid2lkdGgtLTN4c1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tM3hzX19fb1JKMHpcIixcIndpZHRoLS14eHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXh4c19fX0h5bDlSXCIsXCJ3aWR0aC0teHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXhzX19fRzNqUXpcIixcIndpZHRoLS1zXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1zX19fLW16cW1cIixcIndpZHRoLS1tXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1tX19fbUVaNzdcIixcIndpZHRoLS1sXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1sX19fcXlJTjdcIixcIndpZHRoLS14bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teGxfX19tTzI1SVwiLFwid2lkdGgtLXh4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teHhsX19fRUdRTXBcIixcIndpZHRoLS0zeGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0h1bDctXCIsXCJ3aWR0aC0tNHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS00eGxfX196T1BiU1wiLFwid2lkdGgtLTV4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tNXhsX19feGJxbmlcIixcIndpZHRoLS02eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTZ4bF9fX05tYmY5XCIsXCJ3aWR0aC0tN3hsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS03eGxfX19CMG52d1wiLFwid2lkdGgtLTh4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tOHhsX19fVzFIRFBcIixcIndpZHRoLS05eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTl4bF9fX0tKTDhVXCIsXCJ3aWR0aC0tMTB4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tMTB4bF9fXzk0ejE5XCIsXCJ3aWR0aC0tMTF4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tMTF4bF9fX2pCLUxuXCJ9OyIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMSBmcm9tICcuL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMiBmcm9tICcuL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvYm9yZGVyL2JvcmRlci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU2IGZyb20gJy4vcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNyBmcm9tICcuL3BsdWdpbnMvY3Vyc29yL2N1cnNvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU5IGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcmFnZ2FibGUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTEwIGZyb20gJy4vcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTExIGZyb20gJy4vcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2ZsZXgvZmxleC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTQgZnJvbSAnLi9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTUgZnJvbSAnLi9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNiBmcm9tICcuL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTcgZnJvbSAnLi9wbHVnaW5zL2dyaWQvZ3JpZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTggZnJvbSAnLi9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE5IGZyb20gJy4vcGx1Z2lucy9oaWRkZW4vaGlkZGVuLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMCBmcm9tICcuL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIxIGZyb20gJy4vcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMiBmcm9tICcuL3BsdWdpbnMvbWFyZ2luL21hcmdpbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjMgZnJvbSAnLi9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyNCBmcm9tICcuL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjUgZnJvbSAnLi9wbHVnaW5zL29mZnNldC9vZmZzZXQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI2IGZyb20gJy4vcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI3IGZyb20gJy4vcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvdy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjggZnJvbSAnLi9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjkgZnJvbSAnLi9wbHVnaW5zL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzAgZnJvbSAnLi9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMSBmcm9tICcuL3BsdWdpbnMvdGV4dC1hbGlnbi90ZXh0LWFsaWduLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMiBmcm9tICcuL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMyBmcm9tICcuL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzNCBmcm9tICcuL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzNSBmcm9tICcuL3BsdWdpbnMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzYgZnJvbSAnLi9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTUsbW9kdWxlMTYsbW9kdWxlMTcsbW9kdWxlMTgsbW9kdWxlMTksbW9kdWxlMjAsbW9kdWxlMjEsbW9kdWxlMjIsbW9kdWxlMjMsbW9kdWxlMjQsbW9kdWxlMjUsbW9kdWxlMjYsbW9kdWxlMjcsbW9kdWxlMjgsbW9kdWxlMjksbW9kdWxlMzAsbW9kdWxlMzEsbW9kdWxlMzIsbW9kdWxlMzMsbW9kdWxlMzQsbW9kdWxlMzUsbW9kdWxlMzZdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYm9yZGVyL2JvcmRlci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvY3Vyc29yL2N1cnNvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcmFnZ2FibGUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZmFkZWQvZmFkZWQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9mb250L2ZvbnQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzJywncGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzJywncGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb2Zmc2V0L29mZnNldC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb3V0bGluZS9vdXRsaW5lLm1vZHVsZS5zY3NzJywncGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvdy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzJywncGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzJywncGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3RpbnQvdGludC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzJywncGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzJ11cbiIsICJpbXBvcnQgdHlwZSB7IFR1cGxlIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuLyogYzggaWdub3JlIHN0YXJ0ICovXG5leHBvcnQgdHlwZSBUU2hpcnRTaXplID1cbiAgfCBcInplcm9cIlxuICB8IGAke1JhbmdlPDMsIDQ+fXhzYFxuICB8IFwieHhzXCJcbiAgfCBcInhzXCJcbiAgfCBcInNcIlxuICB8IFwibVwiXG4gIHwgXCJsXCJcbiAgfCBcInhsXCJcbiAgfCBcInh4bFwiXG4gIHwgYCR7UmFuZ2U8MywgMTE+fXhsYDtcblxuZXhwb3J0IHR5cGUgUmFuZ2U8U3RhcnQgZXh0ZW5kcyBudW1iZXIsIEVuZCBleHRlbmRzIG51bWJlcj4gPSBSYW5nZUltcGw8U3RhcnQsIEVuZD47XG50eXBlIFJhbmdlSW1wbDxcbiAgU3RhcnQgZXh0ZW5kcyBudW1iZXIsXG4gIEVuZCBleHRlbmRzIG51bWJlcixcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0NvbmZ1c2luZ1ZvaWRUeXBlOiByZXF1aXJlZCBmb3IgdGhlIGJ1aWxkIHRvIHBhc3NcbiAgVCBleHRlbmRzIHZvaWRbXSA9IFR1cGxlPHZvaWQsIFN0YXJ0Pixcbj4gPSBFbmQgZXh0ZW5kcyBUW1wibGVuZ3RoXCJdID8gRW5kIDogVFtcImxlbmd0aFwiXSB8IFJhbmdlSW1wbDxTdGFydCwgRW5kLCBbdW5kZWZpbmVkLCAuLi5UXT47XG5cbi8qIGM4IGlnbm9yZSBlbmQgKi9cblxuLyoqIFRoZSBiYXNlIHVuaXQgKGluIHBpeGVscykgdGhlIHQtc2hpcnQgc2NhbGUgaXMgYnVpbHQgb24uIE1pcnJvcnMgYCR1bml0YCBpbiBgc2l6ZXMuc2Nzc2AuICovXG5leHBvcnQgY29uc3Qgc2l6ZVVuaXRJblBpeGVscyA9IDQ7XG5cbi8vIE11bHRpcGxpZXIgcGVyIHNpemUsIG1pcnJvcmluZyB0aGUgYCRzaXplc2AgbWFwIGluIGBzaXplcy5zY3NzYC4gS2VlcCB0aGUgdHdvIGluIHN5bmMuXG5jb25zdCBzaXplTXVsdGlwbGllcnM6IFJlY29yZDxUU2hpcnRTaXplLCBudW1iZXI+ID0ge1xuICB6ZXJvOiAwLFxuICBcIjR4c1wiOiAxIC8gNCxcbiAgXCIzeHNcIjogMSAvIDIsXG4gIHh4czogMSxcbiAgeHM6IDIsXG4gIHM6IDMsXG4gIG06IDQsXG4gIGw6IDUsXG4gIHhsOiA2LFxuICB4eGw6IDcsXG4gIFwiM3hsXCI6IDgsXG4gIFwiNHhsXCI6IDksXG4gIFwiNXhsXCI6IDEwLFxuICBcIjZ4bFwiOiAxMSxcbiAgXCI3eGxcIjogMTIsXG4gIFwiOHhsXCI6IDEzLFxuICBcIjl4bFwiOiAxNCxcbiAgXCIxMHhsXCI6IDE1LFxuICBcIjExeGxcIjogMTYsXG59O1xuXG4vKipcbiAqIFRoZSBwaXhlbCBsZW5ndGggb2YgYSB0LXNoaXJ0IHNpemUgXHUyMDE0IHRoZSBzYW1lIHZhbHVlIHRoZSBgJHNpemVgL2Akd2lkdGhgL2AkaGVpZ2h0YFxuICogY2xhc3NlcyByZXNvbHZlIHRvIGluIENTUy4gVXNlIHdoZW4gYSBsZW5ndGggaXMgbmVlZGVkIHJhdGhlciB0aGFuIGEgc2l6aW5nIGNsYXNzLFxuICogZS5nLiB0byBkcml2ZSBhbiBpY29uIGZvbnQncyBgZm9udC1zaXplYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHRTaGlydFNpemVJblBpeGVscyA9IChzaXplOiBUU2hpcnRTaXplKTogbnVtYmVyID0+IHNpemVVbml0SW5QaXhlbHMgKiBzaXplTXVsdGlwbGllcnNbc2l6ZV07XG4iLCAiLyogYzggaWdub3JlIHN0YXJ0ICovXG5pbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBmbGV4UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mbGV4L2ZsZXhcIjtcbmltcG9ydCB7IGdyaWRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuaW1wb3J0IHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHdpZHRoUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy93aWR0aC93aWR0aFwiO1xuaW1wb3J0IHsgcGFkZGluZ1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGhlaWdodFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaGVpZ2h0L2hlaWdodFwiO1xuaW1wb3J0IHsgYm9yZGVyUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ib3JkZXIvYm9yZGVyXCI7XG5pbXBvcnQgeyBmb250UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGNvbG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuaW1wb3J0IHsgYmFja2dyb3VuZENvbG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGdyYWRpZW50UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBkcmFnZ2FibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZVwiO1xuaW1wb3J0IHsgZHJvcHBhYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcm9wcGFibGVcIjtcbmltcG9ydCB7IG9ic2VydmVyIH0gZnJvbSBcIm1vYngtcmVhY3RcIjtcbmltcG9ydCB7IHRvb2x0aXBQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuaW1wb3J0IHsgdHJhbnNpdGlvblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5pbXBvcnQgeyBvZmZzZXRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL29mZnNldC9vZmZzZXRcIjtcbmltcG9ydCB7IG9mZnNldENoaWxkcmVuUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuXCI7XG5pbXBvcnQgeyBoaWRkZW5QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hpZGRlbi9oaWRkZW5cIjtcbmltcG9ydCB7IG5vUG9pbnRlckV2ZW50c1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IG1hcmdpblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvbWFyZ2luL21hcmdpblwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlXCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYWJzb2x1dGUvYWJzb2x1dGVcIjtcbmltcG9ydCB7IHZpc3VhbGx5SGlkZGVuUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuXCI7XG5pbXBvcnQgeyBob3ZlcmFibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmFibGUtYnktZHJhZ2dpbmdcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5pbXBvcnQgeyBvdmVyZmxvd1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb3ZlcmZsb3cvb3ZlcmZsb3dcIjtcbmltcG9ydCB7IGZsZXhDaGlsZFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkXCI7XG5pbXBvcnQgeyBncmF5c2NhbGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2dyYXlzY2FsZS9ncmF5c2NhbGVcIjtcbmltcG9ydCB7IHRpbnRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3RpbnQvdGludFwiO1xuaW1wb3J0IHsgZmFkZWRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5pbXBvcnQgeyBlbmFibGVkUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9lbmFibGVkL2VuYWJsZWRcIjtcbmltcG9ydCB7IGZvY3VzYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZVwiO1xuaW1wb3J0IHsgYXJlYVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYXJlYS9hcmVhXCI7XG5pbXBvcnQgeyBhcmVhQ29udGVudFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudFwiO1xuaW1wb3J0IHsgc2l6ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvc2l6ZS9zaXplXCI7XG5pbXBvcnQgeyBjdXJzb3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2N1cnNvci9jdXJzb3JcIjtcbmltcG9ydCB7IGNsaWNrYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHsgcmVmUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9yZWYvcmVmXCI7XG5pbXBvcnQgeyBkaXNwbGF5Q29udGVudHNQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuaW1wb3J0IHsgdGV4dEFsaWduUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ25cIjtcbmltcG9ydCB7IGJsb2NrUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ibG9jay9ibG9ja1wiO1xuaW1wb3J0IHsgb3V0bGluZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb3V0bGluZS9vdXRsaW5lXCI7XG5pbXBvcnQgeyBpbnRlcmFjdGl2ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmltcG9ydCB7IHBvcG92ZXJQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuaW1wb3J0IHsgZmxvYXRpbmdQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nXCI7XG5pbXBvcnQgeyBpbnZpc2libGVCYWNrZHJvcFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcFwiO1xuaW1wb3J0IHsgb25PdXRzaWRlQ2xpY2tQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL29uLW91dHNpZGUtY2xpY2svb24tb3V0c2lkZS1jbGlja1wiO1xuaW1wb3J0IHsgZHJvcERvd25NZW51UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuaW1wb3J0IHsgYW5jaG9yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hbmNob3IvYW5jaG9yXCI7XG5cbmV4cG9ydCBjb25zdCBzaGFyZWRQbHVnaW5zID0gW1xuICAvLyBDb250cmlidXRlcyBwcm9wcyBvZiBpdHMgb3duLCBzbyBpdCBoYXMgdG8gcnVuIGJlZm9yZSB0aGUgcGx1Z2lucyB0aGF0IHJlc29sdmUgdGhlbS5cbiAgYW5jaG9yUGx1Z2luLFxuICBzaXplUGx1Z2luLFxuICBkcmFnZ2FibGVQbHVnaW4sXG4gIHRleHRBbGlnblBsdWdpbixcbiAgZHJvcHBhYmxlUGx1Z2luLFxuICBhcmVhUGx1Z2luLFxuICBhcmVhQ29udGVudFBsdWdpbixcbiAgZmxleFBsdWdpbixcbiAgZ3JpZFBsdWdpbixcbiAgd2lkdGhQbHVnaW4sXG4gIGhlaWdodFBsdWdpbixcbiAgZmxleENoaWxkUGx1Z2luLFxuICBvdmVyZmxvd1BsdWdpbixcbiAgcGFkZGluZ1BsdWdpbixcbiAgbWFyZ2luUGx1Z2luLFxuICBibG9ja1BsdWdpbixcbiAgYm94U2hhZG93UGx1Z2luLFxuICBib3JkZXJQbHVnaW4sXG4gIG91dGxpbmVQbHVnaW4sXG4gIGludGVyYWN0aXZlUGx1Z2luLFxuICBmb250UGx1Z2luLFxuICBjb2xvclBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBncmFkaWVudFBsdWdpbixcbiAgZ3JheXNjYWxlUGx1Z2luLFxuICB0aW50UGx1Z2luLFxuICBmYWRlZFBsdWdpbixcbiAgc3R5bGVQbHVnaW4sXG4gIHRyYW5zaXRpb25QbHVnaW4sXG4gIG9mZnNldFBsdWdpbixcbiAgb2Zmc2V0Q2hpbGRyZW5QbHVnaW4sXG4gIGhpZGRlblBsdWdpbixcbiAgbm9Qb2ludGVyRXZlbnRzUGx1Z2luLFxuICBpbnZpc2libGVCYWNrZHJvcFBsdWdpbixcbiAgdmlzdWFsbHlIaWRkZW5QbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY3Vyc29yUGx1Z2luLFxuICBkaXNwbGF5Q29udGVudHNQbHVnaW4sXG4gIG9uT3V0c2lkZUNsaWNrUGx1Z2luLFxuICBjbGFzc05hbWVQbHVnaW4sXG5dO1xuXG5jb25zdCBzaGFyZWRDbGlja2FibGVQbHVnaW5zID0gW2Ryb3BEb3duTWVudVBsdWdpbiwgcG9wb3ZlclBsdWdpbiwgZW5hYmxlZFBsdWdpbiwgY2xpY2thYmxlUGx1Z2luXTtcblxuZXhwb3J0IGNvbnN0IGdldFNoYXJlZFR5cGVkUGx1Z2lucyA9IDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4gW1xuICAuLi5nZXRTaGFyZWRDaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxUPigpLFxuICAuLi5nZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxUPigpLFxuXTtcblxuY29uc3QgZ2V0U2hhcmVkQ2hpbGRyZW5BZGRpbmdUeXBlZFBsdWdpbnMgPSA8VCBleHRlbmRzIEhUTUxFbGVtZW50PigpID0+IFt0b29sdGlwUGx1Z2luPFQ+KCksIGZsb2F0aW5nUGx1Z2luPFQ+KCldO1xuXG5jb25zdCBnZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2lucyA9IDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4gW1xuICBob3ZlcmFibGVQbHVnaW48VD4oKSxcbiAgaG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpbjxUPigpLFxuICBmb2N1c2FibGVQbHVnaW48VD4oKSxcbiAgcmVmUGx1Z2luPFQ+KCksXG5dO1xuXG5leHBvcnQgY29uc3QgRGl2ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTERpdkVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IHR5cGUgRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgRGl2PjtcblxuLy8gVXNlIGRpdiBhcyBuZXV0cmFsIHRlbXBsYXRlIGZvciB3aGF0IGNvbW1vbiBwcm9wcyBzaG91bGQgbG9vayBsaWtlXG5leHBvcnQgY29uc3QgQ29tbW9uID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8YW55PigpKSk7XG5leHBvcnQgdHlwZSBDb21tb25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDb21tb24+O1xuXG5leHBvcnQgY29uc3QgU3ZnID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcInN2Z1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IHR5cGUgU3ZnUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgU3ZnPjtcblxuZXhwb3J0IGNvbnN0IElucHV0ID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXG4gICAgXCJpbnB1dFwiLFxuICAgIGVuYWJsZWRQbHVnaW4sXG4gICAgLi4uc2hhcmVkUGx1Z2lucyxcbiAgICAuLi5nZXRTaGFyZWROb25DaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2luczxIVE1MSW5wdXRFbGVtZW50PigpLFxuICApLFxuKTtcbmV4cG9ydCB0eXBlIElucHV0UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSW5wdXQ+O1xuXG5leHBvcnQgY29uc3QgVGV4dEFyZWEgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRleHRhcmVhXCIsIGVuYWJsZWRQbHVnaW4sIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGV4dEFyZWFFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBUZXh0QXJlYVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRleHRBcmVhPjtcblxuZXhwb3J0IGNvbnN0IEZvcm0gPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImZvcm1cIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxGb3JtRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgRm9ybVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEZvcm0+O1xuXG5leHBvcnQgY29uc3QgU3BhbiA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwic3BhblwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFNwYW5FbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBTcGFuUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgU3Bhbj47XG5cbmV4cG9ydCBjb25zdCBDbGlja2FibGVEaXYgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImRpdlwiLCAuLi5zaGFyZWRDbGlja2FibGVQbHVnaW5zLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTERpdkVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIENsaWNrYWJsZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENsaWNrYWJsZURpdj47XG5cbmV4cG9ydCBjb25zdCBJID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImlcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBJUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgST47XG5cbmV4cG9ydCBjb25zdCBBID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImFcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxBbmNob3JFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBBUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQT47XG5cbmV4cG9ydCBjb25zdCBCdXR0b24gPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcbiAgICBcImJ1dHRvblwiLFxuICAgIC4uLnNoYXJlZENsaWNrYWJsZVBsdWdpbnMsXG4gICAgLi4uc2hhcmVkUGx1Z2lucyxcbiAgICAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEJ1dHRvbkVsZW1lbnQ+KCksXG4gICksXG4pO1xuZXhwb3J0IHR5cGUgQnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQnV0dG9uPjtcblxuZXhwb3J0IGNvbnN0IENvZGUgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiY29kZVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIENvZGVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDb2RlPjtcblxuZXhwb3J0IGNvbnN0IExhYmVsID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImxhYmVsXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgTGFiZWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBMYWJlbD47XG5cbmV4cG9ydCBjb25zdCBQcmUgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwicHJlXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MUHJlRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgUHJlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgUHJlPjtcblxuZXhwb3J0IGNvbnN0IE5hdiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJuYXZcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBOYXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBOYXY+O1xuXG5leHBvcnQgY29uc3QgSDEgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDFcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDFQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIMT47XG5cbmV4cG9ydCBjb25zdCBIMiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoMlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBIMlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEgyPjtcblxuZXhwb3J0IGNvbnN0IEgzID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImgzXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEgzUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDM+O1xuXG5leHBvcnQgY29uc3QgSDQgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDRcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIND47XG5cbmV4cG9ydCBjb25zdCBINSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoNVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBINVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEg1PjtcblxuZXhwb3J0IGNvbnN0IEg2ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImg2XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEg2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDY+O1xuXG5leHBvcnQgY29uc3QgT2wgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwib2xcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxPTGlzdEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIE9sUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgT2w+O1xuXG5leHBvcnQgY29uc3QgVWwgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwidWxcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxVTGlzdEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIFVsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVWw+O1xuXG5leHBvcnQgY29uc3QgTGkgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwibGlcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxMSUVsZW1lbnQ+KCkpKTtcblxuZXhwb3J0IGNvbnN0IENsaWNrYWJsZUxpID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJsaVwiLCAuLi5zaGFyZWRDbGlja2FibGVQbHVnaW5zLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTExJRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgQ2xpY2thYmxlTGlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDbGlja2FibGVMaT47XG5leHBvcnQgdHlwZSBMaVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIExpPjtcblxuZXhwb3J0IGNvbnN0IFAgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwicFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFBhcmFncmFwaEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIFBQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBQPjtcblxuZXhwb3J0IGNvbnN0IFRoID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0aFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCkpLFxuKTtcblxuZXhwb3J0IHR5cGUgVGhQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUaD47XG5cbmV4cG9ydCBjb25zdCBUZCA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGRcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZUNlbGxFbGVtZW50PigpKSxcbik7XG5cbmV4cG9ydCB0eXBlIFRkUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVGQ+O1xuXG5leHBvcnQgY29uc3QgVHIgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRyXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVSb3dFbGVtZW50PigpKSxcbik7XG5cbmV4cG9ydCB0eXBlIFRyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVHI+O1xuXG5leHBvcnQgY29uc3QgVGFibGUgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRhYmxlXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBUYWJsZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRhYmxlPjtcblxuZXhwb3J0IGNvbnN0IFRCb2R5ID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0Ym9keVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFRCb2R5UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVEJvZHk+O1xuXG5leHBvcnQgY29uc3QgRGlhbG9nID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJkaWFsb2dcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxEaWFsb2dFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBEaWFsb2dQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBEaWFsb2c+O1xuXG5leHBvcnQgY29uc3QgQ2FudmFzID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJjYW52YXNcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxDYW52YXNFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBDYW52YXNQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDYW52YXM+O1xuXG5leHBvcnQgY29uc3QgSW1nID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImltZ1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEltYWdlRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSW1nUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSW1nPjtcblxuLyogYzggaWdub3JlIGVuZCAqL1xuIiwgImltcG9ydCBmbGV4U3R5bGVzIGZyb20gXCIuL2ZsZXgubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBIb3Jpem9udGFsRmxleFByb3BzID0ge1xuICBkaXJlY3Rpb24/OiBcImhvcml6b250YWxcIiB8IFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiO1xuXG4gIGhvcml6b250YWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInNwYWNlLWJldHdlZW5cIiB8IFwic3BhY2UtYXJvdW5kXCIgfCBcImxlZnRcIiB8IFwicmlnaHRcIjtcbiAgdmVydGljYWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInN0cmV0Y2hcIiB8IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxuZXhwb3J0IHR5cGUgVmVydGljYWxGbGV4UHJvcHMgPSB7XG4gIGRpcmVjdGlvbj86IFwidmVydGljYWxcIiB8IFwidmVydGljYWwtcmV2ZXJzZWRcIjtcblxuICBob3Jpem9udGFsQWxpZ24/OiBcImNlbnRlclwiIHwgXCJzdHJldGNoXCIgfCBcImxlZnRcIiB8IFwicmlnaHRcIjtcbiAgdmVydGljYWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInNwYWNlLWJldHdlZW5cIiB8IFwic3BhY2UtYXJvdW5kXCIgfCBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbmV4cG9ydCB0eXBlIE1heGltYWxGbGV4UHJvcHMgPSAoSG9yaXpvbnRhbEZsZXhQcm9wcyB8IFZlcnRpY2FsRmxleFByb3BzKSAmIHtcbiAgZ2FwPzogVFNoaXJ0U2l6ZSB8IHsgcm93PzogVFNoaXJ0U2l6ZTsgY29sdW1uPzogVFNoaXJ0U2l6ZSB9O1xuICB3cmFwPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpbXBsZUZsZXhQcm9wID0gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgRmxleFBsdWdpblByb3BzID0geyAkZmxleD86IFNpbXBsZUZsZXhQcm9wIHwgTWF4aW1hbEZsZXhQcm9wcyB9O1xuXG5leHBvcnQgY29uc3QgZmxleFBsdWdpbiA9IGdldFBsdWdpbjxGbGV4UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGZsZXggfSA9IHByb3BzO1xuXG4gIGlmICghJGZsZXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGZsZXg6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGRpcmVjdGlvbiA9IFwiaG9yaXpvbnRhbFwiLFxuICAgIHZlcnRpY2FsQWxpZ24gPSBcIlwiLFxuICAgIGhvcml6b250YWxBbGlnbiA9IFwiXCIsXG4gICAgZ2FwID0gdW5kZWZpbmVkLFxuICAgIHdyYXAsXG4gIH0gPSAkZmxleCA9PT0gdHJ1ZSA/IHt9IDogJGZsZXg7XG5cbiAgY29uc3QgaG9yaXpvbnRhbEFsaWduUHJvcHMgPSB7XG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3RyZXRjaFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiY2VudGVyXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJib3R0b21cIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzcGFjZS1hcm91bmRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlbmBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInNwYWNlLWJldHdlZW5cIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0YF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIikgfHxcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiKSxcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsLXJldmVyc2VkXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIiksXG4gIH07XG5cbiAgY29uc3QgdmVydGljYWxBbGlnblByb3BzID0ge1xuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3BhY2UtYXJvdW5kXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5gXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3BhY2UtYmV0d2VlblwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiY2VudGVyXCIsXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwidmVydGljYWxcIiAmJiB2ZXJ0aWNhbEFsaWduID09PSBcInRvcFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbC1yZXZlcnNlZFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIpLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kYF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsLXJldmVyc2VkXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIiksXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwiY2VudGVyXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcImxlZnRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInJpZ2h0XCIsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBmbGV4U3R5bGVzLmZsZXgsXG4gICAgICBmbGV4U3R5bGVzW2BmbGV4X19kaXJlY3Rpb24tLSR7ZGlyZWN0aW9ufWBdLFxuXG4gICAgICBbXCJob3Jpem9udGFsXCIsIFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiXS5pbmNsdWRlcyhkaXJlY3Rpb24pID8gaG9yaXpvbnRhbEFsaWduUHJvcHMgOiB2ZXJ0aWNhbEFsaWduUHJvcHMsXG5cbiAgICAgIHR5cGVvZiBnYXAgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLSR7Z2FwfWBdXG4gICAgICAgIDogZ2FwXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGdhcC5jb2x1bW4gPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLWNvbHVtbi0tJHtnYXAuY29sdW1ufWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBnYXAucm93ID8gZmxleFN0eWxlc1tgZmxleF9fZ2FwLS1yb3ctLSR7Z2FwLnJvd31gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHdyYXAgJiYgZmxleFN0eWxlc1tgZmxleF9fd3JhcC0td3JhcGBdLFxuXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIF0sXG5cbiAgICAkZmxleDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IGdyaWRTdHlsZXMgZnJvbSBcIi4vZ3JpZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIEdyaWRDb2x1bW5zID0gMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuXG5leHBvcnQgdHlwZSBHcmlkUHJvcHMgPSB7XG4gIGNvbHVtbnM6IEdyaWRDb2x1bW5zO1xuICBnYXA/OiBUU2hpcnRTaXplIHwgeyByb3c/OiBUU2hpcnRTaXplOyBjb2x1bW4/OiBUU2hpcnRTaXplIH07XG4gIGFsaWduSXRlbXM/OiBcInN0cmV0Y2hcIiB8IFwiY2VudGVyXCIgfCBcInN0YXJ0XCIgfCBcImVuZFwiO1xufTtcblxuZXhwb3J0IHR5cGUgR3JpZFBsdWdpblByb3BzID0geyAkZ3JpZD86IEdyaWRQcm9wcyB9O1xuXG5leHBvcnQgY29uc3QgZ3JpZFBsdWdpbiA9IGdldFBsdWdpbjxHcmlkUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGdyaWQgfSA9IHByb3BzO1xuXG4gIGlmICghJGdyaWQpIHtcbiAgICByZXR1cm4geyAkZ3JpZDogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB7IGNvbHVtbnMsIGdhcCwgYWxpZ25JdGVtcyB9ID0gJGdyaWQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBncmlkU3R5bGVzLmdyaWQsXG4gICAgICBncmlkU3R5bGVzW2BncmlkX19jb2x1bW5zLS0ke2NvbHVtbnN9YF0sXG4gICAgICBhbGlnbkl0ZW1zID8gZ3JpZFN0eWxlc1tgZ3JpZF9fYWxpZ25JdGVtcy0tJHthbGlnbkl0ZW1zfWBdIDogdW5kZWZpbmVkLFxuXG4gICAgICB0eXBlb2YgZ2FwID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS0ke2dhcH1gXVxuICAgICAgICA6IGdhcFxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICBnYXAuY29sdW1uID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS1jb2x1bW4tLSR7Z2FwLmNvbHVtbn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgZ2FwLnJvdyA/IGdyaWRTdHlsZXNbYGdyaWRfX2dhcC0tcm93LS0ke2dhcC5yb3d9YF0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG5cbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgXSxcblxuICAgICRncmlkOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgd2lkdGhTdHlsZXMgZnJvbSBcIi4vd2lkdGgubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG4vKiogQSBzaGFyZSBvZiB0aGUgcGFyZW50J3Mgd2lkdGgsIGUuZy4gYFwiMzAlXCJgLCBmb3IgbGF5b3V0cyB0aGF0IGRpdmlkZSBhIHJvdyByYXRoZXIgdGhhbiBzaXplIGEgYm94LiAqL1xuZXhwb3J0IHR5cGUgUGVyY2VudGFnZSA9IGAke251bWJlcn0lYDtcblxuZXhwb3J0IHR5cGUgJFdpZHRoUHJvcHMgPSB7XG4gIHdpZHRoPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgXCJmaXRcIiB8IFBlcmNlbnRhZ2U7XG4gIG1heD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwiY29udGVudFwiIHwgUGVyY2VudGFnZTtcbn07XG5cbmV4cG9ydCB0eXBlIFdpZHRoUGx1Z2luUHJvcHMgPSB7ICR3aWR0aD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwic3RyZXRjaFwiIHwgUGVyY2VudGFnZSB8ICRXaWR0aFByb3BzIH07XG5cbmNvbnN0IGlzUGVyY2VudGFnZSA9ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdmFsdWUgaXMgUGVyY2VudGFnZSA9PiB2YWx1ZT8uZW5kc1dpdGgoXCIlXCIpID09PSB0cnVlO1xuXG5leHBvcnQgY29uc3Qgd2lkdGhQbHVnaW4gPSBnZXRQbHVnaW48V2lkdGhQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICR3aWR0aCwgJGNsYXNzTmFtZSwgJHN0eWxlIH0gPSBwcm9wcztcbiAgY29uc3QgeyB3aWR0aCwgbWluLCBtYXggfSA9IHR5cGVvZiAkd2lkdGggPT09IFwic3RyaW5nXCIgPyB7IHdpZHRoOiAkd2lkdGggfSA6ICgkd2lkdGggPz8ge30pO1xuICBjb25zdCBwZXJjZW50YWdlcyA9IHtcbiAgICAuLi4oaXNQZXJjZW50YWdlKHdpZHRoKSA/IHsgd2lkdGggfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1pbikgPyB7IG1pbldpZHRoOiBtaW4gfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1heCkgPyB7IG1heFdpZHRoOiBtYXggfSA6IHt9KSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHdpZHRoICYmICFpc1BlcmNlbnRhZ2Uod2lkdGgpID8gd2lkdGhTdHlsZXNbYHdpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWluICYmICFpc1BlcmNlbnRhZ2UobWluKSA/IHdpZHRoU3R5bGVzW2BtaW4td2lkdGgtLSR7bWlufWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWF4ICYmICFpc1BlcmNlbnRhZ2UobWF4KSA/IHdpZHRoU3R5bGVzW2BtYXgtd2lkdGgtLSR7bWF4fWBdIDogdW5kZWZpbmVkLFxuICAgICAgJGNsYXNzTmFtZSxcbiAgICBdLFxuICAgICRzdHlsZTogT2JqZWN0LmtleXMocGVyY2VudGFnZXMpLmxlbmd0aCA+IDAgPyB7IC4uLiRzdHlsZSwgLi4ucGVyY2VudGFnZXMgfSA6ICRzdHlsZSxcbiAgICAkd2lkdGg6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5leHBvcnQgdHlwZSBTdHlsZVBsdWdpblByb3BzID0geyAkc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzOyBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXMgfTtcblxuZXhwb3J0IGNvbnN0IHN0eWxlUGx1Z2luID0gZ2V0UGx1Z2luPFN0eWxlUGx1Z2luUHJvcHM+KChwcm9wcykgPT4ge1xuICAvKiBjOCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdCAkc3R5bGUgPSBwcm9wcy4kc3R5bGUgfHwge307XG5cbiAgY29uc3Qgc3R5bGUgPSBwcm9wcy5zdHlsZSB8fCB7fTtcblxuICByZXR1cm4ge1xuICAgIHN0eWxlOiB7IC4uLiRzdHlsZSwgLi4uc3R5bGUgfSxcbiAgICAkc3R5bGU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBoZWlnaHRTdHlsZXMgZnJvbSBcIi4vaGVpZ2h0Lm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi4vc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCB0eXBlIHsgUGVyY2VudGFnZSB9IGZyb20gXCIuLi93aWR0aC93aWR0aFwiO1xuXG5leHBvcnQgdHlwZSAkSGVpZ2h0UHJvcHMgPSB7XG4gIGhlaWdodD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwic3RyZXRjaFwiIHwgXCJhdXRvXCIgfCBQZXJjZW50YWdlO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgUGVyY2VudGFnZTtcbiAgbWF4PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgUGVyY2VudGFnZTtcbn07XG5cbmV4cG9ydCB0eXBlIEhlaWdodFBsdWdpblByb3BzID0geyAkaGVpZ2h0PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJhdXRvXCIgfCBcInN0cmV0Y2hcIiB8IFBlcmNlbnRhZ2UgfCAkSGVpZ2h0UHJvcHMgfTtcblxuY29uc3QgaXNQZXJjZW50YWdlID0gKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBQZXJjZW50YWdlID0+IHZhbHVlPy5lbmRzV2l0aChcIiVcIikgPT09IHRydWU7XG5cbmV4cG9ydCBjb25zdCBoZWlnaHRQbHVnaW4gPSBnZXRQbHVnaW48SGVpZ2h0UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkaGVpZ2h0LCAkc3R5bGUgfSA9IHByb3BzO1xuICBjb25zdCB7IGhlaWdodCwgbWluLCBtYXggfSA9IHR5cGVvZiAkaGVpZ2h0ID09PSBcInN0cmluZ1wiID8geyBoZWlnaHQ6ICRoZWlnaHQgfSA6ICgkaGVpZ2h0ID8/IHt9KTtcbiAgY29uc3QgcGVyY2VudGFnZXMgPSB7XG4gICAgLi4uKGlzUGVyY2VudGFnZShoZWlnaHQpID8geyBoZWlnaHQgfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1pbikgPyB7IG1pbkhlaWdodDogbWluIH0gOiB7fSksXG4gICAgLi4uKGlzUGVyY2VudGFnZShtYXgpID8geyBtYXhIZWlnaHQ6IG1heCB9IDoge30pLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgaGVpZ2h0ICYmICFpc1BlcmNlbnRhZ2UoaGVpZ2h0KSA/IGhlaWdodFN0eWxlc1tgaGVpZ2h0LS0ke2hlaWdodH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIG1pbiAmJiAhaXNQZXJjZW50YWdlKG1pbikgPyBoZWlnaHRTdHlsZXNbYG1pbi1oZWlnaHQtLSR7bWlufWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWF4ICYmICFpc1BlcmNlbnRhZ2UobWF4KSA/IGhlaWdodFN0eWxlc1tgbWF4LWhlaWdodC0tJHttYXh9YF0gOiB1bmRlZmluZWQsXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIF0sXG4gICAgJHN0eWxlOiBPYmplY3Qua2V5cyhwZXJjZW50YWdlcykubGVuZ3RoID4gMCA/IHsgLi4uJHN0eWxlLCAuLi5wZXJjZW50YWdlcyB9IDogJHN0eWxlLFxuICAgICRoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgY29sb3JTdHlsZXMgZnJvbSBcIi4vY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgVGV4dENvbG9yID0gQ29sb3IgfCBUZXh0Q29sb3JBbGlhcztcblxuZXhwb3J0IHR5cGUgJENvbG9yUHJvcHMgPSB7XG4gIHJlYWRvbmx5IG5vcm1hbD86IFRleHRDb2xvcjtcbiAgcmVhZG9ubHkgaG92ZXI/OiBUZXh0Q29sb3I7XG4gIHJlYWRvbmx5IGZvY3VzPzogVGV4dENvbG9yO1xuICByZWFkb25seSBkaXNhYmxlZD86IFRleHRDb2xvcjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbG9yUGx1Z2luUHJvcHMgPSB7IHJlYWRvbmx5ICRjb2xvcj86IFRleHRDb2xvciB8ICRDb2xvclByb3BzIH07XG5leHBvcnQgdHlwZSBUZXh0Q29sb3JBbGlhcyA9IGtleW9mIHR5cGVvZiBhbGlhc1RvTm9taW5hbDtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIHRleHRNdXRlZDogXCJncmV5MjVcIixcbiAgdGV4dERlZmF1bHQ6IFwiZ3JleTIwXCIsXG4gIHRleHRIaWdobGlnaHQ6IFwiZ3JleTEwXCIsXG59IGFzIGNvbnN0O1xuXG5jb25zdCBpc1RleHRDb2xvckFsaWFzID0gKGNvbG9yOiBUZXh0Q29sb3IpOiBjb2xvciBpcyBUZXh0Q29sb3JBbGlhcyA9PiBjb2xvciBpbiBhbGlhc1RvTm9taW5hbDtcblxuZXhwb3J0IGNvbnN0IGNvbG9yUGx1Z2luID0gZ2V0UGx1Z2luPENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGNsYXNzTmFtZSwgJGNvbG9yIH0gPSBwcm9wcztcbiAgY29uc3QgeyBub3JtYWwsIGhvdmVyLCBmb2N1cywgZGlzYWJsZWQgfSA9IHR5cGVvZiAkY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogJGNvbG9yIH0gOiAoJGNvbG9yID8/IHt9KTtcblxuICBjb25zdCBub3JtYWxDb2xvciA9IG5vcm1hbCA/IChpc1RleHRDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgaG92ZXJDb2xvciA9IGhvdmVyID8gKGlzVGV4dENvbG9yQWxpYXMoaG92ZXIpID8gYWxpYXNUb05vbWluYWxbaG92ZXJdIDogaG92ZXIpIDogdW5kZWZpbmVkO1xuICBjb25zdCBmb2N1c0NvbG9yID0gZm9jdXMgPyAoaXNUZXh0Q29sb3JBbGlhcyhmb2N1cykgPyBhbGlhc1RvTm9taW5hbFtmb2N1c10gOiBmb2N1cykgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGRpc2FibGVkQ29sb3IgPSBkaXNhYmxlZCA/IChpc1RleHRDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkKSA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgICRjbGFzc05hbWUsXG4gICAgICBub3JtYWxDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci0tJHtub3JtYWxDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGhvdmVyQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItZm9jdXMtLSR7Zm9jdXNDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGRpc2FibGVkQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItZGlzYWJsZWQtLSR7ZGlzYWJsZWRDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICBdLFxuICAgICRjb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBncmFkaWVudFN0eWxlcyBmcm9tIFwiLi9ncmFkaWVudC5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBHcmFkaWVudFBsdWdpblByb3BzID0geyAkZ3JhZGllbnQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBncmFkaWVudFBsdWdpbiA9IGdldFBsdWdpbjxHcmFkaWVudFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiRncmFkaWVudCA/IGdyYWRpZW50U3R5bGVzLmdyYWRpZW50IDogdW5kZWZpbmVkXSxcbiAgJGdyYWRpZW50OiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBhY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9kcmFnZ2FibGUubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBkcmFnZ2FibGVQbHVnaW4gPSBnZXRQbHVnaW48RHJhZ2dhYmxlUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGRyYWdnYWJsZSkge1xuICAgIHJldHVybiB7ICRkcmFnZ2FibGU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgW2RyYWdnaW5nLCBzZXREcmFnZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gPSBwcm9wcy4kZHJhZ2dhYmxlO1xuXG4gIGNvbnN0IGRyYWdnZWRJdGVtU3RhdGUgPSB1c2VTeW5jSW5qZWN0KGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlLCBjb250ZXh0KTtcblxuICByZXR1cm4ge1xuICAgIGRyYWdnYWJsZTogdHJ1ZSxcblxuICAgICR2aXN1YWxseUhpZGRlbjogZHJhZ2dpbmcsXG5cbiAgICBvbkRyYWdTdGFydDogYWN0aW9uKChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSBcIm1vdmVcIjtcblxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25EcmFnU3RhcnQ/LihldmVudCk7XG5cbiAgICAgIG1ha2VDaHJvbWl1bU5vdEdsaXRjaFdoZW5EcmFnZ2luZyhldmVudCk7XG5cbiAgICAgIGRyYWdnZWRJdGVtU3RhdGUuc2V0KGl0ZW0pO1xuXG4gICAgICAvLyBEb24ndCBzZXQgZHJhZ2dpbmcgdG9vIGVhcmx5LCBiZWNhdXNlIGl0IHdvdWxkIGhpZGUgdGhlIFwiZHJhZyBwcmV2aWV3XCIgZm9yIGVsZW1lbnQgYmVpbmcgZHJhZ2dlZC5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXREcmFnZ2luZyh0cnVlKTtcbiAgICAgIH0sIDApO1xuICAgIH0pLFxuXG4gICAgb25EcmFnRW5kOiBhY3Rpb24oKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyYWdFbmQ/LihldmVudCk7XG5cbiAgICAgIGRyYWdnZWRJdGVtU3RhdGUuc2V0KHVuZGVmaW5lZCk7XG4gICAgICBzZXREcmFnZ2luZyhmYWxzZSk7XG4gICAgfSksXG5cbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgc3R5bGVzLmRyYWdnYWJsZV0sXG5cbiAgICAkZHJhZ2dhYmxlOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3QgbWFrZUNocm9taXVtTm90R2xpdGNoV2hlbkRyYWdnaW5nID0gKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKFwidGV4dC9wbGFpblwiLCBcInN0dWItZGF0YS10by1maXgtY2hyb21pdW1cIik7XG59O1xuIiwgImltcG9ydCB7IGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9kcmFnZ2VkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IG1ha2VTdXJlRHJhZ0FuZERyb3BFdmVudHNIYXZlVGltZVRvSGFwcGVuSW5qZWN0YWJsZSB9IGZyb20gXCIuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgRHJvcHBhYmxlUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9nZXQtZHJhZ2dhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGRyb3BwYWJsZVBsdWdpbiA9IGdldFBsdWdpbjxEcm9wcGFibGVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGRyb3BwYWJsZSkge1xuICAgIHJldHVybiB7ICRkcm9wcGFibGU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgeyBjb250ZXh0LCBvbkRyb3AgfSA9IHByb3BzLiRkcm9wcGFibGU7XG5cbiAgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZSA9IHVzZVN5bmNJbmplY3QoZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUsIGNvbnRleHQpO1xuICBjb25zdCBzb21lID0gdXNlU3luY0luamVjdChtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUpO1xuXG4gIGNvbnN0IGRyYWdnZWRJdGVtID0gZHJhZ2dlZEl0ZW1TdGF0ZS5nZXQoKTtcblxuICByZXR1cm4ge1xuICAgIG9uRHJhZ092ZXI6IChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25EcmFnT3Zlcj8uKGV2ZW50KTtcblxuICAgICAgaWYgKGRyYWdnZWRJdGVtKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIG9uRHJvcDogKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyb3A/LihldmVudCk7XG5cbiAgICAgIGlmIChkcmFnZ2VkSXRlbSkge1xuICAgICAgICBzb21lKCgpID0+IHtcbiAgICAgICAgICBvbkRyb3AoZHJhZ2dlZEl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJGRyb3BwYWJsZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0cmFuc2l0aW9uU3R5bGVzIGZyb20gXCIuL3RyYW5zaXRpb24ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNpdGlvblBsdWdpblByb3BzID0geyAkdHJhbnNpdGlvbj86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zaXRpb25QbHVnaW4gPSBnZXRQbHVnaW48VHJhbnNpdGlvblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHsgW3RyYW5zaXRpb25TdHlsZXMudHJhbnNpdGlvbl06ICEhcHJvcHMuJHRyYW5zaXRpb24gfV0sXG4gICR0cmFuc2l0aW9uOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBvZmZzZXRTdHlsZXMgZnJvbSBcIi4vb2Zmc2V0Lm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IERpcmVjdGlvbiB9IGZyb20gXCIuLi9fc2hhcmVkL2RpcmVjdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIE9mZnNldFBsdWdpblByb3BzID0geyAkb2Zmc2V0PzogeyBkaXJlY3Rpb246IERpcmVjdGlvbjsgc2l6ZTogVFNoaXJ0U2l6ZSB9IH07XG5cbmV4cG9ydCBjb25zdCBvZmZzZXRQbHVnaW4gPSBnZXRQbHVnaW48T2Zmc2V0UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJG9mZnNldCkge1xuICAgIHJldHVybiB7ICRvZmZzZXQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgb2Zmc2V0U3R5bGVzW2BvZmZzZXRfXyR7cHJvcHMuJG9mZnNldC5kaXJlY3Rpb259LS0ke3Byb3BzLiRvZmZzZXQuc2l6ZX1gXV0sXG5cbiAgICAkb2Zmc2V0OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG9mZnNldFN0eWxlcyBmcm9tIFwiLi9vZmZzZXQtY2hpbGRyZW4ubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9uIH0gZnJvbSBcIi4uL19zaGFyZWQvZGlyZWN0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgT2Zmc2V0Q2hpbGRyZW5QbHVnaW5Qcm9wcyA9IHsgJG9mZnNldENoaWxkcmVuPzogeyBkaXJlY3Rpb246IERpcmVjdGlvbjsgc2l6ZTogVFNoaXJ0U2l6ZSB9IH07XG5cbmV4cG9ydCBjb25zdCBvZmZzZXRDaGlsZHJlblBsdWdpbiA9IGdldFBsdWdpbjxPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRvZmZzZXRDaGlsZHJlbikge1xuICAgIHJldHVybiB7ICRvZmZzZXRDaGlsZHJlbjogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgICBvZmZzZXRTdHlsZXNbYG9mZnNldC1jaGlsZHJlbl9fJHtwcm9wcy4kb2Zmc2V0Q2hpbGRyZW4uZGlyZWN0aW9ufS0tJHtwcm9wcy4kb2Zmc2V0Q2hpbGRyZW4uc2l6ZX1gXSxcbiAgICBdLFxuXG4gICAgJG9mZnNldENoaWxkcmVuOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGhpZGRlblN0eWxlcyBmcm9tIFwiLi9oaWRkZW4ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgSGlkZGVuUGx1Z2luUHJvcHMgPSB7ICRoaWRkZW4/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBoaWRkZW5QbHVnaW4gPSBnZXRQbHVnaW48SGlkZGVuUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgeyBbaGlkZGVuU3R5bGVzLmhpZGRlbl06ICEhcHJvcHMuJGhpZGRlbiB9XSxcblxuICAkaGlkZGVuOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBtYXJnaW5TdHlsZXMgZnJvbSBcIi4vbWFyZ2luLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIERpcmVjdGlvbmFsTWFyZ2luID0ge1xuICB0b3A/OiBUU2hpcnRTaXplO1xuICBib3R0b20/OiBUU2hpcnRTaXplO1xuICBsZWZ0PzogVFNoaXJ0U2l6ZTtcbiAgcmlnaHQ/OiBUU2hpcnRTaXplO1xuICBob3Jpem9udGFsPzogVFNoaXJ0U2l6ZTtcbiAgdmVydGljYWw/OiBUU2hpcnRTaXplO1xufTtcblxuZXhwb3J0IHR5cGUgTWFyZ2luUGx1Z2luUHJvcHMgPSB7ICRtYXJnaW4/OiBib29sZWFuIHwgRGlyZWN0aW9uYWxNYXJnaW4gfCBUU2hpcnRTaXplIHwgXCJhdXRvXCIgfTtcblxuZXhwb3J0IGNvbnN0IG1hcmdpblBsdWdpbiA9IGdldFBsdWdpbjxNYXJnaW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kbWFyZ2luKSB7XG4gICAgcmV0dXJuIHsgJG1hcmdpbjogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCBtYXJnaW4gPSBwcm9wcy4kbWFyZ2luID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJG1hcmdpbjtcblxuICBpZiAoaXNTdHJpbmcobWFyZ2luKSkge1xuICAgIHJldHVybiB7XG4gICAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgbWFyZ2luU3R5bGVzW2BtYXJnaW4tLSR7bWFyZ2lufWBdXSxcbiAgICAgICRtYXJnaW46IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IG1hcmdpbi50b3AgfHwgbWFyZ2luLnZlcnRpY2FsO1xuICBjb25zdCBib3R0b21TaXplID0gbWFyZ2luLmJvdHRvbSB8fCBtYXJnaW4udmVydGljYWw7XG4gIGNvbnN0IHJpZ2h0U2l6ZSA9IG1hcmdpbi5yaWdodCB8fCBtYXJnaW4uaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBtYXJnaW4ubGVmdCB8fCBtYXJnaW4uaG9yaXpvbnRhbDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgICB0b3BTaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX3RvcC0tJHt0b3BTaXplfWBdIDogdW5kZWZpbmVkLFxuICAgICAgcmlnaHRTaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX3JpZ2h0LS0ke3JpZ2h0U2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvdHRvbVNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fYm90dG9tLS0ke2JvdHRvbVNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgICBsZWZ0U2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX19sZWZ0LS0ke2xlZnRTaXplfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJG1hcmdpbjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB2aXN1YWxseUhpZGRlblN0eWxlcyBmcm9tIFwiLi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyA9IHsgJHZpc3VhbGx5SGlkZGVuPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgdmlzdWFsbHlIaWRkZW5QbHVnaW4gPSBnZXRQbHVnaW48VmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFt2aXN1YWxseUhpZGRlblN0eWxlc1tcInZpc3VhbGx5LWhpZGRlblwiXV06ICEhcHJvcHMuJHZpc3VhbGx5SGlkZGVuIH1dLFxuXG4gICR2aXN1YWxseUhpZGRlbjogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgb3ZlcmZsb3dTdHlsZXMgZnJvbSBcIi4vb3ZlcmZsb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgT3ZlcmZsb3cgPSBcImhpZGRlblwiIHwgXCJzY3JvbGxcIiB8IFwiYXV0b1wiIHwgXCJ2aXNpYmxlXCI7XG5cbmV4cG9ydCB0eXBlIE92ZXJmbG93UGx1Z2luUHJvcHMgPSB7ICRvdmVyZmxvdz86IE92ZXJmbG93IHwgeyB4PzogT3ZlcmZsb3c7IHk/OiBPdmVyZmxvdzsgaGlkZVNjcm9sbGJhcj86IGJvb2xlYW4gfSB9O1xuXG5leHBvcnQgY29uc3Qgb3ZlcmZsb3dQbHVnaW4gPSBnZXRQbHVnaW48T3ZlcmZsb3dQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgJG92ZXJmbG93ID0gcHJvcHMuJG92ZXJmbG93O1xuXG4gIGlmICghJG92ZXJmbG93KSB7XG4gICAgcmV0dXJuIHsgJG92ZXJmbG93OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHggPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gJG92ZXJmbG93IDogJG92ZXJmbG93Lng7XG4gIGNvbnN0IHkgPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gJG92ZXJmbG93IDogJG92ZXJmbG93Lnk7XG4gIGNvbnN0IGhpZGVTY3JvbGxiYXIgPSB0eXBlb2YgJG92ZXJmbG93ID09PSBcInN0cmluZ1wiID8gZmFsc2UgOiAkb3ZlcmZsb3cuaGlkZVNjcm9sbGJhcjtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG5cbiAgICAgIHggPyBvdmVyZmxvd1N0eWxlc1tgb3ZlcmZsb3dfX3gtLSR7eH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHkgPyBvdmVyZmxvd1N0eWxlc1tgb3ZlcmZsb3dfX3ktLSR7eX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHsgW292ZXJmbG93U3R5bGVzW1wib3ZlcmZsb3ctLWhpZGUtc2Nyb2xsYmFyXCJdXTogaGlkZVNjcm9sbGJhciB9LFxuICAgIF0sXG5cbiAgICAkb3ZlcmZsb3c6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBmbGV4Q2hpbGRTdHlsZXMgZnJvbSBcIi4vZmxleC1jaGlsZC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuLyoqXG4gKiAtIGB0cnVlYDogc2hhcmUgdGhlIHBhcmVudCdzIHJlbWFpbmluZyBzcGFjZSBlcXVhbGx5IChgZmxleDogMSAxIDBgKS5cbiAqIC0gYFwic2hyaW5rYWJsZVwiYDogYWRkaXRpb25hbGx5IHJlbW92ZSB0aGUgaXRlbSdzIGltcGxpY2l0IGNvbnRlbnQtc2l6ZWRcbiAqICAgbWluaW11bSAoYG1pbi1oZWlnaHQ6IGF1dG9gIC8gYG1pbi13aWR0aDogYXV0b2ApLCBzbyBpdCBjYW4gYWN0dWFsbHkgYmVcbiAqICAgc2l6ZWQgdG8gdGhlIHJlbWFpbmluZyBzcGFjZSBpbiBhIGNvbnN0cmFpbmVkIGxheW91dCBcdTIwMTQgcmVxdWlyZWQgZm9yIGFcbiAqICAgZGVzY2VuZGFudCB0byBzY3JvbGwgaW50ZXJuYWxseSBpbnN0ZWFkIG9mIGluZmxhdGluZyBldmVyeSBhbmNlc3Rvci5cbiAqIC0gYSBudW1iZXI6IGxpa2UgYFwic2hyaW5rYWJsZVwiYCwgYnV0IHRha2luZyB0aGF0IG1hbnkgc2hhcmVzIG9mIHRoZVxuICogICByZW1haW5pbmcgc3BhY2UgaW5zdGVhZCBvZiBvbmUgKGBmbGV4LWdyb3dgKSwgZm9yIHdlaWdodGVkIHNwbGl0cyBiZXR3ZWVuXG4gKiAgIHNpYmxpbmdzLlxuICogLSBgXCJmaXhlZFwiYDogdGhlIG9wcG9zaXRlIFx1MjAxNCBrZWVwIHRoZSBpdGVtJ3Mgb3duIHNpemUgKGBmbGV4LXNocmluazogMGApLFxuICogICBvcHRpbmcgb3V0IG9mIHRoZSBzaHJpbmsgbmVnb3RpYXRpb24gZW50aXJlbHkgKGUuZy4gYSBjb250ZW50LWh1Z2dpbmdcbiAqICAgcGFuZWwgbmV4dCB0byBhIGZpbGxpbmcgb25lKS5cbiAqL1xuZXhwb3J0IHR5cGUgRmxleENoaWxkUGx1Z2luUHJvcHMgPSB7ICRmbGV4Q2hpbGQ/OiBib29sZWFuIHwgbnVtYmVyIHwgXCJzaHJpbmthYmxlXCIgfCBcImZpeGVkXCIgfTtcblxuZXhwb3J0IGNvbnN0IGZsZXhDaGlsZFBsdWdpbiA9IGdldFBsdWdpbjxGbGV4Q2hpbGRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KFxuICAocHJvcHMpID0+IHtcbiAgICBjb25zdCB3ZWlnaHQgPSB0eXBlb2YgcHJvcHMuJGZsZXhDaGlsZCA9PT0gXCJudW1iZXJcIiA/IHByb3BzLiRmbGV4Q2hpbGQgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hyaW5rYWJsZSA9IHByb3BzLiRmbGV4Q2hpbGQgPT09IFwic2hyaW5rYWJsZVwiIHx8IHdlaWdodCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtcbiAgICAgICAgcHJvcHMuJGZsZXhDaGlsZCA9PT0gdHJ1ZSB8fCBzaHJpbmthYmxlID8gZmxleENoaWxkU3R5bGVzW1wiZmxleC1jaGlsZFwiXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgc2hyaW5rYWJsZSA/IGZsZXhDaGlsZFN0eWxlc1tcImZsZXgtY2hpbGQtLXNocmlua2FibGVcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgIHByb3BzLiRmbGV4Q2hpbGQgPT09IFwiZml4ZWRcIiA/IGZsZXhDaGlsZFN0eWxlc1tcImZsZXgtY2hpbGQtLWZpeGVkXCJdIDogdW5kZWZpbmVkLFxuICAgICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgXSxcbiAgICAgICRzdHlsZTogd2VpZ2h0ID09PSB1bmRlZmluZWQgPyBwcm9wcy4kc3R5bGUgOiB7IC4uLnByb3BzLiRzdHlsZSwgZmxleEdyb3c6IHdlaWdodCB9LFxuICAgICAgJGZsZXhDaGlsZDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0sXG4pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgZ3JheXNjYWxlU3R5bGVzIGZyb20gXCIuL2dyYXlzY2FsZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBHcmF5c2NhbGVQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIEZ1bGx5IGRlc2F0dXJhdGVzIHRoZSBlbGVtZW50IChgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSlgKSB3aGVuIGB0cnVlYCBcdTIwMTQgc29cbiAgICogZXZlbiBmaXhlZC1jb2xvdXIgY29udGVudCAoZS5nLiBicmFuZCBsb2dvcykgZ3JleXMgb3V0LCBub3QganVzdCB0aGVtZWRcbiAgICogY29sb3Vycy4gQ29tYmluZSB3aXRoIGAkZmFkZWRgIHRvIGRlLWVtcGhhc2lzZSBhbiB1bmF2YWlsYWJsZSBpdGVtLlxuICAgKi9cbiAgJGdyYXlzY2FsZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZ3JheXNjYWxlUGx1Z2luID0gZ2V0UGx1Z2luPEdyYXlzY2FsZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiRncmF5c2NhbGUgPyBncmF5c2NhbGVTdHlsZXMuZ3JheXNjYWxlIDogdW5kZWZpbmVkXSxcbiAgJGdyYXlzY2FsZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0aW50U3R5bGVzIGZyb20gXCIuL3RpbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgVGludFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBlbGVtZW50J3MgKGFuZCBpdHMgZGVzY2VuZGFudHMnKSBTVkcgYGZpbGxgIHRvIHRoaXMgY29sb3VyLCB2aWEgYSBDU1MgY3VzdG9tXG4gICAqIHByb3BlcnR5IFx1MjAxNCBgc3Ryb2tlYCBpcyBsZWZ0IHVudG91Y2hlZCwgc28gc3Ryb2tlZCBkZXRhaWxzIHN1cnZpdmUuIFVubGlrZSBgJGdyYXlzY2FsZWAgKHdoaWNoIG9ubHlcbiAgICogZGVzYXR1cmF0ZXMpIHRoaXMgcGFpbnRzIHRoZSBzaGFwZSBhbiBleGFjdCBmbGF0IGNvbG91ciB3aGlsZSByZXNwZWN0aW5nIHRyYW5zcGFyZW5jeSwgc28gYVxuICAgKiBmaXhlZC1jb2xvdXIgYnJhbmQgbWFyayBjYW4gYmUgdGludGVkIChlLmcuIGFuIEFJLXRvb2wgbG9nbyB0aW50ZWQgdG8gdGhlIGNsdXN0ZXIgY29sb3VyKS4gTGVhdmVcbiAgICogdW5zZXQgdG8gcmVuZGVyIHRoZSBlbGVtZW50J3MgbmF0dXJhbCBjb2xvdXJzLlxuICAgKi9cbiAgJHRpbnQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgdGludFBsdWdpbiA9IGdldFBsdWdpbjxUaW50UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kdGludCA/IHRpbnRTdHlsZXMudGludCA6IHVuZGVmaW5lZF0sXG4gIC8vIFRoZSB0aW50IGNvbG91ciBpcyBleHBvc2VkIGFzIGEgY3VzdG9tIHByb3BlcnR5IHRoZSBgLnRpbnRgIGNsYXNzIHJlYWRzIChgZmlsbDogdmFyKC0tZWxlbWVudC10aW50KWApLlxuICAkc3R5bGU6IHByb3BzLiR0aW50ID8gKHsgLi4ucHJvcHMuJHN0eWxlLCBcIi0tZWxlbWVudC10aW50XCI6IHByb3BzLiR0aW50IH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllcykgOiBwcm9wcy4kc3R5bGUsXG4gICR0aW50OiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmYWRlZFN0eWxlcyBmcm9tIFwiLi9mYWRlZC5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBGYWRlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogRmFkZXMgdGhlIGVsZW1lbnQgKGBvcGFjaXR5OiA1MCVgKSB3aGVuIGB0cnVlYC4gQ29tYmluZSB3aXRoIGAkZ3JheXNjYWxlYFxuICAgKiB0byBkZS1lbXBoYXNpc2UgYW4gdW5hdmFpbGFibGUgaXRlbS5cbiAgICovXG4gICRmYWRlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZmFkZWRQbHVnaW4gPSBnZXRQbHVnaW48RmFkZWRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kZmFkZWQgPyBmYWRlZFN0eWxlcy5mYWRlZCA6IHVuZGVmaW5lZF0sXG4gICRmYWRlZDogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMsIHR5cGUgQ29udHJpYnV0ZVJlZiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyB1c2VVcGRhdGVXaGVuUHJvcHNDaGFuZ2UgfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2UtdXBkYXRlLXdoZW4tcHJvcHMtY2hhbmdlXCI7XG5pbXBvcnQgeyB1c2VDbGVhbnVwT25Vbm1vdW50IH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLWNsZWFudXAtb24tdW5tb3VudFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VLZXlib2FyZE5hdmlnYXRpb24gfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvblwiO1xuaW1wb3J0IHsgaGFuZGxlRm9jdXNGb3IgfSBmcm9tIFwiLi9fcHJpdmF0ZS9oYW5kbGUtZm9jdXNcIjtcbmltcG9ydCB7IGhhbmRsZUJsdXJGb3IgfSBmcm9tIFwiLi9fcHJpdmF0ZS9oYW5kbGUtYmx1clwiO1xuaW1wb3J0IHsgdXNlUHJvZ3JhbW1hdGljRm9jdXNpbmcgfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2UtcHJvZ3JhbW1hdGljLWZvY3VzaW5nXCI7XG5pbXBvcnQgdHlwZSB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIEZvY3VzYWJsZVBsdWdpblByb3BzPFQsIEZvY3VzZWRJdGVtID0gYW55PiA9IHtcbiAgJGZvY3VzYWJsZT86IHtcbiAgICBjb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPjtcbiAgICBpdGVtOiBGb2N1c2VkSXRlbTtcbiAgICBvcmRlck51bWJlcj86IG51bWJlcjtcbiAgfTtcblxuICBvbkZvY3VzPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8VD47XG4gIG9uQmx1cj86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPFQ+O1xuICBvbktleURvd24/OiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPjtcbiAgdGFiSW5kZXg/OiBIVE1MRWxlbWVudFtcInRhYkluZGV4XCJdO1xufTtcblxudHlwZSBGb2N1c2FibGVXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGZvY3VzYWJsZToge1xuICAgIGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PjtcbiAgICBpdGVtOiBhbnk7XG4gICAgb3JkZXJOdW1iZXI/OiBudW1iZXI7XG4gIH07XG4gIHJlYWRvbmx5IHRhYkluZGV4OiBudW1iZXI7XG4gIHJlYWRvbmx5IG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBvbkJsdXI/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBvbktleURvd24/OiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxhbnk+O1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEZvY3VzYWJsZVdyYXBwZXJDb21wb25lbnQgPSAoe1xuICBmb2N1c2FibGUsXG4gIHRhYkluZGV4LFxuICBvbkZvY3VzLFxuICBvbkJsdXIsXG4gIG9uS2V5RG93bixcbiAgY29udHJpYnV0ZVJlZixcbiAgY29udHJpYnV0ZVByb3BzLFxuICBjaGlsZHJlbixcbn06IEZvY3VzYWJsZVdyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCB7IGNvbnRleHQ6IGZvY3VzYWJsZUNvbnRleHQsIGl0ZW06IGZvY3VzYWJsZUl0ZW0sIG9yZGVyTnVtYmVyIH0gPSBmb2N1c2FibGU7XG5cbiAgY29uc3QgW2VsZW1lbnQsIHNldEVsZW1lbnRdID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29udHJpYnV0ZVJlZihzZXRFbGVtZW50KTtcblxuICBjb25zdCBodG1sRWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4odW5kZWZpbmVkKTtcbiAgaHRtbEVsZW1lbnRSZWYuY3VycmVudCA9IChlbGVtZW50ID8/IHVuZGVmaW5lZCkgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3QgaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBvbGRTdGF0ZVJlZiA9IHVzZVJlZjxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+Pih1bmRlZmluZWQpO1xuXG4gIGNvbnN0IHN0YXRlID0gdXNlU3luY0luamVjdChmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlLCBmb2N1c2FibGVDb250ZXh0KTtcblxuICB1c2VVcGRhdGVXaGVuUHJvcHNDaGFuZ2UoaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYsIG9sZFN0YXRlUmVmLCBzdGF0ZSwgZm9jdXNhYmxlSXRlbSk7XG4gIHVzZUNsZWFudXBPblVubW91bnQoaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYsIG9sZFN0YXRlUmVmKTtcbiAgdXNlUHJvZ3JhbW1hdGljRm9jdXNpbmcoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSwgaHRtbEVsZW1lbnRSZWYpO1xuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gaGFuZGxlRm9jdXNGb3Ioc3RhdGUsIGZvY3VzYWJsZUl0ZW0sIGZvY3VzYWJsZUNvbnRleHQsIGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmKTtcbiAgY29uc3QgaGFuZGxlQmx1ciA9IGhhbmRsZUJsdXJGb3IoZm9jdXNhYmxlQ29udGV4dCwgc3RhdGUsIGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmKTtcblxuICBjb25zdCBrZXlib2FyZE5hdmlnYXRpb24gPSB1c2VLZXlib2FyZE5hdmlnYXRpb24oXG4gICAgZm9jdXNhYmxlQ29udGV4dC5pc0tleWJvYXJkTmF2aWdhYmxlID8gZm9jdXNhYmxlQ29udGV4dCA6IHVuZGVmaW5lZCxcbiAgICBmb2N1c2FibGVJdGVtLFxuICAgIG9yZGVyTnVtYmVyLFxuICAgIGVsZW1lbnQsXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICB0YWJJbmRleCxcblxuICAgIG9uRm9jdXM6IChlOiBSZWFjdC5Gb2N1c0V2ZW50PGFueT4pID0+IHtcbiAgICAgIGhhbmRsZUZvY3VzKGUpO1xuICAgICAga2V5Ym9hcmROYXZpZ2F0aW9uLm9uRm9jdXMoKTtcbiAgICAgIG9uRm9jdXM/LihlKTtcbiAgICB9LFxuXG4gICAgb25CbHVyOiAoZTogUmVhY3QuRm9jdXNFdmVudDxhbnk+KSA9PiB7XG4gICAgICBpZiAoIWh0bWxFbGVtZW50UmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgaGFuZGxlQmx1cihlKTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGUpO1xuICAgIH0sXG5cbiAgICBvbktleURvd246IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PGFueT4pID0+IHtcbiAgICAgIG9uS2V5RG93bj8uKGUpO1xuICAgICAga2V5Ym9hcmROYXZpZ2F0aW9uLm9uS2V5RG93bihlKTtcbiAgICB9LFxuXG4gICAgb25Nb3VzZUVudGVyOiBrZXlib2FyZE5hdmlnYXRpb24uZm9jdXNXaGF0VGhlUG9pbnRlcklzT24sXG4gICAgb25Nb3VzZU1vdmU6IGtleWJvYXJkTmF2aWdhdGlvbi5mb2N1c1doYXRUaGVQb2ludGVySXNPbixcbiAgfSk7XG5cbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmb2N1c2FibGVQbHVnaW48VD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48Rm9jdXNhYmxlUGx1Z2luUHJvcHM8VD4sIFtSZXR1cm5UeXBlPHR5cGVvZiByZWZQbHVnaW48VD4+XT4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkZm9jdXNhYmxlLCB0YWJJbmRleCwgb25CbHVyLCBvbkZvY3VzLCBvbktleURvd24gfSA9IHByb3BzO1xuXG4gICAgaWYgKCEkZm9jdXNhYmxlKSB7XG4gICAgICByZXR1cm4geyAkZm9jdXNhYmxlOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGZvY3VzYWJsZTogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBGb2N1c2FibGVXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGZvY3VzYWJsZTogJGZvY3VzYWJsZSxcbiAgICAgICAgICB0YWJJbmRleDogdGFiSW5kZXggPz8gLTEsXG4gICAgICAgICAgb25Gb2N1cyxcbiAgICAgICAgICBvbkJsdXIsXG4gICAgICAgICAgb25LZXlEb3duLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHR5cGUgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgdXNlVXBkYXRlV2hlblByb3BzQ2hhbmdlID0gKFxuICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICBvbGRTdGF0ZVJlZjogTXV0YWJsZVJlZk9iamVjdDxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+IHwgdW5kZWZpbmVkPixcbiAgc3RhdGU6IElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4sXG4gIGZvY3VzYWJsZUl0ZW06IHVua25vd24sXG4pID0+IHtcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogcmVtb3ZlIHdoZW4gcG9zc2libGVcbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmIChmb2N1c2VkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgICAgIHN0YXRlLnNldChmb2N1c2FibGVJdGVtKTtcblxuICAgICAgICAgIGNvbnN0IGNvbnRleHRIYXNDaGFuZ2VkID0gb2xkU3RhdGVSZWYuY3VycmVudCAhPT0gc3RhdGU7XG5cbiAgICAgICAgICBpZiAoY29udGV4dEhhc0NoYW5nZWQgJiYgb2xkU3RhdGVSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgYXNzZXJ0RGVmaW5lZChvbGRTdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIG9sZFN0YXRlUmVmLmN1cnJlbnQuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgb2xkU3RhdGVSZWYuY3VycmVudCA9IHN0YXRlO1xuICAgIH0sXG4gICAgLy8gTm90ZTogZm9jdXNlZFJlZiBhbmQgb2xkU3RhdGVSZWYgbmV2ZXIgY2hhbmdlLlxuICAgIFtmb2N1c2FibGVJdGVtLCBzdGF0ZV0sXG4gICk7XG59O1xuIiwgImltcG9ydCB7IGFzc2VydERlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHJ1bkluQWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdHlwZSBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VDbGVhbnVwT25Vbm1vdW50ID0gKFxuICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICBvbGRTdGF0ZVJlZjogTXV0YWJsZVJlZk9iamVjdDxJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+IHwgdW5kZWZpbmVkPixcbikgPT4ge1xuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiByZW1vdmUgd2hlbiBwb3NzaWJsZVxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4gKCkgPT4ge1xuICAgICAgaWYgKGZvY3VzZWRSZWYuY3VycmVudCkge1xuICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgYXNzZXJ0RGVmaW5lZChvbGRTdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICBvbGRTdGF0ZVJlZi5jdXJyZW50LnNldCh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8gTm90ZTogZm9jdXNlZFJlZiBhbmQgb2xkU3RhdGVSZWYgbmV2ZXIgY2hhbmdlLlxuICAgIFtdLFxuICApO1xufTtcbiIsICJpbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHtcbiAga2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVJbmplY3RhYmxlLFxuICB0eXBlIE5hdmlnYWJsZUVudHJ5LFxufSBmcm9tIFwiLi4vX3NoYXJlZC9rZXlib2FyZC1uYXZpZ2F0aW9uLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0LCBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbiB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxudHlwZSBLZXlib2FyZE5hdmlnYXRpb24gPSB7XG4gIHJlYWRvbmx5IG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBvbkZvY3VzOiAoKSA9PiB2b2lkO1xuICByZWFkb25seSBmb2N1c1doYXRUaGVQb2ludGVySXNPbjogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xufTtcblxuY29uc3Qgbm9LZXlib2FyZE5hdmlnYXRpb246IEtleWJvYXJkTmF2aWdhdGlvbiA9IHtcbiAgb25LZXlEb3duOiAoKSA9PiB7fSxcbiAgb25Gb2N1czogKCkgPT4ge30sXG4gIGZvY3VzV2hhdFRoZVBvaW50ZXJJc09uOiAoKSA9PiB7fSxcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VLZXlib2FyZE5hdmlnYXRpb24gPSAoXG4gIGNvbnRleHQ6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxhbnk+IHwgdW5kZWZpbmVkLFxuICBpdGVtOiB1bmtub3duLFxuICBvcmRlck51bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwsXG4pOiBLZXlib2FyZE5hdmlnYXRpb24gPT4ge1xuICBjb25zdCBuYXZpZ2F0aW9uID0gdXNlU3luY0luamVjdChrZXlib2FyZE5hdmlnYXRpb25TdGF0ZUluamVjdGFibGUpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjb250ZXh0IHx8ICFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnk6IE5hdmlnYWJsZUVudHJ5ID0geyBpdGVtLCBvcmRlck51bWJlcjogb3JkZXJOdW1iZXIgPz8gMCwgZWxlbWVudCB9O1xuXG4gICAgbmF2aWdhdGlvbi5yZWdpc3Rlcihjb250ZXh0LCBlbnRyeSk7XG5cbiAgICBjb25zdCBmb2N1c1doYXRTaG91bGRIYXZlRm9jdXMgPSAoKSA9PiB7XG4gICAgICAvLyBPbmx5IHdpdGhpbiB0aGUgd2luZG93IHRoZSB1c2VyIGlzIGFjdHVhbGx5IGluLiBMZW5zIERlc2t0b3AgaXMgbW9yZSB0aGFuIG9uZSB3aW5kb3csXG4gICAgICAvLyBhbmQgZm9jdXNpbmcgYW4gZWxlbWVudCBvZiBhIHdpbmRvdyB0aGF0IGRvZXMgbm90IGhhdmUgZm9jdXMgaXMgaG93IGEgYnJvd3NlciBpcyBhc2tlZFxuICAgICAgLy8gdG8gYnJpbmcgdGhhdCB3aW5kb3cgdG8gdGhlIGZyb250OiBhIGxpc3QgdXBkYXRpbmcgaW4gdGhlIGFwcGxpY2F0aW9uIHdpbmRvdyB3aGlsZSB0aGVcbiAgICAgIC8vIHVzZXIgcmVhZHMgYSBzdWItd2luZG93IHdvdWxkIGtlZXAgc25hdGNoaW5nIHRoZSBzdWItd2luZG93J3MgZm9jdXMgYXdheS4gV2hpY2ggbWVtYmVyXG4gICAgICAvLyB0aGlzIHdpbmRvdyBpcyBvbiBpcyBzdGlsbCByZW1lbWJlcmVkLCBzbyBpdCBsYW5kcyB0aGVyZSB3aGVuIHRoZSB1c2VyIGNvbWVzIGJhY2suXG4gICAgICBpZiAoIWRvY3VtZW50Lmhhc0ZvY3VzKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZXh0SW5Gb2N1cyA9IG5hdmlnYXRpb24uY29udGV4dEluRm9jdXMoKTtcblxuICAgICAgaWYgKCFjb250ZXh0SW5Gb2N1cykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVudHJpZXMgPSBuYXZpZ2F0aW9uLnNvcnRlZEVudHJpZXNPZihjb250ZXh0SW5Gb2N1cyk7XG5cbiAgICAgIC8vIFRoZSBtZW1iZXIgdGhhdCBjb250ZXh0IHdhcyBsZWZ0IG9uLCBzbyBzdGVwcGluZyBpbnRvIHNvbWV0aGluZyBhbmQgYmFjayBvdXQgb2YgaXQgbGFuZHNcbiAgICAgIC8vIHdoZXJlIGl0IHN0YXJ0ZWQuIE9ubHkgdGhlIGxvd2VzdCBvcmRlciBudW1iZXIgd2hlbiBpdCB3YXMgbmV2ZXIgbGVmdCBhbnl3aGVyZTogdGhhdCBpcyBhXG4gICAgICAvLyBzZXQgb2YgbWVtYmVycyBhcHBlYXJpbmcgcmF0aGVyIHRoYW4gb25lIGJlaW5nIHJldHVybmVkIHRvIFx1MjAxNCBhbmQgYSBzZXQgdGhhdCBsZWF2ZXMgZm9jdXNcbiAgICAgIC8vIHdoZXJlIGl0IGlzIGFzIGl0IGFwcGVhcnMgaGFzIG5vdGhpbmcgdG8gb2ZmZXIgdW50aWwgb25lIG9mIGl0cyBtZW1iZXJzIGhhcyBoYWQgZm9jdXMuXG4gICAgICBjb25zdCBpdGVtSW5Gb2N1cyA9IG5hdmlnYXRpb24uaXRlbUluRm9jdXNPZihjb250ZXh0SW5Gb2N1cyk7XG4gICAgICBjb25zdCB0b0ZvY3VzID1cbiAgICAgICAgZW50cmllcy5maW5kKChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZS5pdGVtID09PSBpdGVtSW5Gb2N1cykgPz9cbiAgICAgICAgKGNvbnRleHRJbkZvY3VzLnRha2VzRm9jdXNBc0l0QXBwZWFycyA/IGVudHJpZXNbMF0gOiB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAodG9Gb2N1cz8uZWxlbWVudC5pc0Nvbm5lY3RlZCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSB0b0ZvY3VzLmVsZW1lbnQpIHtcbiAgICAgICAgdG9Gb2N1cy5lbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIERlZmVycmVkIHNvIHRoYXQgZXZlcnl0aGluZyBhcHBlYXJpbmcgdG9nZXRoZXIgaGFzIHJlZ2lzdGVyZWQsIGFuZCB0aGUgbG93ZXN0IG9yZGVyIG51bWJlciBvZlxuICAgIC8vIHRoZSB3aG9sZSBzZXQgd2lucyByYXRoZXIgdGhhbiB3aGljaGV2ZXIgYXBwZWFyZWQgZmlyc3QuXG4gICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZvY3VzV2hhdFNob3VsZEhhdmVGb2N1cyk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbmF2aWdhdGlvbi5kZXJlZ2lzdGVyKGNvbnRleHQsIGVudHJ5KTtcblxuICAgICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZvY3VzV2hhdFNob3VsZEhhdmVGb2N1cyk7XG4gICAgfTtcbiAgfSwgW25hdmlnYXRpb24sIGNvbnRleHQsIGl0ZW0sIG9yZGVyTnVtYmVyLCBlbGVtZW50XSk7XG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgcmV0dXJuIG5vS2V5Ym9hcmROYXZpZ2F0aW9uO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBXaGljaCBtZW1iZXIgdGhlIGNvbnRleHQgaXMgb24sIHJlbWVtYmVyZWQgZm9yIGFzIGxvbmcgYXMgaXRzIG1lbWJlcnMgYXJlIHRoZXJlOiBpdCBpcyB3aGF0XG4gICAgLy8gZm9jdXMgcmV0dXJucyB0byB3aGVuIHNvbWV0aGluZyB0aGF0IHRvb2sgZm9jdXMgb3ZlciBnb2VzIGF3YXkgYWdhaW4uXG4gICAgb25Gb2N1czogKCkgPT4gbmF2aWdhdGlvbi5ub3RlSXRlbUluRm9jdXMoY29udGV4dCwgaXRlbSksXG5cbiAgICAvLyBXaGVyZSB0aGUgcG9pbnRlciBnb2VzLCBmb2N1cyBnb2VzOiB0aGUgbWVtYmVyIHVuZGVyIGl0IGJlY29tZXMgdGhlIGZvY3VzZWQgb25lLCBzbyBhcnJvd2luZ1xuICAgIC8vIG9uIGZyb20gdGhlcmUgY29udGludWVzIGZyb20gd2hhdCB0aGUgdXNlciBpcyBsb29raW5nIGF0IHJhdGhlciB0aGFuIGZyb20gd2hlcmV2ZXIgdGhlXG4gICAgLy8ga2V5Ym9hcmQgd2FzIGxlZnQuIFdoaWNoZXZlciBvZiB0aGUgdHdvIG1vdmVkIGxhc3QgZGVjaWRlcywgd2hpY2ggaXMgd2h5IHRoaXMgYW5zd2VycyB0byB0aGVcbiAgICAvLyBwb2ludGVyIG1vdmluZyBhcyB3ZWxsIGFzIHRvIGl0IGFycml2aW5nIFx1MjAxNCB0aGUga2V5Ym9hcmQgbWF5IGhhdmUgdGFrZW4gZm9jdXMgZWxzZXdoZXJlIHdoaWxlXG4gICAgLy8gdGhlIHBvaW50ZXIgcmVzdGVkIHdoZXJlIGl0IHdhcywgYW5kIG1vdmluZyBpdCBhdCBhbGwgaXMgdGhlIHVzZXIgcG9pbnRpbmcgYWdhaW4uXG4gICAgLy9cbiAgICAvLyBUaGUgZWxlbWVudCBjb21lcyBmcm9tIHRoZSBldmVudCByYXRoZXIgdGhhbiBmcm9tIHRoZSByZW5kZXIgdGhpcyBoYW5kbGVyIHdhcyBjcmVhdGVkIGluOlxuICAgIC8vIHRoZSBoYW5kbGVyIHRoZSBET00gZW5kcyB1cCB3aXRoIGlzIHRoZSBvbmUgZnJvbSB0aGUgZmlyc3QgcmVuZGVyLCB3aGVuIHRoZXJlIHdhcyBubyBlbGVtZW50XG4gICAgLy8geWV0IFx1MjAxNCBSZWFjdCBoYXMgbm8gcmVhc29uIHRvIHJlbmRlciB0aGUgZWxlbWVudCBhZ2FpbiBmb3IgYSB3cmFwcGVyJ3Mgb3duIHN0YXRlLlxuICAgIGZvY3VzV2hhdFRoZVBvaW50ZXJJc09uOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gaG92ZXJlZCkge1xuICAgICAgICBob3ZlcmVkLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBzdGVwID0gc3RlcE9mKGV2ZW50LmtleSwgY29udGV4dC5vcmllbnRhdGlvbik7XG5cbiAgICAgIGlmIChzdGVwID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRyaWVzID0gbmF2aWdhdGlvbi5zb3J0ZWRFbnRyaWVzT2YoY29udGV4dCk7XG5cbiAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGVudHJpZXMuZmluZEluZGV4KChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZS5pdGVtID09PSBpdGVtKTtcblxuICAgICAgY29uc3QgbmV4dEluZGV4ID1cbiAgICAgICAgc3RlcCA9PT0gXCJmaXJzdFwiXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiBzdGVwID09PSBcImxhc3RcIlxuICAgICAgICAgICAgPyBlbnRyaWVzLmxlbmd0aCAtIDFcbiAgICAgICAgICAgIDogKGN1cnJlbnRJbmRleCArIHN0ZXAgKyBlbnRyaWVzLmxlbmd0aCkgJSBlbnRyaWVzLmxlbmd0aDtcblxuICAgICAgY29uc3QgbmV4dCA9IGVudHJpZXNbbmV4dEluZGV4XTtcblxuICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbmV4dC5lbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IHN0ZXBPZiA9IChrZXk6IHN0cmluZywgb3JpZW50YXRpb246IEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uKSA9PiB7XG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIiA/IHVuZGVmaW5lZCA6IDE7XG4gICAgY2FzZSBcIkFycm93UmlnaHRcIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiID8gdW5kZWZpbmVkIDogMTtcbiAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcImhvcml6b250YWxcIiA/IHVuZGVmaW5lZCA6IC0xO1xuICAgIGNhc2UgXCJBcnJvd0xlZnRcIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiID8gdW5kZWZpbmVkIDogLTE7XG4gICAgY2FzZSBcIkhvbWVcIjpcbiAgICAgIHJldHVybiBcImZpcnN0XCIgYXMgY29uc3Q7XG4gICAgY2FzZSBcIkVuZFwiOlxuICAgICAgcmV0dXJuIFwibGFzdFwiIGFzIGNvbnN0O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuIiwgImltcG9ydCB7IHJ1bkluQWN0aW9uLCB0eXBlIElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IEZvY3VzYWJsZUV2ZW50IH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtZXZlbnRcIjtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUZvY3VzRm9yID1cbiAgPEZvY3VzYWJsZUl0ZW0+KFxuICAgIHN0YXRlOiBJT2JzZXJ2YWJsZVZhbHVlPEZvY3VzYWJsZUl0ZW0gfCB1bmRlZmluZWQ+LFxuICAgIGZvY3VzYWJsZUl0ZW06IEZvY3VzYWJsZUl0ZW0sXG4gICAgZm9jdXNhYmxlQ29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPixcbiAgICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICApID0+XG4gIDxUPihldmVudDogRm9jdXNhYmxlRXZlbnQ8VD4pID0+IHtcbiAgICBjb25zdCBuYXRpdmVFdmVudCA9IGV2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gICAgbmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzID8/PSBuZXcgU2V0KCk7XG5cbiAgICBpZiAobmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzLmhhcyhmb2N1c2FibGVDb250ZXh0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cy5hZGQoZm9jdXNhYmxlQ29udGV4dCk7XG5cbiAgICBmb2N1c2VkUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgc3RhdGUuc2V0KGZvY3VzYWJsZUl0ZW0pO1xuICAgIH0pO1xuICB9O1xuIiwgImltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZvY3VzYWJsZUV2ZW50IH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtZXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlQmx1ckZvciA9XG4gIDxUPihcbiAgICBmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+LFxuICAgIHN0YXRlOiBJT2JzZXJ2YWJsZVZhbHVlPFQgfCB1bmRlZmluZWQ+LFxuICAgIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gICkgPT5cbiAgPFQ+KGV2ZW50OiBGb2N1c2FibGVFdmVudDxUPikgPT4ge1xuICAgIGNvbnN0IG5hdGl2ZUV2ZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG5cbiAgICBpZiAobmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzPy5oYXMoZm9jdXNhYmxlQ29udGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb2N1c2VkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgIHN0YXRlLnNldCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9O1xuIiwgImltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi4vX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VQcm9ncmFtbWF0aWNGb2N1c2luZyA9IDxUPihcbiAgZm9jdXNhYmxlQ29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxUPixcbiAgZm9jdXNhYmxlSXRlbTogVCxcbiAgaHRtbEVsZW1lbnRSZWY6IE11dGFibGVSZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ+LFxuKSA9PiB7XG4gIGNvbnN0IGh0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwID0gdXNlU3luY0luamVjdChcbiAgICBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUsXG4gICAgZm9jdXNhYmxlQ29udGV4dCxcbiAgICBmb2N1c2FibGVJdGVtLFxuICApO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHJlbW92ZSB3aGVuIHBvc3NpYmxlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAuYWRkKGh0bWxFbGVtZW50UmVmKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcC5kZWxldGUoaHRtbEVsZW1lbnRSZWYpO1xuICAgIH07XG4gIH0sIFtodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcCwgZm9jdXNhYmxlSXRlbSwgaHRtbEVsZW1lbnRSZWZdKTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGZsZXhQbHVnaW4gfSBmcm9tIFwiLi4vZmxleC9mbGV4XCI7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSB7IG92ZXJmbG93UGx1Z2luIH0gZnJvbSBcIi4uL292ZXJmbG93L292ZXJmbG93XCI7XG5cbmV4cG9ydCB0eXBlIEFyZWFQbHVnaW5Qcm9wcyA9IHsgJGFyZWE/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBhcmVhUGx1Z2luID0gZ2V0UGx1Z2luPEFyZWFQbHVnaW5Qcm9wcywgW3R5cGVvZiBmbGV4UGx1Z2luLCB0eXBlb2Ygb3ZlcmZsb3dQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgZXhwbGljaXRGbGV4UHJvcHMgPSBpc09iamVjdChwcm9wcy4kZmxleCkgPyBwcm9wcy4kZmxleCA6IHt9O1xuXG4gIHJldHVybiB7XG4gICAgJGFyZWE6IHVuZGVmaW5lZCxcblxuICAgICRmbGV4OiBwcm9wcy4kYXJlYVxuICAgICAgPyB7XG4gICAgICAgICAgdmVydGljYWxBbGlnbjogXCJzdHJldGNoXCIsXG4gICAgICAgICAgaG9yaXpvbnRhbEFsaWduOiBcInN0cmV0Y2hcIixcbiAgICAgICAgICAuLi5leHBsaWNpdEZsZXhQcm9wcyxcbiAgICAgICAgfVxuICAgICAgOiBwcm9wcy4kZmxleCxcblxuICAgICRvdmVyZmxvdzogcHJvcHMuJG92ZXJmbG93ID8/IChwcm9wcy4kYXJlYSA/IFwiaGlkZGVuXCIgOiB1bmRlZmluZWQpLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGZsZXhDaGlsZFBsdWdpbiB9IGZyb20gXCIuLi9mbGV4LWNoaWxkL2ZsZXgtY2hpbGRcIjtcblxuZXhwb3J0IHR5cGUgQXJlYUNvbnRlbnRQbHVnaW5Qcm9wcyA9IHsgJGFyZWFDb250ZW50PzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYXJlYUNvbnRlbnRQbHVnaW4gPSBnZXRQbHVnaW48QXJlYUNvbnRlbnRQbHVnaW5Qcm9wcywgW3R5cGVvZiBmbGV4Q2hpbGRQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRhcmVhQ29udGVudDogdW5kZWZpbmVkLFxuICAkZmxleENoaWxkOiBwcm9wcy4kYXJlYUNvbnRlbnQgPyB0cnVlIDogcHJvcHMuJGZsZXhDaGlsZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgdHlwZSB7IHdpZHRoUGx1Z2luIH0gZnJvbSBcIi4uL3dpZHRoL3dpZHRoXCI7XG5pbXBvcnQgdHlwZSB7IGhlaWdodFBsdWdpbiB9IGZyb20gXCIuLi9oZWlnaHQvaGVpZ2h0XCI7XG5cbmV4cG9ydCB0eXBlICRTaXplUHJvcHMgPSB7XG4gIHNpemU/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcImF1dG9cIjtcbiAgbWluPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiO1xuICBtYXg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCI7XG59O1xuXG5leHBvcnQgdHlwZSBTaXplUGx1Z2luUHJvcHMgPSB7ICRzaXplPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgJFNpemVQcm9wcyB9O1xuXG5leHBvcnQgY29uc3Qgc2l6ZVBsdWdpbiA9IGdldFBsdWdpbjxTaXplUGx1Z2luUHJvcHMsIFt0eXBlb2Ygd2lkdGhQbHVnaW4sIHR5cGVvZiBoZWlnaHRQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkc2l6ZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkc2l6ZSkge1xuICAgIHJldHVybiB7ICRzaXplOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHsgc2l6ZSwgbWluLCBtYXggfSA9IHR5cGVvZiAkc2l6ZSA9PT0gXCJzdHJpbmdcIiA/IHsgc2l6ZTogJHNpemUgfSA6ICRzaXplO1xuXG4gIHJldHVybiB7XG4gICAgJGhlaWdodDogeyBoZWlnaHQ6IHNpemUsIG1pbiwgbWF4IH0sXG4gICAgJHdpZHRoOiB7IHdpZHRoOiBzaXplLCBtaW4sIG1heCB9LFxuICAgICRzaXplOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgcmF3U3R5bGVzIGZyb20gXCIuL2N1cnNvci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvdGVzdC11dGlsc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKHJhd1N0eWxlcyk7XG5cbmV4cG9ydCB0eXBlICRDdXJzb3JQcm9wcyA9XG4gIHwgXCJhbGlhc1wiXG4gIHwgXCJhbGwtc2Nyb2xsXCJcbiAgfCBcImNlbGxcIlxuICB8IFwiY29sdW1uLXJlc2l6ZVwiXG4gIHwgXCJjb250ZXh0LW1lbnVcIlxuICB8IFwiY29weVwiXG4gIHwgXCJjcm9zc2hhaXJcIlxuICB8IFwiZGVmYXVsdFwiXG4gIHwgXCJlYXN0LXJlc2l6ZVwiXG4gIHwgXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiXG4gIHwgXCJncmFiXCJcbiAgfCBcImdyYWJiaW5nXCJcbiAgfCBcImhlbHBcIlxuICB8IFwibW92ZVwiXG4gIHwgXCJub3J0aC1yZXNpemVcIlxuICB8IFwibm9ydGhlYXN0LXJlc2l6ZVwiXG4gIHwgXCJub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVcIlxuICB8IFwibm8tZHJvcFwiXG4gIHwgXCJub25lXCJcbiAgfCBcIm5vdC1hbGxvd2VkXCJcbiAgfCBcIm5vcnRoLWFuZC1zb3V0aC1yZXNpemVcIlxuICB8IFwibm9ydGh3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVcIlxuICB8IFwicG9pbnRlclwiXG4gIHwgXCJwcm9ncmVzc1wiXG4gIHwgXCJyb3ctcmVzaXplXCJcbiAgfCBcInNvdXRoLXJlc2l6ZVwiXG4gIHwgXCJzb3V0aGVhc3QtcmVzaXplXCJcbiAgfCBcInNvdXRod2VzdC1yZXNpemVcIlxuICB8IFwidGV4dFwiXG4gIHwgXCJ2ZXJ0aWNhbC10ZXh0XCJcbiAgfCBcIndlc3QtcmVzaXplXCJcbiAgfCBcIndhaXRcIlxuICB8IFwiem9vbS1pblwiXG4gIHwgXCJ6b29tLW91dFwiO1xuXG5leHBvcnQgdHlwZSBDdXJzb3JQbHVnaW5Qcm9wcyA9IHtcbiAgJGN1cnNvcj86ICRDdXJzb3JQcm9wcztcbn07XG5cbmV4cG9ydCBjb25zdCBjdXJzb3JQbHVnaW4gPSBnZXRQbHVnaW48Q3Vyc29yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGN1cnNvciwgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkY3Vyc29yKSB7XG4gICAgcmV0dXJuIHsgJGN1cnNvcjogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRjdXJzb3I6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgc3R5bGVzWyRjdXJzb3JdXSxcbiAgICBcImRhdGEtY3Vyc29yLXRlc3RcIjogJGN1cnNvcixcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgb25NaWRkbGVDbGljaywgb25UcmlnZ2VyIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBlbmFibGVkUGx1Z2luIH0gZnJvbSBcIi4uL2VuYWJsZWQvZW5hYmxlZFwiO1xuaW1wb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIGN1cnNvclBsdWdpbiB9IGZyb20gXCIuLi9jdXJzb3IvY3Vyc29yXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgeyBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgfSBmcm9tIFwiLi9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgUG9zaXRpb24yZCA9IHtcbiAgcmVhZG9ubHkgeDogbnVtYmVyO1xuICByZWFkb25seSB5OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDbGlja0hhbmRsZXJEZXRhaWxzID0ge1xuICByZWFkb25seSBjdXJzb3I6IFBvc2l0aW9uMmQ7XG4gIHJlYWRvbmx5IGNhdXNlOiBcImNsaWNrXCIgfCBcImtleWJvYXJkXCI7XG59O1xuXG5leHBvcnQgdHlwZSBDbGlja0hhbmRsZXIgPSAoKGRldGFpbHM6IENsaWNrSGFuZGxlckRldGFpbHMpID0+IHZvaWQpIHwgKChkZXRhaWxzOiBDbGlja0hhbmRsZXJEZXRhaWxzKSA9PiBQcm9taXNlPHZvaWQ+KTtcblxuZXhwb3J0IHR5cGUgQ2xpY2tQbHVnaW5Qcm9wcyA9IHtcbiAgJG9uQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvbk9ubHlNb3VzZUNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25Eb3VibGVDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uUmlnaHRDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uTWlkZGxlQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gIHRhYkluZGV4PzogbnVtYmVyO1xufTtcblxuY29uc3QgY2xpY2tVc2VkID0gU3ltYm9sKCk7XG5cbmV4cG9ydCBjb25zdCBjbGlja2FibGVQbHVnaW4gPSBnZXRQbHVnaW48Q2xpY2tQbHVnaW5Qcm9wcywgW3R5cGVvZiBlbmFibGVkUGx1Z2luLCB0eXBlb2YgY3Vyc29yUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIC8vIHR5cGluZyByZXF1aXJlZCBkdWUgdG8gbGFjayBvZiBnb29kIHR5cGluZyBvZiBwcmUtcHJvY2Vzc2VkIGRlcGVuZGVudCBwbHVnaW5zXG4gIGNvbnN0IHtcbiAgICAkY3Vyc29yLFxuICAgICRvbkNsaWNrLFxuICAgICRvbk9ubHlNb3VzZUNsaWNrLFxuICAgICRvbk1pZGRsZUNsaWNrLFxuICAgICRvblJpZ2h0Q2xpY2ssXG4gICAgJG9uRG91YmxlQ2xpY2ssXG4gICAgb25Eb3VibGVDbGljayxcbiAgICBvbkF1eENsaWNrLFxuICAgIG9uQ2xpY2ssXG4gICAgb25Db250ZXh0TWVudSxcbiAgICBvbktleURvd24sXG4gICAgdGFiSW5kZXgsXG4gICAgZGlzYWJsZWQsXG4gICAgcm9sZSxcbiAgfSA9IHByb3BzIGFzIHR5cGVvZiBwcm9wcyAmIFJlYWN0LkhUTUxQcm9wczxIVE1MRWxlbWVudD47XG4gIGNvbnN0IFtwZW5kaW5nLCBzZXRQZW5kaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3Qgb25SaWdodFRyaWdnZXIgPSB1c2VTeW5jSW5qZWN0KG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSk7XG4gIGNvbnN0IG9uTW91c2VDbGljayA9ICRvbkNsaWNrID8/ICRvbk9ubHlNb3VzZUNsaWNrO1xuXG4gIGlmICgkb25DbGljayAmJiAkb25Pbmx5TW91c2VDbGljaykge1xuICAgIGNvbnNvbGUud2FybihcIkNhbm5vdCBoYXZlIGJvdGggJG9uQ2xpY2sgYW5kICRvbk1vdXNlQ2xpY2tPbmx5IG9uIHRoZSBzYW1lIGNvbXBvbmVudFwiKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJG9uQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25NaWRkbGVDbGljazogdW5kZWZpbmVkLFxuICAgICRvblJpZ2h0Q2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25Eb3VibGVDbGljazogdW5kZWZpbmVkLFxuICAgICRvbk9ubHlNb3VzZUNsaWNrOiB1bmRlZmluZWQsXG4gICAgdGFiSW5kZXg6IHRhYkluZGV4ID8/IChvbk1vdXNlQ2xpY2sgfHwgJG9uUmlnaHRDbGljayB8fCAkb25Eb3VibGVDbGljayA/IDAgOiB1bmRlZmluZWQpLFxuICAgICRjdXJzb3I6IGdldEN1cnNvclByb3BzKCRjdXJzb3IsIGRpc2FibGVkLCBwZW5kaW5nLCBvbk1vdXNlQ2xpY2ssICRvblJpZ2h0Q2xpY2spLFxuICAgIHJvbGU6IHJvbGUgPz8gKG9uTW91c2VDbGljayA/IFwiYnV0dG9uXCIgOiByb2xlKSxcbiAgICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkNsaWNrPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoIWRpc2FibGVkICYmIG9uTW91c2VDbGljayAmJiAhKGNsaWNrVXNlZCBpbiBldmVudCkpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihldmVudCwgeyBbY2xpY2tVc2VkXTogdHJ1ZSB9KTtcblxuICAgICAgICBjb25zdCBtYXliZVByb21pc2UgPSBvbk1vdXNlQ2xpY2sodG9EZXRhaWxzKGV2ZW50KSk7XG5cbiAgICAgICAgaWYgKGlzUHJvbWlzZUxpa2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAgIHNldFBlbmRpbmcodHJ1ZSk7XG4gICAgICAgICAgbWF5YmVQcm9taXNlLnRoZW4oKCkgPT4gc2V0UGVuZGluZyhmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBvbkRvdWJsZUNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkRvdWJsZUNsaWNrPy4oZXZlbnQpO1xuICAgICAgJG9uRG91YmxlQ2xpY2s/Lih0b0RldGFpbHMoZXZlbnQpKTtcbiAgICB9LFxuICAgIG9uQ29udGV4dE1lbnU6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uQ29udGV4dE1lbnU/LihldmVudCk7XG4gICAgICAkb25SaWdodENsaWNrPy4odG9EZXRhaWxzKGV2ZW50KSk7XG4gICAgfSxcbiAgICBvbkF1eENsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkF1eENsaWNrPy4oZXZlbnQpO1xuICAgICAgb25NaWRkbGVDbGljayhldmVudCwgKCkgPT4gJG9uTWlkZGxlQ2xpY2s/Lih0b0RldGFpbHMoZXZlbnQpKSk7XG4gICAgfSxcbiAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uS2V5RG93bj8uKGV2ZW50KTtcblxuICAgICAgaWYgKCRvbkNsaWNrKSB7XG4gICAgICAgIG9uVHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgIGlmICghZGlzYWJsZWQgJiYgIShjbGlja1VzZWQgaW4gZXZlbnQpKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGV2ZW50LCB7IFtjbGlja1VzZWRdOiB0cnVlIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBtYXliZVByb21pc2UgPSAkb25DbGljayh0b0RldGFpbHMoZXZlbnQpKTtcblxuICAgICAgICAgICAgaWYgKGlzUHJvbWlzZUxpa2UobWF5YmVQcm9taXNlKSkge1xuICAgICAgICAgICAgICBzZXRQZW5kaW5nKHRydWUpO1xuICAgICAgICAgICAgICBtYXliZVByb21pc2UudGhlbigoKSA9PiBzZXRQZW5kaW5nKGZhbHNlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCRvblJpZ2h0Q2xpY2spIHtcbiAgICAgICAgb25SaWdodFRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICAkb25SaWdodENsaWNrKHRvRGV0YWlscyhldmVudCkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IHRvTWlkZGxlID0gKHJlY3Q6IERPTVJlY3QpID0+ICh7XG4gIHg6IHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyLFxuICB5OiByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMixcbn0pO1xuXG5jb25zdCB0b0RldGFpbHMgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+IHwgUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRWxlbWVudD4pOiBDbGlja0hhbmRsZXJEZXRhaWxzID0+IHtcbiAgY29uc3QgY3Vyc29yID1cbiAgICBcImNsaWVudFhcIiBpbiBldmVudFxuICAgICAgPyB7XG4gICAgICAgICAgeDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICB5OiBldmVudC5jbGllbnRZLFxuICAgICAgICB9XG4gICAgICA6IHRvTWlkZGxlKGV2ZW50LmN1cnJlbnRUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuXG4gIHJldHVybiB7XG4gICAgY3Vyc29yLFxuICAgIGNhdXNlOiBldmVudC5kZXRhaWwgPyBcImNsaWNrXCIgOiBcImtleWJvYXJkXCIsXG4gIH07XG59O1xuXG5jb25zdCBpc1Byb21pc2VMaWtlID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgISF2YWx1ZSAmJiBcInRoZW5cIiBpbiB2YWx1ZTtcblxuY29uc3QgZ2V0Q3Vyc29yUHJvcHMgPSAoXG4gICRjdXJzb3I6ICRDdXJzb3JQcm9wcyB8IHVuZGVmaW5lZCxcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIHBlbmRpbmc6IGJvb2xlYW4sXG4gICRvbkNsaWNrOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCxcbiAgJG9uUmlnaHRDbGljazogRnVuY3Rpb24gfCB1bmRlZmluZWQsXG4pOiAkQ3Vyc29yUHJvcHMgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoJGN1cnNvcikge1xuICAgIHJldHVybiAkY3Vyc29yO1xuICB9XG5cbiAgaWYgKHBlbmRpbmcpIHtcbiAgICByZXR1cm4gXCJwcm9ncmVzc1wiO1xuICB9XG5cbiAgaWYgKCEkb25DbGljayAmJiAhJG9uUmlnaHRDbGljaykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoZGlzYWJsZWQpIHtcbiAgICByZXR1cm4gXCJub3QtYWxsb3dlZFwiO1xuICB9XG5cbiAgaWYgKCRvbkNsaWNrKSB7XG4gICAgcmV0dXJuIFwicG9pbnRlclwiO1xuICB9XG5cbiAgcmV0dXJuIFwiY29udGV4dC1tZW51XCI7XG59O1xuIiwgImltcG9ydCByYXdTdHlsZXMgZnJvbSBcIi4vZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvdGVzdC11dGlsc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKHJhd1N0eWxlcyk7XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlDb250ZW50c1BsdWdpblByb3BzID0ge1xuICAkZGlzcGxheUNvbnRlbnRzPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5Q29udGVudHNQbHVnaW4gPSBnZXRQbHVnaW48RGlzcGxheUNvbnRlbnRzUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGRpc3BsYXlDb250ZW50cywgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkZGlzcGxheUNvbnRlbnRzKSB7XG4gICAgcmV0dXJuIHsgJGRpc3BsYXlDb250ZW50czogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRkaXNwbGF5Q29udGVudHM6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgc3R5bGVzLmNvbnRlbnRzXSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdGV4dC1hbGlnbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUgVGV4dEFsaWduUGx1Z2luUHJvcHMgPSB7ICR0ZXh0QWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCIgfCBcInJpZ2h0XCIgfTtcblxuZXhwb3J0IGNvbnN0IHRleHRBbGlnblBsdWdpbiA9IGdldFBsdWdpbjxUZXh0QWxpZ25QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkdGV4dEFsaWduIH0gPSBwcm9wcztcblxuICBpZiAoISR0ZXh0QWxpZ24pIHtcbiAgICByZXR1cm4geyAkdGV4dEFsaWduOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7ICRjbGFzc05hbWU6IFtzdHlsZXNbYHRleHQtYWxpZ24tLSR7JHRleHRBbGlnbn1gXSwgcHJvcHMuJGNsYXNzTmFtZV0sICR0ZXh0QWxpZ246IHVuZGVmaW5lZCB9O1xufSk7XG4iLCAiaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9ibG9jay5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHR5cGUgQmxvY2tQbHVnaW5Qcm9wcyA9IHtcbiAgJGJsb2NrPzogYm9vbGVhbiB8IFwiaW5saW5lXCI7XG59O1xuXG5leHBvcnQgY29uc3QgYmxvY2tQbHVnaW4gPSBnZXRQbHVnaW48QmxvY2tQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkYmxvY2ssICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGJsb2NrKSB7XG4gICAgcmV0dXJuIHsgJGJsb2NrOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGJsb2NrOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsICRibG9jayA9PT0gXCJpbmxpbmVcIiA/IHN0eWxlc1tcImJsb2NrLS1pbmxpbmVcIl0gOiBzdHlsZXMuYmxvY2tdLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcbmltcG9ydCB0eXBlIHsgUmFuZ2UgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IG91dGxpbmVTdHlsZXMgZnJvbSBcIi4vb3V0bGluZS5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy90ZXN0LXV0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IElDbGFzc05hbWUgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKG91dGxpbmVTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSBPdXRsaW5lV2lkdGggPSBcInplcm9cIiB8IFwieHhzXCIgfCBcInhzXCIgfCBcInNcIiB8IFwibVwiIHwgXCJsXCIgfCBcInhsXCIgfCBcInh4bFwiIHwgYCR7UmFuZ2U8MywgNT59eGxgO1xuXG5leHBvcnQgdHlwZSAkT3V0bGluZVByb3BzID0geyBjb2xvcj86IENvbG9yOyB3aWR0aD86IE91dGxpbmVXaWR0aCB9O1xuXG5leHBvcnQgdHlwZSBPdXRsaW5lUGx1Z2luUHJvcHMgPSB7ICRvdXRsaW5lPzogeyBmb2N1c1Zpc2libGU/OiAkT3V0bGluZVByb3BzIH0gfTtcblxuZXhwb3J0IGNvbnN0IG91dGxpbmVQbHVnaW4gPSBnZXRQbHVnaW48T3V0bGluZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBnZXRGb2N1c1Zpc2libGVPdXRsaW5lU3R5bGVzKHByb3BzLiRvdXRsaW5lPy5mb2N1c1Zpc2libGUpXSxcbiAgICAkb3V0bGluZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IGdldEZvY3VzVmlzaWJsZU91dGxpbmVTdHlsZXMgPSAocHJvcHM6ICRPdXRsaW5lUHJvcHMgfCB1bmRlZmluZWQpOiBJQ2xhc3NOYW1lID0+IHtcbiAgaWYgKCFwcm9wcykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB7IGNvbG9yLCB3aWR0aCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIFtcbiAgICBjb2xvciAhPT0gdW5kZWZpbmVkIHx8IHdpZHRoICE9PSB1bmRlZmluZWQgPyBbc3R5bGVzLm91dGxpbmUsIHN0eWxlcy5mb2N1c1Zpc2libGVdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gc3R5bGVzW2Bjb2xvci0tJHtjb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICB3aWR0aCA/IHN0eWxlc1tgd2lkdGgtLSR7d2lkdGh9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyB0eXBlIElDbGFzc05hbWUsIHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IGludGVyYWN0aXZlU3R5bGVzIGZyb20gXCIuL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMoaW50ZXJhY3RpdmVTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSAkSW50ZXJhY3RpdmVQcm9wcyA9IHtcbiAgLyoqXG4gICAqIFNob3dzIHRoZSBlbGVtZW50IGFzIHRoZSBhY3RpdmUgb25lLCBlLmcuIHRoZSB0cmlnZ2VyIG9mIGEgbWVudSB0aGF0IGlzXG4gICAqIG9wZW46IHRoZSBoaWdobGlnaHQgc3RheXMgb24gd2l0aCBhIHJpbmcgYXJvdW5kIGl0LlxuICAgKi9cbiAgYWN0aXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBrZXlib2FyZCBmb2N1cyBkcmF3cyB0aGUgZm9jdXMgcmluZy4gRGVmYXVsdHMgdG8gYHRydWVgOyBvcHQgb3V0XG4gICAqIG9ubHkgd2hlcmUgdGhlIHN1cnJvdW5kaW5nIGNvbnRyb2wgZHJhd3MgaXRzIG93bi5cbiAgICovXG4gIGZvY3VzVmlzaWJsZU91dGxpbmU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgSW50ZXJhY3RpdmVQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIEdpdmVzIHRoZSBlbGVtZW50IHRoZSBhZmZvcmRhbmNlIG9mIGFuIGljb24gYnV0dG9uOiBhIGhpZ2hsaWdodCBvbiBob3ZlcixcbiAgICogYSBmb2N1cyByaW5nIGZvciBrZXlib2FyZCB1c2VycywgYW5kIHdpdGggYGFjdGl2ZWAgYSByaW5nIHRoYXQgbWFya3MgaXRcbiAgICogYXMgdGhlIGFjdGl2ZSBvbmUuXG4gICAqL1xuICAkaW50ZXJhY3RpdmU/OiBib29sZWFuIHwgJEludGVyYWN0aXZlUHJvcHM7XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJhY3RpdmVQbHVnaW4gPSBnZXRQbHVnaW48SW50ZXJhY3RpdmVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBnZXRJbnRlcmFjdGl2ZUNsYXNzTmFtZXMocHJvcHMuJGludGVyYWN0aXZlKV0sXG4gICRpbnRlcmFjdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuXG5jb25zdCBnZXRJbnRlcmFjdGl2ZUNsYXNzTmFtZXMgPSAoaW50ZXJhY3RpdmU6IGJvb2xlYW4gfCAkSW50ZXJhY3RpdmVQcm9wcyB8IHVuZGVmaW5lZCk6IElDbGFzc05hbWUgPT4ge1xuICBpZiAoIWludGVyYWN0aXZlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHsgYWN0aXZlID0gZmFsc2UsIGZvY3VzVmlzaWJsZU91dGxpbmUgPSB0cnVlIH0gPSBpbnRlcmFjdGl2ZSA9PT0gdHJ1ZSA/IHt9IDogaW50ZXJhY3RpdmU7XG5cbiAgcmV0dXJuIFtzdHlsZXMuaW50ZXJhY3RpdmUsIHsgW3N0eWxlcy5hY3RpdmVdOiBhY3RpdmUsIFtzdHlsZXMuaWdub3JlRm9jdXNWaXNpYmxlXTogIWZvY3VzVmlzaWJsZU91dGxpbmUgfV07XG59O1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgY2xpY2thYmxlUGx1Z2luLCBDbGlja0hhbmRsZXJEZXRhaWxzIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgc2hpZnQsIHVzZUZsb2F0aW5nIH0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdC1kb21cIjtcbmltcG9ydCB0eXBlIHsgUmVmUGx1Z2luIH0gZnJvbSBcIi4uL3JlZi9yZWZcIjtcbmltcG9ydCB7IGV4cGVjdERlZmluZWQsIHN0b3BQcm9wYWdhdGlvbiB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL3BvcG92ZXIubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHMvbWluaW1hbC1kaXZcIjtcblxuZXhwb3J0IHR5cGUgUG9wb3ZlclBsdWdpblByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgJHBvcG92ZXI/OiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgcG9wb3ZlcklzT3BlbkNvbnRleHQgPSBjcmVhdGVDb250ZXh0KGZhbHNlKTtcblxuZXhwb3J0IGNvbnN0IHVzZVBvcG92ZXJJc09wZW4gPSAoKSA9PiB1c2VDb250ZXh0KHBvcG92ZXJJc09wZW5Db250ZXh0KTtcblxuZXhwb3J0IGNvbnN0IHBvcG92ZXJQbHVnaW4gPSBnZXRQbHVnaW48UG9wb3ZlclBsdWdpblByb3BzLCBbdHlwZW9mIGNsaWNrYWJsZVBsdWdpbiwgUmVmUGx1Z2luPGFueT5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkcG9wb3ZlciwgJG9uQ2xpY2ssICRyZWYgfSA9IHByb3BzO1xuICBjb25zdCBbcG9wb3ZlckNvbnRlbnRJc1Nob3duLCBzZXRQb3BvdmVyQ29udGVudElzU2hvd25dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcmVmZXJlbmNlLCBzZXRFbGVtZW50XSA9IHVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGNsb3NlUG9wb3ZlciA9IHVzZUNhbGxiYWNrKCgpID0+IHNldFBvcG92ZXJDb250ZW50SXNTaG93bihmYWxzZSksIFtdKTtcblxuICBpZiAoISRwb3BvdmVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRwb3BvdmVyOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJHBvcG92ZXI6IHVuZGVmaW5lZCxcbiAgICAkcmVmOiBbJHJlZiwgc2V0RWxlbWVudF0sXG4gICAgJG9uQ2xpY2s6IChkZXRhaWxzOiBDbGlja0hhbmRsZXJEZXRhaWxzKSA9PiB7XG4gICAgICBzZXRQb3BvdmVyQ29udGVudElzU2hvd24oIXBvcG92ZXJDb250ZW50SXNTaG93bik7XG4gICAgICAkb25DbGljaz8uKGRldGFpbHMpO1xuICAgIH0sXG4gICAgb25DbGljazogc3RvcFByb3BhZ2F0aW9uLFxuICAgICR3cmFwcGVyOiB7XG4gICAgICBDb21wb25lbnQ6IFBvcG92ZXJXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgcHJvcHM6IHtcbiAgICAgICAgcG9wb3Zlcjoge1xuICAgICAgICAgICRwb3BvdmVyLFxuICAgICAgICAgIGlzU2hvd246IHBvcG92ZXJDb250ZW50SXNTaG93bixcbiAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgY2xvc2VQb3BvdmVyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufSk7XG5cbnR5cGUgUG9wb3ZlcldyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgcG9wb3Zlcjoge1xuICAgIHJlYWRvbmx5ICRwb3BvdmVyOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgcmVhZG9ubHkgaXNTaG93bjogYm9vbGVhbjtcbiAgICByZWFkb25seSByZWZlcmVuY2U6IEhUTUxEaXZFbGVtZW50IHwgbnVsbDtcbiAgICByZWFkb25seSBjbG9zZVBvcG92ZXI6IFZvaWRGdW5jdGlvbjtcbiAgfTtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IFBvcG92ZXJXcmFwcGVyQ29tcG9uZW50ID0gKHsgcG9wb3ZlciwgY2hpbGRyZW4gfTogUG9wb3ZlcldyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCB7ICRwb3BvdmVyLCBpc1Nob3duLCByZWZlcmVuY2UsIGNsb3NlUG9wb3ZlciB9ID0gcG9wb3ZlcjtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7aXNTaG93biAmJlxuICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPFBvcG92ZXJPdmVybGF5Q29udGVudFxuICAgICAgICAgICAgey4uLntcbiAgICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgICAkcG9wb3ZlcixcbiAgICAgICAgICAgICAgY2xvc2VQb3BvdmVyLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPixcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICApfVxuICAgICAgPHBvcG92ZXJJc09wZW5Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtpc1Nob3dufT57Y2hpbGRyZW59PC9wb3BvdmVySXNPcGVuQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbnR5cGUgUG9wb3Zlck92ZXJsYXlDb250ZW50UHJvcHMgPSB7XG4gIHJlZmVyZW5jZTogSFRNTERpdkVsZW1lbnQgfCBudWxsO1xuICAkcG9wb3ZlcjogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjbG9zZVBvcG92ZXI6IFZvaWRGdW5jdGlvbjtcbn07XG5cbmNvbnN0IFBvcG92ZXJPdmVybGF5Q29udGVudCA9IChwcm9wczogUG9wb3Zlck92ZXJsYXlDb250ZW50UHJvcHMpID0+IHtcbiAgY29uc3QgeyAkcG9wb3ZlciwgY2xvc2VQb3BvdmVyLCByZWZlcmVuY2UgfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IFwiYm90dG9tXCIsXG4gICAgbWlkZGxld2FyZTogW2ZsaXAoKSwgb2Zmc2V0KDgpLCBzaGlmdCgpXSxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICBlbGVtZW50czoge1xuICAgICAgZmxvYXRpbmcsXG4gICAgICByZWZlcmVuY2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgY2xvc2VQb3BvdmVyRnJvbU92ZXJsYXkgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIGNsb3NlUG9wb3ZlcigpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgIGRhdGEtcG9wb3Zlci1vdmVybGF5LXRlc3RcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17c3R5bGVzLnBvcG92ZXJfX292ZXJsYXl9XG4gICAgICBvbkNsaWNrPXtjbG9zZVBvcG92ZXJGcm9tT3ZlcmxheX1cbiAgICA+XG4gICAgICA8TWluaW1hbERpdlxuICAgICAgICAkcmVmPXtzZXRGbG9hdGluZ31cbiAgICAgICAgc3R5bGU9e2Zsb2F0aW5nU3R5bGVzfVxuICAgICAgICBvbkNsaWNrPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICRjbGFzc05hbWU9e3N0eWxlcy5wb3BvdmVyX19jb250ZW50fVxuICAgICAgPlxuICAgICAgICA8Y29udGV4dEZvckNsb3NpbmdQb3BvdmVyLlByb3ZpZGVyIHZhbHVlPXtjbG9zZVBvcG92ZXJ9PnskcG9wb3ZlcigpfTwvY29udGV4dEZvckNsb3NpbmdQb3BvdmVyLlByb3ZpZGVyPlxuICAgICAgPC9NaW5pbWFsRGl2PlxuICAgIDwvTWluaW1hbERpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIgPSBjcmVhdGVDb250ZXh0PFZvaWRGdW5jdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IHVzZUNsb3NlUG9wb3ZlciA9ICgpID0+XG4gIGV4cGVjdERlZmluZWQoXG4gICAgdXNlQ29udGV4dChjb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIpLFxuICAgIFwiVHJpZWQgdG8gdXNlIGNsb3NlIHBvcG92ZXIgd2hpbGUgY29udGVudCBpcyBub3Qgc2hvd24gaW5zaWRlIHRoZSBwb3BvdmVyIGNvbnRlbnQuXCIsXG4gICk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVSZWYsIHR5cGUgUGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFJlZlBsdWdpbiB9IGZyb20gXCIuLi9yZWYvcmVmXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIG9mZnNldCwgc2hpZnQsIHVzZUZsb2F0aW5nLCB0eXBlIFBsYWNlbWVudCB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ0NvbnRlbnRBcmdzID0ge1xuICByZWFkb25seSBmbG9hdGluZ1N0eWxlczogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgcmVhZG9ubHkgY29udGVudFJlZjogTm9uTnVsbGFibGU8UmVhY3QuUmVmPEhUTUxEaXZFbGVtZW50Pj47XG59O1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ0NvbnRlbnRGYWN0b3J5ID0gKGFyZ3M6IEZsb2F0aW5nQ29udGVudEFyZ3MpID0+IFJlYWN0LlJlYWN0Tm9kZTtcblxuZXhwb3J0IHR5cGUgJEZsb2F0aW5nUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBjb250ZW50OiBGbG9hdGluZ0NvbnRlbnRGYWN0b3J5O1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdQbHVnaW5Qcm9wcyA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJlYWRvbmx5ICRmbG9hdGluZz86ICRGbG9hdGluZ1Byb3BzO1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdQbHVnaW4gPSBQbHVnaW48RmxvYXRpbmdQbHVnaW5Qcm9wcywgdW5rbm93bj47XG5cbnR5cGUgRmxvYXRpbmdXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGZsb2F0aW5nOiAkRmxvYXRpbmdQcm9wcztcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEZsb2F0aW5nV3JhcHBlckNvbXBvbmVudCA9ICh7IGZsb2F0aW5nLCBjb250cmlidXRlUmVmLCBjaGlsZHJlbiB9OiBGbG9hdGluZ1dyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCBbcmVmZXJlbmNlLCBzZXRSZWZlcmVuY2VdID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2Zsb2F0aW5nRWwsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29udHJpYnV0ZVJlZihzZXRSZWZlcmVuY2UpO1xuXG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IGZsb2F0aW5nLnBvc2l0aW9uID8/IFwiYm90dG9tXCIsXG4gICAgbWlkZGxld2FyZTogW2ZsaXAoKSwgb2Zmc2V0KDgpLCBzaGlmdCgpXSxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogYXV0b1VwZGF0ZSxcbiAgICBlbGVtZW50czoge1xuICAgICAgZmxvYXRpbmc6IGZsb2F0aW5nRWwsXG4gICAgICByZWZlcmVuY2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgZmxvYXRpbmdDb250ZW50ID0gZmxvYXRpbmcuY29udGVudCh7IGZsb2F0aW5nU3R5bGVzLCBjb250ZW50UmVmOiBzZXRGbG9hdGluZyB9KTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7ZmxvYXRpbmdDb250ZW50ID8gY3JlYXRlUG9ydGFsKGZsb2F0aW5nQ29udGVudCwgZG9jdW1lbnQuYm9keSkgOiBudWxsfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZsb2F0aW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEZsb2F0aW5nUGx1Z2luUHJvcHMsIFtSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRmbG9hdGluZyB9ID0gcHJvcHM7XG5cbiAgICBpZiAoJGZsb2F0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7ICRmbG9hdGluZzogdW5kZWZpbmVkIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRmbG9hdGluZzogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBGbG9hdGluZ1dyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIHByb3BzOiB7IGZsb2F0aW5nOiAkZmxvYXRpbmcgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbnZpc2libGUtYmFja2Ryb3AubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5cbmV4cG9ydCB0eXBlIEludmlzaWJsZUJhY2tkcm9wUGx1Z2luUHJvcHMgPSB7XG4gICRpbnZpc2libGVCYWNrZHJvcD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgaW52aXNpYmxlQmFja2Ryb3BQbHVnaW4gPSBnZXRQbHVnaW48SW52aXNpYmxlQmFja2Ryb3BQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkaW52aXNpYmxlQmFja2Ryb3AsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGludmlzaWJsZUJhY2tkcm9wKSB7XG4gICAgcmV0dXJuIHsgJGludmlzaWJsZUJhY2tkcm9wOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGludmlzaWJsZUJhY2tkcm9wOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsIHN0eWxlcy5pbnZpc2libGVCYWNrZHJvcF0sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVByb3BzLCB0eXBlIENvbnRyaWJ1dGVSZWYgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3BEb3duTWVudSwgdHlwZSBEcm9wRG93bk1lbnVTcGVjIH0gZnJvbSBcIkBrOHNsZW5zL2Ryb3AtZG93bi1tZW51LWNvbnRyYWN0c1wiO1xuaW1wb3J0IHsgY3NzTmFtZXMsIG9uVHJpZ2dlciB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgYW5jaG9yYWJsZUNsYXNzTmFtZSwgQW5jaG9yTmFtZVByb3ZpZGVyLCB1c2VBbmNob3JOYW1lRm9yIH0gZnJvbSBcIi4uL2FuY2hvci9hbmNob3JcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgb25SaWdodFRyaWdnZXJJbmplY3RhYmxlIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgUG9zaXRpb24yZCB9IGZyb20gXCIuLi9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgdHlwZSB7IGN1cnNvclBsdWdpbiB9IGZyb20gXCIuLi9jdXJzb3IvY3Vyc29yXCI7XG5pbXBvcnQgeyB0eXBlIGVuYWJsZWRQbHVnaW4sIGlzRGlzYWJsZWQgfSBmcm9tIFwiLi4vZW5hYmxlZC9lbmFibGVkXCI7XG5pbXBvcnQgeyB1c2VPbk91dHNpZGVDbGljayB9IGZyb20gXCIuLi9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcblxuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICByZWFkb25seSB0YWJJbmRleD86IG51bWJlcjtcblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBkcm9wLWRvd24gbWVudSB0byB0aGUgZWxlbWVudC4gQ3JlYXRlIHRoZSB2YWx1ZSB3aXRoIGBkcm9wRG93bk1lbnUoa2luZCwgb3B0aW9ucz8pYFxuICAgKiBmcm9tIGBAazhzbGVucy9kcm9wLWRvd24tbWVudS1jb250cmFjdHNgOyB0aGUgaXRlbXMgY29tZSBmcm9tIHRoZSBjb250cmlidXRpb25zIHJlZ2lzdGVyZWQgZm9yXG4gICAqIHRoZSBraW5kLlxuICAgKlxuICAgKiBUaGUgbWVudSBwb3NpdGlvbnMgaXRzZWxmIGFnYWluc3QgdGhlIG5lYXJlc3QgYCRhbmNob3JgIGFyb3VuZCB0aGUgZWxlbWVudCwgb3IgYWdhaW5zdCB0aGVcbiAgICogZWxlbWVudCBpdHNlbGYgd2hlbiB0aGVyZSBpcyBub25lLiBEZWNsYXJlIGAkYW5jaG9yYCBvbiBhbiBlbmNsb3NpbmcgZWxlbWVudCB0byBoYXZlIHRoZSBtZW51XG4gICAqIGxpbmUgdXAgd2l0aCB0aGF0IGluc3RlYWQsIGFzIGEgbWVudSBvcGVuZWQgZnJvbSBvbmUgaGFsZiBvZiBhIHNwbGl0IGJ1dHRvbiBsaW5lcyB1cCB3aXRoIHRoZVxuICAgKiB3aG9sZSBvZiBpdC5cbiAgICpcbiAgICogVGhlIG1lbnUgdGFrZXMgZm9jdXMgYXMgaXQgb3BlbnMsIGl0cyBmaXJzdCBpdGVtIGJlY29taW5nIHRoZSBjdXJyZW50IG9uZSBcdTIwMTQgZXhjZXB0IHdoZW4gaXRcbiAgICogb3BlbnMgYnkgYmVpbmcgaG92ZXJlZCwgd2hlcmUgZm9jdXMgc3RheXMgb24gdGhlIGVsZW1lbnQ6IHRoZSByb3cgdGhlIHBvaW50ZXIgcmVzdHMgb24gaXMgd2hhdFxuICAgKiB0aGUgdXNlciBpcyBsb29raW5nIGF0LiBGb2N1cyByZXR1cm5zIHRvIHRoZSBlbGVtZW50IG9uY2UgdGhlIG1lbnUgaXMgZ29uZS4gQSBtZW51IHRoYXQgb3BlbnMgb25cbiAgICogaG92ZXJpbmcgb3BlbnMgd2l0aCBBcnJvd1JpZ2h0IGFzIHdlbGwsIHRha2luZyBmb2N1cyB0aGVuLCBhbmQgY2xvc2VzIHdpdGggQXJyb3dMZWZ0IGZyb21cbiAgICogYW55d2hlcmUgd2l0aGluIGl0LCBzbyBhIG1lbnUgaGVsZCBieSBhIG1lbnUgcm93IGlzIHJlYWNoYWJsZSB3aXRob3V0IGEgcG9pbnRlci5cbiAgICpcbiAgICogUmVxdWlyZXMgYGRyb3BEb3duTWVudUZlYXR1cmVgIG9mIGBAbGVuc2FwcC9kcm9wLWRvd24tbWVudWAgdG8gYmUgcmVnaXN0ZXJlZDogdGhlIG1lbnVcbiAgICogY29tcG9uZW50IGlzIHJlc29sdmVkIHRocm91Z2ggYW4gaW5qZWN0aW9uIHRva2VuIHRoaXMgcGFja2FnZSBkb2VzIG5vdCBpbXBsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSAkZHJvcERvd25NZW51PzogRHJvcERvd25NZW51U3BlYztcbn07XG5cbmNvbnN0IGhvdmVyQ2xvc2VEZWxheUluTWlsbGlzZWNvbmRzID0gMjAwO1xuXG50eXBlIERyb3BEb3duTWVudVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgZHJvcERvd25NZW51OiBEcm9wRG93bk1lbnVTcGVjO1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IERyb3BEb3duTWVudVdyYXBwZXJDb21wb25lbnQgPSAoe1xuICBkcm9wRG93bk1lbnUsXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBEcm9wRG93bk1lbnVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgLy8gV2hldGhlciB0aGUgbWVudSB0YWtlcyBmb2N1cyBhcyBpdCBvcGVucy4gT25seSBhIG1lbnUgdGhlIHBvaW50ZXIgb3BlbmVkIGJ5IHJlc3Rpbmcgb24gdGhlXG4gIC8vIGVsZW1lbnQgbGVhdmVzIGl0IGJlOiB0aGUga2V5Ym9hcmQgb3BlbmluZyBvbmUsIG9yIGEgY2xpY2ssIGlzIHRoZSB1c2VyIGFza2luZyBmb3IgdGhlIG1lbnUsXG4gIC8vIGFuZCBpdHMgZmlyc3QgaXRlbSBpcyB3aGVyZSB0aGV5IGdvIG9uIGZyb20uXG4gIGNvbnN0IFt0YWtlc0ZvY3VzLCBzZXRUYWtlc0ZvY3VzXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbY3Vyc29yLCBzZXRDdXJzb3JdID0gdXNlU3RhdGU8UG9zaXRpb24yZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgY2xvc2VUaW1lclJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3Qgb25SaWdodFRyaWdnZXIgPSB1c2VTeW5jSW5qZWN0KG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSk7XG5cbiAgY29uc3QgZWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBtZW51UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGVsZW1lbnRUYWtlc0ZvY3VzQmFja1JlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29udHJpYnV0ZVJlZihcbiAgICB1c2VDYWxsYmFjaygoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgIH0sIFtdKSxcbiAgKTtcblxuICBjb25zdCB0b2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGFrZXNGb2N1cyh0cnVlKTtcbiAgICBzZXRJc09wZW4oKHdhc09wZW4pID0+ICF3YXNPcGVuKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFRoZSBlbGVtZW50IHRoZSBtZW51IGJlbG9uZ3MgdG8gdGFrZXMgZm9jdXMgYmFjayB3aGVuIGZvY3VzIGlzIGluIHRoZSBtZW51IHRoYXQgaXMgY2xvc2luZyxcbiAgICAvLyBvciBub3doZXJlIGF0IGFsbDogd2hhdGV2ZXIgdGhlIHVzZXIgZG9lcyBuZXh0LCB0aGV5IGRvIGZyb20gd2hlcmUgdGhleSB3ZXJlLiBEZWNpZGVkIGhlcmUsXG4gICAgLy8gd2hpbGUgaXQgaXMgc3RpbGwgY2xlYXIgd2hlcmUgZm9jdXMgd2FzLCByYXRoZXIgdGhhbiBvbmNlIHRoZSBtZW51IGhhcyBnb25lLlxuICAgIGNvbnN0IGZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQgPVxuICAgICAgZm9jdXNlZCA9PT0gbnVsbCB8fCBmb2N1c2VkID09PSBkb2N1bWVudC5ib2R5IHx8IG1lbnVSZWYuY3VycmVudD8uY29udGFpbnMoZm9jdXNlZCkgPT09IHRydWU7XG5cbiAgICBzZXRJc09wZW4oZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgY2FuY2VsU2NoZWR1bGVkQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGNsb3NlVGltZXJSZWYuY3VycmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhclRpbWVvdXQoY2xvc2VUaW1lclJlZi5jdXJyZW50KTtcbiAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBvcGVuID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wZW5lZEJ5OiBcInBvaW50ZXJcIiB8IFwia2V5Ym9hcmRcIikgPT4ge1xuICAgICAgY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKTtcbiAgICAgIHNldFRha2VzRm9jdXMob3BlbmVkQnkgPT09IFwia2V5Ym9hcmRcIik7XG4gICAgICBzZXRJc09wZW4odHJ1ZSk7XG4gICAgfSxcbiAgICBbY2FuY2VsU2NoZWR1bGVkQ2xvc2VdLFxuICApO1xuXG4gIGNvbnN0IHNjaGVkdWxlQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKTtcbiAgICBjbG9zZVRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KGNsb3NlLCBob3ZlckNsb3NlRGVsYXlJbk1pbGxpc2Vjb25kcyk7XG4gIH0sIFtjYW5jZWxTY2hlZHVsZWRDbG9zZSwgY2xvc2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4gY2FuY2VsU2NoZWR1bGVkQ2xvc2UsIFtjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQSBtZW51IHRoYXQgaXMgZGlzbWlzc2VkIHJhdGhlciB0aGFuIGNsb3NlZCBcdTIwMTQgY2xpY2tlZCBhd2F5IGZyb20gXHUyMDE0IGxlYXZlcyBmb2N1cyB3aGVyZXZlciB0aGVcbiAgICAvLyB1c2VyIHB1dCBpdC5cbiAgICBlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYuY3VycmVudCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICghZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBEZWZlcnJlZCBwYXN0IHdoYXQgaXMgYmVpbmcgdGFrZW4gYXdheTogdGhlIGVsZW1lbnQgbWF5IGJlIGdvaW5nIHdpdGggdGhlIG1lbnUsIGEgbWVudVxuICAgICAgLy8gaW5zaWRlIGEgbWVudSB0aGF0IGlzIGNsb3NpbmcgdG9vLCBhbmQgb25seSB0aGVuIGlzIGl0IGNsZWFyIHdoZXRoZXIgaXQgaXMgc3RpbGwgdGhlcmUgdG9cbiAgICAgIC8vIHRha2UgZm9jdXMgYmFjay4gQW55dGhpbmcgdGhhdCB0b29rIGZvY3VzIGluIHRoZSBtZWFudGltZSB3YXMgZ2l2ZW4gaXQgb24gcHVycG9zZSwgYW5kIGFcbiAgICAgIC8vIG1lbnUgY2xvc2luZyBpcyBubyByZWFzb24gdG8gdGFrZSBpdCBhd2F5IGFnYWluLlxuICAgICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgZm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQ/LmlzQ29ubmVjdGVkICYmIChmb2N1c2VkID09PSBudWxsIHx8IGZvY3VzZWQgPT09IGRvY3VtZW50LmJvZHkpKSB7XG4gICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9LCBbaXNPcGVuXSk7XG5cbiAgLy8gVGhlIG5lYXJlc3QgYW5jaG9yIGFyb3VuZCB0aGUgZWxlbWVudCwgd2hpY2ggaXMgdGhlIGVsZW1lbnQgaXRzZWxmIHdoZW4gaXQgZGVjbGFyZXMgYCRhbmNob3JgO1xuICAvLyBhbiBlbGVtZW50IHdpdGggbm9uZSBhcm91bmQgaXQgYW5jaG9ycyBpdHMgbWVudSBpdHNlbGYsIHNvIGEgbWVudSBuZXZlciBmYWlscyB0byBvcGVuIGZvciB0aGVcbiAgLy8gd2FudCBvZiBvbmUuIE5hbWVkIG9ubHkgd2hpbGUgdGhlIG1lbnUgaXMgb3Blbiwgd2hpY2ggaXMgdGhlIG9ubHkgdGltZSBhbnl0aGluZyBuZWVkcyB0aGUgbmFtZS5cbiAgY29uc3QgYW5jaG9yTmFtZSA9IHVzZUFuY2hvck5hbWVGb3IoZWxlbWVudFJlZiwgaXNPcGVuKTtcblxuICBjb25zdCBvcGVuT24gPSBkcm9wRG93bk1lbnUub3Blbk9uID8/IFwiY2xpY2tcIjtcblxuICBjb25zdCBjbG9zZU9uQXJyb3dMZWZ0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93TGVmdFwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBjbG9zZSgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2Nsb3NlXSxcbiAgKTtcblxuICAvLyBNYXJrcyB0aGUgZWxlbWVudCBhbmQsIGJlbG93LCB0aGUgbWVudSBpdCBvcGVucyBhcyBvbmUgdGhpbmcgZm9yIG91dHNpZGUtY2xpY2sgcHVycG9zZXMuXG4gIGNvbnN0IG91dHNpZGVDbGlja01hcmtpbmdQcm9wcyA9IHVzZU9uT3V0c2lkZUNsaWNrKFxuICAgIHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LCBbaXNPcGVuXSksXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICAuLi5vdXRzaWRlQ2xpY2tNYXJraW5nUHJvcHMsXG4gICAgXCJhcmlhLWhhc3BvcHVwXCI6IFwibWVudVwiLFxuXG4gICAgLi4uKG9wZW5PbiA9PT0gXCJjbGlja1wiICYmIHtcbiAgICAgIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdG9nZ2xlKCk7XG4gICAgICB9LFxuXG4gICAgICAvLyBBIGtleSBwcmVzcyB0aGUgZWxlbWVudCBhbnN3ZXJzIHdpdGggYSBtZW51IGlzIGFuc3dlcmVkIGhlcmUgYW5kIG5vd2hlcmUgZWxzZSxcbiAgICAgIC8vIGV4YWN0bHkgYXMgaXRzIGNsaWNrIGlzOiB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCAoYSBtZW51IHJvdyB3aXRoIGFuXG4gICAgICAvLyBhY3Rpb24gb2YgaXRzIG93biwgc2F5KSBtdXN0IG5vdCB0YWtlIHRoZSBzYW1lIHByZXNzIGZvciBiZWluZyBhY3RpdmF0ZWQgdG9vLlxuICAgICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgb25UcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdG9nZ2xlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSxcblxuICAgIC4uLihvcGVuT24gPT09IFwicmlnaHQtY2xpY2tcIiAmJiB7XG4gICAgICBvbkNvbnRleHRNZW51OiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIC8vIEEgbWVudSBvcGVuZWQgYnkgcmlnaHQtY2xpY2tpbmcgYmVsb25ncyBhdCB0aGUgY3Vyc29yIHJhdGhlciB0aGFuIGF0IHRoZSBlbGVtZW50LlxuICAgICAgICBzZXRDdXJzb3IoeyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH0pO1xuICAgICAgICB0b2dnbGUoKTtcbiAgICAgIH0sXG5cbiAgICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIG9uUmlnaHRUcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgLy8gQSBtZW51IHRoZSBrZXlib2FyZCBvcGVuZWQgYmVsb25ncyBhdCB0aGUgZWxlbWVudCwgd2hlcmV2ZXIgdGhlIGN1cnNvciBsYXN0IHdhcy5cbiAgICAgICAgICBzZXRDdXJzb3IodW5kZWZpbmVkKTtcbiAgICAgICAgICB0b2dnbGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgLi4uKG9wZW5PbiA9PT0gXCJob3ZlclwiICYmIHtcbiAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gb3BlbihcInBvaW50ZXJcIiksXG4gICAgICBvbk1vdXNlTGVhdmU6IHNjaGVkdWxlQ2xvc2UsXG5cbiAgICAgIC8vIEEgbWVudSB0aGF0IG9wZW5zIG9uIGhvdmVyaW5nIHdvdWxkIGJlIG91dCBvZiB0aGUga2V5Ym9hcmQncyByZWFjaCBvdGhlcndpc2UuIFNpZGV3YXlzXG4gICAgICAvLyBpbnRvIGl0LCBzaW5jZSB0aGF0IGlzIHdoZXJlIHN1Y2ggYSBtZW51IHNpdHM6IGJlc2lkZSB0aGUgZWxlbWVudCBpdCBiZWxvbmdzIHRvLiBGb2N1c1xuICAgICAgLy8gZm9sbG93cyBvbiBpdHMgb3duLCB0aGUgbWVudSB0YWtpbmcgaXQgYXMgaXQgYXBwZWFycyBcdTIwMTQgb3IsIHRoZSBwb2ludGVyIGhhdmluZyBvcGVuZWQgaXRcbiAgICAgIC8vIGFscmVhZHksIGFzIHRoZSBrZXlib2FyZCBzdGVwcyBpbnRvIGl0LlxuICAgICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1JpZ2h0XCIpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIG9wZW4oXCJrZXlib2FyZFwiKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NoaWxkcmVufVxuXG4gICAgICB7aXNPcGVuICYmIChcbiAgICAgICAgLy8gTWFya2VkIGFzIGluc2lkZSBmb3IgdGhlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uIGFib3ZlOiB0aGUgbWVudSBpcyBhIHNpYmxpbmcgb2YgdGhlXG4gICAgICAgIC8vIGVsZW1lbnQgaW4gdGhlIERPTSwgYnV0IHBhcnQgb2YgdGhlIHNhbWUgdGhpbmcgYXMgZmFyIGFzIGEgdXNlciBpcyBjb25jZXJuZWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEEgY2xpY2sgbGFuZGluZyBvbiB0aGUgbWVudSBpcyBhIGNsaWNrIG9uIHRoZSBtZW51IGFuZCBub3RoaW5nIGVsc2UsIHNvIGl0IHN0b3BzIGhlcmVcbiAgICAgICAgLy8gcmF0aGVyIHRoYW4gZ29pbmcgb24gdG8gd2hhdGV2ZXIgZW5jbG9zZXMgdGhlIGVsZW1lbnQgdGhlIG1lbnUgd2FzIG9wZW5lZCBmcm9tIFx1MjAxNCBhIHJvd1xuICAgICAgICAvLyBvZiBhIG1lbnUgb2YgaXRzIG93biwgc2F5LCB3aGljaCB3b3VsZCB0YWtlIGl0IGZvciB0aGUgcm93IGJlaW5nIGFjdGl2YXRlZC4gT25seVxuICAgICAgICAvLyBgY2xpY2tgIHN0b3BzOiB0aGUgb3V0c2lkZS1jbGljayBkZXRlY3Rpb24gYWJvdmUgd29ya3Mgb24gYHBvaW50ZXJkb3duYC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gRm9jdXMgbGFuZGluZyBpbiB0aGUgbWVudSBpcyBsaWtld2lzZSBmb2N1cyBpbiB0aGUgbWVudSBhbmQgbm90aGluZyBlbHNlLiBBIHRyZWUgcm93XG4gICAgICAgIC8vIGVuY2xvc2luZyB0aGUgZWxlbWVudCB3b3VsZCBvdGhlcndpc2UgdGFrZSBpdCBmb3IgdGhlIHJvdyBpdHNlbGYgYmVpbmcgZm9jdXNlZCwgYW5kXG4gICAgICAgIC8vIHRha2UgZm9jdXMgc3RyYWlnaHQgYmFjayBmcm9tIHRoZSBtZW51IHJvdyB0aGUgcG9pbnRlciBoYWQganVzdCBwdXQgaXQgb24gXHUyMDE0IGFuZCBzaW5jZVxuICAgICAgICAvLyB0aGUgaGlnaGxpZ2h0IG9mIGEgbWVudSByb3cgZm9sbG93cyBmb2N1cywgdGhhdCBpcyBhIG1lbnUgdGhhdCBuZXZlciBsb29rcyBwb2ludGVkIGF0LlxuICAgICAgICAvLyBPbmx5IGZvY3VzIHN0b3BzLCBub3QgYmx1cjogd2hhdGV2ZXIgZW5jbG9zZXMgdGhlIGVsZW1lbnQgdGVsbHMgZm9jdXMgbGVhdmluZyBpdCBhcGFydFxuICAgICAgICAvLyBmcm9tIGZvY3VzIG1vdmluZyB3aXRoaW4gaXQgYnkgd2hlcmUgZm9jdXMgd2VudCwgYW5kIGhhcyB0byBoZWFyIG9mIGl0IGxlYXZpbmcgZnJvbSB0aGVcbiAgICAgICAgLy8gbWVudSBhcyBtdWNoIGFzIGZyb20gYW55d2hlcmUgZWxzZS5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICB7Li4ub3V0c2lkZUNsaWNrTWFya2luZ1Byb3BzfVxuICAgICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgICBzdHlsZT17ZGlzcGxheUNvbnRlbnRzfVxuICAgICAgICAgIG9uQ2xpY2s9e3N0b3BQcm9wYWdhdGlvbn1cbiAgICAgICAgICBvbkZvY3VzPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICAgLy8gU2lkZXdheXMgYmFjayBvdXQgb2YgYSBtZW51IHRoYXQgb3BlbmVkIHNpZGV3YXlzLCBmcm9tIHdoZXJldmVyIGluIGl0IGZvY3VzIGhhcHBlbnMgdG9cbiAgICAgICAgICAvLyBiZS4gSXQgc3RvcHMgaGVyZSwgc28gdGhlIG1lbnUgdGhpcyBvbmUgd2FzIG9wZW5lZCBmcm9tIGlzIGxlZnQgYXMgaXQgaXMgcmF0aGVyIHRoYW5cbiAgICAgICAgICAvLyBjbG9zaW5nIGFsb25nIHdpdGggaXQgXHUyMDE0IG9uZSBzdGVwIG91dCBwZXIgcHJlc3MuIE9ubHkgc3VjaCBhIG1lbnU6IGVsc2V3aGVyZSB0aGUga2V5XG4gICAgICAgICAgLy8gYmVsb25ncyB0byB3aGF0ZXZlciB0aGUgbWVudSBob2xkcywgYW5kIEVzY2FwZSBpcyBob3cgYSBtZW51IGlzIGRpc21pc3NlZC5cbiAgICAgICAgICBvbktleURvd249e29wZW5PbiA9PT0gXCJob3ZlclwiID8gY2xvc2VPbkFycm93TGVmdCA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxBbmNob3JOYW1lUHJvdmlkZXIgdmFsdWU9e2FuY2hvck5hbWV9PlxuICAgICAgICAgICAgPERyb3BEb3duTWVudVxuICAgICAgICAgICAgICBzcGVjPXtkcm9wRG93bk1lbnV9XG4gICAgICAgICAgICAgIGFuY2hvclBvaW50PXtvcGVuT24gPT09IFwicmlnaHQtY2xpY2tcIiA/IGN1cnNvciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgdGFrZXNGb2N1cz17dGFrZXNGb2N1c31cbiAgICAgICAgICAgICAgb25DbG9zZT17Y2xvc2V9XG4gICAgICAgICAgICAgIG9uTWVudUhvdmVyQ2hhbmdlPXtcbiAgICAgICAgICAgICAgICBvcGVuT24gPT09IFwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgPyAobWVudUlzSG92ZXJlZCkgPT4gKG1lbnVJc0hvdmVyZWQgPyBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpIDogc2NoZWR1bGVDbG9zZSgpKVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0FuY2hvck5hbWVQcm92aWRlcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmNvbnN0IGRpc3BsYXlDb250ZW50cyA9IHsgZGlzcGxheTogXCJjb250ZW50c1wiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IHN0b3BQcm9wYWdhdGlvbiA9IChldmVudDogUmVhY3QuU3ludGhldGljRXZlbnQpID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG5leHBvcnQgY29uc3QgZHJvcERvd25NZW51UGx1Z2luID0gZ2V0UGx1Z2luPFxuICBEcm9wRG93bk1lbnVQbHVnaW5Qcm9wcyxcbiAgW3R5cGVvZiBlbmFibGVkUGx1Z2luLCB0eXBlb2YgY3Vyc29yUGx1Z2luLCB0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXVxuPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZHJvcERvd25NZW51LCAkY3Vyc29yLCAkY2xhc3NOYW1lLCByb2xlIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiBSZWFjdC5IVE1MUHJvcHM8SFRNTEVsZW1lbnQ+O1xuXG4gIGlmICgkZHJvcERvd25NZW51ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkZHJvcERvd25NZW51OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IG9wZW5zT25DbGljayA9ICgkZHJvcERvd25NZW51Lm9wZW5PbiA/PyBcImNsaWNrXCIpID09PSBcImNsaWNrXCI7XG4gIC8vIFJlYWQgZnJvbSB3aGF0IHRoZSBlbGVtZW50IHdhcyBnaXZlbjogdGhpcyBwbHVnaW4gcnVucyBiZWZvcmUgdGhlIG9uZSB0aGF0IHR1cm5zIGl0IGludG9cbiAgLy8gdGhlIGBkaXNhYmxlZGAgcHJvcC5cbiAgY29uc3QgY2Fubm90QmVVc2VkID0gaXNEaXNhYmxlZChwcm9wcyk7XG5cbiAgcmV0dXJuIHtcbiAgICAkZHJvcERvd25NZW51OiB1bmRlZmluZWQsXG5cbiAgICAuLi4oJGRyb3BEb3duTWVudS5vcGVuT24gPT09IFwiaG92ZXJcIiA/IHt9IDogeyB0YWJJbmRleDogcHJvcHMudGFiSW5kZXggPz8gMCB9KSxcblxuICAgIC8vIEFuIGVsZW1lbnQgdGhhdCBhbnN3ZXJzIGEgY2xpY2sgd2l0aCBhIG1lbnUgaXMgYSBidXR0b24sIGFuZCB0aGUgY3Vyc29yIGlzIGhvdyBpdCBzYXlzIHNvXG4gICAgLy8gLS0gb3Igc2F5cyB0aGF0IGl0IGNhbm5vdCByaWdodCBub3cuIEJvdGggd291bGQgb3RoZXJ3aXNlIGNvbWUgZnJvbSBhIGNsaWNrIGhhbmRsZXIgc3VjaCBhblxuICAgIC8vIGVsZW1lbnQgaGFzIG5vIHJlYXNvbiB0byBoYXZlLiBPbmx5IGEgY2xpY2s6IHNvbWV0aGluZyByaWdodC1jbGlja2VkIGlzIG5vdCBhIGJ1dHRvbiwgYW5kIGFcbiAgICAvLyByb3cgdGhhdCByZXZlYWxzIGEgbWVudSBvbiBob3ZlciBpcyBhIHJvdy5cbiAgICAuLi4ob3BlbnNPbkNsaWNrICYmIHtcbiAgICAgIHJvbGU6IHJvbGUgPz8gXCJidXR0b25cIixcbiAgICAgICRjdXJzb3I6ICRjdXJzb3IgPz8gKGNhbm5vdEJlVXNlZCA/IFwibm90LWFsbG93ZWRcIiA6IFwicG9pbnRlclwiKSxcbiAgICB9KSxcblxuICAgIC8vIFRoZSBlbGVtZW50IG1heSB0dXJuIG91dCB0byBiZSB0aGUgYW5jaG9yIG9mIGl0cyBvd24gbWVudSwgd2hpY2ggb25seSBpdHMgd3JhcHBlciBjYW4gdGVsbCxcbiAgICAvLyByZW5kZXJpbmcgd2l0aGluIHdoYXRldmVyIGFuY2hvcnMgZW5jbG9zZSB0aGUgZWxlbWVudDsgdGhpcyBsZXRzIHRoZSBuYW1lIGl0IGlzIHRoZW4gZ2l2ZW5cbiAgICAvLyB0YWtlIGVmZmVjdC5cbiAgICAkY2xhc3NOYW1lOiBjc3NOYW1lcygkY2xhc3NOYW1lLCBhbmNob3JhYmxlQ2xhc3NOYW1lKSxcblxuICAgICR3cmFwcGVyOiB7XG4gICAgICBDb21wb25lbnQ6IERyb3BEb3duTWVudVdyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBkcm9wRG93bk1lbnU6ICRkcm9wRG93bk1lbnUgfSxcbiAgICB9LFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcyB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vYW5jaG9yLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uMmQgfSBmcm9tIFwiLi4vY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBUU2hpcnRTaXplLCB0U2hpcnRTaXplSW5QaXhlbHMgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IGNvbG9yUGx1Z2luIH0gZnJvbSBcIi4uL2NvbG9yL2NvbG9yXCI7XG5pbXBvcnQgdHlwZSB7IGJhY2tncm91bmRDb2xvclBsdWdpbiB9IGZyb20gXCIuLi9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB0eXBlIHsgYm9yZGVyUGx1Z2luIH0gZnJvbSBcIi4uL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB0eXBlIHsgcGFkZGluZ1BsdWdpbiB9IGZyb20gXCIuLi9wYWRkaW5nL3BhZGRpbmdcIjtcbmltcG9ydCB0eXBlIHsgbWFyZ2luUGx1Z2luIH0gZnJvbSBcIi4uL21hcmdpbi9tYXJnaW5cIjtcbmltcG9ydCB0eXBlIHsgb3ZlcmZsb3dQbHVnaW4gfSBmcm9tIFwiLi4vb3ZlcmZsb3cvb3ZlcmZsb3dcIjtcblxuLyoqXG4gKiBXaGVyZSBhbiBlbGVtZW50IHNpdHMgcmVsYXRpdmUgdG8gaXRzIGFuY2hvcjogYSBzaWRlIG9mIHRoZSBhbmNob3IsIG9wdGlvbmFsbHkgcmVmaW5lZCB3aXRoIGhvd1xuICogdGhlIGVsZW1lbnQgZXh0ZW5kcyBhbG9uZyB0aGF0IHNpZGUuIEEgYmFyZSBzaWRlIGNlbnRlcnMgdGhlIGVsZW1lbnQgb24gaXQ7IGBzcGFuLTxkaXJlY3Rpb24+YFxuICogYWxpZ25zIHRoZWlyIGVkZ2VzIGFuZCBsZXRzIHRoZSBlbGVtZW50IGV4dGVuZCB0b3dhcmQgdGhhdCBkaXJlY3Rpb24uXG4gKlxuICogV2hlbiB0aGUgZWxlbWVudCB3b3VsZCBub3QgZml0IHRoZSB2aWV3cG9ydCwgaXQgZmFsbHMgYmFjayB0byB0aGUgbWlycm9yZWQgcG9zaXRpb25zLlxuICovXG5leHBvcnQgdHlwZSBBbmNob3JQb3NpdGlvbiA9XG4gIHwgXCJ0b3BcIlxuICB8IFwiYm90dG9tXCJcbiAgfCBcImxlZnRcIlxuICB8IFwicmlnaHRcIlxuICB8IFwidG9wIHNwYW4tbGVmdFwiXG4gIHwgXCJ0b3Agc3Bhbi1yaWdodFwiXG4gIHwgXCJib3R0b20gc3Bhbi1sZWZ0XCJcbiAgfCBcImJvdHRvbSBzcGFuLXJpZ2h0XCJcbiAgfCBcImxlZnQgc3Bhbi10b3BcIlxuICB8IFwibGVmdCBzcGFuLWJvdHRvbVwiXG4gIHwgXCJyaWdodCBzcGFuLXRvcFwiXG4gIHwgXCJyaWdodCBzcGFuLWJvdHRvbVwiO1xuXG4vKipcbiAqIEVpdGhlciBhIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBuZWFyZXN0IGFuY2VzdG9yIGAkYW5jaG9yYCwgb3IgdGhlIHNhbWUgcG9zaXRpb24gcmVsYXRpdmUgdG8gYVxuICogcG9pbnQgaW4gdGhlIHZpZXdwb3J0LlxuICovXG5leHBvcnQgdHlwZSBBbmNob3JlZEF0ID1cbiAgfCBBbmNob3JQb3NpdGlvblxuICB8IHtcbiAgICAgIHJlYWRvbmx5IHBvc2l0aW9uOiBBbmNob3JQb3NpdGlvbjtcblxuICAgICAgLyoqIEhvdyBmYXIgZnJvbSB0aGUgYW5jaG9yIHRoZSBlbGVtZW50IHNpdHMuIERlZmF1bHRzIHRvIGBcInhzXCJgLiAqL1xuICAgICAgcmVhZG9ubHkgZ2FwPzogVFNoaXJ0U2l6ZTtcblxuICAgICAgLyoqIFNpdCBhdCB0aGlzIHZpZXdwb3J0IHBvaW50IGluc3RlYWQgb2YgYXQgYW4gYW5jaG9yLiAqL1xuICAgICAgcmVhZG9ubHkgcG9pbnQ/OiBQb3NpdGlvbjJkO1xuICAgIH07XG5cbmNvbnN0IGRlZmF1bHRHYXA6IFRTaGlydFNpemUgPSBcInhzXCI7XG5cbmV4cG9ydCB0eXBlIEFuY2hvclBsdWdpblByb3BzID0ge1xuICByZWFkb25seSBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcblxuICAvKipcbiAgICogTWFrZXMgdGhlIGVsZW1lbnQgYW4gYW5jaG9yIGZvciB0aGUgZWxlbWVudHMgb2YgaXRzIHN1YnRyZWUgdGhhdCBkZWNsYXJlIHtAbGluayAkYW5jaG9yZWRBdH0uXG4gICAqIFRoZSBuZWFyZXN0IHN1Y2ggYW5jZXN0b3Igd2lucywgc28gbmVzdGluZyB3b3JrcyB3aXRob3V0IG5hbWluZyBhbnl0aGluZy5cbiAgICovXG4gIHJlYWRvbmx5ICRhbmNob3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbnMgdGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gYW4gYW5jaG9yLCBhYm92ZSBldmVyeXRoaW5nIGVsc2Ugb24gdGhlIHBhZ2UgXHUyMDE0IGl0IGVzY2FwZXNcbiAgICogY2xpcHBpbmcgYW5jZXN0b3JzIGFuZCBzdGFja2luZyBjb250ZXh0cywgc28gaXQgbmVlZHMgbm8gcG9ydGFsLlxuICAgKlxuICAgKiBUaGUgYW5jaG9yIGlzIHRoZSBuZWFyZXN0IGFuY2VzdG9yIGRlY2xhcmluZyB7QGxpbmsgJGFuY2hvcn0sIG9yIHRoZSBnaXZlbiBwb2ludCB3aGVuIGEgcG9pbnRcbiAgICogaXMgcHJvdmlkZWQgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5ICRhbmNob3JlZEF0PzogQW5jaG9yZWRBdDtcbn07XG5cbmNvbnN0IGFuY2hvck5hbWVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogTGV0cyB7QGxpbmsgdXNlQW5jaG9yTmFtZUZvcn0gbmFtZSBhbiBlbGVtZW50IGFzIGFuIGFuY2hvci4gQSBwbHVnaW4gd2hvc2Ugd3JhcHBlciBtYXkgYW5jaG9yXG4gKiB3aGF0IGl0IHJlbmRlcnMgdG8gdGhlIGVsZW1lbnQgaXRzZWxmIGFkZHMgdGhpcyB0byB0aGUgZWxlbWVudCdzIGAkY2xhc3NOYW1lYC4gVGhlIG5hbWUgZm9sbG93c1xuICogb25seSB3aGVuIG5vdGhpbmcgZWxzZSBhbmNob3JzIHRoZSBlbGVtZW50LCBzbyB0aGUgY2xhc3MgYWxvbmUgY2hhbmdlcyBub3RoaW5nLlxuICovXG5leHBvcnQgY29uc3QgYW5jaG9yYWJsZUNsYXNzTmFtZSA9IHN0eWxlcy5hbmNob3I7XG5cbi8qKlxuICogVGhlIGFuY2hvciBuYW1lIGZvciB3aGF0IGEgcGx1Z2luJ3Mgd3JhcHBlciByZW5kZXJzIGJlc2lkZSBpdHMgZWxlbWVudCBhbmQgcG9zaXRpb25zIHdpdGhcbiAqIGAkYW5jaG9yZWRBdGAgXHUyMDE0IGEgbWVudSwgc2F5OiB0aGF0IG9mIHRoZSBuZWFyZXN0IGAkYW5jaG9yYCBhcm91bmQgdGhlIGVsZW1lbnQsIHRoZSBlbGVtZW50J3Mgb3duXG4gKiBpbmNsdWRlZCwgb3IgZmFpbGluZyB0aGF0IGEgbmFtZSBvZiB0aGUgZWxlbWVudCdzIG93biwgd2hpY2ggdGhpcyBnaXZlcyBpdC4gUmVuZGVyIHdoYXQgaXNcbiAqIHBvc2l0aW9uZWQgaW5zaWRlIHtAbGluayBBbmNob3JOYW1lUHJvdmlkZXJ9IHdpdGggdGhlIHJldHVybmVkIG5hbWUsIHNvIGl0IGZpbmRzIGl0cyBhbmNob3IuXG4gKlxuICogVGhlIGVsZW1lbnQgbmVlZHMge0BsaW5rIGFuY2hvcmFibGVDbGFzc05hbWV9IGZvciBhIG5hbWUgb2YgaXRzIG93biB0byB0YWtlIGVmZmVjdCwgYW5kIGlzIG5hbWVkXG4gKiBvbmx5IHdoaWxlIGBpc0FuY2hvcmluZ2A6IHdoaWxlIHdoYXQgaXMgcG9zaXRpb25lZCBhZ2FpbnN0IGl0IGlzIHNob3duLlxuICovXG5leHBvcnQgY29uc3QgdXNlQW5jaG9yTmFtZUZvciA9IChlbGVtZW50UmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPiwgaXNBbmNob3Jpbmc6IGJvb2xlYW4pID0+IHtcbiAgY29uc3QgZW5jbG9zaW5nQW5jaG9yTmFtZSA9IHVzZUNvbnRleHQoYW5jaG9yTmFtZUNvbnRleHQpO1xuICBjb25zdCBhbmNob3JzSXRzZWxmID0gaXNBbmNob3JpbmcgJiYgZW5jbG9zaW5nQW5jaG9yTmFtZSA9PT0gdW5kZWZpbmVkO1xuXG4gIC8vIE5hbWVkIHRoZSBmaXJzdCB0aW1lIGl0IGFuY2hvcnMgcmF0aGVyIHRoYW4gZnJvbSB1c2VJZDogZXZlcnkgZWxlbWVudCB0aGF0IG1heSBvcGVuIGEgbWVudVxuICAvLyB3b3VsZCBvdGhlcndpc2UgdGFrZSBhbiBpZCwgc2hpZnRpbmcgdGhvc2Ugb2YgZXZlcnl0aGluZyByZW5kZXJlZCBhZnRlciBpdC5cbiAgY29uc3Qgb3duQW5jaG9yTmFtZVJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgaWYgKGFuY2hvcnNJdHNlbGYgJiYgb3duQW5jaG9yTmFtZVJlZi5jdXJyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICBvd25BbmNob3JOYW1lUmVmLmN1cnJlbnQgPSBgLS1hbmNob3Itb3duLSR7Kytvd25BbmNob3JOYW1lQ291bnR9YDtcbiAgfVxuXG4gIGNvbnN0IG93bkFuY2hvck5hbWUgPSBvd25BbmNob3JOYW1lUmVmLmN1cnJlbnQ7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFhbmNob3JzSXRzZWxmIHx8ICFlbGVtZW50IHx8IG93bkFuY2hvck5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoYW5jaG9yTmFtZVByb3BlcnR5LCBvd25BbmNob3JOYW1lKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KGFuY2hvck5hbWVQcm9wZXJ0eSk7XG5cbiAgICAgIC8vIExlZnQgYXMgaXQgd2FzIGZvdW5kOiBhbiBlbGVtZW50IHdpdGggbm8gc3R5bGUgb2YgaXRzIG93biBrZWVwcyBubyBlbXB0eSBhdHRyaWJ1dGUuXG4gICAgICBpZiAoZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJzdHlsZVwiKSA9PT0gXCJcIikge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFthbmNob3JzSXRzZWxmLCBvd25BbmNob3JOYW1lLCBlbGVtZW50UmVmXSk7XG5cbiAgcmV0dXJuIGVuY2xvc2luZ0FuY2hvck5hbWUgPz8gb3duQW5jaG9yTmFtZTtcbn07XG5cbmxldCBvd25BbmNob3JOYW1lQ291bnQgPSAwO1xuXG4vKiogVGVsbHMgd2hhdCBpcyByZW5kZXJlZCBpbnNpZGUgd2hpY2ggYW5jaG9yIHRvIHBvc2l0aW9uIGFnYWluc3Q7IHNlZSB7QGxpbmsgdXNlQW5jaG9yTmFtZUZvcn0uICovXG5leHBvcnQgY29uc3QgQW5jaG9yTmFtZVByb3ZpZGVyID0gYW5jaG9yTmFtZUNvbnRleHQuUHJvdmlkZXI7XG5cbnR5cGUgQW5jaG9yV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBpc0FuY2hvcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgYW5jaG9yZWRBdDogQW5jaG9yZWRBdCB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVByb3BzOiBDb250cmlidXRlUHJvcHM7XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBBbmNob3JXcmFwcGVyQ29tcG9uZW50ID0gKHtcbiAgaXNBbmNob3IsXG4gIGFuY2hvcmVkQXQsXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBBbmNob3JXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3Qgb3duQW5jaG9yTmFtZSA9IHRvQW5jaG9yTmFtZSh1c2VJZCgpKTtcbiAgY29uc3QgaW5oZXJpdGVkQW5jaG9yTmFtZSA9IHVzZUNvbnRleHQoYW5jaG9yTmFtZUNvbnRleHQpO1xuICBjb25zdCBlbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgY29udHJpYnV0ZVJlZihcbiAgICB1c2VDYWxsYmFjaygoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgIH0sIFtdKSxcbiAgKTtcblxuICBjb25zdCBwb3NpdGlvbiA9IHR5cGVvZiBhbmNob3JlZEF0ID09PSBcInN0cmluZ1wiID8gYW5jaG9yZWRBdCA6IGFuY2hvcmVkQXQ/LnBvc2l0aW9uO1xuICBjb25zdCBwb2ludCA9IHR5cGVvZiBhbmNob3JlZEF0ID09PSBcIm9iamVjdFwiID8gYW5jaG9yZWRBdC5wb2ludCA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZ2FwID0gdHlwZW9mIGFuY2hvcmVkQXQgPT09IFwib2JqZWN0XCIgPyAoYW5jaG9yZWRBdC5nYXAgPz8gZGVmYXVsdEdhcCkgOiBkZWZhdWx0R2FwO1xuXG4gIGlmIChwb3NpdGlvbiAmJiAhcG9pbnQgJiYgIWluaGVyaXRlZEFuY2hvck5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVHJpZWQgdG8gcG9zaXRpb24gYW4gZWxlbWVudCBhdCBcIiR7cG9zaXRpb259XCIgd2l0aG91dCBhbiBhbmNob3IuIEVpdGhlciBnaXZlIGFuIGFuY2VzdG9yIHRoZSAkYW5jaG9yIHByb3AsIG9yIGFuY2hvciB0byBhIHBvaW50IGluc3RlYWQuYCxcbiAgICApO1xuICB9XG5cbiAgLy8gQSBwb2ludCBhbmNob3IgaXMgdGhlIGVsZW1lbnQncyBvd247IG90aGVyd2lzZSBpdCBwb3NpdGlvbnMgYWdhaW5zdCB3aGF0ZXZlciBhbmNob3IgZW5jbG9zZXMgaXQuXG4gIGNvbnN0IGFuY2hvck5hbWVUb1Bvc2l0aW9uQWdhaW5zdCA9IHBvaW50ID8gb3duQW5jaG9yTmFtZSA6IGluaGVyaXRlZEFuY2hvck5hbWU7XG5cbiAgaWYgKGFuY2hvcmVkQXQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnRyaWJ1dGVQcm9wcyh7IHBvcG92ZXI6IFwibWFudWFsXCIgfSk7XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaXNBbmNob3IpIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoYW5jaG9yTmFtZVByb3BlcnR5LCBvd25BbmNob3JOYW1lKTtcbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24pIHtcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9zaXRpb25Qcm9wZXJ0eSwgcG9zaXRpb24pO1xuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShnYXBQcm9wZXJ0eSwgYCR7dFNoaXJ0U2l6ZUluUGl4ZWxzKGdhcCl9cHhgKTtcblxuICAgICAgLy8gT25seSB0b3dhcmQgdGhlIGFuY2hvciwgc28gdGhlIGVsZW1lbnQgc3RpbGwgbGluZXMgdXAgd2l0aCBpdCBvbiB0aGUgb3RoZXIgYXhpcy4gQVxuICAgICAgLy8gZmFsbGJhY2sgdGhhdCBtaXJyb3JzIHRoZSBwb3NpdGlvbiBtaXJyb3JzIHRoaXMgbWFyZ2luIHdpdGggaXQuXG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KG1hcmdpblByb3BlcnR5VG93YXJkc0FuY2hvcihwb3NpdGlvbiksIGAke3RTaGlydFNpemVJblBpeGVscyhnYXApfXB4YCk7XG5cbiAgICAgIGlmIChhbmNob3JOYW1lVG9Qb3NpdGlvbkFnYWluc3QpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb3NpdGlvbkFuY2hvclByb3BlcnR5LCBhbmNob3JOYW1lVG9Qb3NpdGlvbkFnYWluc3QpO1xuICAgICAgfVxuXG4gICAgICBpZiAocG9pbnQpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb2ludFhQcm9wZXJ0eSwgYCR7cG9pbnQueH1weGApO1xuICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvaW50WVByb3BlcnR5LCBgJHtwb2ludC55fXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICAvLyBUaGUgcG9pbnQgcmlzZXMgdG8gdGhlIHRvcCBsYXllciBhbG9uZyB3aXRoIHdoYXQgaXMgYW5jaG9yZWQgdG8gaXQuIEEgYGZpeGVkYCBlbGVtZW50IHJlc29sdmVzXG4gIC8vIGFnYWluc3QgdGhlIG5lYXJlc3QgYW5jZXN0b3IgdGhhdCB0cmFuc2Zvcm1zLCBmaWx0ZXJzIG9yIGNvbnRhaW5zIGl0cyBzdWJ0cmVlLCBzbyBhIHBvaW50IGxlZnRcbiAgLy8gaW4gdGhlIHRyZWUgbGFuZHMgYXQgdGhlIGN1cnNvciBwbHVzIHRoYXQgYW5jZXN0b3IncyBvd24gb2Zmc2V0IFx1MjAxNCB3aGljaCBpcyBob3cgYSBtZW51IG9wZW5lZFxuICAvLyBvdmVyIGEgbmF2aWdhdG9yIGl0ZW0gdXNlZCB0byBhcHBlYXIgaHVuZHJlZHMgb2YgcGl4ZWxzIGJlbG93IHRoZSBjdXJzb3IuXG4gIC8vXG4gIC8vIFNob3duIGJlZm9yZSB0aGUgZWxlbWVudCBhbmNob3JlZCB0byBpdDogYW4gYW5jaG9yIGhhcyB0byByZWFjaCB0aGUgdG9wIGxheWVyIGZpcnN0LCBvciB0aGVcbiAgLy8gZWxlbWVudCBwb3NpdGlvbmluZyBhZ2FpbnN0IGl0IGZpbmRzIG5vIGFuY2hvciBhdCBhbGwgYW5kIGxhbmRzIGluIHRoZSB2aWV3cG9ydCdzIGNvcm5lci5cbiAgLy9cbiAgLy8gT25jZSwgb24gbW91bnQ6IGFuIGVsZW1lbnQgaXMgYW5jaG9yZWQgdG8gYSBwb2ludCBmb3IgYXMgbG9uZyBhcyBpdCBpcyBtb3VudGVkLCBzaW5jZSB0aGUgcG9pbnRcbiAgLy8gaXMgd2hlcmUgdGhlIGN1cnNvciB3YXMgd2hlbiB3aGF0ZXZlciBvcGVuZWQgaXQgd2FzIG9wZW5lZC5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gcG9pbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghZWxlbWVudCB8fCAhaXNQb3BvdmVyQ2FwYWJsZShlbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc2hvd1BvcG92ZXIoKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBlbGVtZW50LmhpZGVQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghcG9zaXRpb24gfHwgIWVsZW1lbnQgfHwgIWlzUG9wb3ZlckNhcGFibGUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbGVtZW50LnNob3dQb3BvdmVyKCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgZWxlbWVudC5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtwb3NpdGlvbl0pO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSBwb2ludCA/IChcbiAgICA8PlxuICAgICAgey8qIEEgemVyby1zaXplIGFuY2hvciBhdCB0aGUgcG9pbnQsIHNvIGEgY3Vyc29yLWFuY2hvcmVkIGVsZW1lbnQgcG9zaXRpb25zIGxpa2UgYW55IG90aGVyLiAqL31cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtwb2ludFJlZiBhcyBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgICBwb3BvdmVyPVwibWFudWFsXCJcbiAgICAgICAgZGF0YS1hbmNob3ItcG9pbnQtdGVzdFxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5hbmNob3JQb2ludH1cbiAgICAgICAgc3R5bGU9e1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFthbmNob3JOYW1lUHJvcGVydHldOiBvd25BbmNob3JOYW1lLFxuICAgICAgICAgICAgW3BvaW50WFByb3BlcnR5XTogYCR7cG9pbnQueH1weGAsXG4gICAgICAgICAgICBbcG9pbnRZUHJvcGVydHldOiBgJHtwb2ludC55fXB4YCxcbiAgICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgICAgfVxuICAgICAgLz5cblxuICAgICAge2NoaWxkcmVufVxuICAgIDwvPlxuICApIDogKFxuICAgIGNoaWxkcmVuXG4gICk7XG5cbiAgaWYgKGlzQW5jaG9yKSB7XG4gICAgcmV0dXJuIDxhbmNob3JOYW1lQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17b3duQW5jaG9yTmFtZX0+e2NvbnRlbnR9PC9hbmNob3JOYW1lQ29udGV4dC5Qcm92aWRlcj47XG4gIH1cblxuICByZXR1cm4gPD57Y29udGVudH08Lz47XG59O1xuXG5leHBvcnQgY29uc3QgYW5jaG9yUGx1Z2luID0gZ2V0UGx1Z2luPFxuICBBbmNob3JQbHVnaW5Qcm9wcyxcbiAgW1xuICAgIHR5cGVvZiBjbGFzc05hbWVQbHVnaW4sXG4gICAgdHlwZW9mIGNvbG9yUGx1Z2luLFxuICAgIHR5cGVvZiBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4sXG4gICAgdHlwZW9mIGJvcmRlclBsdWdpbixcbiAgICB0eXBlb2YgcGFkZGluZ1BsdWdpbixcbiAgICB0eXBlb2YgbWFyZ2luUGx1Z2luLFxuICAgIHR5cGVvZiBvdmVyZmxvd1BsdWdpbixcbiAgXVxuPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkYW5jaG9yLCAkYW5jaG9yZWRBdCwgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkYW5jaG9yICYmICRhbmNob3JlZEF0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkYW5jaG9yOiB1bmRlZmluZWQsICRhbmNob3JlZEF0OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGFuY2hvcjogdW5kZWZpbmVkLFxuICAgICRhbmNob3JlZEF0OiB1bmRlZmluZWQsXG5cbiAgICAvLyBSaXNpbmcgdG8gdGhlIHRvcCBsYXllciBpcyBhIHRlY2huaWNhbGl0eSBvZiBwb3NpdGlvbmluZywgYnV0IHRoZSBicm93c2VyIG1ha2VzIGl0IGEgbG9vazpcbiAgICAvLyBjb2xvdXJzIG9mIGl0cyBvd24sIGEgYm9yZGVyLCBwYWRkaW5nLCBhbmQgYSBtYXJnaW4gdGhhdCB3b3VsZCBjZW50ZXIgdGhlIGVsZW1lbnQuIFVuZG8gdGhhdCxcbiAgICAvLyBzbyBhbiBlbGVtZW50IHBvc2l0aW9uZWQgdGhpcyB3YXkgbG9va3MgbGlrZSBpdCBkb2VzIGFueXdoZXJlIGVsc2UsIGFuZCBsZXQgd2hhdGV2ZXIgaXQgc2F5c1xuICAgIC8vIGFib3V0IGl0c2VsZiB3aW4uXG4gICAgLi4uKCRhbmNob3JlZEF0ICE9PSB1bmRlZmluZWQgJiYge1xuICAgICAgJGNvbG9yOiBwcm9wcy4kY29sb3IgPz8gXCJpbmhlcml0XCIsXG4gICAgICAkYmFja2dyb3VuZENvbG9yOiBwcm9wcy4kYmFja2dyb3VuZENvbG9yID8/IFwidHJhbnNwYXJlbnRcIixcbiAgICAgICRib3JkZXI6IHsgd2lkdGg6IFwiemVyb1wiLCAuLi5wcm9wcy4kYm9yZGVyIH0sXG4gICAgICAkcGFkZGluZzogcHJvcHMuJHBhZGRpbmcgPz8gXCJ6ZXJvXCIsXG4gICAgICAkbWFyZ2luOiBwcm9wcy4kbWFyZ2luID8/IFwiemVyb1wiLFxuICAgICAgJG92ZXJmbG93OiBwcm9wcy4kb3ZlcmZsb3cgPz8gXCJ2aXNpYmxlXCIsXG4gICAgfSksXG5cbiAgICAkY2xhc3NOYW1lOiBjc3NOYW1lcygkY2xhc3NOYW1lLCB7XG4gICAgICBbc3R5bGVzLmFuY2hvcl06ICEhJGFuY2hvcixcbiAgICAgIFtzdHlsZXMuYW5jaG9yZWRBdF06ICRhbmNob3JlZEF0ICE9PSB1bmRlZmluZWQsXG4gICAgfSksXG5cbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBBbmNob3JXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgcHJvcHM6IHsgaXNBbmNob3I6ICEhJGFuY2hvciwgYW5jaG9yZWRBdDogJGFuY2hvcmVkQXQgfSxcbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IG1hcmdpblByb3BlcnR5VG93YXJkc0FuY2hvciA9IChwb3NpdGlvbjogQW5jaG9yUG9zaXRpb24pID0+IHtcbiAgaWYgKHBvc2l0aW9uLnN0YXJ0c1dpdGgoXCJib3R0b21cIikpIHtcbiAgICByZXR1cm4gXCJtYXJnaW4tdG9wXCI7XG4gIH1cblxuICBpZiAocG9zaXRpb24uc3RhcnRzV2l0aChcInRvcFwiKSkge1xuICAgIHJldHVybiBcIm1hcmdpbi1ib3R0b21cIjtcbiAgfVxuXG4gIHJldHVybiBwb3NpdGlvbi5zdGFydHNXaXRoKFwicmlnaHRcIikgPyBcIm1hcmdpbi1sZWZ0XCIgOiBcIm1hcmdpbi1yaWdodFwiO1xufTtcblxuY29uc3QgYW5jaG9yTmFtZVByb3BlcnR5ID0gXCItLWFuY2hvci1uYW1lXCI7XG5jb25zdCBnYXBQcm9wZXJ0eSA9IFwiLS1hbmNob3ItZ2FwXCI7XG5jb25zdCBwb3NpdGlvbkFuY2hvclByb3BlcnR5ID0gXCItLWFuY2hvci10YXJnZXRcIjtcbmNvbnN0IHBvc2l0aW9uUHJvcGVydHkgPSBcIi0tYW5jaG9yLXBvc2l0aW9uXCI7XG5jb25zdCBwb2ludFhQcm9wZXJ0eSA9IFwiLS1hbmNob3ItcG9pbnQteFwiO1xuY29uc3QgcG9pbnRZUHJvcGVydHkgPSBcIi0tYW5jaG9yLXBvaW50LXlcIjtcblxuLyoqIEFuY2hvciBuYW1lcyBhcmUgZGFzaGVkIGlkZW50cywgc28gdGhlIGdlbmVyYXRlZCBpZCBoYXMgdG8gbG9zZSBldmVyeXRoaW5nIGVsc2UuICovXG5jb25zdCB0b0FuY2hvck5hbWUgPSAoaWQ6IHN0cmluZykgPT4gYC0tYW5jaG9yLSR7aWQucmVwbGFjZSgvW15hLXpBLVowLTldL2csIFwiXCIpfWA7XG5cbnR5cGUgUG9wb3ZlckNhcGFibGUgPSBIVE1MRWxlbWVudCAmIHsgc2hvd1BvcG92ZXI6IFZvaWRGdW5jdGlvbjsgaGlkZVBvcG92ZXI6IFZvaWRGdW5jdGlvbiB9O1xuXG5jb25zdCBpc1BvcG92ZXJDYXBhYmxlID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogZWxlbWVudCBpcyBQb3BvdmVyQ2FwYWJsZSA9PlxuICB0eXBlb2YgKGVsZW1lbnQgYXMgUGFydGlhbDxQb3BvdmVyQ2FwYWJsZT4pLnNob3dQb3BvdmVyID09PSBcImZ1bmN0aW9uXCI7XG4iLCAiaW1wb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL2ZvY3VzYWJsZVwiO1xuXG5leHBvcnQgdHlwZSAkRm9jdXNhYmxlUHJvcHM8Rm9jdXNlZEl0ZW0+ID0gUmVxdWlyZWQ8Rm9jdXNhYmxlUGx1Z2luUHJvcHM8Rm9jdXNlZEl0ZW0+PltcIiRmb2N1c2FibGVcIl07XG5cbi8qKlxuICogSWRlbnRpZmllcyBhIHNldCBvZiBmb2N1c2FibGVzIGNvbXBldGluZyBmb3Igb25lIGZvY3VzZWQgaXRlbS4gRWxlbWVudHMgam9pbiBpdCBieSBkZWNsYXJpbmdcbiAqIGAkZm9jdXNhYmxlYDsgbm90aGluZyBlbnVtZXJhdGVzIHRoZW0gYXQgdGhlIGNhbGwgc2l0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzS2V5Ym9hcmROYXZpZ2FibGU6IGZhbHNlO1xuICBmb2N1c2FibGU6IChpdGVtOiBGb2N1c2VkSXRlbSkgPT4gJEZvY3VzYWJsZVByb3BzPEZvY3VzZWRJdGVtPjtcbn07XG5cbi8qKiBXaGljaCBhcnJvdyBrZXlzIG1vdmUgZm9jdXMgd2l0aGluIGEga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQuICovXG5leHBvcnQgdHlwZSBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbiA9IFwidmVydGljYWxcIiB8IFwiaG9yaXpvbnRhbFwiIHwgXCJib3RoXCI7XG5cbi8qKlxuICogQSBmb2N1c2FibGUgY29udGV4dCB3aG9zZSBtZW1iZXJzIGFyZSBhbHNvIG5hdmlnYXRlZCB3aXRoIGFycm93IGtleXMsIGluIHRoZSBvcmRlciB0aGV5IHN0YXRlLlxuICogVGhlIGxvd2VzdCBvcmRlciBudW1iZXIgaXMgZm9jdXNlZCB3aGVuIHRoZSBtZW1iZXJzIGFwcGVhciwgdW5sZXNzIHRoZSBjb250ZXh0IHNheXMgb3RoZXJ3aXNlLFxuICogYW5kIGZvY3VzIHJldHVybnMgdG8gdGhlIGVuY2xvc2luZyBjb250ZXh0IHdoZW4gdGhleSBnbyBhd2F5LlxuICovXG5leHBvcnQgdHlwZSBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBpc0tleWJvYXJkTmF2aWdhYmxlOiB0cnVlO1xuICByZWFkb25seSBvcmllbnRhdGlvbjogS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb247XG4gIHJlYWRvbmx5IHRha2VzRm9jdXNBc0l0QXBwZWFyczogYm9vbGVhbjtcbiAgZm9jdXNhYmxlOiAoaXRlbTogRm9jdXNlZEl0ZW0sIG9yZGVyTnVtYmVyOiBudW1iZXIpID0+ICRGb2N1c2FibGVQcm9wczxGb2N1c2VkSXRlbT47XG59O1xuXG5leHBvcnQgdHlwZSBBbnlGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtID0gYW55PiA9XG4gIHwgRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT5cbiAgfCBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+O1xuXG5jb25zdCBjb250ZXh0c0J5S2V5ID0gbmV3IE1hcDxzdHJpbmcsIEFueUZvY3VzYWJsZUNvbnRleHQ+KCk7XG5cbi8qKlxuICogRGVjbGFyZXMgYSBmb2N1c2FibGUgY29udGV4dC4gVGhlIHNhbWUgaWQgYWx3YXlzIHlpZWxkcyB0aGUgc2FtZSBjb250ZXh0LCBzbyBjYWxsaW5nIHRoaXMgZHVyaW5nXG4gKiByZW5kZXIgaXMgc3RhYmxlIFx1MjAxNCB3aGljaCBpcyB3aGF0IGxldHMgYSBzdXJmYWNlIHdpdGggc2V2ZXJhbCBsaXZlIGluc3RhbmNlcyBuYW1lIG9uZSBjb250ZXh0IHBlclxuICogaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGb2N1c2FibGVDb250ZXh0ID0gPEZvY3VzZWRJdGVtLD4oaWQ6IHN0cmluZyk6IEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0+XG4gIGdldE9yQ3JlYXRlQ29udGV4dChgZm9jdXNhYmxlOiR7aWR9YCwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICAgICAgaWQsXG4gICAgICBpc0tleWJvYXJkTmF2aWdhYmxlOiBmYWxzZSxcbiAgICAgIGZvY3VzYWJsZTogKGl0ZW0pID0+ICh7IGNvbnRleHQsIGl0ZW0gfSksXG4gICAgfTtcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9KTtcblxuZXhwb3J0IHR5cGUgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFdoaWNoIGFycm93IGtleXMgbW92ZSBmb2N1cy4gRG93bndhcmRzIGJ5IGRlZmF1bHQsIGFzIG1vc3Qgc2V0cyBvZiB0aGluZ3MgYXJlIGxhaWQgb3V0OiB0aGVcbiAgICoga2V5cyBvZiB0aGUgb3RoZXIgYXhpcyBhcmUgdGhlbiBsZWZ0IHRvIHdoYXRldmVyIHRoZSBtZW1iZXJzIHdhbnQgdGhlbSBmb3IsIHN1Y2ggYXMgYSBtZW1iZXJcbiAgICogb3BlbmluZyBzb21ldGhpbmcgb2YgaXRzIG93biB3aXRoIEFycm93UmlnaHQuXG4gICAqL1xuICByZWFkb25seSBvcmllbnRhdGlvbj86IEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIGlzIGZvY3VzZWQgYXMgdGhlIG1lbWJlcnMgYXBwZWFyLiBJdCBpcyBieSBkZWZhdWx0OiBhIHNldCBvZlxuICAgKiBtZW1iZXJzIGFwcGVhcmluZyBpcyB1c3VhbGx5IHNvbWV0aGluZyB0aGUgdXNlciBhc2tlZCBmb3IgYW5kIHdpbGwgZ28gb24gd2l0aC4gTm90IHNvIGZvciBhIHNldFxuICAgKiB0aGF0IGFwcGVhcnMgYmVjYXVzZSB0aGUgcG9pbnRlciByZXN0cyBvbiBzb21ldGhpbmcsIHdoZXJlIHdoYXQgdGhlIHVzZXIgaXMgbG9va2luZyBhdCBpcyB3aGF0XG4gICAqIHRoZSBwb2ludGVyIGlzIG9uLCBhbmQgZm9jdXMgc3RheXMgdGhlcmUgdW50aWwgZWl0aGVyIHRoZSBwb2ludGVyIG9yIHRoZSBrZXlib2FyZCBtb3ZlcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IHRha2VzRm9jdXNBc0l0QXBwZWFycz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIERlY2xhcmVzIGEgZm9jdXNhYmxlIGNvbnRleHQgd2hvc2UgbWVtYmVycyBhcmUgbmF2aWdhdGVkIHdpdGggYXJyb3cga2V5cy4gQXMgd2l0aFxuICoge0BsaW5rIGdldEZvY3VzYWJsZUNvbnRleHR9LCB0aGUgc2FtZSBpZCBhbHdheXMgeWllbGRzIHRoZSBzYW1lIGNvbnRleHQgXHUyMDE0IHRoZSBzYW1lIGlkIHdpdGggdGhlXG4gKiBzYW1lIG9wdGlvbnMsIHRoYXQgaXMuIEEgY29udGV4dCB3aXRoIG90aGVyIG9wdGlvbnMgaXMgYSBjb250ZXh0IG9mIGl0cyBvd24sIHdoYXRldmVyIGl0IGlzXG4gKiBuYW1lZCwgc28gYSBzdXJmYWNlIHRoYXQgYXNrcyBmb3IgaXRzIGNvbnRleHQgYnkgdGhlIHNhbWUgbmFtZSB3aXRoIG90aGVyIG9wdGlvbnMgbW92ZXMgaXRzXG4gKiBtZW1iZXJzIHRoZXJlIGFzIHRoZXkgcmVuZGVyIGFnYWluLCBhbmQgdGhleSBhcHBlYXIgYW5ldyBhcyBmYXIgYXMgdGhhdCBjb250ZXh0IGlzIGNvbmNlcm5lZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCA9IDxGb2N1c2VkSXRlbSw+KFxuICBpZDogc3RyaW5nLFxuICBvcHRpb25zOiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHRPcHRpb25zID0ge30sXG4pOiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0+IHtcbiAgY29uc3Qgb3JpZW50YXRpb24gPSBvcHRpb25zLm9yaWVudGF0aW9uID8/IFwidmVydGljYWxcIjtcbiAgY29uc3QgdGFrZXNGb2N1c0FzSXRBcHBlYXJzID0gb3B0aW9ucy50YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPz8gdHJ1ZTtcblxuICBjb25zdCBrZXkgPSBga2V5Ym9hcmQtbmF2aWdhYmxlOiR7aWR9fCR7b3JpZW50YXRpb259fCR7dGFrZXNGb2N1c0FzSXRBcHBlYXJzID8gXCJ0YWtpbmdcIiA6IFwibGVhdmluZ1wifS1mb2N1c2A7XG5cbiAgcmV0dXJuIGdldE9yQ3JlYXRlQ29udGV4dChrZXksICgpID0+IHtcbiAgICBjb25zdCBjb250ZXh0OiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICAgICAgaWQsXG4gICAgICBpc0tleWJvYXJkTmF2aWdhYmxlOiB0cnVlLFxuICAgICAgb3JpZW50YXRpb24sXG4gICAgICB0YWtlc0ZvY3VzQXNJdEFwcGVhcnMsXG4gICAgICBmb2N1c2FibGU6IChpdGVtLCBvcmRlck51bWJlcikgPT4gKHsgY29udGV4dCwgaXRlbSwgb3JkZXJOdW1iZXIgfSksXG4gICAgfTtcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9KTtcbn07XG5cbmNvbnN0IGdldE9yQ3JlYXRlQ29udGV4dCA9IDxUIGV4dGVuZHMgQW55Rm9jdXNhYmxlQ29udGV4dD4oa2V5OiBzdHJpbmcsIGNyZWF0ZTogKCkgPT4gVCk6IFQgPT4ge1xuICBjb25zdCBleGlzdGluZyA9IGNvbnRleHRzQnlLZXkuZ2V0KGtleSk7XG5cbiAgaWYgKGV4aXN0aW5nKSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nIGFzIFQ7XG4gIH1cblxuICBjb25zdCBjcmVhdGVkID0gY3JlYXRlKCk7XG5cbiAgY29udGV4dHNCeUtleS5zZXQoa2V5LCBjcmVhdGVkKTtcblxuICByZXR1cm4gY3JlYXRlZDtcbn07XG4iLCAiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyAkRm9jdXNhYmxlUHJvcHMgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuLyoqXG4gKiBDYXJyaWVzIHRoZSBmb2N1c2FibGUgYW4gZWxlbWVudCBpcywgYXMgZGVjaWRlZCBieSB0aGUgc3VyZmFjZSBpdCByZW5kZXJzIGluIHJhdGhlciB0aGFuIGJ5IHRoZVxuICogZWxlbWVudCBpdHNlbGY6IHdoaWNoIGNvbnRleHQgaXQgY29tcGV0ZXMgaW4sIHdoaWNoIGl0ZW0gaXQgc3RhbmRzIGZvciwgYW5kIHdoZXJlIGl0IHNpdHMgYW1vbmdcbiAqIHRoZSBvdGhlcnMuXG4gKlxuICogQSBzdXJmYWNlIHRoYXQga25vd3MgaXRzIGl0ZW1zIFx1MjAxNCBhIG1lbnUsIGEgdG9vbGJhciBcdTIwMTQgcHJvdmlkZXMgb25lIG9mIHRoZXNlIHBlciBpdGVtOyB3aGF0ZXZlclxuICogZHJhd3MgdGhlIGl0ZW0gYWRvcHRzIGl0IHRocm91Z2gge0BsaW5rIHVzZUZvY3VzYWJsZUl0ZW19IHdoaWxlIGtub3dpbmcgbm90aGluZyBhYm91dCB0aGVcbiAqIHN1cmZhY2UsIHdoaWNoIGlzIHdoYXQgbGV0cyBhIGR1bWIgY29tcG9uZW50IGJlIGtleWJvYXJkLW5hdmlnYWJsZSBpbiBvbmUgc3VyZmFjZSBhbmQgb3JkaW5hcnlcbiAqIGluIGFub3RoZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSA9IGNyZWF0ZUNvbnRleHQ8JEZvY3VzYWJsZVByb3BzPGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogVGhlIGAkZm9jdXNhYmxlYCBvZiB0aGUgaXRlbSBhIGNvbXBvbmVudCBkcmF3cywgd2hlbiB0aGUgc3VyZmFjZSBhcm91bmQgaXQgZGVjaWRlZCBvbmUuXG4gKiBgdW5kZWZpbmVkYCBvdXRzaWRlIHN1Y2ggYSBzdXJmYWNlLCB3aGljaCBpcyB3aGF0IG1ha2VzIGFkb3B0aW5nIGl0IGEgbWF0dGVyIG9mIHBhc3NpbmcgaXQgb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgUm93ID0gKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pID0+IChcbiAqICAgPENsaWNrYWJsZUxpICRmb2N1c2FibGU9e3VzZUZvY3VzYWJsZUl0ZW0oKX0+e2NoaWxkcmVufTwvQ2xpY2thYmxlTGk+XG4gKiApO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VGb2N1c2FibGVJdGVtID0gKCkgPT4gdXNlQ29udGV4dChjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSk7XG4iLCAiaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBNdXRhYmxlUmVmT2JqZWN0LCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbnRleHRJc0JlaW5nSG92ZXJlZEluamVjdGFibGUgfSBmcm9tIFwiLi9fcHJpdmF0ZS9jb250ZXh0LWlzLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgY29uc3QgdXNlTG9jYWxIb3ZlcmFibGUgPSA8RWxlbSBleHRlbmRzIEhUTUxFbGVtZW50PigpID0+IHtcbiAgY29uc3QgaG92ZXJhYmxlQ29udGV4dCA9IHVzZU1lbW8oKCkgPT4gZ2V0SG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PEVsZW0gfCBudWxsPj4oKSwgW10pO1xuICBjb25zdCByZWYgPSB1c2VSZWY8RWxlbT4obnVsbCk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGNvbnRleHRJc0JlaW5nSG92ZXJlZEluamVjdGFibGUsIGhvdmVyYWJsZUNvbnRleHQpO1xuXG4gIHJldHVybiB7XG4gICAgcmVmLFxuICAgIGNvbnRleHQ6IGhvdmVyYWJsZUNvbnRleHQuaG92ZXJhYmxlKHJlZiksXG4gICAgY29tcG9uZW50SXNIb3ZlcmVkOiBpdGVtQmVpbmdIb3ZlcmVkLFxuICB9O1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUNBQSwrQkFBZ0Q7QUFFaEQsbUJBQStDO0FBd0R0QztBQXBDRixJQUFNLG9CQUFvQixDQUFDLG1CQUFrRDtBQUNsRixRQUFNLCtCQUEyQixxQkFBMEIsTUFBUztBQUNwRSxRQUFNLGlCQUFhLHFCQUFPLGNBQWM7QUFFeEMsOEJBQVUsTUFBTTtBQUNkLGVBQVcsVUFBVTtBQUFBLEVBQ3ZCLENBQUM7QUFFRCw4QkFBVSxNQUFNO0FBQ2QsVUFBTSw0QkFBNEIsQ0FBQyxVQUF3QjtBQUN6RCxVQUFJ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O0FBYW5DLElBQU0sOEJBQTBCLDhCQUFnRCxNQUFTO0FBYXpGLElBQU0sbUJBQW1CLFVBQU0sMkJBQVcsdUJBQXVCOzs7QUMxQnhFLElBQUFDLHNCQUE4QjtBQUU5QixJQUFBQyxpQkFBdUQ7QUFHaEQsSUFBTSxvQkFBb0IsTUFBZ0M7QUFDL0QsUUFBTSx1QkFBbUIsd0JBQVEsTUFBTSxvQkFBbUQsR0FBRyxDQUFDLENBQUM7QUFDL0YsUUFBTSxVQUFNLHVCQUFhLElBQUk7QUFDN0IsUUFBTSx1QkFBbUIsbUNBQWMsaUNBQWlDLGdCQUFnQjtBQUV4RixTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsU0FBUyxpQkFBaUIsVUFBVSxHQUFHO0FBQUEsSUFDdkMsb0JBQW9CO0FBQUEsRUFDdEI7QUFDRjsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAidG9Db250ZXh0TWFwIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2luamVjdGFibGUiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXMiLCAiaW1wb3J0X2ZwIiwgImxvZGFzaENhcGl0YWxpemUiLCAiaW1wb3J0X2ZwIiwgImFsaWFzVG9Ob21pbmFsIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2ZlYXR1cmVfY29yZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAibW9kdWxlcyIsICJtb2R1bGVzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgIm1vZHVsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaXNQZXJjZW50YWdlIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJhbGlhc1RvTm9taW5hbCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X21vYnhfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZnAiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3Rlc3RfdXRpbHMiLCAic3R5bGVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdF9kb20iLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImlzUG9wb3ZlckNhcGFibGUiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgInN0b3BQcm9wYWdhdGlvbiIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0Il0KfQo=
|