@projectcor/maia-components 2.11.59-2 → 2.11.59-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/lib/App.js +3 -1
- package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.js +19 -7
- package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.js +4 -4
- package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.js +128 -90
- package/lib/components/molecules/ChatAIMyRoutines/ChatAIMyRoutines.styles.js +2 -2
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +2 -2
- package/lib/components/molecules/maiaSectionModalStyles.js +2 -2
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +19 -2
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +3 -2
- package/lib/lang/br/index.js +301 -29
- package/lib/lang/en/index.js +303 -31
- package/lib/lang/es/index.js +274 -2
- package/lib/lang/fr/index.js +33 -31
- package/package.json +1 -1
|
@@ -18,7 +18,19 @@ import { Loader } from '../../atoms/Loader';
|
|
|
18
18
|
import { maiaSectionUi as u } from '../maiaSectionUiTokens';
|
|
19
19
|
import { SCAgentSelectorContainer, SCAgentSelectorList, SCAgentSelectorLoadingRow, SCAgentSelectorOption, SCAgentSelectorTrigger, MAIA_SECTION_MODAL_Z, SCFieldWithDropdownZ } from '../maiaSectionModalStyles';
|
|
20
20
|
import { SCMRActionsRow, SCMRBody, SCMRCardBody, SCMRCardButton, SCMRCardContentText, SCMRCardFooter, SCMRCardFrequency, SCMRCardHeader, SCMRCardMenu, SCMRCardMenuItem, SCMRCardMenuItems, SCMRCardTitleName, SCMRCardTopRow, SCMRCardsOuter, SCMRCardsRow, SCMRContainer, SCMRCreateButton, SCMRCreateButtonText, SCMREmptyStateButton, SCMREmptyStateColumn, SCMREmptyStateRoot, SCMREmptyStateSubtitle, SCMREmptyStateTitleBlock, SCMREmptyStateTitle, SCMRKebabButton, SCMRLoadWrapper, SCMRModalBodyScroll, SCMRModalCancelButton, SCMRModalCloseButton, SCMRModalContent, SCMRModalFooter, SCMRModalHeader, SCMRModalSaveButton, SCMRModalTitle, SCMRModalWrapper, SCMRStatusBadge, SCMRSubtitle, SCMRTitle, SCMRTitleInner, SCMRTitleWrap } from './ChatAIMyRoutines.styles';
|
|
21
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
22
|
+
var routineToFormState = function routineToFormState(routine) {
|
|
23
|
+
var _routine$name, _routine$hour, _routine$minute, _routine$day_of_week;
|
|
24
|
+
return {
|
|
25
|
+
name: (_routine$name = routine.name) !== null && _routine$name !== void 0 ? _routine$name : '',
|
|
26
|
+
input: routine.input,
|
|
27
|
+
scheduleType: routine.schedule_type,
|
|
28
|
+
hour: (_routine$hour = routine.hour) !== null && _routine$hour !== void 0 ? _routine$hour : 12,
|
|
29
|
+
minute: (_routine$minute = routine.minute) !== null && _routine$minute !== void 0 ? _routine$minute : 0,
|
|
30
|
+
dayOfWeek: (_routine$day_of_week = routine.day_of_week) !== null && _routine$day_of_week !== void 0 ? _routine$day_of_week : 0,
|
|
31
|
+
timezone: routine.timezone
|
|
32
|
+
};
|
|
33
|
+
};
|
|
22
34
|
export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
23
35
|
var _document$getElementB, _selectedAgent$id;
|
|
24
36
|
var _useTranslation = useTranslation('abm_agent_section'),
|
|
@@ -33,44 +45,48 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
33
45
|
setLoading = _useState4[1];
|
|
34
46
|
var _useState5 = useState(false),
|
|
35
47
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
36
|
-
|
|
37
|
-
|
|
48
|
+
panelOpen = _useState6[0],
|
|
49
|
+
setPanelOpen = _useState6[1];
|
|
38
50
|
var _useState7 = useState(null),
|
|
39
51
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var _useState9 = useState(
|
|
52
|
+
editingRoutine = _useState8[0],
|
|
53
|
+
setEditingRoutine = _useState8[1];
|
|
54
|
+
var _useState9 = useState(null),
|
|
43
55
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var _useState1 = useState(
|
|
56
|
+
templateForm = _useState0[0],
|
|
57
|
+
setTemplateForm = _useState0[1];
|
|
58
|
+
var _useState1 = useState([]),
|
|
47
59
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
var _useState11 = useState(
|
|
60
|
+
agents = _useState10[0],
|
|
61
|
+
setAgents = _useState10[1];
|
|
62
|
+
var _useState11 = useState(false),
|
|
51
63
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
var _useState13 = useState(
|
|
64
|
+
loadingAgents = _useState12[0],
|
|
65
|
+
setLoadingAgents = _useState12[1];
|
|
66
|
+
var _useState13 = useState(null),
|
|
55
67
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
var _useState15 = useState(
|
|
68
|
+
selectedAgent = _useState14[0],
|
|
69
|
+
setSelectedAgent = _useState14[1];
|
|
70
|
+
var _useState15 = useState(false),
|
|
59
71
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
var _useState17 = useState(
|
|
72
|
+
dropdownOpen = _useState16[0],
|
|
73
|
+
setDropdownOpen = _useState16[1];
|
|
74
|
+
var _useState17 = useState(0),
|
|
63
75
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
var _useState19 = useState(
|
|
76
|
+
submitCount = _useState18[0],
|
|
77
|
+
setSubmitCount = _useState18[1];
|
|
78
|
+
var _useState19 = useState(false),
|
|
67
79
|
_useState20 = _slicedToArray(_useState19, 2),
|
|
68
|
-
|
|
69
|
-
|
|
80
|
+
isFormValid = _useState20[0],
|
|
81
|
+
setIsFormValid = _useState20[1];
|
|
70
82
|
var _useState21 = useState(null),
|
|
71
83
|
_useState22 = _slicedToArray(_useState21, 2),
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
menuOpenForId = _useState22[0],
|
|
85
|
+
setMenuOpenForId = _useState22[1];
|
|
86
|
+
var _useState23 = useState(null),
|
|
87
|
+
_useState24 = _slicedToArray(_useState23, 2),
|
|
88
|
+
routineToDelete = _useState24[0],
|
|
89
|
+
setRoutineToDelete = _useState24[1];
|
|
74
90
|
var dropdownRef = useRef(null);
|
|
75
91
|
var fetchRoutines = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
76
92
|
var result, _t;
|
|
@@ -151,13 +167,39 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
151
167
|
fetchRoutines();
|
|
152
168
|
}, [fetchRoutines]);
|
|
153
169
|
useEffect(function () {
|
|
154
|
-
if (!
|
|
170
|
+
if (!panelOpen) {
|
|
155
171
|
return undefined;
|
|
156
172
|
}
|
|
157
173
|
setDropdownOpen(false);
|
|
158
174
|
fetchAgents();
|
|
159
175
|
return undefined;
|
|
160
|
-
}, [
|
|
176
|
+
}, [panelOpen, fetchAgents]);
|
|
177
|
+
var openCreatePanel = useCallback(function () {
|
|
178
|
+
setEditingRoutine(null);
|
|
179
|
+
setTemplateForm(null);
|
|
180
|
+
setSelectedAgent(null);
|
|
181
|
+
setIsFormValid(false);
|
|
182
|
+
setSubmitCount(0);
|
|
183
|
+
setPanelOpen(true);
|
|
184
|
+
}, []);
|
|
185
|
+
var openDetailPanel = useCallback(function (routine) {
|
|
186
|
+
var _routine$agent_name, _routine$agent_emoji;
|
|
187
|
+
setEditingRoutine(routine);
|
|
188
|
+
setTemplateForm(routineToFormState(routine));
|
|
189
|
+
setSelectedAgent(routine.agent_external_id ? {
|
|
190
|
+
id: routine.agent_external_id,
|
|
191
|
+
name: (_routine$agent_name = routine.agent_name) !== null && _routine$agent_name !== void 0 ? _routine$agent_name : '',
|
|
192
|
+
emoji: (_routine$agent_emoji = routine.agent_emoji) !== null && _routine$agent_emoji !== void 0 ? _routine$agent_emoji : ''
|
|
193
|
+
} : null);
|
|
194
|
+
setIsFormValid(false);
|
|
195
|
+
setSubmitCount(0);
|
|
196
|
+
setPanelOpen(true);
|
|
197
|
+
}, []);
|
|
198
|
+
var closePanel = useCallback(function () {
|
|
199
|
+
setPanelOpen(false);
|
|
200
|
+
setEditingRoutine(null);
|
|
201
|
+
setTemplateForm(null);
|
|
202
|
+
}, []);
|
|
161
203
|
useEffect(function () {
|
|
162
204
|
if (!dropdownOpen) {
|
|
163
205
|
return undefined;
|
|
@@ -181,13 +223,10 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
181
223
|
};
|
|
182
224
|
}, [menuOpenForId]);
|
|
183
225
|
var handleCreateSuccess = useCallback(function () {
|
|
184
|
-
|
|
185
|
-
setShowCreatePanel(false);
|
|
226
|
+
closePanel();
|
|
186
227
|
setSelectedAgent(null);
|
|
187
|
-
setTemplateForm(null);
|
|
188
|
-
setIsFormValid(false);
|
|
189
228
|
fetchRoutines();
|
|
190
|
-
}, [fetchRoutines]);
|
|
229
|
+
}, [closePanel, fetchRoutines]);
|
|
191
230
|
var handleConfirmDelete = useCallback(/*#__PURE__*/function () {
|
|
192
231
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(chat) {
|
|
193
232
|
var _t3;
|
|
@@ -254,9 +293,7 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
254
293
|
}), /*#__PURE__*/_jsx(SCMRActionsRow, {
|
|
255
294
|
children: /*#__PURE__*/_jsx(SCMRCreateButton, {
|
|
256
295
|
type: "button",
|
|
257
|
-
onClick:
|
|
258
|
-
return setShowCreatePanel(true);
|
|
259
|
-
},
|
|
296
|
+
onClick: openCreatePanel,
|
|
260
297
|
children: /*#__PURE__*/_jsx(SCMRCreateButtonText, {
|
|
261
298
|
children: t('triggersSection.newRoutine')
|
|
262
299
|
})
|
|
@@ -269,9 +306,12 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
269
306
|
}) : null, !loading && routines.length ? /*#__PURE__*/_jsx(SCMRCardsOuter, {
|
|
270
307
|
children: /*#__PURE__*/_jsx(SCMRCardsRow, {
|
|
271
308
|
children: routines.map(function (routine) {
|
|
272
|
-
var _routine$
|
|
309
|
+
var _routine$agent_name2;
|
|
273
310
|
return /*#__PURE__*/_jsxs(SCMRCardButton, {
|
|
274
311
|
type: "button",
|
|
312
|
+
onClick: function onClick() {
|
|
313
|
+
return openDetailPanel(routine);
|
|
314
|
+
},
|
|
275
315
|
children: [/*#__PURE__*/_jsx(SCMRCardHeader, {
|
|
276
316
|
children: /*#__PURE__*/_jsxs(SCMRCardTopRow, {
|
|
277
317
|
children: [/*#__PURE__*/_jsx(SCMRCardTitleName, {
|
|
@@ -295,7 +335,7 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
295
335
|
})
|
|
296
336
|
}), /*#__PURE__*/_jsxs(SCMRCardBody, {
|
|
297
337
|
children: [/*#__PURE__*/_jsx(SCMRCardContentText, {
|
|
298
|
-
children: routine.agent_emoji || routine.agent_name ? "".concat(routine.agent_emoji ? "".concat(routine.agent_emoji, " ") : '').concat((_routine$
|
|
338
|
+
children: routine.agent_emoji || routine.agent_name ? "".concat(routine.agent_emoji ? "".concat(routine.agent_emoji, " ") : '').concat((_routine$agent_name2 = routine.agent_name) !== null && _routine$agent_name2 !== void 0 ? _routine$agent_name2 : '') : ''
|
|
299
339
|
}), /*#__PURE__*/_jsxs(SCMRCardFooter, {
|
|
300
340
|
children: [/*#__PURE__*/_jsx(SCMRCardFrequency, {
|
|
301
341
|
children: frequencyLabel(routine)
|
|
@@ -334,17 +374,12 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
334
374
|
})
|
|
335
375
|
}), /*#__PURE__*/_jsx(SCMREmptyStateButton, {
|
|
336
376
|
type: "button",
|
|
337
|
-
onClick:
|
|
338
|
-
return setShowCreatePanel(true);
|
|
339
|
-
},
|
|
377
|
+
onClick: openCreatePanel,
|
|
340
378
|
children: t('triggersSection.newRoutine')
|
|
341
379
|
})]
|
|
342
380
|
}) : null]
|
|
343
|
-
}),
|
|
344
|
-
onClick:
|
|
345
|
-
setShowCreatePanel(false);
|
|
346
|
-
setTemplateForm(null);
|
|
347
|
-
},
|
|
381
|
+
}), panelOpen && /*#__PURE__*/ReactDOM.createPortal(/*#__PURE__*/_jsx(Backdrop, {
|
|
382
|
+
onClick: closePanel,
|
|
348
383
|
zIndex: MAIA_SECTION_MODAL_Z,
|
|
349
384
|
children: /*#__PURE__*/_jsxs(SCMRModalWrapper, {
|
|
350
385
|
onClick: function onClick(e) {
|
|
@@ -352,14 +387,11 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
352
387
|
},
|
|
353
388
|
children: [/*#__PURE__*/_jsxs(SCMRModalHeader, {
|
|
354
389
|
children: [/*#__PURE__*/_jsx(SCMRModalTitle, {
|
|
355
|
-
children: t('triggersSection.newRoutine')
|
|
390
|
+
children: editingRoutine ? t('triggersSection.routineDetail') : t('triggersSection.newRoutine')
|
|
356
391
|
}), /*#__PURE__*/_jsx(SCMRModalCloseButton, {
|
|
357
392
|
type: "button",
|
|
358
393
|
"aria-label": t('triggersSection.back'),
|
|
359
|
-
onClick:
|
|
360
|
-
setShowCreatePanel(false);
|
|
361
|
-
setTemplateForm(null);
|
|
362
|
-
},
|
|
394
|
+
onClick: closePanel,
|
|
363
395
|
children: /*#__PURE__*/_jsx(Cross, {
|
|
364
396
|
color: "#a6a6a6",
|
|
365
397
|
width: 18,
|
|
@@ -368,40 +400,49 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
368
400
|
})]
|
|
369
401
|
}), /*#__PURE__*/_jsxs(SCMRModalContent, {
|
|
370
402
|
children: [/*#__PURE__*/_jsxs(SCFieldWithDropdownZ, {
|
|
371
|
-
children: [t('triggersSection.agent'), /*#__PURE__*/
|
|
403
|
+
children: [t('triggersSection.agent'), /*#__PURE__*/_jsx(SCAgentSelectorContainer, {
|
|
372
404
|
ref: dropdownRef,
|
|
373
|
-
children:
|
|
374
|
-
open:
|
|
375
|
-
onClick: function onClick() {
|
|
376
|
-
return setDropdownOpen(function (prev) {
|
|
377
|
-
return !prev;
|
|
378
|
-
});
|
|
379
|
-
},
|
|
405
|
+
children: editingRoutine ? /*#__PURE__*/_jsx(SCAgentSelectorTrigger, {
|
|
406
|
+
open: false,
|
|
380
407
|
type: "button",
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
width: "14px",
|
|
385
|
-
height: "14px",
|
|
386
|
-
color: dropdownOpen ? u.agentAccent : u.textMuted
|
|
387
|
-
})]
|
|
388
|
-
}), dropdownOpen && /*#__PURE__*/_jsx(SCAgentSelectorList, {
|
|
389
|
-
children: loadingAgents ? /*#__PURE__*/_jsx(SCAgentSelectorLoadingRow, {
|
|
390
|
-
children: t('triggersSection.loadingAgents')
|
|
391
|
-
}) : agents.map(function (agent) {
|
|
392
|
-
return /*#__PURE__*/_jsxs(SCAgentSelectorOption, {
|
|
393
|
-
isSelected: (selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id) === agent.id,
|
|
394
|
-
onMouseDown: function onMouseDown(e) {
|
|
395
|
-
e.stopPropagation();
|
|
396
|
-
},
|
|
397
|
-
onClick: function onClick() {
|
|
398
|
-
setSelectedAgent(agent);
|
|
399
|
-
setDropdownOpen(false);
|
|
400
|
-
},
|
|
401
|
-
children: [agent.emoji ? "".concat(agent.emoji, " ") : '', agent.name]
|
|
402
|
-
}, agent.id);
|
|
408
|
+
disabled: true,
|
|
409
|
+
children: /*#__PURE__*/_jsx("span", {
|
|
410
|
+
children: selectedLabel
|
|
403
411
|
})
|
|
404
|
-
})
|
|
412
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
413
|
+
children: [/*#__PURE__*/_jsxs(SCAgentSelectorTrigger, {
|
|
414
|
+
open: dropdownOpen,
|
|
415
|
+
onClick: function onClick() {
|
|
416
|
+
return setDropdownOpen(function (prev) {
|
|
417
|
+
return !prev;
|
|
418
|
+
});
|
|
419
|
+
},
|
|
420
|
+
type: "button",
|
|
421
|
+
children: [/*#__PURE__*/_jsx("span", {
|
|
422
|
+
children: loadingAgents ? t('triggersSection.loadingAgents') : selectedLabel
|
|
423
|
+
}), /*#__PURE__*/_jsx(ChevronDown, {
|
|
424
|
+
width: "14px",
|
|
425
|
+
height: "14px",
|
|
426
|
+
color: dropdownOpen ? u.agentAccent : u.textMuted
|
|
427
|
+
})]
|
|
428
|
+
}), dropdownOpen && /*#__PURE__*/_jsx(SCAgentSelectorList, {
|
|
429
|
+
children: loadingAgents ? /*#__PURE__*/_jsx(SCAgentSelectorLoadingRow, {
|
|
430
|
+
children: t('triggersSection.loadingAgents')
|
|
431
|
+
}) : agents.map(function (agent) {
|
|
432
|
+
return /*#__PURE__*/_jsxs(SCAgentSelectorOption, {
|
|
433
|
+
isSelected: (selectedAgent === null || selectedAgent === void 0 ? void 0 : selectedAgent.id) === agent.id,
|
|
434
|
+
onMouseDown: function onMouseDown(e) {
|
|
435
|
+
e.stopPropagation();
|
|
436
|
+
},
|
|
437
|
+
onClick: function onClick() {
|
|
438
|
+
setSelectedAgent(agent);
|
|
439
|
+
setDropdownOpen(false);
|
|
440
|
+
},
|
|
441
|
+
children: [agent.emoji ? "".concat(agent.emoji, " ") : '', agent.name]
|
|
442
|
+
}, agent.id);
|
|
443
|
+
})
|
|
444
|
+
})]
|
|
445
|
+
})
|
|
405
446
|
})]
|
|
406
447
|
}), /*#__PURE__*/_jsx(SCMRModalBodyScroll, {
|
|
407
448
|
children: /*#__PURE__*/_jsx(AbmTriggersSection, {
|
|
@@ -416,12 +457,9 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
416
457
|
}), /*#__PURE__*/_jsxs(SCMRModalFooter, {
|
|
417
458
|
children: [/*#__PURE__*/_jsx(SCMRModalCancelButton, {
|
|
418
459
|
type: "button",
|
|
419
|
-
onClick:
|
|
420
|
-
setShowCreatePanel(false);
|
|
421
|
-
setTemplateForm(null);
|
|
422
|
-
},
|
|
460
|
+
onClick: closePanel,
|
|
423
461
|
children: t('triggersSection.back')
|
|
424
|
-
}), /*#__PURE__*/_jsx(SCMRModalSaveButton, {
|
|
462
|
+
}), !editingRoutine && /*#__PURE__*/_jsx(SCMRModalSaveButton, {
|
|
425
463
|
type: "button",
|
|
426
464
|
disabled: !isFormValid,
|
|
427
465
|
onClick: function onClick() {
|
|
@@ -445,4 +483,4 @@ export var ChatAIMyRoutines = function ChatAIMyRoutines() {
|
|
|
445
483
|
}) : null]
|
|
446
484
|
});
|
|
447
485
|
};
|
|
448
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdERPTSIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VUcmFuc2xhdGlvbiIsIk1lbnVEb3RzIiwiQ2hldnJvbkRvd24iLCJDcm9zcyIsIkFibVRyaWdnZXJzU2VjdGlvbiIsIkJhY2tkcm9wIiwiZmV0Y2hNYWlhIiwiZ2V0TXlTY2hlZHVsZXMiLCJkZWxldGVTY2hlZHVsZSIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJNQUlBSXNvbG9nbyIsIkxvYWRlciIsIm1haWFTZWN0aW9uVWkiLCJ1IiwiU0NBZ2VudFNlbGVjdG9yQ29udGFpbmVyIiwiU0NBZ2VudFNlbGVjdG9yTGlzdCIsIlNDQWdlbnRTZWxlY3RvckxvYWRpbmdSb3ciLCJTQ0FnZW50U2VsZWN0b3JPcHRpb24iLCJTQ0FnZW50U2VsZWN0b3JUcmlnZ2VyIiwiTUFJQV9TRUNUSU9OX01PREFMX1oiLCJTQ0ZpZWxkV2l0aERyb3Bkb3duWiIsIlNDTVJBY3Rpb25zUm93IiwiU0NNUkJvZHkiLCJTQ01SQ2FyZEJvZHkiLCJTQ01SQ2FyZEJ1dHRvbiIsIlNDTVJDYXJkQ29udGVudFRleHQiLCJTQ01SQ2FyZEZvb3RlciIsIlNDTVJDYXJkRnJlcXVlbmN5IiwiU0NNUkNhcmRIZWFkZXIiLCJTQ01SQ2FyZE1lbnUiLCJTQ01SQ2FyZE1lbnVJdGVtIiwiU0NNUkNhcmRNZW51SXRlbXMiLCJTQ01SQ2FyZFRpdGxlTmFtZSIsIlNDTVJDYXJkVG9wUm93IiwiU0NNUkNhcmRzT3V0ZXIiLCJTQ01SQ2FyZHNSb3ciLCJTQ01SQ29udGFpbmVyIiwiU0NNUkNyZWF0ZUJ1dHRvbiIsIlNDTVJDcmVhdGVCdXR0b25UZXh0IiwiU0NNUkVtcHR5U3RhdGVCdXR0b24iLCJTQ01SRW1wdHlTdGF0ZUNvbHVtbiIsIlNDTVJFbXB0eVN0YXRlUm9vdCIsIlNDTVJFbXB0eVN0YXRlU3VidGl0bGUiLCJTQ01SRW1wdHlTdGF0ZVRpdGxlQmxvY2siLCJTQ01SRW1wdHlTdGF0ZVRpdGxlIiwiU0NNUktlYmFiQnV0dG9uIiwiU0NNUkxvYWRXcmFwcGVyIiwiU0NNUk1vZGFsQm9keVNjcm9sbCIsIlNDTVJNb2RhbENhbmNlbEJ1dHRvbiIsIlNDTVJNb2RhbENsb3NlQnV0dG9uIiwiU0NNUk1vZGFsQ29udGVudCIsIlNDTVJNb2RhbEZvb3RlciIsIlNDTVJNb2RhbEhlYWRlciIsIlNDTVJNb2RhbFNhdmVCdXR0b24iLCJTQ01STW9kYWxUaXRsZSIsIlNDTVJNb2RhbFdyYXBwZXIiLCJTQ01SU3RhdHVzQmFkZ2UiLCJTQ01SU3VidGl0bGUiLCJTQ01SVGl0bGUiLCJTQ01SVGl0bGVJbm5lciIsIlNDTVJUaXRsZVdyYXAiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEFJTXlSb3V0aW5lcyIsIl9kb2N1bWVudCRnZXRFbGVtZW50QiIsIl9zZWxlY3RlZEFnZW50JGlkIiwiX3VzZVRyYW5zbGF0aW9uIiwidCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInJvdXRpbmVzIiwic2V0Um91dGluZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93Q3JlYXRlUGFuZWwiLCJzZXRTaG93Q3JlYXRlUGFuZWwiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInRlbXBsYXRlRm9ybSIsInNldFRlbXBsYXRlRm9ybSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiYWdlbnRzIiwic2V0QWdlbnRzIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwibG9hZGluZ0FnZW50cyIsInNldExvYWRpbmdBZ2VudHMiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwic2VsZWN0ZWRBZ2VudCIsInNldFNlbGVjdGVkQWdlbnQiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwiZHJvcGRvd25PcGVuIiwic2V0RHJvcGRvd25PcGVuIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsInN1Ym1pdENvdW50Iiwic2V0U3VibWl0Q291bnQiLCJfdXNlU3RhdGUxNyIsIl91c2VTdGF0ZTE4IiwiaXNGb3JtVmFsaWQiLCJzZXRJc0Zvcm1WYWxpZCIsIl91c2VTdGF0ZTE5IiwiX3VzZVN0YXRlMjAiLCJtZW51T3BlbkZvcklkIiwic2V0TWVudU9wZW5Gb3JJZCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJyb3V0aW5lVG9EZWxldGUiLCJzZXRSb3V0aW5lVG9EZWxldGUiLCJkcm9wZG93blJlZiIsImZldGNoUm91dGluZXMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3VsdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJsaW1pdCIsIm9mZnNldCIsInNlbnQiLCJkYXRhIiwiZmluaXNoIiwic3RvcCIsImZldGNoQWdlbnRzIiwiX2NhbGxlZTIiLCJyZXNwb25zZSIsImFnZW50TGlzdCIsIl90MiIsIl9jb250ZXh0MiIsInBhdGgiLCJtZXRob2QiLCJqc29uIiwibWFwIiwiYSIsImlkIiwibmFtZSIsImVtb2ppIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiY2xvc2VJZk91dHNpZGUiLCJlIiwiX2Ryb3Bkb3duUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiaGFuZGxlQ3JlYXRlU3VjY2VzcyIsImhhbmRsZUNvbmZpcm1EZWxldGUiLCJfcmVmMyIsIl9jYWxsZWUzIiwiY2hhdCIsIl90MyIsIl9jb250ZXh0MyIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJmcmVxdWVuY3lMYWJlbCIsInNjaGVkdWxlIiwiX21hcCRzY2hlZHVsZSRzY2hlZHVsIiwibWludXRlbHkiLCJob3VybHkiLCJkYWlseSIsIndlZWtseSIsInNjaGVkdWxlX3R5cGUiLCJzdGF0dXNMYWJlbCIsInN0YXR1cyIsIl9tYXAkc3RhdHVzIiwiYWN0aXZlIiwicGF1c2VkIiwiZGlzYWJsZWQiLCJzZWxlY3RlZExhYmVsIiwiY29uY2F0IiwiZGVsZXRlTW9kYWxDaGF0IiwidGl0bGUiLCJjb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsImJvZHkiLCIkaGFzSXRlbXMiLCJjaGlsZHJlbiIsIiRjYW5DcmVhdGUiLCJ0eXBlIiwib25DbGljayIsInNpemUiLCJyb3V0aW5lIiwiX3JvdXRpbmUkYWdlbnRfbmFtZSIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwiYWdlbnRfZW1vamkiLCJhZ2VudF9uYW1lIiwiJHN0YXR1cyIsImNyZWF0ZVBvcnRhbCIsInpJbmRleCIsInJlZiIsIm9wZW4iLCJhZ2VudEFjY2VudCIsInRleHRNdXRlZCIsImFnZW50IiwiaXNTZWxlY3RlZCIsIm9uTW91c2VEb3duIiwiYWdlbnRFeHRlcm5hbElkIiwiaW5pdGlhbEZvcm0iLCJvblN1Y2Nlc3MiLCJvblZhbGlkaXR5Q2hhbmdlIiwic3RhbmRhbG9uZUNyZWF0ZU9ubHkiLCJhY3Rpb24iLCJvbkNsb3NlIiwiaGFuZGxlcnMiLCJoYW5kbGVDb25maXJtQWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU15Um91dGluZXMvQ2hhdEFJTXlSb3V0aW5lcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IE1lbnVEb3RzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvTWVudURvdHMnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgQ3Jvc3MgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zcydcbmltcG9ydCB7IEFibVRyaWdnZXJzU2VjdGlvbiB9IGZyb20gJy4uL0FibVNlY3Rpb24vQWJtVHJpZ2dlcnNTZWN0aW9uL0FibVRyaWdnZXJzU2VjdGlvbidcbmltcG9ydCB0eXBlIHsgVHJpZ2dlckZvcm1TdGF0ZSB9IGZyb20gJy4uL0FibVNlY3Rpb24vQWJtVHJpZ2dlcnNTZWN0aW9uL0FibVRyaWdnZXJzU2VjdGlvbi5pbnRlcmZhY2UnXG5pbXBvcnQgeyBCYWNrZHJvcCB9IGZyb20gJy4uLy4uL2F0b21zL0JhY2tkcm9wJ1xuaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9jbGllbnQnXG5pbXBvcnQgeyBnZXRNeVNjaGVkdWxlcywgZGVsZXRlU2NoZWR1bGUsIHR5cGUgU2NoZWR1bGVXaXRoQWdlbnRSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvU2NoZWR1bGVzJ1xuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Nb2RhbCB9IGZyb20gJy4uLy4uL29yZ2FuaXNtcy9EZWxldGVRdWVzdGlvbk1vZGFsL0RlbGV0ZVF1ZXN0aW9uTW9kYWwnXG5pbXBvcnQgeyBNQUlBSXNvbG9nbyB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgbWFpYVNlY3Rpb25VaSBhcyB1IH0gZnJvbSAnLi4vbWFpYVNlY3Rpb25VaVRva2VucydcbmltcG9ydCB7XG4gIFNDQWdlbnRTZWxlY3RvckNvbnRhaW5lcixcbiAgU0NBZ2VudFNlbGVjdG9yTGlzdCxcbiAgU0NBZ2VudFNlbGVjdG9yTG9hZGluZ1JvdyxcbiAgU0NBZ2VudFNlbGVjdG9yT3B0aW9uLFxuICBTQ0FnZW50U2VsZWN0b3JUcmlnZ2VyLFxuICBNQUlBX1NFQ1RJT05fTU9EQUxfWixcbiAgU0NGaWVsZFdpdGhEcm9wZG93blosXG59IGZyb20gJy4uL21haWFTZWN0aW9uTW9kYWxTdHlsZXMnXG5pbXBvcnQge1xuICBTQ01SQWN0aW9uc1JvdyxcbiAgU0NNUkJvZHksXG4gIFNDTVJDYXJkQm9keSxcbiAgU0NNUkNhcmRCdXR0b24sXG4gIFNDTVJDYXJkQ29udGVudFRleHQsXG4gIFNDTVJDYXJkRm9vdGVyLFxuICBTQ01SQ2FyZEZyZXF1ZW5jeSxcbiAgU0NNUkNhcmRIZWFkZXIsXG4gIFNDTVJDYXJkTWVudSxcbiAgU0NNUkNhcmRNZW51SXRlbSxcbiAgU0NNUkNhcmRNZW51SXRlbXMsXG4gIFNDTVJDYXJkVGl0bGVOYW1lLFxuICBTQ01SQ2FyZFRvcFJvdyxcbiAgU0NNUkNhcmRzT3V0ZXIsXG4gIFNDTVJDYXJkc1JvdyxcbiAgU0NNUkNvbnRhaW5lcixcbiAgU0NNUkNyZWF0ZUJ1dHRvbixcbiAgU0NNUkNyZWF0ZUJ1dHRvblRleHQsXG4gIFNDTVJFbXB0eVN0YXRlQnV0dG9uLFxuICBTQ01SRW1wdHlTdGF0ZUNvbHVtbixcbiAgU0NNUkVtcHR5U3RhdGVSb290LFxuICBTQ01SRW1wdHlTdGF0ZVN1YnRpdGxlLFxuICBTQ01SRW1wdHlTdGF0ZVRpdGxlQmxvY2ssXG4gIFNDTVJFbXB0eVN0YXRlVGl0bGUsXG4gIFNDTVJLZWJhYkJ1dHRvbixcbiAgU0NNUkxvYWRXcmFwcGVyLFxuICBTQ01STW9kYWxCb2R5U2Nyb2xsLFxuICBTQ01STW9kYWxDYW5jZWxCdXR0b24sXG4gIFNDTVJNb2RhbENsb3NlQnV0dG9uLFxuICBTQ01STW9kYWxDb250ZW50LFxuICBTQ01STW9kYWxGb290ZXIsXG4gIFNDTVJNb2RhbEhlYWRlcixcbiAgU0NNUk1vZGFsU2F2ZUJ1dHRvbixcbiAgU0NNUk1vZGFsVGl0bGUsXG4gIFNDTVJNb2RhbFdyYXBwZXIsXG4gIFNDTVJTdGF0dXNCYWRnZSxcbiAgU0NNUlN1YnRpdGxlLFxuICBTQ01SVGl0bGUsXG4gIFNDTVJUaXRsZUlubmVyLFxuICBTQ01SVGl0bGVXcmFwLFxufSBmcm9tICcuL0NoYXRBSU15Um91dGluZXMuc3R5bGVzJ1xuXG50eXBlIEFnZW50T3B0aW9uID0geyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGVtb2ppOiBzdHJpbmcgfVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJTXlSb3V0aW5lcyA9ICgpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbignYWJtX2FnZW50X3NlY3Rpb24nKVxuICBjb25zdCBbcm91dGluZXMsIHNldFJvdXRpbmVzXSA9IHVzZVN0YXRlPFNjaGVkdWxlV2l0aEFnZW50UmVzcG9uc2VbXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2hvd0NyZWF0ZVBhbmVsLCBzZXRTaG93Q3JlYXRlUGFuZWxdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt0ZW1wbGF0ZUZvcm0sIHNldFRlbXBsYXRlRm9ybV0gPSB1c2VTdGF0ZTxQYXJ0aWFsPFRyaWdnZXJGb3JtU3RhdGU+IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2FnZW50cywgc2V0QWdlbnRzXSA9IHVzZVN0YXRlPEFnZW50T3B0aW9uW10+KFtdKVxuICBjb25zdCBbbG9hZGluZ0FnZW50cywgc2V0TG9hZGluZ0FnZW50c10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3NlbGVjdGVkQWdlbnQsIHNldFNlbGVjdGVkQWdlbnRdID0gdXNlU3RhdGU8QWdlbnRPcHRpb24gfCBudWxsPihudWxsKVxuICBjb25zdCBbZHJvcGRvd25PcGVuLCBzZXREcm9wZG93bk9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzdWJtaXRDb3VudCwgc2V0U3VibWl0Q291bnRdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzRm9ybVZhbGlkLCBzZXRJc0Zvcm1WYWxpZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21lbnVPcGVuRm9ySWQsIHNldE1lbnVPcGVuRm9ySWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3JvdXRpbmVUb0RlbGV0ZSwgc2V0Um91dGluZVRvRGVsZXRlXSA9IHVzZVN0YXRlPFNjaGVkdWxlV2l0aEFnZW50UmVzcG9uc2UgfCBudWxsPihudWxsKVxuICBjb25zdCBkcm9wZG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcblxuICBjb25zdCBmZXRjaFJvdXRpbmVzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0TXlTY2hlZHVsZXMoeyBsaW1pdDogMTAwLCBvZmZzZXQ6IDAgfSlcbiAgICAgIHNldFJvdXRpbmVzKHJlc3VsdC5kYXRhKVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gc2lsZW50bHkgZmFpbFxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgZmV0Y2hBZ2VudHMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgc2V0TG9hZGluZ0FnZW50cyh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgICAgIHBhdGg6ICdhZ2VudHM/YWdlbnRfdHlwZT1jdXN0b20mbGltaXQ9MTAwJm9mZnNldD0wJyxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICBjb25zdCBhZ2VudExpc3Q6IEFnZW50T3B0aW9uW10gPSAoZGF0YS5kYXRhIHx8IFtdKS5tYXAoKGE6IGFueSkgPT4gKHtcbiAgICAgICAgaWQ6IGEuaWQsXG4gICAgICAgIG5hbWU6IGEubmFtZSxcbiAgICAgICAgZW1vamk6IGEuZW1vamkgfHwgJycsXG4gICAgICB9KSlcbiAgICAgIHNldEFnZW50cyhhZ2VudExpc3QpXG4gICAgICBpZiAoYWdlbnRMaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBzZXRTZWxlY3RlZEFnZW50KGFnZW50TGlzdFswXSlcbiAgICAgICAgc2V0RHJvcGRvd25PcGVuKGZhbHNlKVxuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gc2lsZW50bHkgZmFpbFxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nQWdlbnRzKGZhbHNlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmZXRjaFJvdXRpbmVzKClcbiAgfSwgW2ZldGNoUm91dGluZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93Q3JlYXRlUGFuZWwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gICAgc2V0RHJvcGRvd25PcGVuKGZhbHNlKVxuICAgIGZldGNoQWdlbnRzKClcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH0sIFtzaG93Q3JlYXRlUGFuZWwsIGZldGNoQWdlbnRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZHJvcGRvd25PcGVuKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICAgIGNvbnN0IGNsb3NlSWZPdXRzaWRlID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghZHJvcGRvd25SZWYuY3VycmVudD8uY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHNldERyb3Bkb3duT3BlbihmYWxzZSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUlmT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUlmT3V0c2lkZSlcbiAgfSwgW2Ryb3Bkb3duT3Blbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JJZCkgc2V0TWVudU9wZW5Gb3JJZChudWxsKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gIH0sIFttZW51T3BlbkZvcklkXSlcblxuICBjb25zdCBoYW5kbGVDcmVhdGVTdWNjZXNzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFN1Ym1pdENvdW50KDApXG4gICAgc2V0U2hvd0NyZWF0ZVBhbmVsKGZhbHNlKVxuICAgIHNldFNlbGVjdGVkQWdlbnQobnVsbClcbiAgICBzZXRUZW1wbGF0ZUZvcm0obnVsbClcbiAgICBzZXRJc0Zvcm1WYWxpZChmYWxzZSlcbiAgICBmZXRjaFJvdXRpbmVzKClcbiAgfSwgW2ZldGNoUm91dGluZXNdKVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoY2hhdDogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGRlbGV0ZVNjaGVkdWxlKGNoYXQuaWQpXG4gICAgICAgIHNldFJvdXRpbmVUb0RlbGV0ZShudWxsKVxuICAgICAgICBmZXRjaFJvdXRpbmVzKClcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBzaWxlbnRseSBmYWlsXG4gICAgICB9XG4gICAgfSxcbiAgICBbZmV0Y2hSb3V0aW5lc11cbiAgKVxuXG4gIGNvbnN0IGZyZXF1ZW5jeUxhYmVsID0gKHNjaGVkdWxlOiBTY2hlZHVsZVdpdGhBZ2VudFJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgbWludXRlbHk6IHQoJ3RyaWdnZXJzU2VjdGlvbi5mcmVxdWVuY2llcy5taW51dGVseScpLFxuICAgICAgaG91cmx5OiB0KCd0cmlnZ2Vyc1NlY3Rpb24uZnJlcXVlbmNpZXMuaG91cmx5JyksXG4gICAgICBkYWlseTogdCgndHJpZ2dlcnNTZWN0aW9uLmZyZXF1ZW5jaWVzLmRhaWx5JyksXG4gICAgICB3ZWVrbHk6IHQoJ3RyaWdnZXJzU2VjdGlvbi5mcmVxdWVuY2llcy53ZWVrbHknKSxcbiAgICB9XG4gICAgcmV0dXJuIG1hcFtzY2hlZHVsZS5zY2hlZHVsZV90eXBlXSA/PyBzY2hlZHVsZS5zY2hlZHVsZV90eXBlXG4gIH1cblxuICBjb25zdCBzdGF0dXNMYWJlbCA9IChzdGF0dXM6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIGFjdGl2ZTogdCgndHJpZ2dlcnNTZWN0aW9uLnN0YXR1cy5hY3RpdmUnKSxcbiAgICAgIHBhdXNlZDogdCgndHJpZ2dlcnNTZWN0aW9uLnN0YXR1cy5wYXVzZWQnKSxcbiAgICAgIGRpc2FibGVkOiB0KCd0cmlnZ2Vyc1NlY3Rpb24uc3RhdHVzLmRpc2FibGVkJyksXG4gICAgfVxuICAgIHJldHVybiBtYXBbc3RhdHVzXSA/PyBzdGF0dXNcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSBzZWxlY3RlZEFnZW50XG4gICAgPyBgJHtzZWxlY3RlZEFnZW50LmVtb2ppID8gYCR7c2VsZWN0ZWRBZ2VudC5lbW9qaX0gYCA6ICcnfSR7c2VsZWN0ZWRBZ2VudC5uYW1lfWBcbiAgICA6IHQoJ3RyaWdnZXJzU2VjdGlvbi5zZWxlY3RBZ2VudCcpXG5cbiAgY29uc3QgZGVsZXRlTW9kYWxDaGF0ID0gcm91dGluZVRvRGVsZXRlXG4gICAgPyB7IHRpdGxlOiByb3V0aW5lVG9EZWxldGUubmFtZSB8fCB0KCd0cmlnZ2Vyc1NlY3Rpb24udW50aXRsZWRSb3V0aW5lJyksIGlkOiByb3V0aW5lVG9EZWxldGUuaWQgfVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1yb290LWFjdGlvbnMnKSA/PyBkb2N1bWVudC5ib2R5XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNUkNvbnRhaW5lciAkaGFzSXRlbXM9eyEhcm91dGluZXMubGVuZ3RofT5cbiAgICAgIDxNQUlBSXNvbG9nbyAvPlxuXG4gICAgICA8U0NNUkJvZHkgJGNhbkNyZWF0ZT5cbiAgICAgICAge3JvdXRpbmVzLmxlbmd0aCA/IChcbiAgICAgICAgICA8U0NNUlRpdGxlV3JhcD5cbiAgICAgICAgICAgIDxTQ01SVGl0bGVJbm5lcj5cbiAgICAgICAgICAgICAgPFNDTVJUaXRsZT57dCgndHJpZ2dlcnNTZWN0aW9uLm15Um91dGluZXNUaXRsZScpfTwvU0NNUlRpdGxlPlxuICAgICAgICAgICAgICA8U0NNUlN1YnRpdGxlPnt0KCd0cmlnZ2Vyc1NlY3Rpb24ubXlSb3V0aW5lc1N1YnRpdGxlJyl9PC9TQ01SU3VidGl0bGU+XG4gICAgICAgICAgICA8L1NDTVJUaXRsZUlubmVyPlxuICAgICAgICAgICAgPFNDTVJBY3Rpb25zUm93PlxuICAgICAgICAgICAgICA8U0NNUkNyZWF0ZUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gc2V0U2hvd0NyZWF0ZVBhbmVsKHRydWUpfT5cbiAgICAgICAgICAgICAgICA8U0NNUkNyZWF0ZUJ1dHRvblRleHQ+e3QoJ3RyaWdnZXJzU2VjdGlvbi5uZXdSb3V0aW5lJyl9PC9TQ01SQ3JlYXRlQnV0dG9uVGV4dD5cbiAgICAgICAgICAgICAgPC9TQ01SQ3JlYXRlQnV0dG9uPlxuICAgICAgICAgICAgPC9TQ01SQWN0aW9uc1Jvdz5cbiAgICAgICAgICA8L1NDTVJUaXRsZVdyYXA+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgIDxTQ01STG9hZFdyYXBwZXI+XG4gICAgICAgICAgICA8TG9hZGVyIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgPC9TQ01STG9hZFdyYXBwZXI+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHshbG9hZGluZyAmJiByb3V0aW5lcy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTVJDYXJkc091dGVyPlxuICAgICAgICAgICAgPFNDTVJDYXJkc1Jvdz5cbiAgICAgICAgICAgICAge3JvdXRpbmVzLm1hcChyb3V0aW5lID0+IChcbiAgICAgICAgICAgICAgICA8U0NNUkNhcmRCdXR0b24ga2V5PXtyb3V0aW5lLmlkfSB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICA8U0NNUkNhcmRIZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01SQ2FyZFRvcFJvdz5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNUkNhcmRUaXRsZU5hbWU+e3JvdXRpbmUubmFtZSB8fCB0KCd0cmlnZ2Vyc1NlY3Rpb24udW50aXRsZWRSb3V0aW5lJyl9PC9TQ01SQ2FyZFRpdGxlTmFtZT5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNUktlYmFiQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3QoJ3RyaWdnZXJzU2VjdGlvbi5kZWxldGVSb3V0aW5lJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudU9wZW5Gb3JJZChwcmV2ID0+IChwcmV2ID09PSByb3V0aW5lLmlkID8gbnVsbCA6IHJvdXRpbmUuaWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWVudURvdHMgY29sb3I9XCIjOTk5XCIgd2lkdGg9ezE1fSBoZWlnaHQ9ezE1fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNUktlYmFiQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTVJDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgPC9TQ01SQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgIDxTQ01SQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxTQ01SQ2FyZENvbnRlbnRUZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtyb3V0aW5lLmFnZW50X2Vtb2ppIHx8IHJvdXRpbmUuYWdlbnRfbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBgJHtyb3V0aW5lLmFnZW50X2Vtb2ppID8gYCR7cm91dGluZS5hZ2VudF9lbW9qaX0gYCA6ICcnfSR7cm91dGluZS5hZ2VudF9uYW1lID8/ICcnfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJyd9XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNUkNhcmRDb250ZW50VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPFNDTVJDYXJkRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01SQ2FyZEZyZXF1ZW5jeT57ZnJlcXVlbmN5TGFiZWwocm91dGluZSl9PC9TQ01SQ2FyZEZyZXF1ZW5jeT5cbiAgICAgICAgICAgICAgICAgICAgICA8U0NNUlN0YXR1c0JhZGdlICRzdGF0dXM9e3JvdXRpbmUuc3RhdHVzfT57c3RhdHVzTGFiZWwocm91dGluZS5zdGF0dXMpfTwvU0NNUlN0YXR1c0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTVJDYXJkRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgPC9TQ01SQ2FyZEJvZHk+XG4gICAgICAgICAgICAgICAgICB7bWVudU9wZW5Gb3JJZCA9PT0gcm91dGluZS5pZCA/IChcbiAgICAgICAgICAgICAgICAgICAgPFNDTVJDYXJkTWVudVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01SQ2FyZE1lbnVJdGVtcz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ01SQ2FyZE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Um91dGluZVRvRGVsZXRlKHJvdXRpbmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudU9wZW5Gb3JJZChudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7dCgndHJpZ2dlcnNTZWN0aW9uLmRlbGV0ZVJvdXRpbmUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NNUkNhcmRNZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDTVJDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICA8L1NDTVJDYXJkTWVudT5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU0NNUkNhcmRCdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9TQ01SQ2FyZHNSb3c+XG4gICAgICAgICAgPC9TQ01SQ2FyZHNPdXRlcj5cbiAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgeyFsb2FkaW5nICYmICFyb3V0aW5lcy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTVJFbXB0eVN0YXRlUm9vdD5cbiAgICAgICAgICAgIDxTQ01SRW1wdHlTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgICAgPFNDTVJFbXB0eVN0YXRlVGl0bGVCbG9jaz5cbiAgICAgICAgICAgICAgICA8U0NNUkVtcHR5U3RhdGVUaXRsZT57dCgndHJpZ2dlcnNTZWN0aW9uLm15Um91dGluZXNFbXB0eVRpdGxlJyl9PC9TQ01SRW1wdHlTdGF0ZVRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ01SRW1wdHlTdGF0ZVN1YnRpdGxlPnt0KCd0cmlnZ2Vyc1NlY3Rpb24ubXlSb3V0aW5lc0VtcHR5RGVzY3JpcHRpb24nKX08L1NDTVJFbXB0eVN0YXRlU3VidGl0bGU+XG4gICAgICAgICAgICAgIDwvU0NNUkVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgPC9TQ01SRW1wdHlTdGF0ZUNvbHVtbj5cbiAgICAgICAgICAgIDxTQ01SRW1wdHlTdGF0ZUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gc2V0U2hvd0NyZWF0ZVBhbmVsKHRydWUpfT5cbiAgICAgICAgICAgICAge3QoJ3RyaWdnZXJzU2VjdGlvbi5uZXdSb3V0aW5lJyl9XG4gICAgICAgICAgICA8L1NDTVJFbXB0eVN0YXRlQnV0dG9uPlxuICAgICAgICAgIDwvU0NNUkVtcHR5U3RhdGVSb290PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU0NNUkJvZHk+XG5cbiAgICAgIHtzaG93Q3JlYXRlUGFuZWwgJiZcbiAgICAgICAgUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICAgIDxCYWNrZHJvcFxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBzZXRTaG93Q3JlYXRlUGFuZWwoZmFsc2UpXG4gICAgICAgICAgICAgIHNldFRlbXBsYXRlRm9ybShudWxsKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHpJbmRleD17TUFJQV9TRUNUSU9OX01PREFMX1p9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFNDTVJNb2RhbFdyYXBwZXIgb25DbGljaz17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfT5cbiAgICAgICAgICAgICAgPFNDTVJNb2RhbEhlYWRlcj5cbiAgICAgICAgICAgICAgICA8U0NNUk1vZGFsVGl0bGU+e3QoJ3RyaWdnZXJzU2VjdGlvbi5uZXdSb3V0aW5lJyl9PC9TQ01STW9kYWxUaXRsZT5cbiAgICAgICAgICAgICAgICA8U0NNUk1vZGFsQ2xvc2VCdXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgndHJpZ2dlcnNTZWN0aW9uLmJhY2snKX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0U2hvd0NyZWF0ZVBhbmVsKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICBzZXRUZW1wbGF0ZUZvcm0obnVsbClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPENyb3NzIGNvbG9yPVwiI2E2YTZhNlwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgICA8L1NDTVJNb2RhbENsb3NlQnV0dG9uPlxuICAgICAgICAgICAgICA8L1NDTVJNb2RhbEhlYWRlcj5cbiAgICAgICAgICAgICAgPFNDTVJNb2RhbENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFNDRmllbGRXaXRoRHJvcGRvd25aPlxuICAgICAgICAgICAgICAgICAge3QoJ3RyaWdnZXJzU2VjdGlvbi5hZ2VudCcpfVxuICAgICAgICAgICAgICAgICAgPFNDQWdlbnRTZWxlY3RvckNvbnRhaW5lciByZWY9e2Ryb3Bkb3duUmVmIGFzIGFueX0+XG4gICAgICAgICAgICAgICAgICAgIDxTQ0FnZW50U2VsZWN0b3JUcmlnZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgb3Blbj17ZHJvcGRvd25PcGVufVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldERyb3Bkb3duT3BlbihwcmV2ID0+ICFwcmV2KX1cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntsb2FkaW5nQWdlbnRzID8gdCgndHJpZ2dlcnNTZWN0aW9uLmxvYWRpbmdBZ2VudHMnKSA6IHNlbGVjdGVkTGFiZWx9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjE0cHhcIiBoZWlnaHQ9XCIxNHB4XCIgY29sb3I9e2Ryb3Bkb3duT3BlbiA/IHUuYWdlbnRBY2NlbnQgOiB1LnRleHRNdXRlZH0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ0FnZW50U2VsZWN0b3JUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICB7ZHJvcGRvd25PcGVuICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8U0NBZ2VudFNlbGVjdG9yTGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nQWdlbnRzID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NBZ2VudFNlbGVjdG9yTG9hZGluZ1Jvdz57dCgndHJpZ2dlcnNTZWN0aW9uLmxvYWRpbmdBZ2VudHMnKX08L1NDQWdlbnRTZWxlY3RvckxvYWRpbmdSb3c+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VudHMubWFwKGFnZW50ID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NBZ2VudFNlbGVjdG9yT3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FnZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17c2VsZWN0ZWRBZ2VudD8uaWQgPT09IGFnZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZURvd249e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZEFnZW50KGFnZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXREcm9wZG93bk9wZW4oZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthZ2VudC5lbW9qaSA/IGAke2FnZW50LmVtb2ppfSBgIDogJyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YWdlbnQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDQWdlbnRTZWxlY3Rvck9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ0FnZW50U2VsZWN0b3JMaXN0PlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9TQ0FnZW50U2VsZWN0b3JDb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9TQ0ZpZWxkV2l0aERyb3Bkb3duWj5cbiAgICAgICAgICAgICAgICA8U0NNUk1vZGFsQm9keVNjcm9sbD5cbiAgICAgICAgICAgICAgICAgIDxBYm1UcmlnZ2Vyc1NlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgYWdlbnRFeHRlcm5hbElkPXtzZWxlY3RlZEFnZW50Py5pZCA/PyBudWxsfVxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsRm9ybT17dGVtcGxhdGVGb3JtID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgc3VibWl0Q291bnQ9e3N1Ym1pdENvdW50fVxuICAgICAgICAgICAgICAgICAgICBvblN1Y2Nlc3M9e2hhbmRsZUNyZWF0ZVN1Y2Nlc3N9XG4gICAgICAgICAgICAgICAgICAgIG9uVmFsaWRpdHlDaGFuZ2U9e3NldElzRm9ybVZhbGlkfVxuICAgICAgICAgICAgICAgICAgICBzdGFuZGFsb25lQ3JlYXRlT25seVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1NDTVJNb2RhbEJvZHlTY3JvbGw+XG4gICAgICAgICAgICAgIDwvU0NNUk1vZGFsQ29udGVudD5cbiAgICAgICAgICAgICAgPFNDTVJNb2RhbEZvb3Rlcj5cbiAgICAgICAgICAgICAgICA8U0NNUk1vZGFsQ2FuY2VsQnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0U2hvd0NyZWF0ZVBhbmVsKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICBzZXRUZW1wbGF0ZUZvcm0obnVsbClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3QoJ3RyaWdnZXJzU2VjdGlvbi5iYWNrJyl9XG4gICAgICAgICAgICAgICAgPC9TQ01STW9kYWxDYW5jZWxCdXR0b24+XG4gICAgICAgICAgICAgICAgPFNDTVJNb2RhbFNhdmVCdXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFpc0Zvcm1WYWxpZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFN1Ym1pdENvdW50KHByZXYgPT4gcHJldiArIDEpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt0KCd0cmlnZ2Vyc1NlY3Rpb24uc2F2ZScpfVxuICAgICAgICAgICAgICAgIDwvU0NNUk1vZGFsU2F2ZUJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9TQ01STW9kYWxGb290ZXI+XG4gICAgICAgICAgICA8L1NDTVJNb2RhbFdyYXBwZXI+XG4gICAgICAgICAgPC9CYWNrZHJvcD4sXG4gICAgICAgICAgY29udGFpbmVyXG4gICAgICAgICl9XG5cbiAgICAgIHtkZWxldGVNb2RhbENoYXQgPyAoXG4gICAgICAgIDxEZWxldGVRdWVzdGlvbk1vZGFsXG4gICAgICAgICAgYWN0aW9uPVwicm91dGluZVwiXG4gICAgICAgICAgY2hhdD17ZGVsZXRlTW9kYWxDaGF0fVxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldFJvdXRpbmVUb0RlbGV0ZShudWxsKX1cbiAgICAgICAgICBoYW5kbGVycz17eyBoYW5kbGVDb25maXJtQWN0aW9uOiBoYW5kbGVDb25maXJtRGVsZXRlIH19XG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1NDTVJDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQSxPQUFPQSxRQUFRLE1BQU0sV0FBVztBQUNoQyxTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNo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
|
|
486
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdERPTSIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VUcmFuc2xhdGlvbiIsIk1lbnVEb3RzIiwiQ2hldnJvbkRvd24iLCJDcm9zcyIsIkFibVRyaWdnZXJzU2VjdGlvbiIsIkJhY2tkcm9wIiwiZmV0Y2hNYWlhIiwiZ2V0TXlTY2hlZHVsZXMiLCJkZWxldGVTY2hlZHVsZSIsIkRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJNQUlBSXNvbG9nbyIsIkxvYWRlciIsIm1haWFTZWN0aW9uVWkiLCJ1IiwiU0NBZ2VudFNlbGVjdG9yQ29udGFpbmVyIiwiU0NBZ2VudFNlbGVjdG9yTGlzdCIsIlNDQWdlbnRTZWxlY3RvckxvYWRpbmdSb3ciLCJTQ0FnZW50U2VsZWN0b3JPcHRpb24iLCJTQ0FnZW50U2VsZWN0b3JUcmlnZ2VyIiwiTUFJQV9TRUNUSU9OX01PREFMX1oiLCJTQ0ZpZWxkV2l0aERyb3Bkb3duWiIsIlNDTVJBY3Rpb25zUm93IiwiU0NNUkJvZHkiLCJTQ01SQ2FyZEJvZHkiLCJTQ01SQ2FyZEJ1dHRvbiIsIlNDTVJDYXJkQ29udGVudFRleHQiLCJTQ01SQ2FyZEZvb3RlciIsIlNDTVJDYXJkRnJlcXVlbmN5IiwiU0NNUkNhcmRIZWFkZXIiLCJTQ01SQ2FyZE1lbnUiLCJTQ01SQ2FyZE1lbnVJdGVtIiwiU0NNUkNhcmRNZW51SXRlbXMiLCJTQ01SQ2FyZFRpdGxlTmFtZSIsIlNDTVJDYXJkVG9wUm93IiwiU0NNUkNhcmRzT3V0ZXIiLCJTQ01SQ2FyZHNSb3ciLCJTQ01SQ29udGFpbmVyIiwiU0NNUkNyZWF0ZUJ1dHRvbiIsIlNDTVJDcmVhdGVCdXR0b25UZXh0IiwiU0NNUkVtcHR5U3RhdGVCdXR0b24iLCJTQ01SRW1wdHlTdGF0ZUNvbHVtbiIsIlNDTVJFbXB0eVN0YXRlUm9vdCIsIlNDTVJFbXB0eVN0YXRlU3VidGl0bGUiLCJTQ01SRW1wdHlTdGF0ZVRpdGxlQmxvY2siLCJTQ01SRW1wdHlTdGF0ZVRpdGxlIiwiU0NNUktlYmFiQnV0dG9uIiwiU0NNUkxvYWRXcmFwcGVyIiwiU0NNUk1vZGFsQm9keVNjcm9sbCIsIlNDTVJNb2RhbENhbmNlbEJ1dHRvbiIsIlNDTVJNb2RhbENsb3NlQnV0dG9uIiwiU0NNUk1vZGFsQ29udGVudCIsIlNDTVJNb2RhbEZvb3RlciIsIlNDTVJNb2RhbEhlYWRlciIsIlNDTVJNb2RhbFNhdmVCdXR0b24iLCJTQ01STW9kYWxUaXRsZSIsIlNDTVJNb2RhbFdyYXBwZXIiLCJTQ01SU3RhdHVzQmFkZ2UiLCJTQ01SU3VidGl0bGUiLCJTQ01SVGl0bGUiLCJTQ01SVGl0bGVJbm5lciIsIlNDTVJUaXRsZVdyYXAiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJyb3V0aW5lVG9Gb3JtU3RhdGUiLCJyb3V0aW5lIiwiX3JvdXRpbmUkbmFtZSIsIl9yb3V0aW5lJGhvdXIiLCJfcm91dGluZSRtaW51dGUiLCJfcm91dGluZSRkYXlfb2Zfd2VlayIsIm5hbWUiLCJpbnB1dCIsInNjaGVkdWxlVHlwZSIsInNjaGVkdWxlX3R5cGUiLCJob3VyIiwibWludXRlIiwiZGF5T2ZXZWVrIiwiZGF5X29mX3dlZWsiLCJ0aW1lem9uZSIsIkNoYXRBSU15Um91dGluZXMiLCJfZG9jdW1lbnQkZ2V0RWxlbWVudEIiLCJfc2VsZWN0ZWRBZ2VudCRpZCIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJyb3V0aW5lcyIsInNldFJvdXRpbmVzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwicGFuZWxPcGVuIiwic2V0UGFuZWxPcGVuIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJlZGl0aW5nUm91dGluZSIsInNldEVkaXRpbmdSb3V0aW5lIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJ0ZW1wbGF0ZUZvcm0iLCJzZXRUZW1wbGF0ZUZvcm0iLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJhZ2VudHMiLCJzZXRBZ2VudHMiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwibG9hZGluZ0FnZW50cyIsInNldExvYWRpbmdBZ2VudHMiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0Iiwic2VsZWN0ZWRBZ2VudCIsInNldFNlbGVjdGVkQWdlbnQiLCJfdXNlU3RhdGUxNSIsIl91c2VTdGF0ZTE2IiwiZHJvcGRvd25PcGVuIiwic2V0RHJvcGRvd25PcGVuIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsInN1Ym1pdENvdW50Iiwic2V0U3VibWl0Q291bnQiLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwiaXNGb3JtVmFsaWQiLCJzZXRJc0Zvcm1WYWxpZCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJtZW51T3BlbkZvcklkIiwic2V0TWVudU9wZW5Gb3JJZCIsIl91c2VTdGF0ZTIzIiwiX3VzZVN0YXRlMjQiLCJyb3V0aW5lVG9EZWxldGUiLCJzZXRSb3V0aW5lVG9EZWxldGUiLCJkcm9wZG93blJlZiIsImZldGNoUm91dGluZXMiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3VsdCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJsaW1pdCIsIm9mZnNldCIsInNlbnQiLCJkYXRhIiwiZmluaXNoIiwic3RvcCIsImZldGNoQWdlbnRzIiwiX2NhbGxlZTIiLCJyZXNwb25zZSIsImFnZW50TGlzdCIsIl90MiIsIl9jb250ZXh0MiIsInBhdGgiLCJtZXRob2QiLCJqc29uIiwibWFwIiwiYSIsImlkIiwiZW1vamkiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJvcGVuQ3JlYXRlUGFuZWwiLCJvcGVuRGV0YWlsUGFuZWwiLCJfcm91dGluZSRhZ2VudF9uYW1lIiwiX3JvdXRpbmUkYWdlbnRfZW1vamkiLCJhZ2VudF9leHRlcm5hbF9pZCIsImFnZW50X25hbWUiLCJhZ2VudF9lbW9qaSIsImNsb3NlUGFuZWwiLCJjbG9zZUlmT3V0c2lkZSIsImUiLCJfZHJvcGRvd25SZWYkY3VycmVudCIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVDbGlja091dHNpZGUiLCJoYW5kbGVDcmVhdGVTdWNjZXNzIiwiaGFuZGxlQ29uZmlybURlbGV0ZSIsIl9yZWYzIiwiX2NhbGxlZTMiLCJjaGF0IiwiX3QzIiwiX2NvbnRleHQzIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImZyZXF1ZW5jeUxhYmVsIiwic2NoZWR1bGUiLCJfbWFwJHNjaGVkdWxlJHNjaGVkdWwiLCJtaW51dGVseSIsImhvdXJseSIsImRhaWx5Iiwid2Vla2x5Iiwic3RhdHVzTGFiZWwiLCJzdGF0dXMiLCJfbWFwJHN0YXR1cyIsImFjdGl2ZSIsInBhdXNlZCIsImRpc2FibGVkIiwic2VsZWN0ZWRMYWJlbCIsImNvbmNhdCIsImRlbGV0ZU1vZGFsQ2hhdCIsInRpdGxlIiwiY29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJib2R5IiwiJGhhc0l0ZW1zIiwiY2hpbGRyZW4iLCIkY2FuQ3JlYXRlIiwidHlwZSIsIm9uQ2xpY2siLCJzaXplIiwiX3JvdXRpbmUkYWdlbnRfbmFtZTIiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsIiRzdGF0dXMiLCJjcmVhdGVQb3J0YWwiLCJ6SW5kZXgiLCJyZWYiLCJvcGVuIiwiYWdlbnRBY2NlbnQiLCJ0ZXh0TXV0ZWQiLCJhZ2VudCIsImlzU2VsZWN0ZWQiLCJvbk1vdXNlRG93biIsImFnZW50RXh0ZXJuYWxJZCIsImluaXRpYWxGb3JtIiwib25TdWNjZXNzIiwib25WYWxpZGl0eUNoYW5nZSIsInN0YW5kYWxvbmVDcmVhdGVPbmx5IiwiYWN0aW9uIiwib25DbG9zZSIsImhhbmRsZXJzIiwiaGFuZGxlQ29uZmlybUFjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNeVJvdXRpbmVzL0NoYXRBSU15Um91dGluZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBNZW51RG90cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL01lbnVEb3RzJ1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBBYm1UcmlnZ2Vyc1NlY3Rpb24gfSBmcm9tICcuLi9BYm1TZWN0aW9uL0FibVRyaWdnZXJzU2VjdGlvbi9BYm1UcmlnZ2Vyc1NlY3Rpb24nXG5pbXBvcnQgdHlwZSB7IFRyaWdnZXJGb3JtU3RhdGUgfSBmcm9tICcuLi9BYm1TZWN0aW9uL0FibVRyaWdnZXJzU2VjdGlvbi9BYm1UcmlnZ2Vyc1NlY3Rpb24uaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQmFja2Ryb3AgfSBmcm9tICcuLi8uLi9hdG9tcy9CYWNrZHJvcCdcbmltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvY2xpZW50J1xuaW1wb3J0IHsgZ2V0TXlTY2hlZHVsZXMsIGRlbGV0ZVNjaGVkdWxlLCB0eXBlIFNjaGVkdWxlV2l0aEFnZW50UmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL1NjaGVkdWxlcydcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uTW9kYWwgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvRGVsZXRlUXVlc3Rpb25Nb2RhbC9EZWxldGVRdWVzdGlvbk1vZGFsJ1xuaW1wb3J0IHsgTUFJQUlzb2xvZ28gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRlcidcbmltcG9ydCB7IG1haWFTZWN0aW9uVWkgYXMgdSB9IGZyb20gJy4uL21haWFTZWN0aW9uVWlUb2tlbnMnXG5pbXBvcnQge1xuICBTQ0FnZW50U2VsZWN0b3JDb250YWluZXIsXG4gIFNDQWdlbnRTZWxlY3Rvckxpc3QsXG4gIFNDQWdlbnRTZWxlY3RvckxvYWRpbmdSb3csXG4gIFNDQWdlbnRTZWxlY3Rvck9wdGlvbixcbiAgU0NBZ2VudFNlbGVjdG9yVHJpZ2dlcixcbiAgTUFJQV9TRUNUSU9OX01PREFMX1osXG4gIFNDRmllbGRXaXRoRHJvcGRvd25aLFxufSBmcm9tICcuLi9tYWlhU2VjdGlvbk1vZGFsU3R5bGVzJ1xuaW1wb3J0IHtcbiAgU0NNUkFjdGlvbnNSb3csXG4gIFNDTVJCb2R5LFxuICBTQ01SQ2FyZEJvZHksXG4gIFNDTVJDYXJkQnV0dG9uLFxuICBTQ01SQ2FyZENvbnRlbnRUZXh0LFxuICBTQ01SQ2FyZEZvb3RlcixcbiAgU0NNUkNhcmRGcmVxdWVuY3ksXG4gIFNDTVJDYXJkSGVhZGVyLFxuICBTQ01SQ2FyZE1lbnUsXG4gIFNDTVJDYXJkTWVudUl0ZW0sXG4gIFNDTVJDYXJkTWVudUl0ZW1zLFxuICBTQ01SQ2FyZFRpdGxlTmFtZSxcbiAgU0NNUkNhcmRUb3BSb3csXG4gIFNDTVJDYXJkc091dGVyLFxuICBTQ01SQ2FyZHNSb3csXG4gIFNDTVJDb250YWluZXIsXG4gIFNDTVJDcmVhdGVCdXR0b24sXG4gIFNDTVJDcmVhdGVCdXR0b25UZXh0LFxuICBTQ01SRW1wdHlTdGF0ZUJ1dHRvbixcbiAgU0NNUkVtcHR5U3RhdGVDb2x1bW4sXG4gIFNDTVJFbXB0eVN0YXRlUm9vdCxcbiAgU0NNUkVtcHR5U3RhdGVTdWJ0aXRsZSxcbiAgU0NNUkVtcHR5U3RhdGVUaXRsZUJsb2NrLFxuICBTQ01SRW1wdHlTdGF0ZVRpdGxlLFxuICBTQ01SS2ViYWJCdXR0b24sXG4gIFNDTVJMb2FkV3JhcHBlcixcbiAgU0NNUk1vZGFsQm9keVNjcm9sbCxcbiAgU0NNUk1vZGFsQ2FuY2VsQnV0dG9uLFxuICBTQ01STW9kYWxDbG9zZUJ1dHRvbixcbiAgU0NNUk1vZGFsQ29udGVudCxcbiAgU0NNUk1vZGFsRm9vdGVyLFxuICBTQ01STW9kYWxIZWFkZXIsXG4gIFNDTVJNb2RhbFNhdmVCdXR0b24sXG4gIFNDTVJNb2RhbFRpdGxlLFxuICBTQ01STW9kYWxXcmFwcGVyLFxuICBTQ01SU3RhdHVzQmFkZ2UsXG4gIFNDTVJTdWJ0aXRsZSxcbiAgU0NNUlRpdGxlLFxuICBTQ01SVGl0bGVJbm5lcixcbiAgU0NNUlRpdGxlV3JhcCxcbn0gZnJvbSAnLi9DaGF0QUlNeVJvdXRpbmVzLnN0eWxlcydcblxudHlwZSBBZ2VudE9wdGlvbiA9IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBlbW9qaTogc3RyaW5nIH1cblxuY29uc3Qgcm91dGluZVRvRm9ybVN0YXRlID0gKHJvdXRpbmU6IFNjaGVkdWxlV2l0aEFnZW50UmVzcG9uc2UpOiBQYXJ0aWFsPFRyaWdnZXJGb3JtU3RhdGU+ID0+ICh7XG4gIG5hbWU6IHJvdXRpbmUubmFtZSA/PyAnJyxcbiAgaW5wdXQ6IHJvdXRpbmUuaW5wdXQsXG4gIHNjaGVkdWxlVHlwZTogcm91dGluZS5zY2hlZHVsZV90eXBlLFxuICBob3VyOiByb3V0aW5lLmhvdXIgPz8gMTIsXG4gIG1pbnV0ZTogcm91dGluZS5taW51dGUgPz8gMCxcbiAgZGF5T2ZXZWVrOiByb3V0aW5lLmRheV9vZl93ZWVrID8/IDAsXG4gIHRpbWV6b25lOiByb3V0aW5lLnRpbWV6b25lLFxufSlcblxuZXhwb3J0IGNvbnN0IENoYXRBSU15Um91dGluZXMgPSAoKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2FibV9hZ2VudF9zZWN0aW9uJylcbiAgY29uc3QgW3JvdXRpbmVzLCBzZXRSb3V0aW5lc10gPSB1c2VTdGF0ZTxTY2hlZHVsZVdpdGhBZ2VudFJlc3BvbnNlW10+KFtdKVxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3BhbmVsT3Blbiwgc2V0UGFuZWxPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZWRpdGluZ1JvdXRpbmUsIHNldEVkaXRpbmdSb3V0aW5lXSA9IHVzZVN0YXRlPFNjaGVkdWxlV2l0aEFnZW50UmVzcG9uc2UgfCBudWxsPihudWxsKVxuICBjb25zdCBbdGVtcGxhdGVGb3JtLCBzZXRUZW1wbGF0ZUZvcm1dID0gdXNlU3RhdGU8UGFydGlhbDxUcmlnZ2VyRm9ybVN0YXRlPiB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFthZ2VudHMsIHNldEFnZW50c10gPSB1c2VTdGF0ZTxBZ2VudE9wdGlvbltdPihbXSlcbiAgY29uc3QgW2xvYWRpbmdBZ2VudHMsIHNldExvYWRpbmdBZ2VudHNdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzZWxlY3RlZEFnZW50LCBzZXRTZWxlY3RlZEFnZW50XSA9IHVzZVN0YXRlPEFnZW50T3B0aW9uIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2Ryb3Bkb3duT3Blbiwgc2V0RHJvcGRvd25PcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc3VibWl0Q291bnQsIHNldFN1Ym1pdENvdW50XSA9IHVzZVN0YXRlKDApXG4gIGNvbnN0IFtpc0Zvcm1WYWxpZCwgc2V0SXNGb3JtVmFsaWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFttZW51T3BlbkZvcklkLCBzZXRNZW51T3BlbkZvcklkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtyb3V0aW5lVG9EZWxldGUsIHNldFJvdXRpbmVUb0RlbGV0ZV0gPSB1c2VTdGF0ZTxTY2hlZHVsZVdpdGhBZ2VudFJlc3BvbnNlIHwgbnVsbD4obnVsbClcbiAgY29uc3QgZHJvcGRvd25SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG5cbiAgY29uc3QgZmV0Y2hSb3V0aW5lcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdldE15U2NoZWR1bGVzKHsgbGltaXQ6IDEwMCwgb2Zmc2V0OiAwIH0pXG4gICAgICBzZXRSb3V0aW5lcyhyZXN1bHQuZGF0YSlcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHNpbGVudGx5IGZhaWxcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGZldGNoQWdlbnRzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHNldExvYWRpbmdBZ2VudHModHJ1ZSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgICAgICBwYXRoOiAnYWdlbnRzP2FnZW50X3R5cGU9Y3VzdG9tJmxpbWl0PTEwMCZvZmZzZXQ9MCcsXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB9KVxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgY29uc3QgYWdlbnRMaXN0OiBBZ2VudE9wdGlvbltdID0gKGRhdGEuZGF0YSB8fCBbXSkubWFwKChhOiBhbnkpID0+ICh7XG4gICAgICAgIGlkOiBhLmlkLFxuICAgICAgICBuYW1lOiBhLm5hbWUsXG4gICAgICAgIGVtb2ppOiBhLmVtb2ppIHx8ICcnLFxuICAgICAgfSkpXG4gICAgICBzZXRBZ2VudHMoYWdlbnRMaXN0KVxuICAgICAgaWYgKGFnZW50TGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRBZ2VudChhZ2VudExpc3RbMF0pXG4gICAgICAgIHNldERyb3Bkb3duT3BlbihmYWxzZSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHNpbGVudGx5IGZhaWxcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZ0FnZW50cyhmYWxzZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hSb3V0aW5lcygpXG4gIH0sIFtmZXRjaFJvdXRpbmVzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcGFuZWxPcGVuKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICAgIHNldERyb3Bkb3duT3BlbihmYWxzZSlcbiAgICBmZXRjaEFnZW50cygpXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9LCBbcGFuZWxPcGVuLCBmZXRjaEFnZW50c10pXG5cbiAgY29uc3Qgb3BlbkNyZWF0ZVBhbmVsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldEVkaXRpbmdSb3V0aW5lKG51bGwpXG4gICAgc2V0VGVtcGxhdGVGb3JtKG51bGwpXG4gICAgc2V0U2VsZWN0ZWRBZ2VudChudWxsKVxuICAgIHNldElzRm9ybVZhbGlkKGZhbHNlKVxuICAgIHNldFN1Ym1pdENvdW50KDApXG4gICAgc2V0UGFuZWxPcGVuKHRydWUpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9wZW5EZXRhaWxQYW5lbCA9IHVzZUNhbGxiYWNrKChyb3V0aW5lOiBTY2hlZHVsZVdpdGhBZ2VudFJlc3BvbnNlKSA9PiB7XG4gICAgc2V0RWRpdGluZ1JvdXRpbmUocm91dGluZSlcbiAgICBzZXRUZW1wbGF0ZUZvcm0ocm91dGluZVRvRm9ybVN0YXRlKHJvdXRpbmUpKVxuICAgIHNldFNlbGVjdGVkQWdlbnQoXG4gICAgICByb3V0aW5lLmFnZW50X2V4dGVybmFsX2lkXG4gICAgICAgID8geyBpZDogcm91dGluZS5hZ2VudF9leHRlcm5hbF9pZCwgbmFtZTogcm91dGluZS5hZ2VudF9uYW1lID8/ICcnLCBlbW9qaTogcm91dGluZS5hZ2VudF9lbW9qaSA/PyAnJyB9XG4gICAgICAgIDogbnVsbFxuICAgIClcbiAgICBzZXRJc0Zvcm1WYWxpZChmYWxzZSlcbiAgICBzZXRTdWJtaXRDb3VudCgwKVxuICAgIHNldFBhbmVsT3Blbih0cnVlKVxuICB9LCBbXSlcblxuICBjb25zdCBjbG9zZVBhbmVsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFBhbmVsT3BlbihmYWxzZSlcbiAgICBzZXRFZGl0aW5nUm91dGluZShudWxsKVxuICAgIHNldFRlbXBsYXRlRm9ybShudWxsKVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZHJvcGRvd25PcGVuKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICAgIGNvbnN0IGNsb3NlSWZPdXRzaWRlID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghZHJvcGRvd25SZWYuY3VycmVudD8uY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHNldERyb3Bkb3duT3BlbihmYWxzZSlcbiAgICB9XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUlmT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbG9zZUlmT3V0c2lkZSlcbiAgfSwgW2Ryb3Bkb3duT3Blbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgICBpZiAobWVudU9wZW5Gb3JJZCkgc2V0TWVudU9wZW5Gb3JJZChudWxsKVxuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrT3V0c2lkZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gIH0sIFttZW51T3BlbkZvcklkXSlcblxuICBjb25zdCBoYW5kbGVDcmVhdGVTdWNjZXNzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNsb3NlUGFuZWwoKVxuICAgIHNldFNlbGVjdGVkQWdlbnQobnVsbClcbiAgICBmZXRjaFJvdXRpbmVzKClcbiAgfSwgW2Nsb3NlUGFuZWwsIGZldGNoUm91dGluZXNdKVxuXG4gIGNvbnN0IGhhbmRsZUNvbmZpcm1EZWxldGUgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoY2hhdDogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGRlbGV0ZVNjaGVkdWxlKGNoYXQuaWQpXG4gICAgICAgIHNldFJvdXRpbmVUb0RlbGV0ZShudWxsKVxuICAgICAgICBmZXRjaFJvdXRpbmVzKClcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBzaWxlbnRseSBmYWlsXG4gICAgICB9XG4gICAgfSxcbiAgICBbZmV0Y2hSb3V0aW5lc11cbiAgKVxuXG4gIGNvbnN0IGZyZXF1ZW5jeUxhYmVsID0gKHNjaGVkdWxlOiBTY2hlZHVsZVdpdGhBZ2VudFJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgbWludXRlbHk6IHQoJ3RyaWdnZXJzU2VjdGlvbi5mcmVxdWVuY2llcy5taW51dGVseScpLFxuICAgICAgaG91cmx5OiB0KCd0cmlnZ2Vyc1NlY3Rpb24uZnJlcXVlbmNpZXMuaG91cmx5JyksXG4gICAgICBkYWlseTogdCgndHJpZ2dlcnNTZWN0aW9uLmZyZXF1ZW5jaWVzLmRhaWx5JyksXG4gICAgICB3ZWVrbHk6IHQoJ3RyaWdnZXJzU2VjdGlvbi5mcmVxdWVuY2llcy53ZWVrbHknKSxcbiAgICB9XG4gICAgcmV0dXJuIG1hcFtzY2hlZHVsZS5zY2hlZHVsZV90eXBlXSA/PyBzY2hlZHVsZS5zY2hlZHVsZV90eXBlXG4gIH1cblxuICBjb25zdCBzdGF0dXNMYWJlbCA9IChzdGF0dXM6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIGFjdGl2ZTogdCgndHJpZ2dlcnNTZWN0aW9uLnN0YXR1cy5hY3RpdmUnKSxcbiAgICAgIHBhdXNlZDogdCgndHJpZ2dlcnNTZWN0aW9uLnN0YXR1cy5wYXVzZWQnKSxcbiAgICAgIGRpc2FibGVkOiB0KCd0cmlnZ2Vyc1NlY3Rpb24uc3RhdHVzLmRpc2FibGVkJyksXG4gICAgfVxuICAgIHJldHVybiBtYXBbc3RhdHVzXSA/PyBzdGF0dXNcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSBzZWxlY3RlZEFnZW50XG4gICAgPyBgJHtzZWxlY3RlZEFnZW50LmVtb2ppID8gYCR7c2VsZWN0ZWRBZ2VudC5lbW9qaX0gYCA6ICcnfSR7c2VsZWN0ZWRBZ2VudC5uYW1lfWBcbiAgICA6IHQoJ3RyaWdnZXJzU2VjdGlvbi5zZWxlY3RBZ2VudCcpXG5cbiAgY29uc3QgZGVsZXRlTW9kYWxDaGF0ID0gcm91dGluZVRvRGVsZXRlXG4gICAgPyB7IHRpdGxlOiByb3V0aW5lVG9EZWxldGUubmFtZSB8fCB0KCd0cmlnZ2Vyc1NlY3Rpb24udW50aXRsZWRSb3V0aW5lJyksIGlkOiByb3V0aW5lVG9EZWxldGUuaWQgfVxuICAgIDogbnVsbFxuXG4gIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1yb290LWFjdGlvbnMnKSA/PyBkb2N1bWVudC5ib2R5XG5cbiAgcmV0dXJuIChcbiAgICA8U0NNUkNvbnRhaW5lciAkaGFzSXRlbXM9eyEhcm91dGluZXMubGVuZ3RofT5cbiAgICAgIDxNQUlBSXNvbG9nbyAvPlxuXG4gICAgICA8U0NNUkJvZHkgJGNhbkNyZWF0ZT5cbiAgICAgICAge3JvdXRpbmVzLmxlbmd0aCA/IChcbiAgICAgICAgICA8U0NNUlRpdGxlV3JhcD5cbiAgICAgICAgICAgIDxTQ01SVGl0bGVJbm5lcj5cbiAgICAgICAgICAgICAgPFNDTVJUaXRsZT57dCgndHJpZ2dlcnNTZWN0aW9uLm15Um91dGluZXNUaXRsZScpfTwvU0NNUlRpdGxlPlxuICAgICAgICAgICAgICA8U0NNUlN1YnRpdGxlPnt0KCd0cmlnZ2Vyc1NlY3Rpb24ubXlSb3V0aW5lc1N1YnRpdGxlJyl9PC9TQ01SU3VidGl0bGU+XG4gICAgICAgICAgICA8L1NDTVJUaXRsZUlubmVyPlxuICAgICAgICAgICAgPFNDTVJBY3Rpb25zUm93PlxuICAgICAgICAgICAgICA8U0NNUkNyZWF0ZUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17b3BlbkNyZWF0ZVBhbmVsfT5cbiAgICAgICAgICAgICAgICA8U0NNUkNyZWF0ZUJ1dHRvblRleHQ+e3QoJ3RyaWdnZXJzU2VjdGlvbi5uZXdSb3V0aW5lJyl9PC9TQ01SQ3JlYXRlQnV0dG9uVGV4dD5cbiAgICAgICAgICAgICAgPC9TQ01SQ3JlYXRlQnV0dG9uPlxuICAgICAgICAgICAgPC9TQ01SQWN0aW9uc1Jvdz5cbiAgICAgICAgICA8L1NDTVJUaXRsZVdyYXA+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgIDxTQ01STG9hZFdyYXBwZXI+XG4gICAgICAgICAgICA8TG9hZGVyIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgPC9TQ01STG9hZFdyYXBwZXI+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHshbG9hZGluZyAmJiByb3V0aW5lcy5sZW5ndGggPyAoXG4gICAgICAgICAgPFNDTVJDYXJkc091dGVyPlxuICAgICAgICAgICAgPFNDTVJDYXJkc1Jvdz5cbiAgICAgICAgICAgICAge3JvdXRpbmVzLm1hcChyb3V0aW5lID0+IChcbiAgICAgICAgICAgICAgICA8U0NNUkNhcmRCdXR0b24ga2V5PXtyb3V0aW5lLmlkfSB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gb3BlbkRldGFpbFBhbmVsKHJvdXRpbmUpfT5cbiAgICAgICAgICAgICAgICAgIDxTQ01SQ2FyZEhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPFNDTVJDYXJkVG9wUm93PlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01SQ2FyZFRpdGxlTmFtZT57cm91dGluZS5uYW1lIHx8IHQoJ3RyaWdnZXJzU2VjdGlvbi51bnRpdGxlZFJvdXRpbmUnKX08L1NDTVJDYXJkVGl0bGVOYW1lPlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01SS2ViYWJCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgndHJpZ2dlcnNTZWN0aW9uLmRlbGV0ZVJvdXRpbmUnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51T3BlbkZvcklkKHByZXYgPT4gKHByZXYgPT09IHJvdXRpbmUuaWQgPyBudWxsIDogcm91dGluZS5pZCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51RG90cyBjb2xvcj1cIiM5OTlcIiB3aWR0aD17MTV9IGhlaWdodD17MTV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ01SS2ViYWJCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNUkNhcmRUb3BSb3c+XG4gICAgICAgICAgICAgICAgICA8L1NDTVJDYXJkSGVhZGVyPlxuICAgICAgICAgICAgICAgICAgPFNDTVJDYXJkQm9keT5cbiAgICAgICAgICAgICAgICAgICAgPFNDTVJDYXJkQ29udGVudFRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge3JvdXRpbmUuYWdlbnRfZW1vamkgfHwgcm91dGluZS5hZ2VudF9uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGAke3JvdXRpbmUuYWdlbnRfZW1vamkgPyBgJHtyb3V0aW5lLmFnZW50X2Vtb2ppfSBgIDogJyd9JHtyb3V0aW5lLmFnZW50X25hbWUgPz8gJyd9YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01SQ2FyZENvbnRlbnRUZXh0PlxuICAgICAgICAgICAgICAgICAgICA8U0NNUkNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTVJDYXJkRnJlcXVlbmN5PntmcmVxdWVuY3lMYWJlbChyb3V0aW5lKX08L1NDTVJDYXJkRnJlcXVlbmN5PlxuICAgICAgICAgICAgICAgICAgICAgIDxTQ01SU3RhdHVzQmFkZ2UgJHN0YXR1cz17cm91dGluZS5zdGF0dXN9PntzdGF0dXNMYWJlbChyb3V0aW5lLnN0YXR1cyl9PC9TQ01SU3RhdHVzQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNUkNhcmRGb290ZXI+XG4gICAgICAgICAgICAgICAgICA8L1NDTVJDYXJkQm9keT5cbiAgICAgICAgICAgICAgICAgIHttZW51T3BlbkZvcklkID09PSByb3V0aW5lLmlkID8gKFxuICAgICAgICAgICAgICAgICAgICA8U0NNUkNhcmRNZW51XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNDTVJDYXJkTWVudUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNDTVJDYXJkTWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSb3V0aW5lVG9EZWxldGUocm91dGluZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51T3BlbkZvcklkKG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt0KCd0cmlnZ2Vyc1NlY3Rpb24uZGVsZXRlUm91dGluZScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ01SQ2FyZE1lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NNUkNhcmRNZW51SXRlbXM+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNUkNhcmRNZW51PlxuICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPC9TQ01SQ2FyZEJ1dHRvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NDTVJDYXJkc1Jvdz5cbiAgICAgICAgICA8L1NDTVJDYXJkc091dGVyPlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7IWxvYWRpbmcgJiYgIXJvdXRpbmVzLmxlbmd0aCA/IChcbiAgICAgICAgICA8U0NNUkVtcHR5U3RhdGVSb290PlxuICAgICAgICAgICAgPFNDTVJFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgICA8U0NNUkVtcHR5U3RhdGVUaXRsZUJsb2NrPlxuICAgICAgICAgICAgICAgIDxTQ01SRW1wdHlTdGF0ZVRpdGxlPnt0KCd0cmlnZ2Vyc1NlY3Rpb24ubXlSb3V0aW5lc0VtcHR5VGl0bGUnKX08L1NDTVJFbXB0eVN0YXRlVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDTVJFbXB0eVN0YXRlU3VidGl0bGU+e3QoJ3RyaWdnZXJzU2VjdGlvbi5teVJvdXRpbmVzRW1wdHlEZXNjcmlwdGlvbicpfTwvU0NNUkVtcHR5U3RhdGVTdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ01SRW1wdHlTdGF0ZVRpdGxlQmxvY2s+XG4gICAgICAgICAgICA8L1NDTVJFbXB0eVN0YXRlQ29sdW1uPlxuICAgICAgICAgICAgPFNDTVJFbXB0eVN0YXRlQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvcGVuQ3JlYXRlUGFuZWx9PlxuICAgICAgICAgICAgICB7dCgndHJpZ2dlcnNTZWN0aW9uLm5ld1JvdXRpbmUnKX1cbiAgICAgICAgICAgIDwvU0NNUkVtcHR5U3RhdGVCdXR0b24+XG4gICAgICAgICAgPC9TQ01SRW1wdHlTdGF0ZVJvb3Q+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TQ01SQm9keT5cblxuICAgICAge3BhbmVsT3BlbiAmJlxuICAgICAgICBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPEJhY2tkcm9wIG9uQ2xpY2s9e2Nsb3NlUGFuZWx9IHpJbmRleD17TUFJQV9TRUNUSU9OX01PREFMX1p9PlxuICAgICAgICAgICAgPFNDTVJNb2RhbFdyYXBwZXIgb25DbGljaz17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfT5cbiAgICAgICAgICAgICAgPFNDTVJNb2RhbEhlYWRlcj5cbiAgICAgICAgICAgICAgICA8U0NNUk1vZGFsVGl0bGU+XG4gICAgICAgICAgICAgICAgICB7ZWRpdGluZ1JvdXRpbmUgPyB0KCd0cmlnZ2Vyc1NlY3Rpb24ucm91dGluZURldGFpbCcpIDogdCgndHJpZ2dlcnNTZWN0aW9uLm5ld1JvdXRpbmUnKX1cbiAgICAgICAgICAgICAgICA8L1NDTVJNb2RhbFRpdGxlPlxuICAgICAgICAgICAgICAgIDxTQ01STW9kYWxDbG9zZUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD17dCgndHJpZ2dlcnNTZWN0aW9uLmJhY2snKX0gb25DbGljaz17Y2xvc2VQYW5lbH0+XG4gICAgICAgICAgICAgICAgICA8Q3Jvc3MgY29sb3I9XCIjYTZhNmE2XCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgIDwvU0NNUk1vZGFsQ2xvc2VCdXR0b24+XG4gICAgICAgICAgICAgIDwvU0NNUk1vZGFsSGVhZGVyPlxuICAgICAgICAgICAgICA8U0NNUk1vZGFsQ29udGVudD5cbiAgICAgICAgICAgICAgICA8U0NGaWVsZFdpdGhEcm9wZG93blo+XG4gICAgICAgICAgICAgICAgICB7dCgndHJpZ2dlcnNTZWN0aW9uLmFnZW50Jyl9XG4gICAgICAgICAgICAgICAgICA8U0NBZ2VudFNlbGVjdG9yQ29udGFpbmVyIHJlZj17ZHJvcGRvd25SZWYgYXMgYW55fT5cbiAgICAgICAgICAgICAgICAgICAge2VkaXRpbmdSb3V0aW5lID8gKFxuICAgICAgICAgICAgICAgICAgICAgIDxTQ0FnZW50U2VsZWN0b3JUcmlnZ2VyIG9wZW49e2ZhbHNlfSB0eXBlPVwiYnV0dG9uXCIgZGlzYWJsZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57c2VsZWN0ZWRMYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TQ0FnZW50U2VsZWN0b3JUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NBZ2VudFNlbGVjdG9yVHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuPXtkcm9wZG93bk9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldERyb3Bkb3duT3BlbihwcmV2ID0+ICFwcmV2KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntsb2FkaW5nQWdlbnRzID8gdCgndHJpZ2dlcnNTZWN0aW9uLmxvYWRpbmdBZ2VudHMnKSA6IHNlbGVjdGVkTGFiZWx9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd24gd2lkdGg9XCIxNHB4XCIgaGVpZ2h0PVwiMTRweFwiIGNvbG9yPXtkcm9wZG93bk9wZW4gPyB1LmFnZW50QWNjZW50IDogdS50ZXh0TXV0ZWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDQWdlbnRTZWxlY3RvclRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZHJvcGRvd25PcGVuICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNDQWdlbnRTZWxlY3Rvckxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2xvYWRpbmdBZ2VudHMgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NBZ2VudFNlbGVjdG9yTG9hZGluZ1Jvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3QoJ3RyaWdnZXJzU2VjdGlvbi5sb2FkaW5nQWdlbnRzJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NDQWdlbnRTZWxlY3RvckxvYWRpbmdSb3c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW50cy5tYXAoYWdlbnQgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U0NBZ2VudFNlbGVjdG9yT3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXthZ2VudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZEFnZW50Py5pZCA9PT0gYWdlbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZURvd249e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRBZ2VudChhZ2VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldERyb3Bkb3duT3BlbihmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FnZW50LmVtb2ppID8gYCR7YWdlbnQuZW1vaml9IGAgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YWdlbnQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ0FnZW50U2VsZWN0b3JPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU0NBZ2VudFNlbGVjdG9yTGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L1NDQWdlbnRTZWxlY3RvckNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L1NDRmllbGRXaXRoRHJvcGRvd25aPlxuICAgICAgICAgICAgICAgIDxTQ01STW9kYWxCb2R5U2Nyb2xsPlxuICAgICAgICAgICAgICAgICAgPEFibVRyaWdnZXJzU2VjdGlvblxuICAgICAgICAgICAgICAgICAgICBhZ2VudEV4dGVybmFsSWQ9e3NlbGVjdGVkQWdlbnQ/LmlkID8/IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxGb3JtPXt0ZW1wbGF0ZUZvcm0gPz8gdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICBzdWJtaXRDb3VudD17c3VibWl0Q291bnR9XG4gICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz17aGFuZGxlQ3JlYXRlU3VjY2Vzc31cbiAgICAgICAgICAgICAgICAgICAgb25WYWxpZGl0eUNoYW5nZT17c2V0SXNGb3JtVmFsaWR9XG4gICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVDcmVhdGVPbmx5XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvU0NNUk1vZGFsQm9keVNjcm9sbD5cbiAgICAgICAgICAgICAgPC9TQ01STW9kYWxDb250ZW50PlxuICAgICAgICAgICAgICA8U0NNUk1vZGFsRm9vdGVyPlxuICAgICAgICAgICAgICAgIDxTQ01STW9kYWxDYW5jZWxCdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2Nsb3NlUGFuZWx9PlxuICAgICAgICAgICAgICAgICAge3QoJ3RyaWdnZXJzU2VjdGlvbi5iYWNrJyl9XG4gICAgICAgICAgICAgICAgPC9TQ01STW9kYWxDYW5jZWxCdXR0b24+XG4gICAgICAgICAgICAgICAgeyFlZGl0aW5nUm91dGluZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8U0NNUk1vZGFsU2F2ZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFpc0Zvcm1WYWxpZH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U3VibWl0Q291bnQocHJldiA9PiBwcmV2ICsgMSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt0KCd0cmlnZ2Vyc1NlY3Rpb24uc2F2ZScpfVxuICAgICAgICAgICAgICAgICAgPC9TQ01STW9kYWxTYXZlQnV0dG9uPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU0NNUk1vZGFsRm9vdGVyPlxuICAgICAgICAgICAgPC9TQ01STW9kYWxXcmFwcGVyPlxuICAgICAgICAgIDwvQmFja2Ryb3A+LFxuICAgICAgICAgIGNvbnRhaW5lclxuICAgICAgICApfVxuXG4gICAgICB7ZGVsZXRlTW9kYWxDaGF0ID8gKFxuICAgICAgICA8RGVsZXRlUXVlc3Rpb25Nb2RhbFxuICAgICAgICAgIGFjdGlvbj1cInJvdXRpbmVcIlxuICAgICAgICAgIGNoYXQ9e2RlbGV0ZU1vZGFsQ2hhdH1cbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRSb3V0aW5lVG9EZWxldGUobnVsbCl9XG4gICAgICAgICAgaGFuZGxlcnM9e3sgaGFuZGxlQ29uZmlybUFjdGlvbjogaGFuZGxlQ29uZmlybURlbGV0ZSB9fVxuICAgICAgICAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9TQ01SQ29udGFpbmVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0EsT0FBT0EsUUFBUSxNQUFNLFdBQVc7QUFDaEMsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDaEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLEtBQUssUUFB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
|