@projectcor/maia-components 2.11.36-5 → 2.11.36-7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +2 -2
  2. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +2 -2
  3. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -2
  4. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +2 -2
  5. package/lib/components/atoms/icons/RocketIcon.js +16 -20
  6. package/lib/components/atoms/icons/WrenchIcon.js +1 -1
  7. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.js +47 -20
  8. package/lib/components/molecules/AbmSection/AbmActionsSectionV2/AbmActionsSectionV2.styles.js +1 -5
  9. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.js +105 -44
  10. package/lib/components/molecules/AbmSection/AbmTriggersSection/AbmTriggersSection.styles.js +40 -19
  11. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +2 -4
  12. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +3 -39
  13. package/lib/components/molecules/ChatAIHome/styles.js +1 -37
  14. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +13 -92
  15. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +2 -2
  16. package/lib/components/molecules/ChatFooter/ChatFooter.js +1 -1
  17. package/lib/components/molecules/SchedulesPage/SchedulesPage.js +200 -234
  18. package/lib/components/molecules/Sidebar/Sidebar.js +7 -7
  19. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  20. package/lib/components/molecules/SkillsPage/SkillsPage.js +135 -174
  21. package/lib/components/molecules/maiaSectionModalStyles.js +91 -0
  22. package/lib/components/molecules/maiaSectionUiTokens.js +31 -0
  23. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +17 -5
  24. package/lib/dev/DevAbmAgentModal.js +1 -1
  25. package/lib/dev/mocks/abmModalMocks.js +25 -32
  26. package/lib/hooks/useEntitySearch.js +5 -5
  27. package/lib/hooks/useMentionAllowedTypes.js +17 -12
  28. package/lib/lang/br/index.js +6 -7
  29. package/lib/lang/en/index.js +6 -7
  30. package/lib/lang/es/index.js +6 -7
  31. package/lib/lang/fr/index.js +6 -7
  32. package/lib/services/maia/Agents/connectors.js +27 -5
  33. package/lib/services/maia/Orchestrator/orchestrator.js +1 -2
  34. package/lib/services/maia/Schedules/getMySchedules.js +1 -1
  35. package/lib/services/maia/Schedules/index.js +1 -1
  36. package/lib/types/Chat.js +1 -1
  37. package/lib/types/agentModal.js +1 -1
  38. package/lib/types/attachment.js +2 -0
  39. package/lib/utils/contextMentionIcons.js +16 -18
  40. package/lib/utils/renderContextMentions.js +3 -3
  41. package/package.json +1 -1
@@ -1,5 +1,8 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
6
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
7
  import { useTranslation } from 'react-i18next';
5
8
  import { Category } from '@projectcor/icons/lib/components/Category';
@@ -8,9 +11,8 @@ import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
8
11
  import { NotionIcon } from '../../../atoms/icons/NotionIcon';
9
12
  import { useResizeListener } from '../../../../hooks/useResize';
10
13
  import { ACTION_LABEL_KEYS, COR_TOOL_GROUPS, ENTITY_ACTION_ORDER, ENTITY_ORDER, NOTION_CONNECTOR_CATALOG, NOTION_CONNECTOR_SLUG } from './catalog';
11
- import { SCActionHeader, SCActionLabel, SCActionLabelGroup, SCActionRow, SCCategoryAccordion, SCCategoryDescription, SCCategoryHeader, SCCategoryTextGroup, SCCategoryTitle, SCChevronButton, SCComingSoonBadge, SCConnectorCard, SCConnectorHeader, SCConnectorHint, SCConnectorIcon, SCConnectorIdentity, SCConnectorRightGroup, SCConnectorTagline, SCConnectorTextGroup, SCConnectorTitle, SCCounter, SCDeleteBadge, SCDocLink, SCExpandableBlockBody, SCEmptyTools, SCEntityCard, SCEntityHeader, SCEntityList, SCEntityTitle, SCHeader, SCRoot, SCSectionLabel, SCStatusPill, SCSubtitle, SCTitle, SCToggle, SCToggleThumb, SCToolDescription, SCToolItem, SCToolKindBadge, SCToolName, SCToolText, SCToolsList } from './AbmActionsSectionV2.styles';
14
+ import { SCActionHeader, SCActionLabel, SCActionLabelGroup, SCActionRow, SCCategoryAccordion, SCCategoryDescription, SCCategoryHeader, SCCategoryTextGroup, SCCategoryTitle, SCChevronButton, SCComingSoonBadge, SCConnectorCard, SCConnectorHeader, SCConnectorHint, SCConnectorIcon, SCConnectorIdentity, SCConnectorRightGroup, SCConnectorTagline, SCConnectorTextGroup, SCConnectorTitle, SCCounter, SCDeleteBadge, SCExpandableBlockBody, SCEmptyTools, SCEntityCard, SCEntityHeader, SCEntityList, SCEntityTitle, SCHeader, SCRoot, SCSectionLabel, SCStatusPill, SCSubtitle, SCTitle, SCToggle, SCToggleThumb, SCToolDescription, SCToolItem, SCToolKindBadge, SCToolName, SCToolText, SCToolsList } from './AbmActionsSectionV2.styles';
12
15
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
- var NOTION_DOC_URL = 'https://developers.notion.com/docs/mcp-supported-tools';
14
16
  var HIERARCHICAL_ACTIONS = ['read', 'edit', 'delete'];
15
17
  var buildToolGroupMap = function buildToolGroupMap(groups) {
16
18
  var map = {};
@@ -37,7 +39,7 @@ var TruncationTooltip = function TruncationTooltip(_ref) {
37
39
  });
38
40
  };
39
41
  export var AbmActionsSectionV2 = function AbmActionsSectionV2(_ref2) {
40
- var _values$actions, _values$actions2;
42
+ var _values$actions, _values$actions2, _values$actions4;
41
43
  var values = _ref2.values,
42
44
  handleSetAgentValues = _ref2.handleSetAgentValues;
43
45
  var _useTranslation = useTranslation('abm_agent_section'),
@@ -88,15 +90,15 @@ export var AbmActionsSectionV2 = function AbmActionsSectionV2(_ref2) {
88
90
  if (wasExpanded && selectedToolGroups.length > 0) {
89
91
  handleSetAgentValues({
90
92
  key: 'actions',
91
- value: {
93
+ value: _objectSpread(_objectSpread({}, values.actions), {}, {
92
94
  selectedToolGroups: [],
93
95
  selectedConnectors: selectedConnectors
94
- }
96
+ })
95
97
  });
96
98
  }
97
99
  }
98
100
  prevCorBlockExpandedRef.current = corBlockExpanded;
99
- }, [corBlockExpanded, handleSetAgentValues, selectedConnectors, selectedToolGroups.length]);
101
+ }, [corBlockExpanded, handleSetAgentValues, selectedConnectors, selectedToolGroups.length, values.actions]);
100
102
  var isActionActive = useCallback(function (entity, action) {
101
103
  var _TOOL_GROUP_MAP$entit;
102
104
  var group = (_TOOL_GROUP_MAP$entit = TOOL_GROUP_MAP[entity]) === null || _TOOL_GROUP_MAP$entit === void 0 ? void 0 : _TOOL_GROUP_MAP$entit[action];
@@ -131,12 +133,12 @@ export var AbmActionsSectionV2 = function AbmActionsSectionV2(_ref2) {
131
133
  }
132
134
  handleSetAgentValues({
133
135
  key: 'actions',
134
- value: {
136
+ value: _objectSpread(_objectSpread({}, values.actions), {}, {
135
137
  selectedToolGroups: Array.from(next),
136
138
  selectedConnectors: selectedConnectors
137
- }
139
+ })
138
140
  });
139
- }, [handleSetAgentValues, selectedConnectors, selectedToolGroups]);
141
+ }, [handleSetAgentValues, selectedConnectors, selectedToolGroups, values.actions]);
140
142
  var toggleConnector = useCallback(function (connectorSlug) {
141
143
  var next = new Set(selectedConnectors);
142
144
  if (next.has(connectorSlug)) {
@@ -146,12 +148,12 @@ export var AbmActionsSectionV2 = function AbmActionsSectionV2(_ref2) {
146
148
  }
147
149
  handleSetAgentValues({
148
150
  key: 'actions',
149
- value: {
151
+ value: _objectSpread(_objectSpread({}, values.actions), {}, {
150
152
  selectedToolGroups: selectedToolGroups,
151
153
  selectedConnectors: Array.from(next)
152
- }
154
+ })
153
155
  });
154
- }, [handleSetAgentValues, selectedConnectors, selectedToolGroups]);
156
+ }, [handleSetAgentValues, selectedConnectors, selectedToolGroups, values.actions]);
155
157
  var toggleActionExpanded = useCallback(function (slug) {
156
158
  setExpandedActions(function (prev) {
157
159
  var next = new Set(prev);
@@ -167,6 +169,36 @@ export var AbmActionsSectionV2 = function AbmActionsSectionV2(_ref2) {
167
169
  });
168
170
  }, []);
169
171
  var isNotionEnabled = selectedConnectorsSet.has(NOTION_CONNECTOR_SLUG);
172
+ var notionConnectorState = useMemo(function () {
173
+ var _values$actions3;
174
+ return (_values$actions3 = values.actions) === null || _values$actions3 === void 0 || (_values$actions3 = _values$actions3.connectorStates) === null || _values$actions3 === void 0 ? void 0 : _values$actions3.find(function (s) {
175
+ return s.slug === NOTION_CONNECTOR_SLUG;
176
+ });
177
+ }, [(_values$actions4 = values.actions) === null || _values$actions4 === void 0 ? void 0 : _values$actions4.connectorStates]);
178
+ var notionConnectorBadge = useMemo(function () {
179
+ if (!isNotionEnabled) {
180
+ return {
181
+ tone: 'neutral',
182
+ label: t('actionsSection.v2.connectorStatus.inactive')
183
+ };
184
+ }
185
+ if (notionConnectorState) {
186
+ if (notionConnectorState.enabled_for_agent) {
187
+ return {
188
+ tone: 'success',
189
+ label: t('actionsSection.v2.connectorStatus.enabled')
190
+ };
191
+ }
192
+ return {
193
+ tone: 'pending',
194
+ label: t('actionsSection.v2.connectorStatus.enabledPendingAuth')
195
+ };
196
+ }
197
+ return {
198
+ tone: 'pending',
199
+ label: t('actionsSection.v2.connectorStatus.enabledPendingAuth')
200
+ };
201
+ }, [isNotionEnabled, notionConnectorState, t]);
170
202
  useEffect(function () {
171
203
  if (!isNotionEnabled) {
172
204
  setExpandedNotionCategories(new Set());
@@ -450,8 +482,8 @@ export var AbmActionsSectionV2 = function AbmActionsSectionV2(_ref2) {
450
482
  })]
451
483
  }), /*#__PURE__*/_jsxs(SCConnectorRightGroup, {
452
484
  children: [/*#__PURE__*/_jsx(SCStatusPill, {
453
- tone: isNotionEnabled ? 'pending' : 'neutral',
454
- children: isNotionEnabled ? t('actionsSection.v2.connectorStatus.enabledPendingAuth') : t('actionsSection.v2.connectorStatus.inactive')
485
+ tone: notionConnectorBadge.tone,
486
+ children: notionConnectorBadge.label
455
487
  }), /*#__PURE__*/_jsx(SCToggle, {
456
488
  type: "button",
457
489
  isActive: isNotionEnabled,
@@ -470,14 +502,9 @@ export var AbmActionsSectionV2 = function AbmActionsSectionV2(_ref2) {
470
502
  children: t('actionsSection.v2.notion.enabledHint')
471
503
  }), NOTION_CONNECTOR_CATALOG.categories.map(function (category) {
472
504
  return renderNotionCategory(category);
473
- }), /*#__PURE__*/_jsx(SCDocLink, {
474
- href: NOTION_DOC_URL,
475
- target: "_blank",
476
- rel: "noreferrer",
477
- children: t('actionsSection.v2.notion.docLink')
478
505
  })]
479
506
  })]
480
507
  })]
481
508
  });
482
509
  };
483
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlVHJhbnNsYXRpb24iLCJDYXRlZ29yeSIsIkNoZXZyb25Eb3duIiwiVG9vbHRpcCIsIk5vdGlvbkljb24iLCJ1c2VSZXNpemVMaXN0ZW5lciIsIkFDVElPTl9MQUJFTF9LRVlTIiwiQ09SX1RPT0xfR1JPVVBTIiwiRU5USVRZX0FDVElPTl9PUkRFUiIsIkVOVElUWV9PUkRFUiIsIk5PVElPTl9DT05ORUNUT1JfQ0FUQUxPRyIsIk5PVElPTl9DT05ORUNUT1JfU0xVRyIsIlNDQWN0aW9uSGVhZGVyIiwiU0NBY3Rpb25MYWJlbCIsIlNDQWN0aW9uTGFiZWxHcm91cCIsIlNDQWN0aW9uUm93IiwiU0NDYXRlZ29yeUFjY29yZGlvbiIsIlNDQ2F0ZWdvcnlEZXNjcmlwdGlvbiIsIlNDQ2F0ZWdvcnlIZWFkZXIiLCJTQ0NhdGVnb3J5VGV4dEdyb3VwIiwiU0NDYXRlZ29yeVRpdGxlIiwiU0NDaGV2cm9uQnV0dG9uIiwiU0NDb21pbmdTb29uQmFkZ2UiLCJTQ0Nvbm5lY3RvckNhcmQiLCJTQ0Nvbm5lY3RvckhlYWRlciIsIlNDQ29ubmVjdG9ySGludCIsIlNDQ29ubmVjdG9ySWNvbiIsIlNDQ29ubmVjdG9ySWRlbnRpdHkiLCJTQ0Nvbm5lY3RvclJpZ2h0R3JvdXAiLCJTQ0Nvbm5lY3RvclRhZ2xpbmUiLCJTQ0Nvbm5lY3RvclRleHRHcm91cCIsIlNDQ29ubmVjdG9yVGl0bGUiLCJTQ0NvdW50ZXIiLCJTQ0RlbGV0ZUJhZGdlIiwiU0NEb2NMaW5rIiwiU0NFeHBhbmRhYmxlQmxvY2tCb2R5IiwiU0NFbXB0eVRvb2xzIiwiU0NFbnRpdHlDYXJkIiwiU0NFbnRpdHlIZWFkZXIiLCJTQ0VudGl0eUxpc3QiLCJTQ0VudGl0eVRpdGxlIiwiU0NIZWFkZXIiLCJTQ1Jvb3QiLCJTQ1NlY3Rpb25MYWJlbCIsIlNDU3RhdHVzUGlsbCIsIlNDU3VidGl0bGUiLCJTQ1RpdGxlIiwiU0NUb2dnbGUiLCJTQ1RvZ2dsZVRodW1iIiwiU0NUb29sRGVzY3JpcHRpb24iLCJTQ1Rvb2xJdGVtIiwiU0NUb29sS2luZEJhZGdlIiwiU0NUb29sTmFtZSIsIlNDVG9vbFRleHQiLCJTQ1Rvb2xzTGlzdCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIk5PVElPTl9ET0NfVVJMIiwiSElFUkFSQ0hJQ0FMX0FDVElPTlMiLCJidWlsZFRvb2xHcm91cE1hcCIsImdyb3VwcyIsIm1hcCIsImZvckVhY2giLCJlbnRpdHkiLCJncm91cCIsImFjdGlvbiIsIlRPT0xfR1JPVVBfTUFQIiwiVHJ1bmNhdGlvblRvb2x0aXAiLCJfcmVmIiwidGl0bGUiLCJfcmVmJGxheW91dEtleSIsImxheW91dEtleSIsImNoaWxkcmVuIiwidGV4dFJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInNob3dUb29sdGlwIiwiQWJtQWN0aW9uc1NlY3Rpb25WMiIsIl9yZWYyIiwiX3ZhbHVlcyRhY3Rpb25zIiwiX3ZhbHVlcyRhY3Rpb25zMiIsInZhbHVlcyIsImhhbmRsZVNldEFnZW50VmFsdWVzIiwiX3VzZVRyYW5zbGF0aW9uIiwidCIsInNlbGVjdGVkVG9vbEdyb3VwcyIsImFjdGlvbnMiLCJzZWxlY3RlZENvbm5lY3RvcnMiLCJzZWxlY3RlZFRvb2xHcm91cHNTZXQiLCJTZXQiLCJzZWxlY3RlZENvbm5lY3RvcnNTZXQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJjb3JCbG9ja0V4cGFuZGVkIiwic2V0Q29yQmxvY2tFeHBhbmRlZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZXhwYW5kZWRBY3Rpb25zIiwic2V0RXhwYW5kZWRBY3Rpb25zIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJleHBhbmRlZE5vdGlvbkNhdGVnb3JpZXMiLCJzZXRFeHBhbmRlZE5vdGlvbkNhdGVnb3JpZXMiLCJwcmV2Q29yVG9vbEdyb3VwQ291bnRSZWYiLCJwcmV2Q29yQmxvY2tFeHBhbmRlZFJlZiIsIm4iLCJsZW5ndGgiLCJwcmV2IiwiY3VycmVudCIsIndhc0V4cGFuZGVkIiwia2V5IiwidmFsdWUiLCJpc0FjdGlvbkFjdGl2ZSIsIl9UT09MX0dST1VQX01BUCRlbnRpdCIsImhhcyIsInNsdWciLCJ0b2dnbGVFbnRpdHlBY3Rpb24iLCJfVE9PTF9HUk9VUF9NQVAkZW50aXQyIiwidGFyZ2V0R3JvdXAiLCJhdmFpbGFibGUiLCJuZXh0IiwiZW50aXR5SW5kZXgiLCJpbmRleE9mIiwicHJldmlvdXNFbnRpdGllcyIsInNsaWNlIiwibmV4dEVudGl0aWVzIiwiYWN0aW9uSW5kZXgiLCJpc0N1cnJlbnRseUFjdGl2ZSIsImN1cnJlbnRFbnRpdHkiLCJjdXJyZW50QWN0aW9uIiwiX1RPT0xfR1JPVVBfTUFQJGN1cnJlIiwiX1RPT0xfR1JPVVBfTUFQJGN1cnJlMiIsImFkZCIsIkFycmF5IiwiZnJvbSIsInRvZ2dsZUNvbm5lY3RvciIsImNvbm5lY3RvclNsdWciLCJ0b2dnbGVBY3Rpb25FeHBhbmRlZCIsInRvZ2dsZU5vdGlvbkNhdGVnb3J5IiwiY2F0ZWdvcnlLZXkiLCJpc05vdGlvbkVuYWJsZWQiLCJjb3JBY3RpdmVUb29sc0NvdW50IiwicmVkdWNlIiwiYWNjIiwiZyIsInRvb2xzIiwidHJ1bmNhdGlvbk1lYXN1cmVLZXkiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0Iiwiam9pbiIsInJlbmRlclRvb2xJdGVtIiwidG9vbCIsImtpbmQiLCJhY2Nlc3NLaW5kIiwibmFtZSIsImRlc2NyaXB0aW9uIiwicmVmIiwicmVuZGVyQWN0aW9uUm93IiwiX1RPT0xfR1JPVVBfTUFQJGVudGl0MyIsImlzQXZhaWxhYmxlIiwiYWN0aXZlIiwiZXhwYW5kZWQiLCJ0b29sc0NvdW50IiwiY2FuRXhwYW5kIiwiaXNEZWxldGUiLCJvbkhlYWRlckNsaWNrIiwib25Ub2dnbGVDbGljayIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJoZWFkZXJDb250ZW50IiwiY2xpY2thYmxlIiwib25DbGljayIsInR5cGUiLCJvcGVuIiwiZGlzYWJsZWQiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwiY291bnQiLCJpc0FjdGl2ZSIsInJvdyIsInJlbmRlckVudGl0eUNhcmQiLCJncm91cHNGb3JFbnRpdHkiLCJfVE9PTF9HUk9VUF9NQVAkZW50aXQ0IiwiZmlsdGVyIiwiQm9vbGVhbiIsImVuYWJsZWRUb29scyIsImNvdW50ZXJBY3RpdmUiLCJyZW5kZXJOb3Rpb25DYXRlZ29yeSIsImNhdGVnb3J5IiwiaXNPcGVuIiwiYXMiLCJsYWJlbCIsInYiLCJ0b25lIiwiY2F0ZWdvcmllcyIsImhyZWYiLCJ0YXJnZXQiLCJyZWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1BY3Rpb25zU2VjdGlvblYyL0FibUFjdGlvbnNTZWN0aW9uVjIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxuICBNb3VzZUV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdHlwZSBSZWZPYmplY3QsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuXG5pbXBvcnQgeyBDYXRlZ29yeSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NhdGVnb3J5J1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcblxuaW1wb3J0IHsgTm90aW9uSWNvbiB9IGZyb20gJy4uLy4uLy4uL2F0b21zL2ljb25zL05vdGlvbkljb24nXG5cbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHsgTW9kYWxWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcy9hZ2VudE1vZGFsJ1xuaW1wb3J0IHtcbiAgQUNUSU9OX0xBQkVMX0tFWVMsXG4gIENvbm5lY3RvclRvb2xDYXRlZ29yeSxcbiAgQ09SX1RPT0xfR1JPVVBTLFxuICBFTlRJVFlfQUNUSU9OX09SREVSLFxuICBFTlRJVFlfT1JERVIsXG4gIEVudGl0eUFjdGlvbktleSxcbiAgRW50aXR5S2V5LFxuICBFbnRpdHlUb29sR3JvdXAsXG4gIE5PVElPTl9DT05ORUNUT1JfQ0FUQUxPRyxcbiAgTk9USU9OX0NPTk5FQ1RPUl9TTFVHLFxuICBUb29sRGVzY3JpcHRvcixcbn0gZnJvbSAnLi9jYXRhbG9nJ1xuaW1wb3J0IHtcbiAgU0NBY3Rpb25IZWFkZXIsXG4gIFNDQWN0aW9uTGFiZWwsXG4gIFNDQWN0aW9uTGFiZWxHcm91cCxcbiAgU0NBY3Rpb25Sb3csXG4gIFNDQ2F0ZWdvcnlBY2NvcmRpb24sXG4gIFNDQ2F0ZWdvcnlEZXNjcmlwdGlvbixcbiAgU0NDYXRlZ29yeUhlYWRlcixcbiAgU0NDYXRlZ29yeVRleHRHcm91cCxcbiAgU0NDYXRlZ29yeVRpdGxlLFxuICBTQ0NoZXZyb25CdXR0b24sXG4gIFNDQ29taW5nU29vbkJhZGdlLFxuICBTQ0Nvbm5lY3RvckNhcmQsXG4gIFNDQ29ubmVjdG9ySGVhZGVyLFxuICBTQ0Nvbm5lY3RvckhpbnQsXG4gIFNDQ29ubmVjdG9ySWNvbixcbiAgU0NDb25uZWN0b3JJZGVudGl0eSxcbiAgU0NDb25uZWN0b3JSaWdodEdyb3VwLFxuICBTQ0Nvbm5lY3RvclRhZ2xpbmUsXG4gIFNDQ29ubmVjdG9yVGV4dEdyb3VwLFxuICBTQ0Nvbm5lY3RvclRpdGxlLFxuICBTQ0NvdW50ZXIsXG4gIFNDRGVsZXRlQmFkZ2UsXG4gIFNDRG9jTGluayxcbiAgU0NFeHBhbmRhYmxlQmxvY2tCb2R5LFxuICBTQ0VtcHR5VG9vbHMsXG4gIFNDRW50aXR5Q2FyZCxcbiAgU0NFbnRpdHlIZWFkZXIsXG4gIFNDRW50aXR5TGlzdCxcbiAgU0NFbnRpdHlUaXRsZSxcbiAgU0NIZWFkZXIsXG4gIFNDUm9vdCxcbiAgU0NTZWN0aW9uTGFiZWwsXG4gIFNDU3RhdHVzUGlsbCxcbiAgU0NTdWJ0aXRsZSxcbiAgU0NUaXRsZSxcbiAgU0NUb2dnbGUsXG4gIFNDVG9nZ2xlVGh1bWIsXG4gIFNDVG9vbERlc2NyaXB0aW9uLFxuICBTQ1Rvb2xJdGVtLFxuICBTQ1Rvb2xLaW5kQmFkZ2UsXG4gIFNDVG9vbE5hbWUsXG4gIFNDVG9vbFRleHQsXG4gIFNDVG9vbHNMaXN0LFxufSBmcm9tICcuL0FibUFjdGlvbnNTZWN0aW9uVjIuc3R5bGVzJ1xuXG50eXBlIEFibUFjdGlvbnNTZWN0aW9uVjJQcm9wcyA9IHtcbiAgdmFsdWVzOiBNb2RhbFZhbHVlc1xuICBoYW5kbGVTZXRBZ2VudFZhbHVlczogKHsga2V5LCB2YWx1ZSB9OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9KSA9PiB2b2lkXG59XG5cbmNvbnN0IE5PVElPTl9ET0NfVVJMID0gJ2h0dHBzOi8vZGV2ZWxvcGVycy5ub3Rpb24uY29tL2RvY3MvbWNwLXN1cHBvcnRlZC10b29scydcblxuY29uc3QgSElFUkFSQ0hJQ0FMX0FDVElPTlM6IEVudGl0eUFjdGlvbktleVtdID0gWydyZWFkJywgJ2VkaXQnLCAnZGVsZXRlJ11cblxuY29uc3QgYnVpbGRUb29sR3JvdXBNYXAgPSAoZ3JvdXBzOiBFbnRpdHlUb29sR3JvdXBbXSk6IFJlY29yZDxFbnRpdHlLZXksIFJlY29yZDxFbnRpdHlBY3Rpb25LZXksIEVudGl0eVRvb2xHcm91cD4+ID0+IHtcbiAgY29uc3QgbWFwID0ge30gYXMgUmVjb3JkPEVudGl0eUtleSwgUmVjb3JkPEVudGl0eUFjdGlvbktleSwgRW50aXR5VG9vbEdyb3VwPj5cbiAgRU5USVRZX09SREVSLmZvckVhY2goZW50aXR5ID0+IHtcbiAgICBtYXBbZW50aXR5XSA9IHt9IGFzIFJlY29yZDxFbnRpdHlBY3Rpb25LZXksIEVudGl0eVRvb2xHcm91cD5cbiAgfSlcbiAgZ3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgIG1hcFtncm91cC5lbnRpdHldW2dyb3VwLmFjdGlvbl0gPSBncm91cFxuICB9KVxuICByZXR1cm4gbWFwXG59XG5cbmNvbnN0IFRPT0xfR1JPVVBfTUFQID0gYnVpbGRUb29sR3JvdXBNYXAoQ09SX1RPT0xfR1JPVVBTKVxuXG50eXBlIFRydW5jYXRpb25Ub29sdGlwUHJvcHMgPSB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgLyoqIFJlY2FsY3VsYSBvdmVyZmxvdyBhbCBjYW1iaWFyIGxheW91dCAocC4gZWouIGV4cGFuZC9jb2xsYXBzZSBkZSBmaWxhcykuICovXG4gIGxheW91dEtleT86IHN0cmluZ1xuICBjaGlsZHJlbjogKHRleHRSZWY6IFJlZk9iamVjdDxIVE1MU3BhbkVsZW1lbnQ+KSA9PiBSZWFjdE5vZGVcbn1cblxuY29uc3QgVHJ1bmNhdGlvblRvb2x0aXAgPSAoeyB0aXRsZSwgbGF5b3V0S2V5ID0gJycsIGNoaWxkcmVuIH06IFRydW5jYXRpb25Ub29sdGlwUHJvcHMpID0+IHtcbiAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRleHRSZWYsIFt0aXRsZSwgbGF5b3V0S2V5XSlcbiAgcmV0dXJuIDxUb29sdGlwIHRpdGxlPXtzaG93VG9vbHRpcCA/IHRpdGxlIDogJyd9PntjaGlsZHJlbih0ZXh0UmVmKX08L1Rvb2x0aXA+XG59XG5cbmV4cG9ydCBjb25zdCBBYm1BY3Rpb25zU2VjdGlvblYyID0gKHsgdmFsdWVzLCBoYW5kbGVTZXRBZ2VudFZhbHVlcyB9OiBBYm1BY3Rpb25zU2VjdGlvblYyUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbignYWJtX2FnZW50X3NlY3Rpb24nKVxuXG4gIGNvbnN0IHNlbGVjdGVkVG9vbEdyb3VwcyA9IHZhbHVlcy5hY3Rpb25zPy5zZWxlY3RlZFRvb2xHcm91cHMgfHwgW11cbiAgY29uc3Qgc2VsZWN0ZWRDb25uZWN0b3JzID0gdmFsdWVzLmFjdGlvbnM/LnNlbGVjdGVkQ29ubmVjdG9ycyB8fCBbXVxuXG4gIGNvbnN0IHNlbGVjdGVkVG9vbEdyb3Vwc1NldCA9IHVzZU1lbW8oKCkgPT4gbmV3IFNldChzZWxlY3RlZFRvb2xHcm91cHMpLCBbc2VsZWN0ZWRUb29sR3JvdXBzXSlcbiAgY29uc3Qgc2VsZWN0ZWRDb25uZWN0b3JzU2V0ID0gdXNlTWVtbygoKSA9PiBuZXcgU2V0KHNlbGVjdGVkQ29ubmVjdG9ycyksIFtzZWxlY3RlZENvbm5lY3RvcnNdKVxuXG4gIGNvbnN0IFtjb3JCbG9ja0V4cGFuZGVkLCBzZXRDb3JCbG9ja0V4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXhwYW5kZWRBY3Rpb25zLCBzZXRFeHBhbmRlZEFjdGlvbnNdID0gdXNlU3RhdGU8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSlcbiAgY29uc3QgW2V4cGFuZGVkTm90aW9uQ2F0ZWdvcmllcywgc2V0RXhwYW5kZWROb3Rpb25DYXRlZ29yaWVzXSA9IHVzZVN0YXRlPFNldDxzdHJpbmc+PihuZXcgU2V0KCkpXG4gIC8qKiBFdml0YSByZWFicmlyIGVsIGJsb3F1ZSBzaSBlbCB1c3VhcmlvIGxvIGNlcnLDsyBjb24gbGEgbWlzbWEgY2FudGlkYWQgZGUgdG9vbCBncm91cHMgc2VsZWNjaW9uYWRvcy4gKi9cbiAgY29uc3QgcHJldkNvclRvb2xHcm91cENvdW50UmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpXG4gIC8qKiBQYXJhIGRpc3Rpbmd1aXIgY2llcnJlIG1hbnVhbCBkZWwgYmxvcXVlIChkZXN0aWxkYXIgQ09SKSBkZWwgbW9udGFqZSBpbmljaWFsIGNvbGFwc2Fkby4gKi9cbiAgY29uc3QgcHJldkNvckJsb2NrRXhwYW5kZWRSZWYgPSB1c2VSZWY8Ym9vbGVhbiB8IG51bGw+KG51bGwpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBuID0gc2VsZWN0ZWRUb29sR3JvdXBzLmxlbmd0aFxuICAgIGNvbnN0IHByZXYgPSBwcmV2Q29yVG9vbEdyb3VwQ291bnRSZWYuY3VycmVudFxuICAgIHByZXZDb3JUb29sR3JvdXBDb3VudFJlZi5jdXJyZW50ID0gblxuXG4gICAgaWYgKG4gPT09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAocHJldiA9PT0gbnVsbCAmJiBuID4gMCkge1xuICAgICAgc2V0Q29yQmxvY2tFeHBhbmRlZCh0cnVlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChwcmV2ID09PSAwICYmIG4gPiAwKSB7XG4gICAgICBzZXRDb3JCbG9ja0V4cGFuZGVkKHRydWUpXG4gICAgfVxuICB9LCBbc2VsZWN0ZWRUb29sR3JvdXBzLmxlbmd0aF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB3YXNFeHBhbmRlZCA9IHByZXZDb3JCbG9ja0V4cGFuZGVkUmVmLmN1cnJlbnQgPT09IHRydWVcblxuICAgIGlmICghY29yQmxvY2tFeHBhbmRlZCkge1xuICAgICAgc2V0RXhwYW5kZWRBY3Rpb25zKG5ldyBTZXQoKSlcbiAgICAgIGlmICh3YXNFeHBhbmRlZCAmJiBzZWxlY3RlZFRvb2xHcm91cHMubGVuZ3RoID4gMCkge1xuICAgICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcyh7XG4gICAgICAgICAga2V5OiAnYWN0aW9ucycsXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHNlbGVjdGVkVG9vbEdyb3VwczogW10sXG4gICAgICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcmV2Q29yQmxvY2tFeHBhbmRlZFJlZi5jdXJyZW50ID0gY29yQmxvY2tFeHBhbmRlZFxuICB9LCBbY29yQmxvY2tFeHBhbmRlZCwgaGFuZGxlU2V0QWdlbnRWYWx1ZXMsIHNlbGVjdGVkQ29ubmVjdG9ycywgc2VsZWN0ZWRUb29sR3JvdXBzLmxlbmd0aF0pXG5cbiAgY29uc3QgaXNBY3Rpb25BY3RpdmUgPSB1c2VDYWxsYmFjayhcbiAgICAoZW50aXR5OiBFbnRpdHlLZXksIGFjdGlvbjogRW50aXR5QWN0aW9uS2V5KSA9PiB7XG4gICAgICBjb25zdCBncm91cCA9IFRPT0xfR1JPVVBfTUFQW2VudGl0eV0/LlthY3Rpb25dXG4gICAgICByZXR1cm4gISFncm91cCAmJiBzZWxlY3RlZFRvb2xHcm91cHNTZXQuaGFzKGdyb3VwLnNsdWcpXG4gICAgfSxcbiAgICBbc2VsZWN0ZWRUb29sR3JvdXBzU2V0XVxuICApXG5cbiAgY29uc3QgdG9nZ2xlRW50aXR5QWN0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGVudGl0eTogRW50aXR5S2V5LCBhY3Rpb246IEVudGl0eUFjdGlvbktleSkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0R3JvdXAgPSBUT09MX0dST1VQX01BUFtlbnRpdHldPy5bYWN0aW9uXVxuICAgICAgaWYgKCF0YXJnZXRHcm91cCB8fCAhdGFyZ2V0R3JvdXAuYXZhaWxhYmxlKSByZXR1cm5cblxuICAgICAgY29uc3QgbmV4dCA9IG5ldyBTZXQoc2VsZWN0ZWRUb29sR3JvdXBzKVxuICAgICAgY29uc3QgZW50aXR5SW5kZXggPSBFTlRJVFlfT1JERVIuaW5kZXhPZihlbnRpdHkpXG4gICAgICBjb25zdCBwcmV2aW91c0VudGl0aWVzID0gRU5USVRZX09SREVSLnNsaWNlKDAsIGVudGl0eUluZGV4ICsgMSlcbiAgICAgIGNvbnN0IG5leHRFbnRpdGllcyA9IEVOVElUWV9PUkRFUi5zbGljZShlbnRpdHlJbmRleClcbiAgICAgIGNvbnN0IGFjdGlvbkluZGV4ID0gSElFUkFSQ0hJQ0FMX0FDVElPTlMuaW5kZXhPZihhY3Rpb24pXG4gICAgICBjb25zdCBpc0N1cnJlbnRseUFjdGl2ZSA9IG5leHQuaGFzKHRhcmdldEdyb3VwLnNsdWcpXG5cbiAgICAgIGlmIChpc0N1cnJlbnRseUFjdGl2ZSkge1xuICAgICAgICBuZXh0RW50aXRpZXMuZm9yRWFjaChjdXJyZW50RW50aXR5ID0+IHtcbiAgICAgICAgICBISUVSQVJDSElDQUxfQUNUSU9OUy5zbGljZShhY3Rpb25JbmRleCkuZm9yRWFjaChjdXJyZW50QWN0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gVE9PTF9HUk9VUF9NQVBbY3VycmVudEVudGl0eV0/LltjdXJyZW50QWN0aW9uXVxuICAgICAgICAgICAgaWYgKGdyb3VwPy5hdmFpbGFibGUpIG5leHQuZGVsZXRlKGdyb3VwLnNsdWcpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByZXZpb3VzRW50aXRpZXMuZm9yRWFjaChjdXJyZW50RW50aXR5ID0+IHtcbiAgICAgICAgICBISUVSQVJDSElDQUxfQUNUSU9OUy5zbGljZSgwLCBhY3Rpb25JbmRleCArIDEpLmZvckVhY2goY3VycmVudEFjdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IFRPT0xfR1JPVVBfTUFQW2N1cnJlbnRFbnRpdHldPy5bY3VycmVudEFjdGlvbl1cbiAgICAgICAgICAgIGlmIChncm91cD8uYXZhaWxhYmxlKSBuZXh0LmFkZChncm91cC5zbHVnKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzKHtcbiAgICAgICAga2V5OiAnYWN0aW9ucycsXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgc2VsZWN0ZWRUb29sR3JvdXBzOiBBcnJheS5mcm9tKG5leHQpLFxuICAgICAgICAgIHNlbGVjdGVkQ29ubmVjdG9ycyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbaGFuZGxlU2V0QWdlbnRWYWx1ZXMsIHNlbGVjdGVkQ29ubmVjdG9ycywgc2VsZWN0ZWRUb29sR3JvdXBzXVxuICApXG5cbiAgY29uc3QgdG9nZ2xlQ29ubmVjdG9yID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbm5lY3RvclNsdWc6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IG5ldyBTZXQoc2VsZWN0ZWRDb25uZWN0b3JzKVxuICAgICAgaWYgKG5leHQuaGFzKGNvbm5lY3RvclNsdWcpKSB7XG4gICAgICAgIG5leHQuZGVsZXRlKGNvbm5lY3RvclNsdWcpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0LmFkZChjb25uZWN0b3JTbHVnKVxuICAgICAgfVxuICAgICAgaGFuZGxlU2V0QWdlbnRWYWx1ZXMoe1xuICAgICAgICBrZXk6ICdhY3Rpb25zJyxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBzZWxlY3RlZFRvb2xHcm91cHMsXG4gICAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBBcnJheS5mcm9tKG5leHQpLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtoYW5kbGVTZXRBZ2VudFZhbHVlcywgc2VsZWN0ZWRDb25uZWN0b3JzLCBzZWxlY3RlZFRvb2xHcm91cHNdXG4gIClcblxuICBjb25zdCB0b2dnbGVBY3Rpb25FeHBhbmRlZCA9IHVzZUNhbGxiYWNrKChzbHVnOiBzdHJpbmcpID0+IHtcbiAgICBzZXRFeHBhbmRlZEFjdGlvbnMocHJldiA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gbmV3IFNldChwcmV2KVxuICAgICAgaWYgKG5leHQuaGFzKHNsdWcpKSBuZXh0LmRlbGV0ZShzbHVnKVxuICAgICAgZWxzZSBuZXh0LmFkZChzbHVnKVxuICAgICAgcmV0dXJuIG5leHRcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCB0b2dnbGVOb3Rpb25DYXRlZ29yeSA9IHVzZUNhbGxiYWNrKChjYXRlZ29yeUtleTogc3RyaW5nKSA9PiB7XG4gICAgc2V0RXhwYW5kZWROb3Rpb25DYXRlZ29yaWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IG5ldyBTZXQocHJldilcbiAgICAgIGlmIChuZXh0LmhhcyhjYXRlZ29yeUtleSkpIG5leHQuZGVsZXRlKGNhdGVnb3J5S2V5KVxuICAgICAgZWxzZSBuZXh0LmFkZChjYXRlZ29yeUtleSlcbiAgICAgIHJldHVybiBuZXh0XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgaXNOb3Rpb25FbmFibGVkID0gc2VsZWN0ZWRDb25uZWN0b3JzU2V0LmhhcyhOT1RJT05fQ09OTkVDVE9SX1NMVUcpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTm90aW9uRW5hYmxlZCkge1xuICAgICAgc2V0RXhwYW5kZWROb3Rpb25DYXRlZ29yaWVzKG5ldyBTZXQoKSlcbiAgICB9XG4gIH0sIFtpc05vdGlvbkVuYWJsZWRdKVxuXG4gIGNvbnN0IGNvckFjdGl2ZVRvb2xzQ291bnQgPSB1c2VNZW1vKFxuICAgICgpID0+IENPUl9UT09MX0dST1VQUy5yZWR1Y2UoKGFjYywgZykgPT4gYWNjICsgKHNlbGVjdGVkVG9vbEdyb3Vwc1NldC5oYXMoZy5zbHVnKSA/IGcudG9vbHMubGVuZ3RoIDogMCksIDApLFxuICAgIFtzZWxlY3RlZFRvb2xHcm91cHNTZXRdXG4gIClcblxuICBjb25zdCB0cnVuY2F0aW9uTWVhc3VyZUtleSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGAke2NvckJsb2NrRXhwYW5kZWQgPyAnMScgOiAnMCd9IyR7Wy4uLmV4cGFuZGVkQWN0aW9uc10uc29ydCgpLmpvaW4oJ3wnKX0jJHtbLi4uZXhwYW5kZWROb3Rpb25DYXRlZ29yaWVzXS5zb3J0KCkuam9pbignfCcpfWAsXG4gICAgW2NvckJsb2NrRXhwYW5kZWQsIGV4cGFuZGVkQWN0aW9ucywgZXhwYW5kZWROb3Rpb25DYXRlZ29yaWVzXVxuICApXG5cbiAgY29uc3QgcmVuZGVyVG9vbEl0ZW0gPSAodG9vbDogVG9vbERlc2NyaXB0b3IpID0+IChcbiAgICA8U0NUb29sSXRlbSBrZXk9e3Rvb2wuc2x1Z30+XG4gICAgICA8U0NUb29sS2luZEJhZGdlIGtpbmQ9e3Rvb2wuYWNjZXNzS2luZH0+e3QoYGFjdGlvbnNTZWN0aW9uLnYyLmFjY2Vzc0tpbmQuJHt0b29sLmFjY2Vzc0tpbmR9YCl9PC9TQ1Rvb2xLaW5kQmFkZ2U+XG4gICAgICA8U0NUb29sVGV4dD5cbiAgICAgICAgPFNDVG9vbE5hbWU+e3Rvb2wubmFtZX08L1NDVG9vbE5hbWU+XG4gICAgICAgIDxUcnVuY2F0aW9uVG9vbHRpcCB0aXRsZT17dG9vbC5kZXNjcmlwdGlvbn0gbGF5b3V0S2V5PXt0cnVuY2F0aW9uTWVhc3VyZUtleX0+XG4gICAgICAgICAge3RleHRSZWYgPT4gPFNDVG9vbERlc2NyaXB0aW9uIHJlZj17dGV4dFJlZn0+e3Rvb2wuZGVzY3JpcHRpb259PC9TQ1Rvb2xEZXNjcmlwdGlvbj59XG4gICAgICAgIDwvVHJ1bmNhdGlvblRvb2x0aXA+XG4gICAgICA8L1NDVG9vbFRleHQ+XG4gICAgPC9TQ1Rvb2xJdGVtPlxuICApXG5cbiAgY29uc3QgcmVuZGVyQWN0aW9uUm93ID0gKGVudGl0eTogRW50aXR5S2V5LCBhY3Rpb246IEVudGl0eUFjdGlvbktleSkgPT4ge1xuICAgIGNvbnN0IGdyb3VwID0gVE9PTF9HUk9VUF9NQVBbZW50aXR5XT8uW2FjdGlvbl1cbiAgICBpZiAoIWdyb3VwKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGlzQXZhaWxhYmxlID0gZ3JvdXAuYXZhaWxhYmxlXG4gICAgY29uc3QgYWN0aXZlID0gaXNBY3Rpb25BY3RpdmUoZW50aXR5LCBhY3Rpb24pXG4gICAgY29uc3QgZXhwYW5kZWQgPSBleHBhbmRlZEFjdGlvbnMuaGFzKGdyb3VwLnNsdWcpXG4gICAgY29uc3QgdG9vbHNDb3VudCA9IGdyb3VwLnRvb2xzLmxlbmd0aFxuICAgIGNvbnN0IGNhbkV4cGFuZCA9IGlzQXZhaWxhYmxlICYmIHRvb2xzQ291bnQgPiAwXG4gICAgY29uc3QgaXNEZWxldGUgPSBhY3Rpb24gPT09ICdkZWxldGUnICYmIGFjdGl2ZVxuXG4gICAgY29uc3Qgb25IZWFkZXJDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChjYW5FeHBhbmQpIHRvZ2dsZUFjdGlvbkV4cGFuZGVkKGdyb3VwLnNsdWcpXG4gICAgfVxuXG4gICAgY29uc3Qgb25Ub2dnbGVDbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBpZiAoaXNBdmFpbGFibGUpIHRvZ2dsZUVudGl0eUFjdGlvbihlbnRpdHksIGFjdGlvbilcbiAgICB9XG5cbiAgICBjb25zdCBoZWFkZXJDb250ZW50ID0gKFxuICAgICAgPFNDQWN0aW9uSGVhZGVyIGNsaWNrYWJsZT17Y2FuRXhwYW5kfSBvbkNsaWNrPXtvbkhlYWRlckNsaWNrfT5cbiAgICAgICAgPFNDQ2hldnJvbkJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9wZW49e2V4cGFuZGVkfVxuICAgICAgICAgIGRpc2FibGVkPXshY2FuRXhwYW5kfVxuICAgICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgaWYgKGNhbkV4cGFuZCkgdG9nZ2xlQWN0aW9uRXhwYW5kZWQoZ3JvdXAuc2x1ZylcbiAgICAgICAgICB9fVxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2V4cGFuZGVkID8gdCgnYWN0aW9uc1NlY3Rpb24udjIuaGlkZVRvb2xzJykgOiB0KCdhY3Rpb25zU2VjdGlvbi52Mi52aWV3VG9vbHMnKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjEycHhcIiBoZWlnaHQ9XCIxMnB4XCIgY29sb3I9XCJjdXJyZW50Q29sb3JcIiAvPlxuICAgICAgICA8L1NDQ2hldnJvbkJ1dHRvbj5cblxuICAgICAgICA8U0NBY3Rpb25MYWJlbEdyb3VwPlxuICAgICAgICAgIDxTQ0FjdGlvbkxhYmVsPnt0KEFDVElPTl9MQUJFTF9LRVlTW2FjdGlvbl0pfTwvU0NBY3Rpb25MYWJlbD5cbiAgICAgICAgICB7IWlzQXZhaWxhYmxlICYmIDxTQ0NvbWluZ1Nvb25CYWRnZT57dCgnYWN0aW9uc1NlY3Rpb24udjIuY29taW5nU29vbicpfTwvU0NDb21pbmdTb29uQmFkZ2U+fVxuICAgICAgICAgIHtpc0F2YWlsYWJsZSAmJiAoXG4gICAgICAgICAgICA8U0NDb3VudGVyIGFjdGl2ZT17YWN0aXZlfT57dCgnYWN0aW9uc1NlY3Rpb24udjIudG9vbHNDb3VudCcsIHsgY291bnQ6IHRvb2xzQ291bnQgfSl9PC9TQ0NvdW50ZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7aXNEZWxldGUgJiYgPFNDRGVsZXRlQmFkZ2U+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLmRlbGV0ZVdhcm5pbmdJbmxpbmUnKX08L1NDRGVsZXRlQmFkZ2U+fVxuICAgICAgICA8L1NDQWN0aW9uTGFiZWxHcm91cD5cblxuICAgICAgICA8U0NUb2dnbGVcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBpc0FjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgIGRpc2FibGVkPXshaXNBdmFpbGFibGV9XG4gICAgICAgICAgb25DbGljaz17b25Ub2dnbGVDbGlja31cbiAgICAgICAgICBhcmlhLXByZXNzZWQ9e2FjdGl2ZX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXtgJHt0KGBhY3Rpb25zU2VjdGlvbi5lbnRpdGllcy4ke2VudGl0eX1gKX0gwrcgJHt0KEFDVElPTl9MQUJFTF9LRVlTW2FjdGlvbl0pfWB9XG4gICAgICAgID5cbiAgICAgICAgICA8U0NUb2dnbGVUaHVtYiAvPlxuICAgICAgICA8L1NDVG9nZ2xlPlxuICAgICAgPC9TQ0FjdGlvbkhlYWRlcj5cbiAgICApXG5cbiAgICBjb25zdCByb3cgPSAoXG4gICAgICA8U0NBY3Rpb25Sb3cga2V5PXtgJHtlbnRpdHl9LSR7YWN0aW9ufWB9IGRpc2FibGVkPXshaXNBdmFpbGFibGV9PlxuICAgICAgICB7aGVhZGVyQ29udGVudH1cbiAgICAgICAge2V4cGFuZGVkICYmIGNhbkV4cGFuZCAmJiA8U0NUb29sc0xpc3Q+e2dyb3VwLnRvb2xzLm1hcCh0b29sID0+IHJlbmRlclRvb2xJdGVtKHRvb2wpKX08L1NDVG9vbHNMaXN0Pn1cbiAgICAgIDwvU0NBY3Rpb25Sb3c+XG4gICAgKVxuXG4gICAgaWYgKCFpc0F2YWlsYWJsZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2x0aXAga2V5PXtgJHtlbnRpdHl9LSR7YWN0aW9ufWB9IHRpdGxlPXt0KCdhY3Rpb25zU2VjdGlvbi52Mi5jb21pbmdTb29uSGludCcpfT5cbiAgICAgICAgICA8ZGl2Pntyb3d9PC9kaXY+XG4gICAgICAgIDwvVG9vbHRpcD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gcm93XG4gIH1cblxuICBjb25zdCByZW5kZXJFbnRpdHlDYXJkID0gKGVudGl0eTogRW50aXR5S2V5KSA9PiB7XG4gICAgY29uc3QgZ3JvdXBzRm9yRW50aXR5ID0gRU5USVRZX0FDVElPTl9PUkRFUi5tYXAoYWN0aW9uID0+IFRPT0xfR1JPVVBfTUFQW2VudGl0eV0/LlthY3Rpb25dKS5maWx0ZXIoXG4gICAgICAoZ3JvdXApOiBncm91cCBpcyBFbnRpdHlUb29sR3JvdXAgPT4gQm9vbGVhbihncm91cClcbiAgICApXG4gICAgY29uc3QgZW5hYmxlZFRvb2xzID0gZ3JvdXBzRm9yRW50aXR5LnJlZHVjZShcbiAgICAgIChhY2MsIGdyb3VwKSA9PiBhY2MgKyAoc2VsZWN0ZWRUb29sR3JvdXBzU2V0Lmhhcyhncm91cC5zbHVnKSA/IGdyb3VwLnRvb2xzLmxlbmd0aCA6IDApLFxuICAgICAgMFxuICAgIClcbiAgICBjb25zdCBjb3VudGVyQWN0aXZlID0gZW5hYmxlZFRvb2xzID4gMFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0VudGl0eUNhcmQga2V5PXtlbnRpdHl9PlxuICAgICAgICA8U0NFbnRpdHlIZWFkZXI+XG4gICAgICAgICAgPFNDRW50aXR5VGl0bGU+e3QoYGFjdGlvbnNTZWN0aW9uLmVudGl0aWVzLiR7ZW50aXR5fWApfTwvU0NFbnRpdHlUaXRsZT5cbiAgICAgICAgICA8U0NDb3VudGVyIGFjdGl2ZT17Y291bnRlckFjdGl2ZX0+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLnRvb2xzQ291bnQnLCB7IGNvdW50OiBlbmFibGVkVG9vbHMgfSl9PC9TQ0NvdW50ZXI+XG4gICAgICAgIDwvU0NFbnRpdHlIZWFkZXI+XG4gICAgICAgIHtFTlRJVFlfQUNUSU9OX09SREVSLm1hcChhY3Rpb24gPT4gcmVuZGVyQWN0aW9uUm93KGVudGl0eSwgYWN0aW9uKSl9XG4gICAgICA8L1NDRW50aXR5Q2FyZD5cbiAgICApXG4gIH1cblxuICBjb25zdCByZW5kZXJOb3Rpb25DYXRlZ29yeSA9IChjYXRlZ29yeTogQ29ubmVjdG9yVG9vbENhdGVnb3J5KSA9PiB7XG4gICAgY29uc3QgaXNPcGVuID0gZXhwYW5kZWROb3Rpb25DYXRlZ29yaWVzLmhhcyhjYXRlZ29yeS5rZXkpXG4gICAgY29uc3QgdG9vbHNDb3VudCA9IGNhdGVnb3J5LnRvb2xzLmxlbmd0aFxuICAgIHJldHVybiAoXG4gICAgICA8U0NDYXRlZ29yeUFjY29yZGlvbiBrZXk9e2NhdGVnb3J5LmtleX0+XG4gICAgICAgIDxTQ0NhdGVnb3J5SGVhZGVyIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiB0b2dnbGVOb3Rpb25DYXRlZ29yeShjYXRlZ29yeS5rZXkpfSBhcmlhLWV4cGFuZGVkPXtpc09wZW59PlxuICAgICAgICAgIDxTQ0NoZXZyb25CdXR0b24gYXM9XCJzcGFuXCIgb3Blbj17aXNPcGVufT5cbiAgICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjEycHhcIiBoZWlnaHQ9XCIxMnB4XCIgY29sb3I9XCJjdXJyZW50Q29sb3JcIiAvPlxuICAgICAgICAgIDwvU0NDaGV2cm9uQnV0dG9uPlxuICAgICAgICAgIDxTQ0NhdGVnb3J5VGV4dEdyb3VwPlxuICAgICAgICAgICAgPFNDQ2F0ZWdvcnlUaXRsZT57Y2F0ZWdvcnkubGFiZWx9PC9TQ0NhdGVnb3J5VGl0bGU+XG4gICAgICAgICAgICA8VHJ1bmNhdGlvblRvb2x0aXAgdGl0bGU9e2NhdGVnb3J5LmRlc2NyaXB0aW9ufSBsYXlvdXRLZXk9e3RydW5jYXRpb25NZWFzdXJlS2V5fT5cbiAgICAgICAgICAgICAge3RleHRSZWYgPT4gPFNDQ2F0ZWdvcnlEZXNjcmlwdGlvbiByZWY9e3RleHRSZWZ9PntjYXRlZ29yeS5kZXNjcmlwdGlvbn08L1NDQ2F0ZWdvcnlEZXNjcmlwdGlvbj59XG4gICAgICAgICAgICA8L1RydW5jYXRpb25Ub29sdGlwPlxuICAgICAgICAgIDwvU0NDYXRlZ29yeVRleHRHcm91cD5cbiAgICAgICAgICA8U0NDb3VudGVyIGFjdGl2ZT17ZmFsc2V9PlxuICAgICAgICAgICAge3QoJ2FjdGlvbnNTZWN0aW9uLnYyLm5vdGlvbi5jYXRlZ29yeVRvb2xzQ291bnQnLCB7IGNvdW50OiB0b29sc0NvdW50IH0pfVxuICAgICAgICAgIDwvU0NDb3VudGVyPlxuICAgICAgICA8L1NDQ2F0ZWdvcnlIZWFkZXI+XG4gICAgICAgIHtpc09wZW4gJiZcbiAgICAgICAgICAodG9vbHNDb3VudCA+IDAgPyAoXG4gICAgICAgICAgICA8U0NUb29sc0xpc3Q+e2NhdGVnb3J5LnRvb2xzLm1hcCh0b29sID0+IHJlbmRlclRvb2xJdGVtKHRvb2wpKX08L1NDVG9vbHNMaXN0PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8U0NFbXB0eVRvb2xzPnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5lbXB0eVRvb2xzJyl9PC9TQ0VtcHR5VG9vbHM+XG4gICAgICAgICAgKSl9XG4gICAgICA8L1NDQ2F0ZWdvcnlBY2NvcmRpb24+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NSb290PlxuICAgICAgPFNDSGVhZGVyPlxuICAgICAgICA8U0NUaXRsZT57dCgnYWN0aW9uc1NlY3Rpb24udjIuc2VjdGlvblRpdGxlJyl9PC9TQ1RpdGxlPlxuICAgICAgICA8U0NTdWJ0aXRsZT57dCgnYWN0aW9uc1NlY3Rpb24udjIuc2VjdGlvblN1YnRpdGxlJyl9PC9TQ1N1YnRpdGxlPlxuICAgICAgPC9TQ0hlYWRlcj5cblxuICAgICAgPFNDU2VjdGlvbkxhYmVsPnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5pbnRlcm5hbEJsb2NrVGl0bGUnKX08L1NDU2VjdGlvbkxhYmVsPlxuXG4gICAgICA8U0NDb25uZWN0b3JDYXJkPlxuICAgICAgICA8U0NDb25uZWN0b3JIZWFkZXI+XG4gICAgICAgICAgPFNDQ29ubmVjdG9ySWRlbnRpdHk+XG4gICAgICAgICAgICA8U0NDb25uZWN0b3JJY29uIGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgICA8Q2F0ZWdvcnkgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgPC9TQ0Nvbm5lY3Rvckljb24+XG4gICAgICAgICAgICA8U0NDb25uZWN0b3JUZXh0R3JvdXA+XG4gICAgICAgICAgICAgIDxUcnVuY2F0aW9uVG9vbHRpcCB0aXRsZT17dCgnYWN0aW9uc1NlY3Rpb24udjIuaW50ZXJuYWxCbG9ja1RpdGxlJyl9IGxheW91dEtleT17dHJ1bmNhdGlvbk1lYXN1cmVLZXl9PlxuICAgICAgICAgICAgICAgIHt0ZXh0UmVmID0+IChcbiAgICAgICAgICAgICAgICAgIDxTQ0Nvbm5lY3RvclRpdGxlIHJlZj17dGV4dFJlZn0+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLmludGVybmFsQmxvY2tUaXRsZScpfTwvU0NDb25uZWN0b3JUaXRsZT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1RydW5jYXRpb25Ub29sdGlwPlxuICAgICAgICAgICAgICA8VHJ1bmNhdGlvblRvb2x0aXAgdGl0bGU9e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLmludGVybmFsQmxvY2tTdWJ0aXRsZScpfSBsYXlvdXRLZXk9e3RydW5jYXRpb25NZWFzdXJlS2V5fT5cbiAgICAgICAgICAgICAgICB7dGV4dFJlZiA9PiAoXG4gICAgICAgICAgICAgICAgICA8U0NDb25uZWN0b3JUYWdsaW5lIHJlZj17dGV4dFJlZn0+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLmludGVybmFsQmxvY2tTdWJ0aXRsZScpfTwvU0NDb25uZWN0b3JUYWdsaW5lPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvVHJ1bmNhdGlvblRvb2x0aXA+XG4gICAgICAgICAgICA8L1NDQ29ubmVjdG9yVGV4dEdyb3VwPlxuICAgICAgICAgIDwvU0NDb25uZWN0b3JJZGVudGl0eT5cbiAgICAgICAgICA8U0NDb25uZWN0b3JSaWdodEdyb3VwPlxuICAgICAgICAgICAgPFNDQ291bnRlciBhY3RpdmU9e2NvckFjdGl2ZVRvb2xzQ291bnQgPiAwfT5cbiAgICAgICAgICAgICAge3QoJ2FjdGlvbnNTZWN0aW9uLnYyLnRvb2xzQ291bnQnLCB7IGNvdW50OiBjb3JBY3RpdmVUb29sc0NvdW50IH0pfVxuICAgICAgICAgICAgPC9TQ0NvdW50ZXI+XG4gICAgICAgICAgICA8U0NUb2dnbGVcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGlzQWN0aXZlPXtjb3JCbG9ja0V4cGFuZGVkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRDb3JCbG9ja0V4cGFuZGVkKHYgPT4gIXYpfVxuICAgICAgICAgICAgICBhcmlhLXByZXNzZWQ9e2NvckJsb2NrRXhwYW5kZWR9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e1xuICAgICAgICAgICAgICAgIGNvckJsb2NrRXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgID8gdCgnYWN0aW9uc1NlY3Rpb24udjIuZXhwYW5kQ29yRGV0YWlsc0FyaWFPZmYnKVxuICAgICAgICAgICAgICAgICAgOiB0KCdhY3Rpb25zU2VjdGlvbi52Mi5leHBhbmRDb3JEZXRhaWxzQXJpYU9uJylcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U0NUb2dnbGVUaHVtYiAvPlxuICAgICAgICAgICAgPC9TQ1RvZ2dsZT5cbiAgICAgICAgICA8L1NDQ29ubmVjdG9yUmlnaHRHcm91cD5cbiAgICAgICAgPC9TQ0Nvbm5lY3RvckhlYWRlcj5cbiAgICAgICAgeyFjb3JCbG9ja0V4cGFuZGVkICYmIDxTQ0Nvbm5lY3RvckhpbnQ+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLmNvckNvbGxhcHNlZEhpbnQnKX08L1NDQ29ubmVjdG9ySGludD59XG4gICAgICAgIHtjb3JCbG9ja0V4cGFuZGVkICYmIChcbiAgICAgICAgICA8U0NFeHBhbmRhYmxlQmxvY2tCb2R5PlxuICAgICAgICAgICAgPFNDRW50aXR5TGlzdD57RU5USVRZX09SREVSLm1hcChlbnRpdHkgPT4gcmVuZGVyRW50aXR5Q2FyZChlbnRpdHkpKX08L1NDRW50aXR5TGlzdD5cbiAgICAgICAgICA8L1NDRXhwYW5kYWJsZUJsb2NrQm9keT5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NDb25uZWN0b3JDYXJkPlxuXG4gICAgICA8U0NTZWN0aW9uTGFiZWw+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLmV4dGVybmFsQmxvY2tUaXRsZScpfTwvU0NTZWN0aW9uTGFiZWw+XG5cbiAgICAgIDxTQ0Nvbm5lY3RvckNhcmQ+XG4gICAgICAgIDxTQ0Nvbm5lY3RvckhlYWRlcj5cbiAgICAgICAgICA8U0NDb25uZWN0b3JJZGVudGl0eT5cbiAgICAgICAgICAgIDxTQ0Nvbm5lY3Rvckljb24gYXJpYS1oaWRkZW4+XG4gICAgICAgICAgICAgIDxOb3Rpb25JY29uIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgIDwvU0NDb25uZWN0b3JJY29uPlxuICAgICAgICAgICAgPFNDQ29ubmVjdG9yVGV4dEdyb3VwPlxuICAgICAgICAgICAgICA8VHJ1bmNhdGlvblRvb2x0aXAgdGl0bGU9e05PVElPTl9DT05ORUNUT1JfQ0FUQUxPRy5uYW1lfSBsYXlvdXRLZXk9e3RydW5jYXRpb25NZWFzdXJlS2V5fT5cbiAgICAgICAgICAgICAgICB7dGV4dFJlZiA9PiA8U0NDb25uZWN0b3JUaXRsZSByZWY9e3RleHRSZWZ9PntOT1RJT05fQ09OTkVDVE9SX0NBVEFMT0cubmFtZX08L1NDQ29ubmVjdG9yVGl0bGU+fVxuICAgICAgICAgICAgICA8L1RydW5jYXRpb25Ub29sdGlwPlxuICAgICAgICAgICAgICA8VHJ1bmNhdGlvblRvb2x0aXAgdGl0bGU9e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLm5vdGlvbi50YWdsaW5lJyl9IGxheW91dEtleT17dHJ1bmNhdGlvbk1lYXN1cmVLZXl9PlxuICAgICAgICAgICAgICAgIHt0ZXh0UmVmID0+IChcbiAgICAgICAgICAgICAgICAgIDxTQ0Nvbm5lY3RvclRhZ2xpbmUgcmVmPXt0ZXh0UmVmfT57dCgnYWN0aW9uc1NlY3Rpb24udjIubm90aW9uLnRhZ2xpbmUnKX08L1NDQ29ubmVjdG9yVGFnbGluZT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1RydW5jYXRpb25Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ0Nvbm5lY3RvclRleHRHcm91cD5cbiAgICAgICAgICA8L1NDQ29ubmVjdG9ySWRlbnRpdHk+XG4gICAgICAgICAgPFNDQ29ubmVjdG9yUmlnaHRHcm91cD5cbiAgICAgICAgICAgIDxTQ1N0YXR1c1BpbGwgdG9uZT17aXNOb3Rpb25FbmFibGVkID8gJ3BlbmRpbmcnIDogJ25ldXRyYWwnfT5cbiAgICAgICAgICAgICAge2lzTm90aW9uRW5hYmxlZFxuICAgICAgICAgICAgICAgID8gdCgnYWN0aW9uc1NlY3Rpb24udjIuY29ubmVjdG9yU3RhdHVzLmVuYWJsZWRQZW5kaW5nQXV0aCcpXG4gICAgICAgICAgICAgICAgOiB0KCdhY3Rpb25zU2VjdGlvbi52Mi5jb25uZWN0b3JTdGF0dXMuaW5hY3RpdmUnKX1cbiAgICAgICAgICAgIDwvU0NTdGF0dXNQaWxsPlxuICAgICAgICAgICAgPFNDVG9nZ2xlXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBpc0FjdGl2ZT17aXNOb3Rpb25FbmFibGVkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0b2dnbGVDb25uZWN0b3IoTk9USU9OX0NPTk5FQ1RPUl9TTFVHKX1cbiAgICAgICAgICAgICAgYXJpYS1wcmVzc2VkPXtpc05vdGlvbkVuYWJsZWR9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e05PVElPTl9DT05ORUNUT1JfQ0FUQUxPRy5uYW1lfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U0NUb2dnbGVUaHVtYiAvPlxuICAgICAgICAgICAgPC9TQ1RvZ2dsZT5cbiAgICAgICAgICA8L1NDQ29ubmVjdG9yUmlnaHRHcm91cD5cbiAgICAgICAgPC9TQ0Nvbm5lY3RvckhlYWRlcj5cblxuICAgICAgICB7IWlzTm90aW9uRW5hYmxlZCAmJiA8U0NDb25uZWN0b3JIaW50Pnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5ub3Rpb24uZGlzYWJsZWRIaW50Jyl9PC9TQ0Nvbm5lY3RvckhpbnQ+fVxuXG4gICAgICAgIHtpc05vdGlvbkVuYWJsZWQgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8U0NDb25uZWN0b3JIaW50Pnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5ub3Rpb24uZW5hYmxlZEhpbnQnKX08L1NDQ29ubmVjdG9ySGludD5cbiAgICAgICAgICAgIHtOT1RJT05fQ09OTkVDVE9SX0NBVEFMT0cuY2F0ZWdvcmllcy5tYXAoY2F0ZWdvcnkgPT4gcmVuZGVyTm90aW9uQ2F0ZWdvcnkoY2F0ZWdvcnkpKX1cbiAgICAgICAgICAgIDxTQ0RvY0xpbmsgaHJlZj17Tk9USU9OX0RPQ19VUkx9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXJcIj5cbiAgICAgICAgICAgICAge3QoJ2FjdGlvbnNTZWN0aW9uLnYyLm5vdGlvbi5kb2NMaW5rJyl9XG4gICAgICAgICAgICA8L1NDRG9jTGluaz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NDb25uZWN0b3JDYXJkPlxuICAgIDwvU0NSb290PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBT0EsS0FBSyxJQUNWQyxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLFFBQVEsUUFJSCxPQUFPO0FBQ2QsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFFOUMsU0FBU0MsUUFBUSxRQUFRLDJDQUEyQztBQUNwRSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFFdEUsU0FBU0MsVUFBVSxRQUFRLGlDQUFpQztBQUU1RCxTQUFTQyxpQkFBaUIsUUFBUSw2QkFBNkI7QUFFL0QsU0FDRUMsaUJBQWlCLEVBRWpCQyxlQUFlLEVBQ2ZDLG1CQUFtQixFQUNuQkMsWUFBWSxFQUlaQyx3QkFBd0IsRUFDeEJDLHFCQUFxQixRQUVoQixXQUFXO0FBQ2xCLFNBQ0VDLGNBQWMsRUFDZEMsYUFBYSxFQUNiQyxrQkFBa0IsRUFDbEJDLFdBQVcsRUFDWEMsbUJBQW1CLEVBQ25CQyxxQkFBcUIsRUFDckJDLGdCQUFnQixFQUNoQkMsbUJBQW1CLEVBQ25CQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNqQkMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLG1CQUFtQixFQUNuQkMscUJBQXFCLEVBQ3JCQyxrQkFBa0IsRUFDbEJDLG9CQUFvQixFQUNwQkMsZ0JBQWdCLEVBQ2hCQyxTQUFTLEVBQ1RDLGFBQWEsRUFDYkMsU0FBUyxFQUNUQyxxQkFBcUIsRUFDckJDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxjQUFjLEVBQ2RDLFlBQVksRUFDWkMsYUFBYSxFQUNiQyxRQUFRLEVBQ1JDLE1BQU0sRUFDTkMs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
510
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlVHJhbnNsYXRpb24iLCJDYXRlZ29yeSIsIkNoZXZyb25Eb3duIiwiVG9vbHRpcCIsIk5vdGlvbkljb24iLCJ1c2VSZXNpemVMaXN0ZW5lciIsIkFDVElPTl9MQUJFTF9LRVlTIiwiQ09SX1RPT0xfR1JPVVBTIiwiRU5USVRZX0FDVElPTl9PUkRFUiIsIkVOVElUWV9PUkRFUiIsIk5PVElPTl9DT05ORUNUT1JfQ0FUQUxPRyIsIk5PVElPTl9DT05ORUNUT1JfU0xVRyIsIlNDQWN0aW9uSGVhZGVyIiwiU0NBY3Rpb25MYWJlbCIsIlNDQWN0aW9uTGFiZWxHcm91cCIsIlNDQWN0aW9uUm93IiwiU0NDYXRlZ29yeUFjY29yZGlvbiIsIlNDQ2F0ZWdvcnlEZXNjcmlwdGlvbiIsIlNDQ2F0ZWdvcnlIZWFkZXIiLCJTQ0NhdGVnb3J5VGV4dEdyb3VwIiwiU0NDYXRlZ29yeVRpdGxlIiwiU0NDaGV2cm9uQnV0dG9uIiwiU0NDb21pbmdTb29uQmFkZ2UiLCJTQ0Nvbm5lY3RvckNhcmQiLCJTQ0Nvbm5lY3RvckhlYWRlciIsIlNDQ29ubmVjdG9ySGludCIsIlNDQ29ubmVjdG9ySWNvbiIsIlNDQ29ubmVjdG9ySWRlbnRpdHkiLCJTQ0Nvbm5lY3RvclJpZ2h0R3JvdXAiLCJTQ0Nvbm5lY3RvclRhZ2xpbmUiLCJTQ0Nvbm5lY3RvclRleHRHcm91cCIsIlNDQ29ubmVjdG9yVGl0bGUiLCJTQ0NvdW50ZXIiLCJTQ0RlbGV0ZUJhZGdlIiwiU0NFeHBhbmRhYmxlQmxvY2tCb2R5IiwiU0NFbXB0eVRvb2xzIiwiU0NFbnRpdHlDYXJkIiwiU0NFbnRpdHlIZWFkZXIiLCJTQ0VudGl0eUxpc3QiLCJTQ0VudGl0eVRpdGxlIiwiU0NIZWFkZXIiLCJTQ1Jvb3QiLCJTQ1NlY3Rpb25MYWJlbCIsIlNDU3RhdHVzUGlsbCIsIlNDU3VidGl0bGUiLCJTQ1RpdGxlIiwiU0NUb2dnbGUiLCJTQ1RvZ2dsZVRodW1iIiwiU0NUb29sRGVzY3JpcHRpb24iLCJTQ1Rvb2xJdGVtIiwiU0NUb29sS2luZEJhZGdlIiwiU0NUb29sTmFtZSIsIlNDVG9vbFRleHQiLCJTQ1Rvb2xzTGlzdCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkhJRVJBUkNISUNBTF9BQ1RJT05TIiwiYnVpbGRUb29sR3JvdXBNYXAiLCJncm91cHMiLCJtYXAiLCJmb3JFYWNoIiwiZW50aXR5IiwiZ3JvdXAiLCJhY3Rpb24iLCJUT09MX0dST1VQX01BUCIsIlRydW5jYXRpb25Ub29sdGlwIiwiX3JlZiIsInRpdGxlIiwiX3JlZiRsYXlvdXRLZXkiLCJsYXlvdXRLZXkiLCJjaGlsZHJlbiIsInRleHRSZWYiLCJfdXNlUmVzaXplTGlzdGVuZXIiLCJzaG93VG9vbHRpcCIsIkFibUFjdGlvbnNTZWN0aW9uVjIiLCJfcmVmMiIsIl92YWx1ZXMkYWN0aW9ucyIsIl92YWx1ZXMkYWN0aW9uczIiLCJfdmFsdWVzJGFjdGlvbnM0IiwidmFsdWVzIiwiaGFuZGxlU2V0QWdlbnRWYWx1ZXMiLCJfdXNlVHJhbnNsYXRpb24iLCJ0Iiwic2VsZWN0ZWRUb29sR3JvdXBzIiwiYWN0aW9ucyIsInNlbGVjdGVkQ29ubmVjdG9ycyIsInNlbGVjdGVkVG9vbEdyb3Vwc1NldCIsIlNldCIsInNlbGVjdGVkQ29ubmVjdG9yc1NldCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImNvckJsb2NrRXhwYW5kZWQiLCJzZXRDb3JCbG9ja0V4cGFuZGVkIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJleHBhbmRlZEFjdGlvbnMiLCJzZXRFeHBhbmRlZEFjdGlvbnMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImV4cGFuZGVkTm90aW9uQ2F0ZWdvcmllcyIsInNldEV4cGFuZGVkTm90aW9uQ2F0ZWdvcmllcyIsInByZXZDb3JUb29sR3JvdXBDb3VudFJlZiIsInByZXZDb3JCbG9ja0V4cGFuZGVkUmVmIiwibiIsImxlbmd0aCIsInByZXYiLCJjdXJyZW50Iiwid2FzRXhwYW5kZWQiLCJrZXkiLCJ2YWx1ZSIsIl9vYmplY3RTcHJlYWQiLCJpc0FjdGlvbkFjdGl2ZSIsIl9UT09MX0dST1VQX01BUCRlbnRpdCIsImhhcyIsInNsdWciLCJ0b2dnbGVFbnRpdHlBY3Rpb24iLCJfVE9PTF9HUk9VUF9NQVAkZW50aXQyIiwidGFyZ2V0R3JvdXAiLCJhdmFpbGFibGUiLCJuZXh0IiwiZW50aXR5SW5kZXgiLCJpbmRleE9mIiwicHJldmlvdXNFbnRpdGllcyIsInNsaWNlIiwibmV4dEVudGl0aWVzIiwiYWN0aW9uSW5kZXgiLCJpc0N1cnJlbnRseUFjdGl2ZSIsImN1cnJlbnRFbnRpdHkiLCJjdXJyZW50QWN0aW9uIiwiX1RPT0xfR1JPVVBfTUFQJGN1cnJlIiwiX1RPT0xfR1JPVVBfTUFQJGN1cnJlMiIsImFkZCIsIkFycmF5IiwiZnJvbSIsInRvZ2dsZUNvbm5lY3RvciIsImNvbm5lY3RvclNsdWciLCJ0b2dnbGVBY3Rpb25FeHBhbmRlZCIsInRvZ2dsZU5vdGlvbkNhdGVnb3J5IiwiY2F0ZWdvcnlLZXkiLCJpc05vdGlvbkVuYWJsZWQiLCJub3Rpb25Db25uZWN0b3JTdGF0ZSIsIl92YWx1ZXMkYWN0aW9uczMiLCJjb25uZWN0b3JTdGF0ZXMiLCJmaW5kIiwicyIsIm5vdGlvbkNvbm5lY3RvckJhZGdlIiwidG9uZSIsImxhYmVsIiwiZW5hYmxlZF9mb3JfYWdlbnQiLCJjb3JBY3RpdmVUb29sc0NvdW50IiwicmVkdWNlIiwiYWNjIiwiZyIsInRvb2xzIiwidHJ1bmNhdGlvbk1lYXN1cmVLZXkiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0Iiwiam9pbiIsInJlbmRlclRvb2xJdGVtIiwidG9vbCIsImtpbmQiLCJhY2Nlc3NLaW5kIiwibmFtZSIsImRlc2NyaXB0aW9uIiwicmVmIiwicmVuZGVyQWN0aW9uUm93IiwiX1RPT0xfR1JPVVBfTUFQJGVudGl0MyIsImlzQXZhaWxhYmxlIiwiYWN0aXZlIiwiZXhwYW5kZWQiLCJ0b29sc0NvdW50IiwiY2FuRXhwYW5kIiwiaXNEZWxldGUiLCJvbkhlYWRlckNsaWNrIiwib25Ub2dnbGVDbGljayIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJoZWFkZXJDb250ZW50IiwiY2xpY2thYmxlIiwib25DbGljayIsInR5cGUiLCJvcGVuIiwiZGlzYWJsZWQiLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwiY291bnQiLCJpc0FjdGl2ZSIsInJvdyIsInJlbmRlckVudGl0eUNhcmQiLCJncm91cHNGb3JFbnRpdHkiLCJfVE9PTF9HUk9VUF9NQVAkZW50aXQ0IiwiZmlsdGVyIiwiQm9vbGVhbiIsImVuYWJsZWRUb29scyIsImNvdW50ZXJBY3RpdmUiLCJyZW5kZXJOb3Rpb25DYXRlZ29yeSIsImNhdGVnb3J5IiwiaXNPcGVuIiwiYXMiLCJ2IiwiY2F0ZWdvcmllcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUFjdGlvbnNTZWN0aW9uVjIvQWJtQWN0aW9uc1NlY3Rpb25WMi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG4gIE1vdXNlRXZlbnQsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFJlZk9iamVjdCxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB7IENhdGVnb3J5IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2F0ZWdvcnknXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuXG5pbXBvcnQgeyBOb3Rpb25JY29uIH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvaWNvbnMvTm90aW9uSWNvbidcblxuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgeyBNb2RhbFZhbHVlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzL2FnZW50TW9kYWwnXG5pbXBvcnQge1xuICBBQ1RJT05fTEFCRUxfS0VZUyxcbiAgQ29ubmVjdG9yVG9vbENhdGVnb3J5LFxuICBDT1JfVE9PTF9HUk9VUFMsXG4gIEVOVElUWV9BQ1RJT05fT1JERVIsXG4gIEVOVElUWV9PUkRFUixcbiAgRW50aXR5QWN0aW9uS2V5LFxuICBFbnRpdHlLZXksXG4gIEVudGl0eVRvb2xHcm91cCxcbiAgTk9USU9OX0NPTk5FQ1RPUl9DQVRBTE9HLFxuICBOT1RJT05fQ09OTkVDVE9SX1NMVUcsXG4gIFRvb2xEZXNjcmlwdG9yLFxufSBmcm9tICcuL2NhdGFsb2cnXG5pbXBvcnQge1xuICBTQ0FjdGlvbkhlYWRlcixcbiAgU0NBY3Rpb25MYWJlbCxcbiAgU0NBY3Rpb25MYWJlbEdyb3VwLFxuICBTQ0FjdGlvblJvdyxcbiAgU0NDYXRlZ29yeUFjY29yZGlvbixcbiAgU0NDYXRlZ29yeURlc2NyaXB0aW9uLFxuICBTQ0NhdGVnb3J5SGVhZGVyLFxuICBTQ0NhdGVnb3J5VGV4dEdyb3VwLFxuICBTQ0NhdGVnb3J5VGl0bGUsXG4gIFNDQ2hldnJvbkJ1dHRvbixcbiAgU0NDb21pbmdTb29uQmFkZ2UsXG4gIFNDQ29ubmVjdG9yQ2FyZCxcbiAgU0NDb25uZWN0b3JIZWFkZXIsXG4gIFNDQ29ubmVjdG9ySGludCxcbiAgU0NDb25uZWN0b3JJY29uLFxuICBTQ0Nvbm5lY3RvcklkZW50aXR5LFxuICBTQ0Nvbm5lY3RvclJpZ2h0R3JvdXAsXG4gIFNDQ29ubmVjdG9yVGFnbGluZSxcbiAgU0NDb25uZWN0b3JUZXh0R3JvdXAsXG4gIFNDQ29ubmVjdG9yVGl0bGUsXG4gIFNDQ291bnRlcixcbiAgU0NEZWxldGVCYWRnZSxcbiAgU0NFeHBhbmRhYmxlQmxvY2tCb2R5LFxuICBTQ0VtcHR5VG9vbHMsXG4gIFNDRW50aXR5Q2FyZCxcbiAgU0NFbnRpdHlIZWFkZXIsXG4gIFNDRW50aXR5TGlzdCxcbiAgU0NFbnRpdHlUaXRsZSxcbiAgU0NIZWFkZXIsXG4gIFNDUm9vdCxcbiAgU0NTZWN0aW9uTGFiZWwsXG4gIFNDU3RhdHVzUGlsbCxcbiAgU0NTdWJ0aXRsZSxcbiAgU0NUaXRsZSxcbiAgU0NUb2dnbGUsXG4gIFNDVG9nZ2xlVGh1bWIsXG4gIFNDVG9vbERlc2NyaXB0aW9uLFxuICBTQ1Rvb2xJdGVtLFxuICBTQ1Rvb2xLaW5kQmFkZ2UsXG4gIFNDVG9vbE5hbWUsXG4gIFNDVG9vbFRleHQsXG4gIFNDVG9vbHNMaXN0LFxufSBmcm9tICcuL0FibUFjdGlvbnNTZWN0aW9uVjIuc3R5bGVzJ1xuXG50eXBlIEFibUFjdGlvbnNTZWN0aW9uVjJQcm9wcyA9IHtcbiAgdmFsdWVzOiBNb2RhbFZhbHVlc1xuICBoYW5kbGVTZXRBZ2VudFZhbHVlczogKHsga2V5LCB2YWx1ZSB9OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9KSA9PiB2b2lkXG59XG5cbmNvbnN0IEhJRVJBUkNISUNBTF9BQ1RJT05TOiBFbnRpdHlBY3Rpb25LZXlbXSA9IFsncmVhZCcsICdlZGl0JywgJ2RlbGV0ZSddXG5cbmNvbnN0IGJ1aWxkVG9vbEdyb3VwTWFwID0gKGdyb3VwczogRW50aXR5VG9vbEdyb3VwW10pOiBSZWNvcmQ8RW50aXR5S2V5LCBSZWNvcmQ8RW50aXR5QWN0aW9uS2V5LCBFbnRpdHlUb29sR3JvdXA+PiA9PiB7XG4gIGNvbnN0IG1hcCA9IHt9IGFzIFJlY29yZDxFbnRpdHlLZXksIFJlY29yZDxFbnRpdHlBY3Rpb25LZXksIEVudGl0eVRvb2xHcm91cD4+XG4gIEVOVElUWV9PUkRFUi5mb3JFYWNoKGVudGl0eSA9PiB7XG4gICAgbWFwW2VudGl0eV0gPSB7fSBhcyBSZWNvcmQ8RW50aXR5QWN0aW9uS2V5LCBFbnRpdHlUb29sR3JvdXA+XG4gIH0pXG4gIGdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICBtYXBbZ3JvdXAuZW50aXR5XVtncm91cC5hY3Rpb25dID0gZ3JvdXBcbiAgfSlcbiAgcmV0dXJuIG1hcFxufVxuXG5jb25zdCBUT09MX0dST1VQX01BUCA9IGJ1aWxkVG9vbEdyb3VwTWFwKENPUl9UT09MX0dST1VQUylcblxudHlwZSBUcnVuY2F0aW9uVG9vbHRpcFByb3BzID0ge1xuICB0aXRsZTogc3RyaW5nXG4gIC8qKiBSZWNhbGN1bGEgb3ZlcmZsb3cgYWwgY2FtYmlhciBsYXlvdXQgKHAuIGVqLiBleHBhbmQvY29sbGFwc2UgZGUgZmlsYXMpLiAqL1xuICBsYXlvdXRLZXk/OiBzdHJpbmdcbiAgY2hpbGRyZW46ICh0ZXh0UmVmOiBSZWZPYmplY3Q8SFRNTFNwYW5FbGVtZW50PikgPT4gUmVhY3ROb2RlXG59XG5cbmNvbnN0IFRydW5jYXRpb25Ub29sdGlwID0gKHsgdGl0bGUsIGxheW91dEtleSA9ICcnLCBjaGlsZHJlbiB9OiBUcnVuY2F0aW9uVG9vbHRpcFByb3BzKSA9PiB7XG4gIGNvbnN0IHRleHRSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50PihudWxsKVxuICBjb25zdCB7IHNob3dUb29sdGlwIH0gPSB1c2VSZXNpemVMaXN0ZW5lcih0ZXh0UmVmLCBbdGl0bGUsIGxheW91dEtleV0pXG4gIHJldHVybiA8VG9vbHRpcCB0aXRsZT17c2hvd1Rvb2x0aXAgPyB0aXRsZSA6ICcnfT57Y2hpbGRyZW4odGV4dFJlZil9PC9Ub29sdGlwPlxufVxuXG5leHBvcnQgY29uc3QgQWJtQWN0aW9uc1NlY3Rpb25WMiA9ICh7IHZhbHVlcywgaGFuZGxlU2V0QWdlbnRWYWx1ZXMgfTogQWJtQWN0aW9uc1NlY3Rpb25WMlByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2FibV9hZ2VudF9zZWN0aW9uJylcblxuICBjb25zdCBzZWxlY3RlZFRvb2xHcm91cHMgPSB2YWx1ZXMuYWN0aW9ucz8uc2VsZWN0ZWRUb29sR3JvdXBzIHx8IFtdXG4gIGNvbnN0IHNlbGVjdGVkQ29ubmVjdG9ycyA9IHZhbHVlcy5hY3Rpb25zPy5zZWxlY3RlZENvbm5lY3RvcnMgfHwgW11cblxuICBjb25zdCBzZWxlY3RlZFRvb2xHcm91cHNTZXQgPSB1c2VNZW1vKCgpID0+IG5ldyBTZXQoc2VsZWN0ZWRUb29sR3JvdXBzKSwgW3NlbGVjdGVkVG9vbEdyb3Vwc10pXG4gIGNvbnN0IHNlbGVjdGVkQ29ubmVjdG9yc1NldCA9IHVzZU1lbW8oKCkgPT4gbmV3IFNldChzZWxlY3RlZENvbm5lY3RvcnMpLCBbc2VsZWN0ZWRDb25uZWN0b3JzXSlcblxuICBjb25zdCBbY29yQmxvY2tFeHBhbmRlZCwgc2V0Q29yQmxvY2tFeHBhbmRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2V4cGFuZGVkQWN0aW9ucywgc2V0RXhwYW5kZWRBY3Rpb25zXSA9IHVzZVN0YXRlPFNldDxzdHJpbmc+PihuZXcgU2V0KCkpXG4gIGNvbnN0IFtleHBhbmRlZE5vdGlvbkNhdGVnb3JpZXMsIHNldEV4cGFuZGVkTm90aW9uQ2F0ZWdvcmllc10gPSB1c2VTdGF0ZTxTZXQ8c3RyaW5nPj4obmV3IFNldCgpKVxuICAvKiogRXZpdGEgcmVhYnJpciBlbCBibG9xdWUgc2kgZWwgdXN1YXJpbyBsbyBjZXJyw7MgY29uIGxhIG1pc21hIGNhbnRpZGFkIGRlIHRvb2wgZ3JvdXBzIHNlbGVjY2lvbmFkb3MuICovXG4gIGNvbnN0IHByZXZDb3JUb29sR3JvdXBDb3VudFJlZiA9IHVzZVJlZjxudW1iZXIgfCBudWxsPihudWxsKVxuICAvKiogUGFyYSBkaXN0aW5ndWlyIGNpZXJyZSBtYW51YWwgZGVsIGJsb3F1ZSAoZGVzdGlsZGFyIENPUikgZGVsIG1vbnRhamUgaW5pY2lhbCBjb2xhcHNhZG8uICovXG4gIGNvbnN0IHByZXZDb3JCbG9ja0V4cGFuZGVkUmVmID0gdXNlUmVmPGJvb2xlYW4gfCBudWxsPihudWxsKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbiA9IHNlbGVjdGVkVG9vbEdyb3Vwcy5sZW5ndGhcbiAgICBjb25zdCBwcmV2ID0gcHJldkNvclRvb2xHcm91cENvdW50UmVmLmN1cnJlbnRcbiAgICBwcmV2Q29yVG9vbEdyb3VwQ291bnRSZWYuY3VycmVudCA9IG5cblxuICAgIGlmIChuID09PSAwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKHByZXYgPT09IG51bGwgJiYgbiA+IDApIHtcbiAgICAgIHNldENvckJsb2NrRXhwYW5kZWQodHJ1ZSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAocHJldiA9PT0gMCAmJiBuID4gMCkge1xuICAgICAgc2V0Q29yQmxvY2tFeHBhbmRlZCh0cnVlKVxuICAgIH1cbiAgfSwgW3NlbGVjdGVkVG9vbEdyb3Vwcy5sZW5ndGhdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgd2FzRXhwYW5kZWQgPSBwcmV2Q29yQmxvY2tFeHBhbmRlZFJlZi5jdXJyZW50ID09PSB0cnVlXG5cbiAgICBpZiAoIWNvckJsb2NrRXhwYW5kZWQpIHtcbiAgICAgIHNldEV4cGFuZGVkQWN0aW9ucyhuZXcgU2V0KCkpXG4gICAgICBpZiAod2FzRXhwYW5kZWQgJiYgc2VsZWN0ZWRUb29sR3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaGFuZGxlU2V0QWdlbnRWYWx1ZXMoe1xuICAgICAgICAgIGtleTogJ2FjdGlvbnMnLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi52YWx1ZXMuYWN0aW9ucyxcbiAgICAgICAgICAgIHNlbGVjdGVkVG9vbEdyb3VwczogW10sXG4gICAgICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcmV2Q29yQmxvY2tFeHBhbmRlZFJlZi5jdXJyZW50ID0gY29yQmxvY2tFeHBhbmRlZFxuICB9LCBbY29yQmxvY2tFeHBhbmRlZCwgaGFuZGxlU2V0QWdlbnRWYWx1ZXMsIHNlbGVjdGVkQ29ubmVjdG9ycywgc2VsZWN0ZWRUb29sR3JvdXBzLmxlbmd0aCwgdmFsdWVzLmFjdGlvbnNdKVxuXG4gIGNvbnN0IGlzQWN0aW9uQWN0aXZlID0gdXNlQ2FsbGJhY2soXG4gICAgKGVudGl0eTogRW50aXR5S2V5LCBhY3Rpb246IEVudGl0eUFjdGlvbktleSkgPT4ge1xuICAgICAgY29uc3QgZ3JvdXAgPSBUT09MX0dST1VQX01BUFtlbnRpdHldPy5bYWN0aW9uXVxuICAgICAgcmV0dXJuICEhZ3JvdXAgJiYgc2VsZWN0ZWRUb29sR3JvdXBzU2V0Lmhhcyhncm91cC5zbHVnKVxuICAgIH0sXG4gICAgW3NlbGVjdGVkVG9vbEdyb3Vwc1NldF1cbiAgKVxuXG4gIGNvbnN0IHRvZ2dsZUVudGl0eUFjdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChlbnRpdHk6IEVudGl0eUtleSwgYWN0aW9uOiBFbnRpdHlBY3Rpb25LZXkpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldEdyb3VwID0gVE9PTF9HUk9VUF9NQVBbZW50aXR5XT8uW2FjdGlvbl1cbiAgICAgIGlmICghdGFyZ2V0R3JvdXAgfHwgIXRhcmdldEdyb3VwLmF2YWlsYWJsZSkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHNlbGVjdGVkVG9vbEdyb3VwcylcbiAgICAgIGNvbnN0IGVudGl0eUluZGV4ID0gRU5USVRZX09SREVSLmluZGV4T2YoZW50aXR5KVxuICAgICAgY29uc3QgcHJldmlvdXNFbnRpdGllcyA9IEVOVElUWV9PUkRFUi5zbGljZSgwLCBlbnRpdHlJbmRleCArIDEpXG4gICAgICBjb25zdCBuZXh0RW50aXRpZXMgPSBFTlRJVFlfT1JERVIuc2xpY2UoZW50aXR5SW5kZXgpXG4gICAgICBjb25zdCBhY3Rpb25JbmRleCA9IEhJRVJBUkNISUNBTF9BQ1RJT05TLmluZGV4T2YoYWN0aW9uKVxuICAgICAgY29uc3QgaXNDdXJyZW50bHlBY3RpdmUgPSBuZXh0Lmhhcyh0YXJnZXRHcm91cC5zbHVnKVxuXG4gICAgICBpZiAoaXNDdXJyZW50bHlBY3RpdmUpIHtcbiAgICAgICAgbmV4dEVudGl0aWVzLmZvckVhY2goY3VycmVudEVudGl0eSA9PiB7XG4gICAgICAgICAgSElFUkFSQ0hJQ0FMX0FDVElPTlMuc2xpY2UoYWN0aW9uSW5kZXgpLmZvckVhY2goY3VycmVudEFjdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm91cCA9IFRPT0xfR1JPVVBfTUFQW2N1cnJlbnRFbnRpdHldPy5bY3VycmVudEFjdGlvbl1cbiAgICAgICAgICAgIGlmIChncm91cD8uYXZhaWxhYmxlKSBuZXh0LmRlbGV0ZShncm91cC5zbHVnKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcmV2aW91c0VudGl0aWVzLmZvckVhY2goY3VycmVudEVudGl0eSA9PiB7XG4gICAgICAgICAgSElFUkFSQ0hJQ0FMX0FDVElPTlMuc2xpY2UoMCwgYWN0aW9uSW5kZXggKyAxKS5mb3JFYWNoKGN1cnJlbnRBY3Rpb24gPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSBUT09MX0dST1VQX01BUFtjdXJyZW50RW50aXR5XT8uW2N1cnJlbnRBY3Rpb25dXG4gICAgICAgICAgICBpZiAoZ3JvdXA/LmF2YWlsYWJsZSkgbmV4dC5hZGQoZ3JvdXAuc2x1ZylcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcyh7XG4gICAgICAgIGtleTogJ2FjdGlvbnMnLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIC4uLnZhbHVlcy5hY3Rpb25zLFxuICAgICAgICAgIHNlbGVjdGVkVG9vbEdyb3VwczogQXJyYXkuZnJvbShuZXh0KSxcbiAgICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnMsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2hhbmRsZVNldEFnZW50VmFsdWVzLCBzZWxlY3RlZENvbm5lY3RvcnMsIHNlbGVjdGVkVG9vbEdyb3VwcywgdmFsdWVzLmFjdGlvbnNdXG4gIClcblxuICBjb25zdCB0b2dnbGVDb25uZWN0b3IgPSB1c2VDYWxsYmFjayhcbiAgICAoY29ubmVjdG9yU2x1Zzogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gbmV3IFNldChzZWxlY3RlZENvbm5lY3RvcnMpXG4gICAgICBpZiAobmV4dC5oYXMoY29ubmVjdG9yU2x1ZykpIHtcbiAgICAgICAgbmV4dC5kZWxldGUoY29ubmVjdG9yU2x1ZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuYWRkKGNvbm5lY3RvclNsdWcpXG4gICAgICB9XG4gICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcyh7XG4gICAgICAgIGtleTogJ2FjdGlvbnMnLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIC4uLnZhbHVlcy5hY3Rpb25zLFxuICAgICAgICAgIHNlbGVjdGVkVG9vbEdyb3VwcyxcbiAgICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IEFycmF5LmZyb20obmV4dCksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2hhbmRsZVNldEFnZW50VmFsdWVzLCBzZWxlY3RlZENvbm5lY3RvcnMsIHNlbGVjdGVkVG9vbEdyb3VwcywgdmFsdWVzLmFjdGlvbnNdXG4gIClcblxuICBjb25zdCB0b2dnbGVBY3Rpb25FeHBhbmRlZCA9IHVzZUNhbGxiYWNrKChzbHVnOiBzdHJpbmcpID0+IHtcbiAgICBzZXRFeHBhbmRlZEFjdGlvbnMocHJldiA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gbmV3IFNldChwcmV2KVxuICAgICAgaWYgKG5leHQuaGFzKHNsdWcpKSBuZXh0LmRlbGV0ZShzbHVnKVxuICAgICAgZWxzZSBuZXh0LmFkZChzbHVnKVxuICAgICAgcmV0dXJuIG5leHRcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCB0b2dnbGVOb3Rpb25DYXRlZ29yeSA9IHVzZUNhbGxiYWNrKChjYXRlZ29yeUtleTogc3RyaW5nKSA9PiB7XG4gICAgc2V0RXhwYW5kZWROb3Rpb25DYXRlZ29yaWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IG5ldyBTZXQocHJldilcbiAgICAgIGlmIChuZXh0LmhhcyhjYXRlZ29yeUtleSkpIG5leHQuZGVsZXRlKGNhdGVnb3J5S2V5KVxuICAgICAgZWxzZSBuZXh0LmFkZChjYXRlZ29yeUtleSlcbiAgICAgIHJldHVybiBuZXh0XG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgaXNOb3Rpb25FbmFibGVkID0gc2VsZWN0ZWRDb25uZWN0b3JzU2V0LmhhcyhOT1RJT05fQ09OTkVDVE9SX1NMVUcpXG5cbiAgY29uc3Qgbm90aW9uQ29ubmVjdG9yU3RhdGUgPSB1c2VNZW1vKFxuICAgICgpID0+IHZhbHVlcy5hY3Rpb25zPy5jb25uZWN0b3JTdGF0ZXM/LmZpbmQocyA9PiBzLnNsdWcgPT09IE5PVElPTl9DT05ORUNUT1JfU0xVRyksXG4gICAgW3ZhbHVlcy5hY3Rpb25zPy5jb25uZWN0b3JTdGF0ZXNdXG4gIClcblxuICBjb25zdCBub3Rpb25Db25uZWN0b3JCYWRnZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghaXNOb3Rpb25FbmFibGVkKSB7XG4gICAgICByZXR1cm4geyB0b25lOiAnbmV1dHJhbCcgYXMgY29uc3QsIGxhYmVsOiB0KCdhY3Rpb25zU2VjdGlvbi52Mi5jb25uZWN0b3JTdGF0dXMuaW5hY3RpdmUnKSB9XG4gICAgfVxuICAgIGlmIChub3Rpb25Db25uZWN0b3JTdGF0ZSkge1xuICAgICAgaWYgKG5vdGlvbkNvbm5lY3RvclN0YXRlLmVuYWJsZWRfZm9yX2FnZW50KSB7XG4gICAgICAgIHJldHVybiB7IHRvbmU6ICdzdWNjZXNzJyBhcyBjb25zdCwgbGFiZWw6IHQoJ2FjdGlvbnNTZWN0aW9uLnYyLmNvbm5lY3RvclN0YXR1cy5lbmFibGVkJykgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdG9uZTogJ3BlbmRpbmcnIGFzIGNvbnN0LCBsYWJlbDogdCgnYWN0aW9uc1NlY3Rpb24udjIuY29ubmVjdG9yU3RhdHVzLmVuYWJsZWRQZW5kaW5nQXV0aCcpIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgdG9uZTogJ3BlbmRpbmcnIGFzIGNvbnN0LCBsYWJlbDogdCgnYWN0aW9uc1NlY3Rpb24udjIuY29ubmVjdG9yU3RhdHVzLmVuYWJsZWRQZW5kaW5nQXV0aCcpIH1cbiAgfSwgW2lzTm90aW9uRW5hYmxlZCwgbm90aW9uQ29ubmVjdG9yU3RhdGUsIHRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc05vdGlvbkVuYWJsZWQpIHtcbiAgICAgIHNldEV4cGFuZGVkTm90aW9uQ2F0ZWdvcmllcyhuZXcgU2V0KCkpXG4gICAgfVxuICB9LCBbaXNOb3Rpb25FbmFibGVkXSlcblxuICBjb25zdCBjb3JBY3RpdmVUb29sc0NvdW50ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBDT1JfVE9PTF9HUk9VUFMucmVkdWNlKChhY2MsIGcpID0+IGFjYyArIChzZWxlY3RlZFRvb2xHcm91cHNTZXQuaGFzKGcuc2x1ZykgPyBnLnRvb2xzLmxlbmd0aCA6IDApLCAwKSxcbiAgICBbc2VsZWN0ZWRUb29sR3JvdXBzU2V0XVxuICApXG5cbiAgY29uc3QgdHJ1bmNhdGlvbk1lYXN1cmVLZXkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBgJHtjb3JCbG9ja0V4cGFuZGVkID8gJzEnIDogJzAnfSMke1suLi5leHBhbmRlZEFjdGlvbnNdLnNvcnQoKS5qb2luKCd8Jyl9IyR7Wy4uLmV4cGFuZGVkTm90aW9uQ2F0ZWdvcmllc10uc29ydCgpLmpvaW4oJ3wnKX1gLFxuICAgIFtjb3JCbG9ja0V4cGFuZGVkLCBleHBhbmRlZEFjdGlvbnMsIGV4cGFuZGVkTm90aW9uQ2F0ZWdvcmllc11cbiAgKVxuXG4gIGNvbnN0IHJlbmRlclRvb2xJdGVtID0gKHRvb2w6IFRvb2xEZXNjcmlwdG9yKSA9PiAoXG4gICAgPFNDVG9vbEl0ZW0ga2V5PXt0b29sLnNsdWd9PlxuICAgICAgPFNDVG9vbEtpbmRCYWRnZSBraW5kPXt0b29sLmFjY2Vzc0tpbmR9Pnt0KGBhY3Rpb25zU2VjdGlvbi52Mi5hY2Nlc3NLaW5kLiR7dG9vbC5hY2Nlc3NLaW5kfWApfTwvU0NUb29sS2luZEJhZGdlPlxuICAgICAgPFNDVG9vbFRleHQ+XG4gICAgICAgIDxTQ1Rvb2xOYW1lPnt0b29sLm5hbWV9PC9TQ1Rvb2xOYW1lPlxuICAgICAgICA8VHJ1bmNhdGlvblRvb2x0aXAgdGl0bGU9e3Rvb2wuZGVzY3JpcHRpb259IGxheW91dEtleT17dHJ1bmNhdGlvbk1lYXN1cmVLZXl9PlxuICAgICAgICAgIHt0ZXh0UmVmID0+IDxTQ1Rvb2xEZXNjcmlwdGlvbiByZWY9e3RleHRSZWZ9Pnt0b29sLmRlc2NyaXB0aW9ufTwvU0NUb29sRGVzY3JpcHRpb24+fVxuICAgICAgICA8L1RydW5jYXRpb25Ub29sdGlwPlxuICAgICAgPC9TQ1Rvb2xUZXh0PlxuICAgIDwvU0NUb29sSXRlbT5cbiAgKVxuXG4gIGNvbnN0IHJlbmRlckFjdGlvblJvdyA9IChlbnRpdHk6IEVudGl0eUtleSwgYWN0aW9uOiBFbnRpdHlBY3Rpb25LZXkpID0+IHtcbiAgICBjb25zdCBncm91cCA9IFRPT0xfR1JPVVBfTUFQW2VudGl0eV0/LlthY3Rpb25dXG4gICAgaWYgKCFncm91cCkgcmV0dXJuIG51bGxcbiAgICBjb25zdCBpc0F2YWlsYWJsZSA9IGdyb3VwLmF2YWlsYWJsZVxuICAgIGNvbnN0IGFjdGl2ZSA9IGlzQWN0aW9uQWN0aXZlKGVudGl0eSwgYWN0aW9uKVxuICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kZWRBY3Rpb25zLmhhcyhncm91cC5zbHVnKVxuICAgIGNvbnN0IHRvb2xzQ291bnQgPSBncm91cC50b29scy5sZW5ndGhcbiAgICBjb25zdCBjYW5FeHBhbmQgPSBpc0F2YWlsYWJsZSAmJiB0b29sc0NvdW50ID4gMFxuICAgIGNvbnN0IGlzRGVsZXRlID0gYWN0aW9uID09PSAnZGVsZXRlJyAmJiBhY3RpdmVcblxuICAgIGNvbnN0IG9uSGVhZGVyQ2xpY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoY2FuRXhwYW5kKSB0b2dnbGVBY3Rpb25FeHBhbmRlZChncm91cC5zbHVnKVxuICAgIH1cblxuICAgIGNvbnN0IG9uVG9nZ2xlQ2xpY2sgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgaWYgKGlzQXZhaWxhYmxlKSB0b2dnbGVFbnRpdHlBY3Rpb24oZW50aXR5LCBhY3Rpb24pXG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVyQ29udGVudCA9IChcbiAgICAgIDxTQ0FjdGlvbkhlYWRlciBjbGlja2FibGU9e2NhbkV4cGFuZH0gb25DbGljaz17b25IZWFkZXJDbGlja30+XG4gICAgICAgIDxTQ0NoZXZyb25CdXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBvcGVuPXtleHBhbmRlZH1cbiAgICAgICAgICBkaXNhYmxlZD17IWNhbkV4cGFuZH1cbiAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgIGlmIChjYW5FeHBhbmQpIHRvZ2dsZUFjdGlvbkV4cGFuZGVkKGdyb3VwLnNsdWcpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBhcmlhLWxhYmVsPXtleHBhbmRlZCA/IHQoJ2FjdGlvbnNTZWN0aW9uLnYyLmhpZGVUb29scycpIDogdCgnYWN0aW9uc1NlY3Rpb24udjIudmlld1Rvb2xzJyl9XG4gICAgICAgID5cbiAgICAgICAgICA8Q2hldnJvbkRvd24gd2lkdGg9XCIxMnB4XCIgaGVpZ2h0PVwiMTJweFwiIGNvbG9yPVwiY3VycmVudENvbG9yXCIgLz5cbiAgICAgICAgPC9TQ0NoZXZyb25CdXR0b24+XG5cbiAgICAgICAgPFNDQWN0aW9uTGFiZWxHcm91cD5cbiAgICAgICAgICA8U0NBY3Rpb25MYWJlbD57dChBQ1RJT05fTEFCRUxfS0VZU1thY3Rpb25dKX08L1NDQWN0aW9uTGFiZWw+XG4gICAgICAgICAgeyFpc0F2YWlsYWJsZSAmJiA8U0NDb21pbmdTb29uQmFkZ2U+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLmNvbWluZ1Nvb24nKX08L1NDQ29taW5nU29vbkJhZGdlPn1cbiAgICAgICAgICB7aXNBdmFpbGFibGUgJiYgKFxuICAgICAgICAgICAgPFNDQ291bnRlciBhY3RpdmU9e2FjdGl2ZX0+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLnRvb2xzQ291bnQnLCB7IGNvdW50OiB0b29sc0NvdW50IH0pfTwvU0NDb3VudGVyPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2lzRGVsZXRlICYmIDxTQ0RlbGV0ZUJhZGdlPnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5kZWxldGVXYXJuaW5nSW5saW5lJyl9PC9TQ0RlbGV0ZUJhZGdlPn1cbiAgICAgICAgPC9TQ0FjdGlvbkxhYmVsR3JvdXA+XG5cbiAgICAgICAgPFNDVG9nZ2xlXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZX1cbiAgICAgICAgICBkaXNhYmxlZD17IWlzQXZhaWxhYmxlfVxuICAgICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlQ2xpY2t9XG4gICAgICAgICAgYXJpYS1wcmVzc2VkPXthY3RpdmV9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YCR7dChgYWN0aW9uc1NlY3Rpb24uZW50aXRpZXMuJHtlbnRpdHl9YCl9IMK3ICR7dChBQ1RJT05fTEFCRUxfS0VZU1thY3Rpb25dKX1gfVxuICAgICAgICA+XG4gICAgICAgICAgPFNDVG9nZ2xlVGh1bWIgLz5cbiAgICAgICAgPC9TQ1RvZ2dsZT5cbiAgICAgIDwvU0NBY3Rpb25IZWFkZXI+XG4gICAgKVxuXG4gICAgY29uc3Qgcm93ID0gKFxuICAgICAgPFNDQWN0aW9uUm93IGtleT17YCR7ZW50aXR5fS0ke2FjdGlvbn1gfSBkaXNhYmxlZD17IWlzQXZhaWxhYmxlfT5cbiAgICAgICAge2hlYWRlckNvbnRlbnR9XG4gICAgICAgIHtleHBhbmRlZCAmJiBjYW5FeHBhbmQgJiYgPFNDVG9vbHNMaXN0Pntncm91cC50b29scy5tYXAodG9vbCA9PiByZW5kZXJUb29sSXRlbSh0b29sKSl9PC9TQ1Rvb2xzTGlzdD59XG4gICAgICA8L1NDQWN0aW9uUm93PlxuICAgIClcblxuICAgIGlmICghaXNBdmFpbGFibGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxUb29sdGlwIGtleT17YCR7ZW50aXR5fS0ke2FjdGlvbn1gfSB0aXRsZT17dCgnYWN0aW9uc1NlY3Rpb24udjIuY29taW5nU29vbkhpbnQnKX0+XG4gICAgICAgICAgPGRpdj57cm93fTwvZGl2PlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJvd1xuICB9XG5cbiAgY29uc3QgcmVuZGVyRW50aXR5Q2FyZCA9IChlbnRpdHk6IEVudGl0eUtleSkgPT4ge1xuICAgIGNvbnN0IGdyb3Vwc0ZvckVudGl0eSA9IEVOVElUWV9BQ1RJT05fT1JERVIubWFwKGFjdGlvbiA9PiBUT09MX0dST1VQX01BUFtlbnRpdHldPy5bYWN0aW9uXSkuZmlsdGVyKFxuICAgICAgKGdyb3VwKTogZ3JvdXAgaXMgRW50aXR5VG9vbEdyb3VwID0+IEJvb2xlYW4oZ3JvdXApXG4gICAgKVxuICAgIGNvbnN0IGVuYWJsZWRUb29scyA9IGdyb3Vwc0ZvckVudGl0eS5yZWR1Y2UoXG4gICAgICAoYWNjLCBncm91cCkgPT4gYWNjICsgKHNlbGVjdGVkVG9vbEdyb3Vwc1NldC5oYXMoZ3JvdXAuc2x1ZykgPyBncm91cC50b29scy5sZW5ndGggOiAwKSxcbiAgICAgIDBcbiAgICApXG4gICAgY29uc3QgY291bnRlckFjdGl2ZSA9IGVuYWJsZWRUb29scyA+IDBcblxuICAgIHJldHVybiAoXG4gICAgICA8U0NFbnRpdHlDYXJkIGtleT17ZW50aXR5fT5cbiAgICAgICAgPFNDRW50aXR5SGVhZGVyPlxuICAgICAgICAgIDxTQ0VudGl0eVRpdGxlPnt0KGBhY3Rpb25zU2VjdGlvbi5lbnRpdGllcy4ke2VudGl0eX1gKX08L1NDRW50aXR5VGl0bGU+XG4gICAgICAgICAgPFNDQ291bnRlciBhY3RpdmU9e2NvdW50ZXJBY3RpdmV9Pnt0KCdhY3Rpb25zU2VjdGlvbi52Mi50b29sc0NvdW50JywgeyBjb3VudDogZW5hYmxlZFRvb2xzIH0pfTwvU0NDb3VudGVyPlxuICAgICAgICA8L1NDRW50aXR5SGVhZGVyPlxuICAgICAgICB7RU5USVRZX0FDVElPTl9PUkRFUi5tYXAoYWN0aW9uID0+IHJlbmRlckFjdGlvblJvdyhlbnRpdHksIGFjdGlvbikpfVxuICAgICAgPC9TQ0VudGl0eUNhcmQ+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyTm90aW9uQ2F0ZWdvcnkgPSAoY2F0ZWdvcnk6IENvbm5lY3RvclRvb2xDYXRlZ29yeSkgPT4ge1xuICAgIGNvbnN0IGlzT3BlbiA9IGV4cGFuZGVkTm90aW9uQ2F0ZWdvcmllcy5oYXMoY2F0ZWdvcnkua2V5KVxuICAgIGNvbnN0IHRvb2xzQ291bnQgPSBjYXRlZ29yeS50b29scy5sZW5ndGhcbiAgICByZXR1cm4gKFxuICAgICAgPFNDQ2F0ZWdvcnlBY2NvcmRpb24ga2V5PXtjYXRlZ29yeS5rZXl9PlxuICAgICAgICA8U0NDYXRlZ29yeUhlYWRlciB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gdG9nZ2xlTm90aW9uQ2F0ZWdvcnkoY2F0ZWdvcnkua2V5KX0gYXJpYS1leHBhbmRlZD17aXNPcGVufT5cbiAgICAgICAgICA8U0NDaGV2cm9uQnV0dG9uIGFzPVwic3BhblwiIG9wZW49e2lzT3Blbn0+XG4gICAgICAgICAgICA8Q2hldnJvbkRvd24gd2lkdGg9XCIxMnB4XCIgaGVpZ2h0PVwiMTJweFwiIGNvbG9yPVwiY3VycmVudENvbG9yXCIgLz5cbiAgICAgICAgICA8L1NDQ2hldnJvbkJ1dHRvbj5cbiAgICAgICAgICA8U0NDYXRlZ29yeVRleHRHcm91cD5cbiAgICAgICAgICAgIDxTQ0NhdGVnb3J5VGl0bGU+e2NhdGVnb3J5LmxhYmVsfTwvU0NDYXRlZ29yeVRpdGxlPlxuICAgICAgICAgICAgPFRydW5jYXRpb25Ub29sdGlwIHRpdGxlPXtjYXRlZ29yeS5kZXNjcmlwdGlvbn0gbGF5b3V0S2V5PXt0cnVuY2F0aW9uTWVhc3VyZUtleX0+XG4gICAgICAgICAgICAgIHt0ZXh0UmVmID0+IDxTQ0NhdGVnb3J5RGVzY3JpcHRpb24gcmVmPXt0ZXh0UmVmfT57Y2F0ZWdvcnkuZGVzY3JpcHRpb259PC9TQ0NhdGVnb3J5RGVzY3JpcHRpb24+fVxuICAgICAgICAgICAgPC9UcnVuY2F0aW9uVG9vbHRpcD5cbiAgICAgICAgICA8L1NDQ2F0ZWdvcnlUZXh0R3JvdXA+XG4gICAgICAgICAgPFNDQ291bnRlciBhY3RpdmU9e2ZhbHNlfT5cbiAgICAgICAgICAgIHt0KCdhY3Rpb25zU2VjdGlvbi52Mi5ub3Rpb24uY2F0ZWdvcnlUb29sc0NvdW50JywgeyBjb3VudDogdG9vbHNDb3VudCB9KX1cbiAgICAgICAgICA8L1NDQ291bnRlcj5cbiAgICAgICAgPC9TQ0NhdGVnb3J5SGVhZGVyPlxuICAgICAgICB7aXNPcGVuICYmXG4gICAgICAgICAgKHRvb2xzQ291bnQgPiAwID8gKFxuICAgICAgICAgICAgPFNDVG9vbHNMaXN0PntjYXRlZ29yeS50b29scy5tYXAodG9vbCA9PiByZW5kZXJUb29sSXRlbSh0b29sKSl9PC9TQ1Rvb2xzTGlzdD5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFNDRW1wdHlUb29scz57dCgnYWN0aW9uc1NlY3Rpb24udjIuZW1wdHlUb29scycpfTwvU0NFbXB0eVRvb2xzPlxuICAgICAgICAgICkpfVxuICAgICAgPC9TQ0NhdGVnb3J5QWNjb3JkaW9uPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDUm9vdD5cbiAgICAgIDxTQ0hlYWRlcj5cbiAgICAgICAgPFNDVGl0bGU+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLnNlY3Rpb25UaXRsZScpfTwvU0NUaXRsZT5cbiAgICAgICAgPFNDU3VidGl0bGU+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLnNlY3Rpb25TdWJ0aXRsZScpfTwvU0NTdWJ0aXRsZT5cbiAgICAgIDwvU0NIZWFkZXI+XG5cbiAgICAgIDxTQ1NlY3Rpb25MYWJlbD57dCgnYWN0aW9uc1NlY3Rpb24udjIuaW50ZXJuYWxCbG9ja1RpdGxlJyl9PC9TQ1NlY3Rpb25MYWJlbD5cblxuICAgICAgPFNDQ29ubmVjdG9yQ2FyZD5cbiAgICAgICAgPFNDQ29ubmVjdG9ySGVhZGVyPlxuICAgICAgICAgIDxTQ0Nvbm5lY3RvcklkZW50aXR5PlxuICAgICAgICAgICAgPFNDQ29ubmVjdG9ySWNvbiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICAgICAgPENhdGVnb3J5IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgIDwvU0NDb25uZWN0b3JJY29uPlxuICAgICAgICAgICAgPFNDQ29ubmVjdG9yVGV4dEdyb3VwPlxuICAgICAgICAgICAgICA8VHJ1bmNhdGlvblRvb2x0aXAgdGl0bGU9e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLmludGVybmFsQmxvY2tUaXRsZScpfSBsYXlvdXRLZXk9e3RydW5jYXRpb25NZWFzdXJlS2V5fT5cbiAgICAgICAgICAgICAgICB7dGV4dFJlZiA9PiAoXG4gICAgICAgICAgICAgICAgICA8U0NDb25uZWN0b3JUaXRsZSByZWY9e3RleHRSZWZ9Pnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5pbnRlcm5hbEJsb2NrVGl0bGUnKX08L1NDQ29ubmVjdG9yVGl0bGU+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9UcnVuY2F0aW9uVG9vbHRpcD5cbiAgICAgICAgICAgICAgPFRydW5jYXRpb25Ub29sdGlwIHRpdGxlPXt0KCdhY3Rpb25zU2VjdGlvbi52Mi5pbnRlcm5hbEJsb2NrU3VidGl0bGUnKX0gbGF5b3V0S2V5PXt0cnVuY2F0aW9uTWVhc3VyZUtleX0+XG4gICAgICAgICAgICAgICAge3RleHRSZWYgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNDQ29ubmVjdG9yVGFnbGluZSByZWY9e3RleHRSZWZ9Pnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5pbnRlcm5hbEJsb2NrU3VidGl0bGUnKX08L1NDQ29ubmVjdG9yVGFnbGluZT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1RydW5jYXRpb25Ub29sdGlwPlxuICAgICAgICAgICAgPC9TQ0Nvbm5lY3RvclRleHRHcm91cD5cbiAgICAgICAgICA8L1NDQ29ubmVjdG9ySWRlbnRpdHk+XG4gICAgICAgICAgPFNDQ29ubmVjdG9yUmlnaHRHcm91cD5cbiAgICAgICAgICAgIDxTQ0NvdW50ZXIgYWN0aXZlPXtjb3JBY3RpdmVUb29sc0NvdW50ID4gMH0+XG4gICAgICAgICAgICAgIHt0KCdhY3Rpb25zU2VjdGlvbi52Mi50b29sc0NvdW50JywgeyBjb3VudDogY29yQWN0aXZlVG9vbHNDb3VudCB9KX1cbiAgICAgICAgICAgIDwvU0NDb3VudGVyPlxuICAgICAgICAgICAgPFNDVG9nZ2xlXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBpc0FjdGl2ZT17Y29yQmxvY2tFeHBhbmRlZH1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0Q29yQmxvY2tFeHBhbmRlZCh2ID0+ICF2KX1cbiAgICAgICAgICAgICAgYXJpYS1wcmVzc2VkPXtjb3JCbG9ja0V4cGFuZGVkfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtcbiAgICAgICAgICAgICAgICBjb3JCbG9ja0V4cGFuZGVkXG4gICAgICAgICAgICAgICAgICA/IHQoJ2FjdGlvbnNTZWN0aW9uLnYyLmV4cGFuZENvckRldGFpbHNBcmlhT2ZmJylcbiAgICAgICAgICAgICAgICAgIDogdCgnYWN0aW9uc1NlY3Rpb24udjIuZXhwYW5kQ29yRGV0YWlsc0FyaWFPbicpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFNDVG9nZ2xlVGh1bWIgLz5cbiAgICAgICAgICAgIDwvU0NUb2dnbGU+XG4gICAgICAgICAgPC9TQ0Nvbm5lY3RvclJpZ2h0R3JvdXA+XG4gICAgICAgIDwvU0NDb25uZWN0b3JIZWFkZXI+XG4gICAgICAgIHshY29yQmxvY2tFeHBhbmRlZCAmJiA8U0NDb25uZWN0b3JIaW50Pnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5jb3JDb2xsYXBzZWRIaW50Jyl9PC9TQ0Nvbm5lY3RvckhpbnQ+fVxuICAgICAgICB7Y29yQmxvY2tFeHBhbmRlZCAmJiAoXG4gICAgICAgICAgPFNDRXhwYW5kYWJsZUJsb2NrQm9keT5cbiAgICAgICAgICAgIDxTQ0VudGl0eUxpc3Q+e0VOVElUWV9PUkRFUi5tYXAoZW50aXR5ID0+IHJlbmRlckVudGl0eUNhcmQoZW50aXR5KSl9PC9TQ0VudGl0eUxpc3Q+XG4gICAgICAgICAgPC9TQ0V4cGFuZGFibGVCbG9ja0JvZHk+XG4gICAgICAgICl9XG4gICAgICA8L1NDQ29ubmVjdG9yQ2FyZD5cblxuICAgICAgPFNDU2VjdGlvbkxhYmVsPnt0KCdhY3Rpb25zU2VjdGlvbi52Mi5leHRlcm5hbEJsb2NrVGl0bGUnKX08L1NDU2VjdGlvbkxhYmVsPlxuXG4gICAgICA8U0NDb25uZWN0b3JDYXJkPlxuICAgICAgICA8U0NDb25uZWN0b3JIZWFkZXI+XG4gICAgICAgICAgPFNDQ29ubmVjdG9ySWRlbnRpdHk+XG4gICAgICAgICAgICA8U0NDb25uZWN0b3JJY29uIGFyaWEtaGlkZGVuPlxuICAgICAgICAgICAgICA8Tm90aW9uSWNvbiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICA8L1NDQ29ubmVjdG9ySWNvbj5cbiAgICAgICAgICAgIDxTQ0Nvbm5lY3RvclRleHRHcm91cD5cbiAgICAgICAgICAgICAgPFRydW5jYXRpb25Ub29sdGlwIHRpdGxlPXtOT1RJT05fQ09OTkVDVE9SX0NBVEFMT0cubmFtZX0gbGF5b3V0S2V5PXt0cnVuY2F0aW9uTWVhc3VyZUtleX0+XG4gICAgICAgICAgICAgICAge3RleHRSZWYgPT4gPFNDQ29ubmVjdG9yVGl0bGUgcmVmPXt0ZXh0UmVmfT57Tk9USU9OX0NPTk5FQ1RPUl9DQVRBTE9HLm5hbWV9PC9TQ0Nvbm5lY3RvclRpdGxlPn1cbiAgICAgICAgICAgICAgPC9UcnVuY2F0aW9uVG9vbHRpcD5cbiAgICAgICAgICAgICAgPFRydW5jYXRpb25Ub29sdGlwIHRpdGxlPXt0KCdhY3Rpb25zU2VjdGlvbi52Mi5ub3Rpb24udGFnbGluZScpfSBsYXlvdXRLZXk9e3RydW5jYXRpb25NZWFzdXJlS2V5fT5cbiAgICAgICAgICAgICAgICB7dGV4dFJlZiA9PiAoXG4gICAgICAgICAgICAgICAgICA8U0NDb25uZWN0b3JUYWdsaW5lIHJlZj17dGV4dFJlZn0+e3QoJ2FjdGlvbnNTZWN0aW9uLnYyLm5vdGlvbi50YWdsaW5lJyl9PC9TQ0Nvbm5lY3RvclRhZ2xpbmU+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9UcnVuY2F0aW9uVG9vbHRpcD5cbiAgICAgICAgICAgIDwvU0NDb25uZWN0b3JUZXh0R3JvdXA+XG4gICAgICAgICAgPC9TQ0Nvbm5lY3RvcklkZW50aXR5PlxuICAgICAgICAgIDxTQ0Nvbm5lY3RvclJpZ2h0R3JvdXA+XG4gICAgICAgICAgICA8U0NTdGF0dXNQaWxsIHRvbmU9e25vdGlvbkNvbm5lY3RvckJhZGdlLnRvbmV9Pntub3Rpb25Db25uZWN0b3JCYWRnZS5sYWJlbH08L1NDU3RhdHVzUGlsbD5cbiAgICAgICAgICAgIDxTQ1RvZ2dsZVxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgaXNBY3RpdmU9e2lzTm90aW9uRW5hYmxlZH1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdG9nZ2xlQ29ubmVjdG9yKE5PVElPTl9DT05ORUNUT1JfU0xVRyl9XG4gICAgICAgICAgICAgIGFyaWEtcHJlc3NlZD17aXNOb3Rpb25FbmFibGVkfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtOT1RJT05fQ09OTkVDVE9SX0NBVEFMT0cubmFtZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFNDVG9nZ2xlVGh1bWIgLz5cbiAgICAgICAgICAgIDwvU0NUb2dnbGU+XG4gICAgICAgICAgPC9TQ0Nvbm5lY3RvclJpZ2h0R3JvdXA+XG4gICAgICAgIDwvU0NDb25uZWN0b3JIZWFkZXI+XG5cbiAgICAgICAgeyFpc05vdGlvbkVuYWJsZWQgJiYgPFNDQ29ubmVjdG9ySGludD57dCgnYWN0aW9uc1NlY3Rpb24udjIubm90aW9uLmRpc2FibGVkSGludCcpfTwvU0NDb25uZWN0b3JIaW50Pn1cblxuICAgICAgICB7aXNOb3Rpb25FbmFibGVkICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQ29ubmVjdG9ySGludD57dCgnYWN0aW9uc1NlY3Rpb24udjIubm90aW9uLmVuYWJsZWRIaW50Jyl9PC9TQ0Nvbm5lY3RvckhpbnQ+XG4gICAgICAgICAgICB7Tk9USU9OX0NPTk5FQ1RPUl9DQVRBTE9HLmNhdGVnb3JpZXMubWFwKGNhdGVnb3J5ID0+IHJlbmRlck5vdGlvbkNhdGVnb3J5KGNhdGVnb3J5KSl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L1NDQ29ubmVjdG9yQ2FyZD5cbiAgICA8L1NDUm9vdD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU9BLEtBQUssSUFDVkMsV0FBVyxFQUNYQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUEMsTUFBTSxFQUNOQyxRQUFRLFFBSUgsT0FBTztBQUNkLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FB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
@@ -231,8 +231,4 @@ export var SCCategoryDescription = styled.span.withConfig({
231
231
  displayName: "AbmActionsSectionV2styles__SCCategoryDescription",
232
232
  componentId: "sc-13q9wvj-41"
233
233
  })(["", " font-size:11px;line-height:14px;color:", ";flex:1;min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"], fontWorkSans, TEXT_SECONDARY);
234
- export var SCDocLink = styled.a.withConfig({
235
- displayName: "AbmActionsSectionV2styles__SCDocLink",
236
- componentId: "sc-13q9wvj-42"
237
- })(["", " display:block;padding:8px 14px 10px;border-top:1px solid ", ";font-size:11px;color:", ";text-decoration:none;&:hover{text-decoration:underline;}"], fontWorkSans, BORDER_SOFT, PRIMARY);
238
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJQUklNQVJZIiwiUFJJTUFSWV9TT0ZUIiwiVEVYVF9QUklNQVJZIiwiVEVYVF9TRUNPTkRBUlkiLCJURVhUX01VVEVEIiwiQk9SREVSIiwiQk9SREVSX1NPRlQiLCJTVVJGQUNFIiwiU1VSRkFDRV9BTFQiLCJXQVJOSU5HIiwiV0FSTklOR19TT0ZUIiwiU1VDQ0VTUyIsIlNVQ0NFU1NfU09GVCIsImZvbnRXb3JrU2FucyIsIlNDUm9vdCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NIZWFkZXIiLCJoZWFkZXIiLCJTQ1RpdGxlIiwiaDMiLCJTQ1N1YnRpdGxlIiwicCIsIlNDU2VjdGlvbkxhYmVsIiwiU0NFbnRpdHlMaXN0IiwiU0NFbnRpdHlDYXJkIiwiYXJ0aWNsZSIsIlNDRW50aXR5SGVhZGVyIiwiU0NFbnRpdHlUaXRsZSIsInNwYW4iLCJTQ0NvdW50ZXIiLCJfcmVmIiwiYWN0aXZlIiwiX3JlZjIiLCJTQ0FjdGlvblJvdyIsIl9yZWYzIiwiZGlzYWJsZWQiLCJTQ0FjdGlvbkhlYWRlciIsIl9yZWY0IiwiY2xpY2thYmxlIiwiX3JlZjUiLCJTQ0NoZXZyb25CdXR0b24iLCJidXR0b24iLCJfcmVmNiIsIl9yZWY3Iiwib3BlbiIsIlNDQWN0aW9uTGFiZWxHcm91cCIsIlNDQWN0aW9uTGFiZWwiLCJTQ0NvbWluZ1Nvb25CYWRnZSIsIlNDRGVsZXRlQmFkZ2UiLCJTQ1RvZ2dsZSIsIl9yZWY4IiwiaXNBY3RpdmUiLCJfcmVmOSIsIlNDVG9nZ2xlVGh1bWIiLCJTQ1Rvb2xzTGlzdCIsIlNDVG9vbEl0ZW0iLCJTQ1Rvb2xLaW5kQmFkZ2UiLCJfcmVmMCIsImtpbmQiLCJTQ1Rvb2xUZXh0IiwiU0NUb29sTmFtZSIsIlNDVG9vbERlc2NyaXB0aW9uIiwiU0NFbXB0eVRvb2xzIiwiU0NDb25uZWN0b3JDYXJkIiwiU0NFeHBhbmRhYmxlQmxvY2tCb2R5IiwiU0NDb25uZWN0b3JIZWFkZXIiLCJTQ0Nvbm5lY3RvcklkZW50aXR5IiwiU0NDb25uZWN0b3JJY29uIiwiU0NDb25uZWN0b3JUZXh0R3JvdXAiLCJTQ0Nvbm5lY3RvclRpdGxlIiwiU0NDb25uZWN0b3JUYWdsaW5lIiwiU0NTdGF0dXNQaWxsIiwiX3JlZjEiLCJ0b25lIiwiU0NDb25uZWN0b3JSaWdodEdyb3VwIiwiU0NDb25uZWN0b3JIaW50IiwiU0NDYXRlZ29yeUFjY29yZGlvbiIsIlNDQ2F0ZWdvcnlIZWFkZXIiLCJTQ0NhdGVnb3J5VGV4dEdyb3VwIiwiU0NDYXRlZ29yeVRpdGxlIiwiU0NDYXRlZ29yeURlc2NyaXB0aW9uIiwiU0NEb2NMaW5rIiwiYSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUFjdGlvbnNTZWN0aW9uVjIvQWJtQWN0aW9uc1NlY3Rpb25WMi5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbmNvbnN0IFBSSU1BUlkgPSAncmdiYSgwLCAxMzYsIDIwNCwgMSknXG5jb25zdCBQUklNQVJZX1NPRlQgPSAncmdiYSgwLCAxMzYsIDIwNCwgMC4wOCknXG5jb25zdCBURVhUX1BSSU1BUlkgPSAncmdiYSgzMiwgMzIsIDMyLCAxKSdcbmNvbnN0IFRFWFRfU0VDT05EQVJZID0gJ3JnYmEoMTAyLCAxMDIsIDEwMiwgMSknXG5jb25zdCBURVhUX01VVEVEID0gJ3JnYmEoMTQwLCAxNDAsIDE0MCwgMSknXG5jb25zdCBCT1JERVIgPSAncmdiYSgyMjksIDIyOSwgMjI5LCAxKSdcbmNvbnN0IEJPUkRFUl9TT0ZUID0gJ3JnYmEoMjM5LCAyMzksIDIzOSwgMSknXG5jb25zdCBTVVJGQUNFID0gJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMSknXG5jb25zdCBTVVJGQUNFX0FMVCA9ICdyZ2JhKDI1MCwgMjUwLCAyNTAsIDEpJ1xuY29uc3QgV0FSTklORyA9ICdyZ2JhKDE5OSwgNSwgNSwgMSknXG5jb25zdCBXQVJOSU5HX1NPRlQgPSAncmdiYSgxOTksIDUsIDUsIDAuMDgpJ1xuY29uc3QgU1VDQ0VTUyA9ICdyZ2JhKDYsIDk1LCA3MCwgMSknXG5jb25zdCBTVUNDRVNTX1NPRlQgPSAncmdiYSgyMDksIDI1MCwgMjI5LCAxKSdcblxuY29uc3QgZm9udFdvcmtTYW5zID0gY3NzYFxuICBmb250LWZhbWlseTogJ1dvcmsgU2Fucyc7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1Jvb3QgPSBzdHlsZWQuZGl2YFxuICBmbGV4OiAxIDEgYXV0bztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAxMnB4IDIwcHggMTZweCAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE0cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICA+ICoge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0hlYWRlciA9IHN0eWxlZC5oZWFkZXJgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NUaXRsZSA9IHN0eWxlZC5oM2BcbiAgJHtmb250V29ya1NhbnN9XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICR7VEVYVF9QUklNQVJZfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDU3VidGl0bGUgPSBzdHlsZWQucGBcbiAgJHtmb250V29ya1NhbnN9XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6ICR7VEVYVF9TRUNPTkRBUll9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTZWN0aW9uTGFiZWwgPSBzdHlsZWQuZGl2YFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgbWFyZ2luLXRvcDogNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAke1RFWFRfTVVURUR9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NFbnRpdHlMaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VudGl0eUNhcmQgPSBzdHlsZWQuYXJ0aWNsZWBcbiAgYm9yZGVyOiAxcHggc29saWQgJHtCT1JERVJ9O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6ICR7U1VSRkFDRX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VudGl0eUhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEycHg7XG4gIGJhY2tncm91bmQ6ICR7U1VSRkFDRV9BTFR9O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtCT1JERVJfU09GVH07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VudGl0eVRpdGxlID0gc3R5bGVkLnNwYW5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogJHtURVhUX1BSSU1BUll9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDb3VudGVyID0gc3R5bGVkLnNwYW48eyBhY3RpdmU/OiBib29sZWFuIH0+YFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZDogJHsoeyBhY3RpdmUgfSkgPT4gKGFjdGl2ZSA/IFBSSU1BUllfU09GVCA6ICdyZ2JhKDAsMCwwLDAuMDQpJyl9O1xuICBjb2xvcjogJHsoeyBhY3RpdmUgfSkgPT4gKGFjdGl2ZSA/IFBSSU1BUlkgOiBURVhUX01VVEVEKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FjdGlvblJvdyA9IHN0eWxlZC5kaXY8eyBkaXNhYmxlZD86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtCT1JERVJfU09GVH07XG4gIH1cblxuICAkeyh7IGRpc2FibGVkIH0pID0+XG4gICAgZGlzYWJsZWQgJiZcbiAgICBjc3NgXG4gICAgICBvcGFjaXR5OiAwLjU1O1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FjdGlvbkhlYWRlciA9IHN0eWxlZC5kaXY8eyBjbGlja2FibGU/OiBib29sZWFuIH0+YFxuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBjdXJzb3I6ICR7KHsgY2xpY2thYmxlIH0pID0+IChjbGlja2FibGUgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcpfTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHsoeyBjbGlja2FibGUgfSkgPT4gKGNsaWNrYWJsZSA/IFNVUkZBQ0VfQUxUIDogJ3RyYW5zcGFyZW50Jyl9O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NoZXZyb25CdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgb3BlbjogYm9vbGVhbjsgZGlzYWJsZWQ/OiBib29sZWFuIH0+YFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6ICR7VEVYVF9NVVRFRH07XG4gIGN1cnNvcjogJHsoeyBkaXNhYmxlZCB9KSA9PiAoZGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInKX07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBlYXNlO1xuICB0cmFuc2Zvcm06ICR7KHsgb3BlbiB9KSA9PiAob3BlbiA/ICdyb3RhdGUoMTgwZGVnKScgOiAncm90YXRlKDBkZWcpJyl9O1xuICBmbGV4LXNocmluazogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQWN0aW9uTGFiZWxHcm91cCA9IHN0eWxlZC5kaXZgXG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FjdGlvbkxhYmVsID0gc3R5bGVkLnNwYW5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAke1RFWFRfUFJJTUFSWX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NvbWluZ1Nvb25CYWRnZSA9IHN0eWxlZC5zcGFuYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBwYWRkaW5nOiAxcHggNnB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6ICR7VEVYVF9NVVRFRH07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0RlbGV0ZUJhZGdlID0gc3R5bGVkLnNwYW5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgcGFkZGluZzogMXB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6ICR7V0FSTklOR19TT0ZUfTtcbiAgY29sb3I6ICR7V0FSTklOR307XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1RvZ2dsZSA9IHN0eWxlZC5idXR0b248eyBpc0FjdGl2ZTogYm9vbGVhbiB9PmBcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogMzZweDtcbiAgbWluLXdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/IFBSSU1BUlkgOiAncmdiYSgyMTQsIDIxNCwgMjE0LCAxKScpfTtcbiAgcGFkZGluZzogMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ICR7KHsgaXNBY3RpdmUgfSkgPT4gKGlzQWN0aXZlID8gJ2ZsZXgtZW5kJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xOHMgZWFzZTtcbiAgZmxleC1zaHJpbms6IDA7XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9nZ2xlVGh1bWIgPSBzdHlsZWQuc3BhbmBcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAke1NVUkZBQ0V9O1xuICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9vbHNMaXN0ID0gc3R5bGVkLmRpdmBcbiAgYmFja2dyb3VuZDogJHtTVVJGQUNFfTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Qk9SREVSX1NPRlR9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiA0cHggMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9vbEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiA0cHggMTRweCA0cHggMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sS2luZEJhZGdlID0gc3R5bGVkLnNwYW48eyBraW5kOiAncmVhZCcgfCAnZWRpdCcgfCAnZGVsZXRlJyB8ICdzaWRlX2VmZmVjdCcgfT5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmbGV4LXNocmluazogMDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHBhZGRpbmc6IDFweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgbWluLXdpZHRoOiA1NnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgJHsoeyBraW5kIH0pID0+IHtcbiAgICBpZiAoa2luZCA9PT0gJ2RlbGV0ZScpIHtcbiAgICAgIHJldHVybiBjc3NgXG4gICAgICAgIGJhY2tncm91bmQ6ICR7V0FSTklOR19TT0ZUfTtcbiAgICAgICAgY29sb3I6ICR7V0FSTklOR307XG4gICAgICBgXG4gICAgfVxuICAgIGlmIChraW5kID09PSAnZWRpdCcpIHtcbiAgICAgIHJldHVybiBjc3NgXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjEyKTtcbiAgICAgICAgY29sb3I6IHJnYmEoMTQ2LCA2NCwgMTQsIDEpO1xuICAgICAgYFxuICAgIH1cbiAgICBpZiAoa2luZCA9PT0gJ3NpZGVfZWZmZWN0Jykge1xuICAgICAgcmV0dXJuIGNzc2BcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICAgICAgY29sb3I6ICR7VEVYVF9NVVRFRH07XG4gICAgICBgXG4gICAgfVxuICAgIHJldHVybiBjc3NgXG4gICAgICBiYWNrZ3JvdW5kOiAke1BSSU1BUllfU09GVH07XG4gICAgICBjb2xvcjogJHtQUklNQVJZfTtcbiAgICBgXG4gIH19XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1Rvb2xUZXh0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDZweDtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9vbE5hbWUgPSBzdHlsZWQuc3BhbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICR7VEVYVF9QUklNQVJZfTtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sRGVzY3JpcHRpb24gPSBzdHlsZWQuc3BhbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiAke1RFWFRfTVVURUR9O1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICfCtyc7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgY29sb3I6ICR7Qk9SREVSfTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NFbXB0eVRvb2xzID0gc3R5bGVkLmRpdmBcbiAgJHtmb250V29ya1NhbnN9XG4gIHBhZGRpbmc6IDZweCAxNHB4IDZweCAzOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAke1RFWFRfTVVURUR9O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Nvbm5lY3RvckNhcmQgPSBzdHlsZWQuYXJ0aWNsZWBcbiAgYm9yZGVyOiAxcHggc29saWQgJHtCT1JERVJ9O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6ICR7U1VSRkFDRX07XG4gIG92ZXJmbG93OiBoaWRkZW47XG5gXG5cbi8qKiBDb250ZW5pZG8gYmFqbyBsYSBjYWJlY2VyYSBkZSB1biBibG9xdWUgQ09SIChib3JkZSBzdXBlcmlvciArIGFpcmUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDRXhwYW5kYWJsZUJsb2NrQm9keSA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAke0JPUkRFUl9TT0ZUfTtcbiAgcGFkZGluZzogOHB4IDAgMTBweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ29ubmVjdG9ySGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ29ubmVjdG9ySWRlbnRpdHkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ29ubmVjdG9ySWNvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogJHtTVVJGQUNFX0FMVH07XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Qk9SREVSX1NPRlR9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGNvbG9yOiAke1RFWFRfUFJJTUFSWX07XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDb25uZWN0b3JUZXh0R3JvdXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFweDtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDb25uZWN0b3JUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6ICR7VEVYVF9QUklNQVJZfTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Nvbm5lY3RvclRhZ2xpbmUgPSBzdHlsZWQuc3BhbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiAke1RFWFRfTVVURUR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbmBcblxuZXhwb3J0IGNvbnN0IFNDU3RhdHVzUGlsbCA9IHN0eWxlZC5zcGFuPHsgdG9uZTogJ25ldXRyYWwnIHwgJ3BlbmRpbmcnIHwgJ3N1Y2Nlc3MnIH0+YFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAycHggN3B4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgJHsoeyB0b25lIH0pID0+IHtcbiAgICBpZiAodG9uZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICByZXR1cm4gY3NzYFxuICAgICAgICBiYWNrZ3JvdW5kOiAke1NVQ0NFU1NfU09GVH07XG4gICAgICAgIGNvbG9yOiAke1NVQ0NFU1N9O1xuICAgICAgYFxuICAgIH1cbiAgICBpZiAodG9uZSA9PT0gJ3BlbmRpbmcnKSB7XG4gICAgICByZXR1cm4gY3NzYFxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMTU4LCAxMSwgMC4xNCk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDE0NiwgNjQsIDE0LCAxKTtcbiAgICAgIGBcbiAgICB9XG4gICAgcmV0dXJuIGNzc2BcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICBjb2xvcjogJHtURVhUX01VVEVEfTtcbiAgICBgXG4gIH19XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Nvbm5lY3RvclJpZ2h0R3JvdXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Nvbm5lY3RvckhpbnQgPSBzdHlsZWQucGBcbiAgJHtmb250V29ya1NhbnN9XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxNHB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiAke1RFWFRfU0VDT05EQVJZfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ2F0ZWdvcnlBY2NvcmRpb24gPSBzdHlsZWQuZGl2YFxuICBib3JkZXItdG9wOiAxcHggc29saWQgJHtCT1JERVJfU09GVH07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NhdGVnb3J5SGVhZGVyID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtTVVJGQUNFX0FMVH07XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ2F0ZWdvcnlUZXh0R3JvdXAgPSBzdHlsZWQuZGl2YFxuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDYXRlZ29yeVRpdGxlID0gc3R5bGVkLnNwYW5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAke1RFWFRfUFJJTUFSWX07XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDYXRlZ29yeURlc2NyaXB0aW9uID0gc3R5bGVkLnNwYW5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmb250LXNpemU6IDExcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBjb2xvcjogJHtURVhUX1NFQ09OREFSWX07XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYFxuXG5leHBvcnQgY29uc3QgU0NEb2NMaW5rID0gc3R5bGVkLmFgXG4gICR7Zm9udFdvcmtTYW5zfVxuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogOHB4IDE0cHggMTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Qk9SREVSX1NPRlR9O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAke1BSSU1BUll9O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLFFBQVEsbUJBQW1CO0FBRS9DLElBQU1DLE9BQU8sR0FBRyxzQkFBc0I7QUFDdEMsSUFBTUMsWUFBWSxHQUFHLHlCQUF5QjtBQUM5QyxJQUFNQyxZQUFZLEdBQUcscUJBQXFCO0FBQzFDLElBQU1DLGNBQWMsR0FBRyx3QkFBd0I7QUFDL0MsSUFBTUMsVUFBVSxHQUFHLHdCQUF3QjtBQUMzQyxJQUFNQyxNQUFNLEdBQUcsd0JB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
234
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJQUklNQVJZIiwiUFJJTUFSWV9TT0ZUIiwiVEVYVF9QUklNQVJZIiwiVEVYVF9TRUNPTkRBUlkiLCJURVhUX01VVEVEIiwiQk9SREVSIiwiQk9SREVSX1NPRlQiLCJTVVJGQUNFIiwiU1VSRkFDRV9BTFQiLCJXQVJOSU5HIiwiV0FSTklOR19TT0ZUIiwiU1VDQ0VTUyIsIlNVQ0NFU1NfU09GVCIsImZvbnRXb3JrU2FucyIsIlNDUm9vdCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NIZWFkZXIiLCJoZWFkZXIiLCJTQ1RpdGxlIiwiaDMiLCJTQ1N1YnRpdGxlIiwicCIsIlNDU2VjdGlvbkxhYmVsIiwiU0NFbnRpdHlMaXN0IiwiU0NFbnRpdHlDYXJkIiwiYXJ0aWNsZSIsIlNDRW50aXR5SGVhZGVyIiwiU0NFbnRpdHlUaXRsZSIsInNwYW4iLCJTQ0NvdW50ZXIiLCJfcmVmIiwiYWN0aXZlIiwiX3JlZjIiLCJTQ0FjdGlvblJvdyIsIl9yZWYzIiwiZGlzYWJsZWQiLCJTQ0FjdGlvbkhlYWRlciIsIl9yZWY0IiwiY2xpY2thYmxlIiwiX3JlZjUiLCJTQ0NoZXZyb25CdXR0b24iLCJidXR0b24iLCJfcmVmNiIsIl9yZWY3Iiwib3BlbiIsIlNDQWN0aW9uTGFiZWxHcm91cCIsIlNDQWN0aW9uTGFiZWwiLCJTQ0NvbWluZ1Nvb25CYWRnZSIsIlNDRGVsZXRlQmFkZ2UiLCJTQ1RvZ2dsZSIsIl9yZWY4IiwiaXNBY3RpdmUiLCJfcmVmOSIsIlNDVG9nZ2xlVGh1bWIiLCJTQ1Rvb2xzTGlzdCIsIlNDVG9vbEl0ZW0iLCJTQ1Rvb2xLaW5kQmFkZ2UiLCJfcmVmMCIsImtpbmQiLCJTQ1Rvb2xUZXh0IiwiU0NUb29sTmFtZSIsIlNDVG9vbERlc2NyaXB0aW9uIiwiU0NFbXB0eVRvb2xzIiwiU0NDb25uZWN0b3JDYXJkIiwiU0NFeHBhbmRhYmxlQmxvY2tCb2R5IiwiU0NDb25uZWN0b3JIZWFkZXIiLCJTQ0Nvbm5lY3RvcklkZW50aXR5IiwiU0NDb25uZWN0b3JJY29uIiwiU0NDb25uZWN0b3JUZXh0R3JvdXAiLCJTQ0Nvbm5lY3RvclRpdGxlIiwiU0NDb25uZWN0b3JUYWdsaW5lIiwiU0NTdGF0dXNQaWxsIiwiX3JlZjEiLCJ0b25lIiwiU0NDb25uZWN0b3JSaWdodEdyb3VwIiwiU0NDb25uZWN0b3JIaW50IiwiU0NDYXRlZ29yeUFjY29yZGlvbiIsIlNDQ2F0ZWdvcnlIZWFkZXIiLCJTQ0NhdGVnb3J5VGV4dEdyb3VwIiwiU0NDYXRlZ29yeVRpdGxlIiwiU0NDYXRlZ29yeURlc2NyaXB0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0FibVNlY3Rpb24vQWJtQWN0aW9uc1NlY3Rpb25WMi9BYm1BY3Rpb25zU2VjdGlvblYyLnN0eWxlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcblxuY29uc3QgUFJJTUFSWSA9ICdyZ2JhKDAsIDEzNiwgMjA0LCAxKSdcbmNvbnN0IFBSSU1BUllfU09GVCA9ICdyZ2JhKDAsIDEzNiwgMjA0LCAwLjA4KSdcbmNvbnN0IFRFWFRfUFJJTUFSWSA9ICdyZ2JhKDMyLCAzMiwgMzIsIDEpJ1xuY29uc3QgVEVYVF9TRUNPTkRBUlkgPSAncmdiYSgxMDIsIDEwMiwgMTAyLCAxKSdcbmNvbnN0IFRFWFRfTVVURUQgPSAncmdiYSgxNDAsIDE0MCwgMTQwLCAxKSdcbmNvbnN0IEJPUkRFUiA9ICdyZ2JhKDIyOSwgMjI5LCAyMjksIDEpJ1xuY29uc3QgQk9SREVSX1NPRlQgPSAncmdiYSgyMzksIDIzOSwgMjM5LCAxKSdcbmNvbnN0IFNVUkZBQ0UgPSAncmdiYSgyNTUsIDI1NSwgMjU1LCAxKSdcbmNvbnN0IFNVUkZBQ0VfQUxUID0gJ3JnYmEoMjUwLCAyNTAsIDI1MCwgMSknXG5jb25zdCBXQVJOSU5HID0gJ3JnYmEoMTk5LCA1LCA1LCAxKSdcbmNvbnN0IFdBUk5JTkdfU09GVCA9ICdyZ2JhKDE5OSwgNSwgNSwgMC4wOCknXG5jb25zdCBTVUNDRVNTID0gJ3JnYmEoNiwgOTUsIDcwLCAxKSdcbmNvbnN0IFNVQ0NFU1NfU09GVCA9ICdyZ2JhKDIwOSwgMjUwLCAyMjksIDEpJ1xuXG5jb25zdCBmb250V29ya1NhbnMgPSBjc3NgXG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJztcbmBcblxuZXhwb3J0IGNvbnN0IFNDUm9vdCA9IHN0eWxlZC5kaXZgXG4gIGZsZXg6IDEgMSBhdXRvO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDEycHggMjBweCAxNnB4IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTRweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gID4gKiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDSGVhZGVyID0gc3R5bGVkLmhlYWRlcmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1RpdGxlID0gc3R5bGVkLmgzYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBjb2xvcjogJHtURVhUX1BSSU1BUll9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NTdWJ0aXRsZSA9IHN0eWxlZC5wYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogJHtURVhUX1NFQ09OREFSWX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1NlY3Rpb25MYWJlbCA9IHN0eWxlZC5kaXZgXG4gICR7Zm9udFdvcmtTYW5zfVxuICBtYXJnaW4tdG9wOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICR7VEVYVF9NVVRFRH07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VudGl0eUxpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRW50aXR5Q2FyZCA9IHN0eWxlZC5hcnRpY2xlYFxuICBib3JkZXI6IDFweCBzb2xpZCAke0JPUkRFUn07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHtTVVJGQUNFfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRW50aXR5SGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTJweDtcbiAgYmFja2dyb3VuZDogJHtTVVJGQUNFX0FMVH07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke0JPUkRFUl9TT0ZUfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRW50aXR5VGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGNvbG9yOiAke1RFWFRfUFJJTUFSWX07XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NvdW50ZXIgPSBzdHlsZWQuc3Bhbjx7IGFjdGl2ZT86IGJvb2xlYW4gfT5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBhZGRpbmc6IDJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kOiAkeyh7IGFjdGl2ZSB9KSA9PiAoYWN0aXZlID8gUFJJTUFSWV9TT0ZUIDogJ3JnYmEoMCwwLDAsMC4wNCknKX07XG4gIGNvbG9yOiAkeyh7IGFjdGl2ZSB9KSA9PiAoYWN0aXZlID8gUFJJTUFSWSA6IFRFWFRfTVVURUQpfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQWN0aW9uUm93ID0gc3R5bGVkLmRpdjx7IGRpc2FibGVkPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke0JPUkRFUl9TT0ZUfTtcbiAgfVxuXG4gICR7KHsgZGlzYWJsZWQgfSkgPT5cbiAgICBkaXNhYmxlZCAmJlxuICAgIGNzc2BcbiAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQWN0aW9uSGVhZGVyID0gc3R5bGVkLmRpdjx7IGNsaWNrYWJsZT86IGJvb2xlYW4gfT5gXG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGN1cnNvcjogJHsoeyBjbGlja2FibGUgfSkgPT4gKGNsaWNrYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0Jyl9O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkeyh7IGNsaWNrYWJsZSB9KSA9PiAoY2xpY2thYmxlID8gU1VSRkFDRV9BTFQgOiAndHJhbnNwYXJlbnQnKX07XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ2hldnJvbkJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyBvcGVuOiBib29sZWFuOyBkaXNhYmxlZD86IGJvb2xlYW4gfT5gXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogJHtURVhUX01VVEVEfTtcbiAgY3Vyc29yOiAkeyh7IGRpc2FibGVkIH0pID0+IChkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicpfTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMThzIGVhc2U7XG4gIHRyYW5zZm9ybTogJHsoeyBvcGVuIH0pID0+IChvcGVuID8gJ3JvdGF0ZSgxODBkZWcpJyA6ICdyb3RhdGUoMGRlZyknKX07XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBY3Rpb25MYWJlbEdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQWN0aW9uTGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICR7VEVYVF9QUklNQVJZfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ29taW5nU29vbkJhZGdlID0gc3R5bGVkLnNwYW5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHBhZGRpbmc6IDFweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogJHtURVhUX01VVEVEfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRGVsZXRlQmFkZ2UgPSBzdHlsZWQuc3BhbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBwYWRkaW5nOiAxcHggNnB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogJHtXQVJOSU5HX1NPRlR9O1xuICBjb2xvcjogJHtXQVJOSU5HfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9nZ2xlID0gc3R5bGVkLmJ1dHRvbjx7IGlzQWN0aXZlOiBib29sZWFuIH0+YFxuICBib3JkZXI6IG5vbmU7XG4gIHdpZHRoOiAzNnB4O1xuICBtaW4td2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6ICR7KHsgaXNBY3RpdmUgfSkgPT4gKGlzQWN0aXZlID8gUFJJTUFSWSA6ICdyZ2JhKDIxNCwgMjE0LCAyMTQsIDEpJyl9O1xuICBwYWRkaW5nOiAycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnZmxleC1lbmQnIDogJ2ZsZXgtc3RhcnQnKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE4cyBlYXNlO1xuICBmbGV4LXNocmluazogMDtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NUb2dnbGVUaHVtYiA9IHN0eWxlZC5zcGFuYFxuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6ICR7U1VSRkFDRX07XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sc0xpc3QgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kOiAke1NVUkZBQ0V9O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHtCT1JERVJfU09GVH07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDRweCAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sSXRlbSA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDRweCAxNHB4IDRweCAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogOHB4O1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1Rvb2xLaW5kQmFkZ2UgPSBzdHlsZWQuc3Bhbjx7IGtpbmQ6ICdyZWFkJyB8ICdlZGl0JyB8ICdkZWxldGUnIHwgJ3NpZGVfZWZmZWN0JyB9PmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBmb250LXNpemU6IDlweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgcGFkZGluZzogMXB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBtaW4td2lkdGg6IDU2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAkeyh7IGtpbmQgfSkgPT4ge1xuICAgIGlmIChraW5kID09PSAnZGVsZXRlJykge1xuICAgICAgcmV0dXJuIGNzc2BcbiAgICAgICAgYmFja2dyb3VuZDogJHtXQVJOSU5HX1NPRlR9O1xuICAgICAgICBjb2xvcjogJHtXQVJOSU5HfTtcbiAgICAgIGBcbiAgICB9XG4gICAgaWYgKGtpbmQgPT09ICdlZGl0Jykge1xuICAgICAgcmV0dXJuIGNzc2BcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMTIpO1xuICAgICAgICBjb2xvcjogcmdiYSgxNDYsIDY0LCAxNCwgMSk7XG4gICAgICBgXG4gICAgfVxuICAgIGlmIChraW5kID09PSAnc2lkZV9lZmZlY3QnKSB7XG4gICAgICByZXR1cm4gY3NzYFxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgICBjb2xvcjogJHtURVhUX01VVEVEfTtcbiAgICAgIGBcbiAgICB9XG4gICAgcmV0dXJuIGNzc2BcbiAgICAgIGJhY2tncm91bmQ6ICR7UFJJTUFSWV9TT0ZUfTtcbiAgICAgIGNvbG9yOiAke1BSSU1BUll9O1xuICAgIGBcbiAgfX1cbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9vbFRleHQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNnB4O1xuICBtaW4td2lkdGg6IDA7XG4gIGZsZXg6IDE7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NUb29sTmFtZSA9IHN0eWxlZC5zcGFuYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogJHtURVhUX1BSSU1BUll9O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgZmxleC1zaHJpbms6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1Rvb2xEZXNjcmlwdGlvbiA9IHN0eWxlZC5zcGFuYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgY29sb3I6ICR7VEVYVF9NVVRFRH07XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ8K3JztcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICBjb2xvcjogJHtCT1JERVJ9O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0VtcHR5VG9vbHMgPSBzdHlsZWQuZGl2YFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgcGFkZGluZzogNnB4IDE0cHggNnB4IDM4cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7VEVYVF9NVVRFRH07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ29ubmVjdG9yQ2FyZCA9IHN0eWxlZC5hcnRpY2xlYFxuICBib3JkZXI6IDFweCBzb2xpZCAke0JPUkRFUn07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHtTVVJGQUNFfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmBcblxuLyoqIENvbnRlbmlkbyBiYWpvIGxhIGNhYmVjZXJhIGRlIHVuIGJsb3F1ZSBDT1IgKGJvcmRlIHN1cGVyaW9yICsgYWlyZSkuICovXG5leHBvcnQgY29uc3QgU0NFeHBhbmRhYmxlQmxvY2tCb2R5ID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7Qk9SREVSX1NPRlR9O1xuICBwYWRkaW5nOiA4cHggMCAxMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDb25uZWN0b3JIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDb25uZWN0b3JJZGVudGl0eSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NDb25uZWN0b3JJY29uID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiAke1NVUkZBQ0VfQUxUfTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtCT1JERVJfU09GVH07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgY29sb3I6ICR7VEVYVF9QUklNQVJZfTtcblxuICBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Nvbm5lY3RvclRleHRHcm91cCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXB4O1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Nvbm5lY3RvclRpdGxlID0gc3R5bGVkLnNwYW5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBjb2xvcjogJHtURVhUX1BSSU1BUll9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ29ubmVjdG9yVGFnbGluZSA9IHN0eWxlZC5zcGFuYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgY29sb3I6ICR7VEVYVF9NVVRFRH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTdGF0dXNQaWxsID0gc3R5bGVkLnNwYW48eyB0b25lOiAnbmV1dHJhbCcgfCAncGVuZGluZycgfCAnc3VjY2VzcycgfT5gXG4gICR7Zm9udFdvcmtTYW5zfVxuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmc6IDJweCA3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAkeyh7IHRvbmUgfSkgPT4ge1xuICAgIGlmICh0b25lID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHJldHVybiBjc3NgXG4gICAgICAgIGJhY2tncm91bmQ6ICR7U1VDQ0VTU19TT0ZUfTtcbiAgICAgICAgY29sb3I6ICR7U1VDQ0VTU307XG4gICAgICBgXG4gICAgfVxuICAgIGlmICh0b25lID09PSAncGVuZGluZycpIHtcbiAgICAgIHJldHVybiBjc3NgXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjE0KTtcbiAgICAgICAgY29sb3I6IHJnYmEoMTQ2LCA2NCwgMTQsIDEpO1xuICAgICAgYFxuICAgIH1cbiAgICByZXR1cm4gY3NzYFxuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICAgIGNvbG9yOiAke1RFWFRfTVVURUR9O1xuICAgIGBcbiAgfX1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQ29ubmVjdG9yUmlnaHRHcm91cCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ29ubmVjdG9ySGludCA9IHN0eWxlZC5wYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDE0cHggMTBweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgY29sb3I6ICR7VEVYVF9TRUNPTkRBUll9O1xuYFxuXG5leHBvcnQgY29uc3QgU0NDYXRlZ29yeUFjY29yZGlvbiA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAke0JPUkRFUl9TT0ZUfTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQ2F0ZWdvcnlIZWFkZXIgPSBzdHlsZWQuYnV0dG9uYFxuICAke2ZvbnRXb3JrU2Fuc31cbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAke1NVUkZBQ0VfQUxUfTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NDYXRlZ29yeVRleHRHcm91cCA9IHN0eWxlZC5kaXZgXG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NhdGVnb3J5VGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICR7VEVYVF9QUklNQVJZfTtcbiAgZmxleC1zaHJpbms6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0NhdGVnb3J5RGVzY3JpcHRpb24gPSBzdHlsZWQuc3BhbmBcbiAgJHtmb250V29ya1NhbnN9XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiAke1RFWFRfU0VDT05EQVJZfTtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxRQUFRLG1CQUFtQjtBQUUvQyxJQUFNQyxPQUFPLEdBQUcsc0JBQXNCO0FBQ3RDLElBQU1DLFlBQVksR0FBRyx5QkFBeUI7QUFDOUMsSUFBTUMsWUFBWSxHQUFHLHFCQUFxQjtBQUMxQyxJQUFNQyxjQUFjLEdBQUcsd0JBQXdCO0FBQy9DLElBQU1DLFVBQVUsR0FBRyx3QkFBd0I7QUFDM0MsSUFBTUMsTUFBTSxHQUFHLHdCQUF3QjtBQUN2QyxJQUFNQyxXQUFXLEdBQUcsd0JBQXdCO0FBQzVDLElBQU1DLE9BQU8sR0FBRyx3QkFBd0I7QUFDeEMsSUFBTUMsV0FBVyxHQUFHLHdCQUF3QjtBQUM1QyxJQUFNQyxPQUFPLEdBQUcsb0JBQW9CO0FBQ3BDLElBQU1DLFlBQVksR0FBRyx1QkFBdUI7QUFDNUMsSUFBTUMsT0FBTyxHQUFHLG9CQUFvQjtBQUNwQyxJQUFNQyxZQUFZLEdBQUcsd0JBQXdCO0FBRTdDLElBQU1DLFlBQVksR0FBR2QsR0FBRyw4QkFFdkI7QUFFRCxPQUFPLElBQU1lLE1BQU0sR0FBR2hCLE1BQU0sQ0FBQ2lCLEdB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