@projectcor/maia-components 2.11.26-11 → 2.11.26-3

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.
@@ -1,20 +1,25 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
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; }
4
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; }
5
- /* eslint-disable @typescript-eslint/no-explicit-any */
6
- import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
6
+ import { useState, useEffect, useRef, useCallback } from 'react';
7
7
  import { Alert } from '@projectcor/icons/lib/components/Alert';
8
8
  import { CheckCircle } from '@projectcor/icons/lib/components/CheckCircle';
9
9
  import { CrossCircle } from '@projectcor/icons/lib/components/CrossCircle';
10
10
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
11
11
  import { useTranslation } from 'react-i18next';
12
- import { SCApprovalBox, SCABHeader, SCABTitle, SCABDescription, SCABActionsList, SCABActionItem, SCABActionName, SCABButtonsContainer, SCABButton, SCABStatusBadge, SCABStatusWarningIcon } from './ApprovalBox.styles';
12
+ import { SCApprovalBox, SCABHeader, SCABTitle, SCABDescription, SCABActionsList, SCABActionItem, SCABActionName, SCABActionDescription, SCABButtonsContainer, SCABButton, SCABStatusBadge, SCABStatusWarningIcon } from './ApprovalBox.styles';
13
13
  import { SECTIONS } from '../../../constants/config';
14
14
  import { useGlobalContext } from '../../../context/global-context';
15
15
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
16
- import { buildHitlActionTypeList, getHitlAnalyticsAgentType, hitlBatchIncludesCreateAgent, normalizeHitlToolName } from '../../../utils/hitlAnalytics';
17
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
16
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
17
+ /** Alineado con TOOL_PERMISSION_MAP / TOOL_DISPLAY_NAMES en maia (snake_case). */
18
+ function normalizeHitlToolName(toolName) {
19
+ var n = (toolName || 'unknown').toLowerCase().trim();
20
+ if (n === 'assign') return 'task_assign';
21
+ return n;
22
+ }
18
23
  function formatToolNameFallback(toolName) {
19
24
  var normalized = normalizeHitlToolName(toolName || 'unknown');
20
25
  var withSpaces = normalized.replace(/_/g, ' ').trim();
@@ -22,11 +27,11 @@ function formatToolNameFallback(toolName) {
22
27
  return withSpaces.charAt(0).toUpperCase() + withSpaces.slice(1);
23
28
  }
24
29
  function getActionLabel(t, toolName, displayName) {
30
+ if (displayName !== null && displayName !== void 0 && displayName.trim()) return displayName;
25
31
  var normalizedToolName = normalizeHitlToolName(toolName || 'unknown');
26
32
  var translationKey = "approvalBox.actions.".concat(normalizedToolName);
27
33
  var translatedLabel = t(translationKey);
28
34
  if (translatedLabel !== translationKey) return translatedLabel;
29
- if (displayName !== null && displayName !== void 0 && displayName.trim()) return displayName;
30
35
  return formatToolNameFallback(normalizedToolName);
31
36
  }
32
37
  function getDeliverableMode(toolArgs) {
@@ -50,10 +55,13 @@ function getSpecialActionCopy(t, action) {
50
55
  }
51
56
  return {};
52
57
  }
53
- function buildHitlAnalyticsPayload(agentTypeForEvent, actions) {
58
+ function buildHitlAnalyticsPayload(agentType, actions) {
59
+ var actionTypes = _toConsumableArray(new Set(actions.map(function (a) {
60
+ return normalizeHitlToolName(a.tool_name);
61
+ }))).sort();
54
62
  return {
55
- agent_type: agentTypeForEvent,
56
- action_type: buildHitlActionTypeList(actions)
63
+ agent_type: agentType !== null && agentType !== void 0 ? agentType : 'custom',
64
+ action_type: actionTypes.join(',')
57
65
  };
58
66
  }
59
67
  export var ApprovalBox = function ApprovalBox(_ref) {
@@ -82,13 +90,6 @@ export var ApprovalBox = function ApprovalBox(_ref) {
82
90
  agent = _useGlobalContext.agent;
83
91
  var eventAmplitude = useEvent();
84
92
  var lastHitlImpressionKeyRef = useRef(null);
85
- var userInitiatedHitlDecisionRef = useRef(false);
86
- var autoResolutionTrackedKeyRef = useRef(null);
87
- var hitlBatchKey = useMemo(function () {
88
- return hitlInstanceId !== null && hitlInstanceId !== void 0 ? hitlInstanceId : actions.map(function (a) {
89
- return "".concat(a.thread_id, ":").concat(a.tool_call_id);
90
- }).sort().join('|');
91
- }, [hitlInstanceId, actions]);
92
93
 
93
94
  // Sincronizar localStatus con el prop status cuando cambia desde el padre (solo por value, evita bucles)
94
95
  useEffect(function () {
@@ -96,48 +97,27 @@ export var ApprovalBox = function ApprovalBox(_ref) {
96
97
  return prev !== status ? status : prev;
97
98
  });
98
99
  }, [status]);
99
- var hitlAnalyticsAgentType = getHitlAnalyticsAgentType(agent);
100
+ var agentType = agent === null || agent === void 0 ? void 0 : agent.type;
101
+ var isCompactManualApproval = manualApprovalDetected && localStatus === 'approved';
100
102
 
101
103
  // CA1: card de confirmación HITL visible (solo pendiente, no histórico ya resuelto)
102
104
  useEffect(function () {
103
105
  if (localStatus !== 'pending' || !actions.length) return;
104
- var impressionKey = hitlBatchKey;
106
+ var impressionKey = hitlInstanceId !== null && hitlInstanceId !== void 0 ? hitlInstanceId : actions.map(function (a) {
107
+ return "".concat(a.thread_id, ":").concat(a.tool_call_id);
108
+ }).sort().join('|');
105
109
  if (lastHitlImpressionKeyRef.current === impressionKey) return;
106
110
  lastHitlImpressionKeyRef.current = impressionKey;
107
- eventAmplitude(EVENTS.aiChatHitl, buildHitlAnalyticsPayload(hitlAnalyticsAgentType, actions));
108
- }, [eventAmplitude, hitlAnalyticsAgentType, hitlBatchKey, localStatus, actions.length]);
111
+ eventAmplitude(EVENTS.aiChatHitl, buildHitlAnalyticsPayload(agentType, actions));
112
+ }, [actions, agentType, eventAmplitude, localStatus, hitlInstanceId]);
109
113
  var trackHitlDecision = useCallback(function (decision) {
110
- var resolutionSource = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'user';
111
- eventAmplitude(EVENTS.aiChatHitlOption, _objectSpread(_objectSpread({}, buildHitlAnalyticsPayload(hitlAnalyticsAgentType, actions)), {}, {
112
- decision: decision,
113
- resolution_source: resolutionSource
114
+ eventAmplitude(EVENTS.aiChatHitlOption, _objectSpread(_objectSpread({}, buildHitlAnalyticsPayload(agentType, actions)), {}, {
115
+ decision: decision
114
116
  }));
115
- }, [actions, hitlAnalyticsAgentType, eventAmplitude]);
116
- useEffect(function () {
117
- userInitiatedHitlDecisionRef.current = false;
118
- autoResolutionTrackedKeyRef.current = null;
119
- }, [hitlBatchKey]);
120
-
121
- /**
122
- * Resolución sin clic (p. ej. backend ejecuta la herramienta sola): hubo impresión HITL
123
- * para este lote y el padre pasó a approved/rejected sin que el usuario pulsara aprobar/denegar.
124
- */
125
- useEffect(function () {
126
- if (status === 'pending' || !actions.length) return;
127
- if (lastHitlImpressionKeyRef.current !== hitlBatchKey) return;
128
- if (userInitiatedHitlDecisionRef.current) return;
129
- if (autoResolutionTrackedKeyRef.current === hitlBatchKey) return;
130
- autoResolutionTrackedKeyRef.current = hitlBatchKey;
131
- var isAccept = status === 'approved';
132
- if (isAccept && hitlBatchIncludesCreateAgent(actions)) return;
133
- trackHitlDecision(isAccept ? 'accept' : 'deny', 'auto');
134
- }, [actions, hitlBatchKey, status, trackHitlDecision]);
117
+ }, [actions, agentType, eventAmplitude]);
135
118
  var handleApprove = function handleApprove() {
136
119
  if (isLoading || localStatus !== 'pending') return;
137
- userInitiatedHitlDecisionRef.current = true;
138
- if (!hitlBatchIncludesCreateAgent(actions)) {
139
- trackHitlDecision('accept', 'user');
140
- }
120
+ trackHitlDecision('accept');
141
121
  setLocalStatus('approved');
142
122
  onApprove(actions.map(function (a) {
143
123
  return a.thread_id;
@@ -145,29 +125,33 @@ export var ApprovalBox = function ApprovalBox(_ref) {
145
125
  };
146
126
  var handleReject = function handleReject() {
147
127
  if (isLoading || localStatus !== 'pending') return;
148
- userInitiatedHitlDecisionRef.current = true;
149
- trackHitlDecision('deny', 'user');
128
+ trackHitlDecision('deny');
150
129
  setLocalStatus('rejected');
151
130
  onReject(actions.map(function (a) {
152
131
  return a.thread_id;
153
132
  }));
154
133
  };
155
134
  return /*#__PURE__*/_jsxs(SCApprovalBox, {
156
- children: [/*#__PURE__*/_jsx(SCABHeader, {
157
- children: /*#__PURE__*/_jsx(SCABTitle, {
158
- children: t('approvalBox.title')
159
- })
160
- }), /*#__PURE__*/_jsx(SCABDescription, {
161
- children: t('approvalBox.description')
135
+ children: [!isCompactManualApproval && /*#__PURE__*/_jsxs(_Fragment, {
136
+ children: [/*#__PURE__*/_jsx(SCABHeader, {
137
+ children: /*#__PURE__*/_jsx(SCABTitle, {
138
+ children: t('approvalBox.title')
139
+ })
140
+ }), /*#__PURE__*/_jsx(SCABDescription, {
141
+ children: t('approvalBox.description')
142
+ })]
162
143
  }), /*#__PURE__*/_jsx(SCABActionsList, {
163
144
  $expanded: isExpanded,
164
145
  children: actions.map(function (action) {
165
146
  var specialCopy = getSpecialActionCopy(t, action);
166
- var label = specialCopy.title || getActionLabel(t, action.tool_name, action.display_name);
167
- return /*#__PURE__*/_jsx(SCABActionItem, {
168
- children: /*#__PURE__*/_jsx(SCABActionName, {
169
- children: label
170
- })
147
+ var actionLabel = specialCopy.title || getActionLabel(t, action.tool_name, action.display_name);
148
+ var actionDescription = specialCopy.description;
149
+ return /*#__PURE__*/_jsxs(SCABActionItem, {
150
+ children: [/*#__PURE__*/_jsx(SCABActionName, {
151
+ children: actionLabel
152
+ }), actionDescription && /*#__PURE__*/_jsx(SCABActionDescription, {
153
+ children: actionDescription
154
+ })]
171
155
  }, action.thread_id);
172
156
  })
173
157
  }), localStatus === 'pending' && !isProjectDeleted && /*#__PURE__*/_jsxs(SCABButtonsContainer, {
@@ -186,28 +170,28 @@ export var ApprovalBox = function ApprovalBox(_ref) {
186
170
  $status: localStatus,
187
171
  children: localStatus === 'approved' ? /*#__PURE__*/_jsxs(_Fragment, {
188
172
  children: [/*#__PURE__*/_jsx(CheckCircle, {
189
- width: 14,
190
- height: 14,
191
- color: "#5d5d5c"
173
+ width: 22,
174
+ height: 22,
175
+ color: "#008400"
192
176
  }), t('approvalBox.status.approved'), manualApprovalDetected && /*#__PURE__*/_jsx(Tooltip, {
193
177
  title: warningMessage || t('approvalBox.manualApprovalWarning'),
194
178
  placement: "right",
195
179
  children: /*#__PURE__*/_jsx(SCABStatusWarningIcon, {
196
180
  children: /*#__PURE__*/_jsx(Alert, {
197
181
  color: "#EAA11A",
198
- width: "13px",
199
- height: "13px"
182
+ width: "14px",
183
+ height: "14px"
200
184
  })
201
185
  })
202
186
  })]
203
187
  }) : /*#__PURE__*/_jsxs(_Fragment, {
204
188
  children: [/*#__PURE__*/_jsx(CrossCircle, {
205
- width: 14,
206
- height: 14,
207
- color: "#8a8a89"
189
+ width: 22,
190
+ height: 22,
191
+ color: "#C70505"
208
192
  }), t('approvalBox.status.denied')]
209
193
  })
210
194
  })]
211
195
  });
212
196
  };
213
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNFQ1RJT05TIiwidXNlR2xvYmFsQ29udGV4dCIsIkVWRU5UUyIsInVzZUV2ZW50IiwiYnVpbGRIaXRsQWN0aW9uVHlwZUxpc3QiLCJnZXRIaXRsQW5hbHl0aWNzQWdlbnRUeXBlIiwiaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudCIsIm5vcm1hbGl6ZUhpdGxUb29sTmFtZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImZvcm1hdFRvb2xOYW1lRmFsbGJhY2siLCJ0b29sTmFtZSIsIm5vcm1hbGl6ZWQiLCJ3aXRoU3BhY2VzIiwicmVwbGFjZSIsInRyaW0iLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZ2V0QWN0aW9uTGFiZWwiLCJ0IiwiZGlzcGxheU5hbWUiLCJub3JtYWxpemVkVG9vbE5hbWUiLCJ0cmFuc2xhdGlvbktleSIsImNvbmNhdCIsInRyYW5zbGF0ZWRMYWJlbCIsImdldERlbGl2ZXJhYmxlTW9kZSIsInRvb2xBcmdzIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiZGVsaXZlcmFibGVUeXBlIiwiZGVsaXZlcmFibGVfdHlwZSIsInRvTG93ZXJDYXNlIiwiZ2V0U3BlY2lhbEFjdGlvbkNvcHkiLCJhY3Rpb24iLCJ0b29sX25hbWUiLCJkZWxpdmVyYWJsZU1vZGUiLCJ0b29sX2FyZ3MiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiaW5jbHVkZXMiLCJidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkIiwiYWdlbnRUeXBlRm9yRXZlbnQiLCJhY3Rpb25zIiwiYWdlbnRfdHlwZSIsImFjdGlvbl90eXBlIiwiQXBwcm92YWxCb3giLCJfcmVmIiwib25BcHByb3ZlIiwib25SZWplY3QiLCJfcmVmJHN0YXR1cyIsInN0YXR1cyIsIl9yZWYkaXNMb2FkaW5nIiwiaXNMb2FkaW5nIiwiX3JlZiRpc1Byb2plY3REZWxldGVkIiwiaXNQcm9qZWN0RGVsZXRlZCIsIl9yZWYkaXNFeHBhbmRlZCIsImlzRXhwYW5kZWQiLCJoaXRsSW5zdGFuY2VJZCIsIndhcm5pbmdNZXNzYWdlIiwiX3JlZiRtYW51YWxBcHByb3ZhbERlIiwibWFudWFsQXBwcm92YWxEZXRlY3RlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImxvY2FsU3RhdHVzIiwic2V0TG9jYWxTdGF0dXMiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiZXZlbnRBbXBsaXR1ZGUiLCJsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYiLCJ1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmIiwiYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmIiwiaGl0bEJhdGNoS2V5IiwibWFwIiwiYSIsInRocmVhZF9pZCIsInRvb2xfY2FsbF9pZCIsInNvcnQiLCJqb2luIiwicHJldiIsImhpdGxBbmFseXRpY3NBZ2VudFR5cGUiLCJsZW5ndGgiLCJpbXByZXNzaW9uS2V5IiwiY3VycmVudCIsImFpQ2hhdEhpdGwiLCJ0cmFja0hpdGxEZWNpc2lvbiIsImRlY2lzaW9uIiwicmVzb2x1dGlvblNvdXJjZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImFpQ2hhdEhpdGxPcHRpb24iLCJfb2JqZWN0U3ByZWFkIiwicmVzb2x1dGlvbl9zb3VyY2UiLCJpc0FjY2VwdCIsImhhbmRsZUFwcHJvdmUiLCJoYW5kbGVSZWplY3QiLCJjaGlsZHJlbiIsIiRleHBhbmRlZCIsInNwZWNpYWxDb3B5IiwibGFiZWwiLCJkaXNwbGF5X25hbWUiLCIkdmFyaWFudCIsIm9uQ2xpY2siLCIkZGlzYWJsZWQiLCIkc3RhdHVzIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInBsYWNlbWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0FsZXJ0J1xuaW1wb3J0IHsgQ2hlY2tDaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVja0NpcmNsZSdcbmltcG9ydCB7IENyb3NzQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3NDaXJjbGUnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7XG4gIFNDQXBwcm92YWxCb3gsXG4gIFNDQUJIZWFkZXIsXG4gIFNDQUJUaXRsZSxcbiAgU0NBQkRlc2NyaXB0aW9uLFxuICBTQ0FCQWN0aW9uc0xpc3QsXG4gIFNDQUJBY3Rpb25JdGVtLFxuICBTQ0FCQWN0aW9uTmFtZSxcbiAgU0NBQkJ1dHRvbnNDb250YWluZXIsXG4gIFNDQUJCdXR0b24sXG4gIFNDQUJTdGF0dXNCYWRnZSxcbiAgU0NBQlN0YXR1c1dhcm5pbmdJY29uLFxufSBmcm9tICcuL0FwcHJvdmFsQm94LnN0eWxlcydcbmltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHtcbiAgYnVpbGRIaXRsQWN0aW9uVHlwZUxpc3QsXG4gIGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUsXG4gIGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQsXG4gIG5vcm1hbGl6ZUhpdGxUb29sTmFtZSxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcblxuZnVuY3Rpb24gZm9ybWF0VG9vbE5hbWVGYWxsYmFjayh0b29sTmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB3aXRoU3BhY2VzID0gbm9ybWFsaXplZC5yZXBsYWNlKC9fL2csICcgJykudHJpbSgpXG4gIGlmICghd2l0aFNwYWNlcykgcmV0dXJuICdVbmtub3duJ1xuICByZXR1cm4gd2l0aFNwYWNlcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdpdGhTcGFjZXMuc2xpY2UoMSlcbn1cblxuZnVuY3Rpb24gZ2V0QWN0aW9uTGFiZWwodDogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcsIHRvb2xOYW1lPzogc3RyaW5nLCBkaXNwbGF5TmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRUb29sTmFtZSA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZSh0b29sTmFtZSB8fCAndW5rbm93bicpXG4gIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gYGFwcHJvdmFsQm94LmFjdGlvbnMuJHtub3JtYWxpemVkVG9vbE5hbWV9YFxuICBjb25zdCB0cmFuc2xhdGVkTGFiZWwgPSB0KHRyYW5zbGF0aW9uS2V5KVxuXG4gIGlmICh0cmFuc2xhdGVkTGFiZWwgIT09IHRyYW5zbGF0aW9uS2V5KSByZXR1cm4gdHJhbnNsYXRlZExhYmVsXG4gIGlmIChkaXNwbGF5TmFtZT8udHJpbSgpKSByZXR1cm4gZGlzcGxheU5hbWVcbiAgcmV0dXJuIGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sobm9ybWFsaXplZFRvb2xOYW1lKVxufVxuXG5mdW5jdGlvbiBnZXREZWxpdmVyYWJsZU1vZGUodG9vbEFyZ3M6IFBlbmRpbmdBY3Rpb25bJ3Rvb2xfYXJncyddKTogc3RyaW5nIHtcbiAgaWYgKCF0b29sQXJncyB8fCBBcnJheS5pc0FycmF5KHRvb2xBcmdzKSkgcmV0dXJuICcnXG4gIHJldHVybiBTdHJpbmcodG9vbEFyZ3MuZGVsaXZlcmFibGVUeXBlIHx8IHRvb2xBcmdzLmRlbGl2ZXJhYmxlX3R5cGUgfHwgJycpLnRvTG93ZXJDYXNlKClcbn1cblxuZnVuY3Rpb24gZ2V0U3BlY2lhbEFjdGlvbkNvcHkoXG4gIHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLFxuICBhY3Rpb246IFBlbmRpbmdBY3Rpb25cbik6IHsgdGl0bGU/OiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0ge1xuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUoYWN0aW9uLnRvb2xfbmFtZSlcbiAgY29uc3QgZGVsaXZlcmFibGVNb2RlID0gZ2V0RGVsaXZlcmFibGVNb2RlKGFjdGlvbi50b29sX2FyZ3MpXG5cbiAgaWYgKG5vcm1hbGl6ZWRUb29sTmFtZSA9PT0gJ2NyZWF0ZV9yZXdvcmsnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLmNyZWF0ZVJld29yay50aXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwuY3JlYXRlUmV3b3JrLmRlc2NyaXB0aW9uJyksXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vcm1hbGl6ZWRUb29sTmFtZSA9PT0gJ3VwZGF0ZV9kZWxpdmVyYWJsZScgJiYgWydjaGlsZHJlbicsICdjaGVja2JveCddLmluY2x1ZGVzKGRlbGl2ZXJhYmxlTW9kZSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwudXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbi50aXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwudXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbi5kZXNjcmlwdGlvbicpLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7fVxufVxuXG5mdW5jdGlvbiBidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGFnZW50VHlwZUZvckV2ZW50OiBzdHJpbmcsIGFjdGlvbnM6IFBlbmRpbmdBY3Rpb25bXSkge1xuICByZXR1cm4ge1xuICAgIGFnZW50X3R5cGU6IGFnZW50VHlwZUZvckV2ZW50LFxuICAgIGFjdGlvbl90eXBlOiBidWlsZEhpdGxBY3Rpb25UeXBlTGlzdChhY3Rpb25zKSxcbiAgfVxufVxuXG5pbnRlcmZhY2UgQXBwcm92YWxCb3hQcm9wcyB7XG4gIGFjdGlvbnM6IFBlbmRpbmdBY3Rpb25bXVxuICBvbkFwcHJvdmU6ICh0aHJlYWRJZHM6IHN0cmluZ1tdKSA9PiB2b2lkXG4gIG9uUmVqZWN0OiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBzdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBpc0xvYWRpbmc/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0L3Byb3llY3RvIGVzdMOhIGVsaW1pbmFkbywgc2Ugb2N1bHRhbiBsb3MgYm90b25lcyBkZSBhcHJvYmFyL3JlY2hhemFyICovXG4gIGlzUHJvamVjdERlbGV0ZWQ/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0IGVzdMOhIGV4cGFuZGlkbyAodHJ1ZSkgbyBjb2xhcHNhZG8gKGZhbHNlKS4gQWZlY3RhIGVsIGFuY2hvIGRlbCBjb250ZW5lZG9yLiAqL1xuICBpc0V4cGFuZGVkPzogYm9vbGVhblxuICAvKiogSWQgZXN0YWJsZSBwb3IgbG90ZSBISVRMIChwLiBlai4gb3JpZ2luYWxfdGhyZWFkX2lkKSBwYXJhIGVsIGV2ZW50byBkZSBpbXByZXNpw7NuICovXG4gIGhpdGxJbnN0YW5jZUlkPzogc3RyaW5nXG4gIHdhcm5pbmdNZXNzYWdlPzogc3RyaW5nXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBBcHByb3ZhbEJveCA9ICh7XG4gIGFjdGlvbnMsXG4gIG9uQXBwcm92ZSxcbiAgb25SZWplY3QsXG4gIHN0YXR1cyA9ICdwZW5kaW5nJyxcbiAgaXNMb2FkaW5nID0gZmFsc2UsXG4gIGlzUHJvamVjdERlbGV0ZWQgPSBmYWxzZSxcbiAgaXNFeHBhbmRlZCA9IGZhbHNlLFxuICBoaXRsSW5zdGFuY2VJZCxcbiAgd2FybmluZ01lc3NhZ2UsXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgPSBmYWxzZSxcbn06IEFwcHJvdmFsQm94UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJXSlcbiAgY29uc3QgW2xvY2FsU3RhdHVzLCBzZXRMb2NhbFN0YXR1c10gPSB1c2VTdGF0ZTwncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJz4oc3RhdHVzKVxuICBjb25zdCB7IGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBoaXRsQmF0Y2hLZXkgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBoaXRsSW5zdGFuY2VJZCA/P1xuICAgICAgYWN0aW9uc1xuICAgICAgICAubWFwKGEgPT4gYCR7YS50aHJlYWRfaWR9OiR7YS50b29sX2NhbGxfaWR9YClcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAuam9pbignfCcpLFxuICAgIFtoaXRsSW5zdGFuY2VJZCwgYWN0aW9uc11cbiAgKVxuXG4gIC8vIFNpbmNyb25pemFyIGxvY2FsU3RhdHVzIGNvbiBlbCBwcm9wIHN0YXR1cyBjdWFuZG8gY2FtYmlhIGRlc2RlIGVsIHBhZHJlIChzb2xvIHBvciB2YWx1ZSwgZXZpdGEgYnVjbGVzKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExvY2FsU3RhdHVzKHByZXYgPT4gKHByZXYgIT09IHN0YXR1cyA/IHN0YXR1cyA6IHByZXYpKVxuICB9LCBbc3RhdHVzXSlcblxuICBjb25zdCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlID0gZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZShhZ2VudClcblxuICAvLyBDQTE6IGNhcmQgZGUgY29uZmlybWFjacOzbiBISVRMIHZpc2libGUgKHNvbG8gcGVuZGllbnRlLCBubyBoaXN0w7NyaWNvIHlhIHJlc3VlbHRvKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnIHx8ICFhY3Rpb25zLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgaW1wcmVzc2lvbktleSA9IGhpdGxCYXRjaEtleVxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCA9PT0gaW1wcmVzc2lvbktleSkgcmV0dXJuXG4gICAgbGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPSBpbXByZXNzaW9uS2V5XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGwsIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgYWN0aW9ucykpXG4gIH0sIFtldmVudEFtcGxpdHVkZSwgaGl0bEFuYWx5dGljc0FnZW50VHlwZSwgaGl0bEJhdGNoS2V5LCBsb2NhbFN0YXR1cywgYWN0aW9ucy5sZW5ndGhdKVxuXG4gIGNvbnN0IHRyYWNrSGl0bERlY2lzaW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKGRlY2lzaW9uOiAnYWNjZXB0JyB8ICdkZW55JywgcmVzb2x1dGlvblNvdXJjZTogJ3VzZXInIHwgJ2F1dG8nID0gJ3VzZXInKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0SGl0bE9wdGlvbiwge1xuICAgICAgICAuLi5idWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGFjdGlvbnMpLFxuICAgICAgICBkZWNpc2lvbixcbiAgICAgICAgcmVzb2x1dGlvbl9zb3VyY2U6IHJlc29sdXRpb25Tb3VyY2UsXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2FjdGlvbnMsIGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIGF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZi5jdXJyZW50ID0gbnVsbFxuICB9LCBbaGl0bEJhdGNoS2V5XSlcblxuICAvKipcbiAgICogUmVzb2x1Y2nDs24gc2luIGNsaWMgKHAuIGVqLiBiYWNrZW5kIGVqZWN1dGEgbGEgaGVycmFtaWVudGEgc29sYSk6IGh1Ym8gaW1wcmVzacOzbiBISVRMXG4gICAqIHBhcmEgZXN0ZSBsb3RlIHkgZWwgcGFkcmUgcGFzw7MgYSBhcHByb3ZlZC9yZWplY3RlZCBzaW4gcXVlIGVsIHVzdWFyaW8gcHVsc2FyYSBhcHJvYmFyL2RlbmVnYXIuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCAhPT0gaGl0bEJhdGNoS2V5KSByZXR1cm5cbiAgICBpZiAodXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPT09IGhpdGxCYXRjaEtleSkgcmV0dXJuXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBoaXRsQmF0Y2hLZXlcbiAgICBjb25zdCBpc0FjY2VwdCA9IHN0YXR1cyA9PT0gJ2FwcHJvdmVkJ1xuICAgIGlmIChpc0FjY2VwdCAmJiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSByZXR1cm5cbiAgICB0cmFja0hpdGxEZWNpc2lvbihpc0FjY2VwdCA/ICdhY2NlcHQnIDogJ2RlbnknLCAnYXV0bycpXG4gIH0sIFthY3Rpb25zLCBoaXRsQmF0Y2hLZXksIHN0YXR1cywgdHJhY2tIaXRsRGVjaXNpb25dKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmUgPSAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZyB8fCBsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnKSByZXR1cm5cbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKCFoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSB7XG4gICAgICB0cmFja0hpdGxEZWNpc2lvbignYWNjZXB0JywgJ3VzZXInKVxuICAgIH1cbiAgICBzZXRMb2NhbFN0YXR1cygnYXBwcm92ZWQnKVxuICAgIG9uQXBwcm92ZShhY3Rpb25zLm1hcChhID0+IGEudGhyZWFkX2lkKSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlamVjdCA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IHRydWVcbiAgICB0cmFja0hpdGxEZWNpc2lvbignZGVueScsICd1c2VyJylcbiAgICBzZXRMb2NhbFN0YXR1cygncmVqZWN0ZWQnKVxuICAgIG9uUmVqZWN0KGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NBcHByb3ZhbEJveD5cbiAgICAgIDxTQ0FCSGVhZGVyPlxuICAgICAgICA8U0NBQlRpdGxlPnt0KCdhcHByb3ZhbEJveC50aXRsZScpfTwvU0NBQlRpdGxlPlxuICAgICAgPC9TQ0FCSGVhZGVyPlxuXG4gICAgICA8U0NBQkRlc2NyaXB0aW9uPnt0KCdhcHByb3ZhbEJveC5kZXNjcmlwdGlvbicpfTwvU0NBQkRlc2NyaXB0aW9uPlxuXG4gICAgICA8U0NBQkFjdGlvbnNMaXN0ICRleHBhbmRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgIHthY3Rpb25zLm1hcChhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbnN0IHNwZWNpYWxDb3B5ID0gZ2V0U3BlY2lhbEFjdGlvbkNvcHkodCwgYWN0aW9uKVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gc3BlY2lhbENvcHkudGl0bGUgfHwgZ2V0QWN0aW9uTGFiZWwodCwgYWN0aW9uLnRvb2xfbmFtZSwgKGFjdGlvbiBhcyBhbnkpLmRpc3BsYXlfbmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNDQUJBY3Rpb25JdGVtIGtleT17YWN0aW9uLnRocmVhZF9pZH0+XG4gICAgICAgICAgICAgIDxTQ0FCQWN0aW9uTmFtZT57bGFiZWx9PC9TQ0FCQWN0aW9uTmFtZT5cbiAgICAgICAgICAgIDwvU0NBQkFjdGlvbkl0ZW0+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvU0NBQkFjdGlvbnNMaXN0PlxuXG4gICAgICB7bG9jYWxTdGF0dXMgPT09ICdwZW5kaW5nJyAmJiAhaXNQcm9qZWN0RGVsZXRlZCAmJiAoXG4gICAgICAgIDxTQ0FCQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICAgICA8U0NBQkJ1dHRvbiAkdmFyaWFudD1cInJlamVjdFwiIG9uQ2xpY2s9e2hhbmRsZVJlamVjdH0gJGRpc2FibGVkPXtpc0xvYWRpbmd9PlxuICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LmRlbnknKX1cbiAgICAgICAgICA8L1NDQUJCdXR0b24+XG4gICAgICAgICAgPFNDQUJCdXR0b24gJHZhcmlhbnQ9XCJhcHByb3ZlXCIgb25DbGljaz17aGFuZGxlQXBwcm92ZX0gJGRpc2FibGVkPXtpc0xvYWRpbmd9PlxuICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LmFwcHJvdmUnKX1cbiAgICAgICAgICA8L1NDQUJCdXR0b24+XG4gICAgICAgIDwvU0NBQkJ1dHRvbnNDb250YWluZXI+XG4gICAgICApfVxuICAgICAge2xvY2FsU3RhdHVzICE9PSAncGVuZGluZycgJiYgKFxuICAgICAgICA8U0NBQlN0YXR1c0JhZGdlICRzdGF0dXM9e2xvY2FsU3RhdHVzfT5cbiAgICAgICAgICB7bG9jYWxTdGF0dXMgPT09ICdhcHByb3ZlZCcgPyAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUgd2lkdGg9ezE0fSBoZWlnaHQ9ezE0fSBjb2xvcj1cIiM1ZDVkNWNcIiAvPlxuICAgICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guc3RhdHVzLmFwcHJvdmVkJyl9XG4gICAgICAgICAgICAgIHttYW51YWxBcHByb3ZhbERldGVjdGVkICYmIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17d2FybmluZ01lc3NhZ2UgfHwgdCgnYXBwcm92YWxCb3gubWFudWFsQXBwcm92YWxXYXJuaW5nJyl9IHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8U0NBQlN0YXR1c1dhcm5pbmdJY29uPlxuICAgICAgICAgICAgICAgICAgICA8QWxlcnQgY29sb3I9XCIjRUFBMTFBXCIgd2lkdGg9XCIxM3B4XCIgaGVpZ2h0PVwiMTNweFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDQUJTdGF0dXNXYXJuaW5nSWNvbj5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPENyb3NzQ2lyY2xlIHdpZHRoPXsxNH0gaGVpZ2h0PXsxNH0gY29sb3I9XCIjOGE4YTg5XCIgLz5cbiAgICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LnN0YXR1cy5kZW5pZWQnKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU0NBQlN0YXR1c0JhZGdlPlxuICAgICAgKX1cbiAgICA8L1NDQXBwcm92YWxCb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsV0FBVyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBRTlDLFNBQ0VD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
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwiQWxlcnQiLCJDaGVja0NpcmNsZSIsIkNyb3NzQ2lyY2xlIiwiVG9vbHRpcCIsInVzZVRyYW5zbGF0aW9uIiwiU0NBcHByb3ZhbEJveCIsIlNDQUJIZWFkZXIiLCJTQ0FCVGl0bGUiLCJTQ0FCRGVzY3JpcHRpb24iLCJTQ0FCQWN0aW9uc0xpc3QiLCJTQ0FCQWN0aW9uSXRlbSIsIlNDQUJBY3Rpb25OYW1lIiwiU0NBQkFjdGlvbkRlc2NyaXB0aW9uIiwiU0NBQkJ1dHRvbnNDb250YWluZXIiLCJTQ0FCQnV0dG9uIiwiU0NBQlN0YXR1c0JhZGdlIiwiU0NBQlN0YXR1c1dhcm5pbmdJY29uIiwiU0VDVElPTlMiLCJ1c2VHbG9iYWxDb250ZXh0IiwiRVZFTlRTIiwidXNlRXZlbnQiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJub3JtYWxpemVIaXRsVG9vbE5hbWUiLCJ0b29sTmFtZSIsIm4iLCJ0b0xvd2VyQ2FzZSIsInRyaW0iLCJmb3JtYXRUb29sTmFtZUZhbGxiYWNrIiwibm9ybWFsaXplZCIsIndpdGhTcGFjZXMiLCJyZXBsYWNlIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImdldEFjdGlvbkxhYmVsIiwidCIsImRpc3BsYXlOYW1lIiwibm9ybWFsaXplZFRvb2xOYW1lIiwidHJhbnNsYXRpb25LZXkiLCJjb25jYXQiLCJ0cmFuc2xhdGVkTGFiZWwiLCJnZXREZWxpdmVyYWJsZU1vZGUiLCJ0b29sQXJncyIsIkFycmF5IiwiaXNBcnJheSIsIlN0cmluZyIsImRlbGl2ZXJhYmxlVHlwZSIsImRlbGl2ZXJhYmxlX3R5cGUiLCJnZXRTcGVjaWFsQWN0aW9uQ29weSIsImFjdGlvbiIsInRvb2xfbmFtZSIsImRlbGl2ZXJhYmxlTW9kZSIsInRvb2xfYXJncyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJpbmNsdWRlcyIsImJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQiLCJhZ2VudFR5cGUiLCJhY3Rpb25zIiwiYWN0aW9uVHlwZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJTZXQiLCJtYXAiLCJhIiwic29ydCIsImFnZW50X3R5cGUiLCJhY3Rpb25fdHlwZSIsImpvaW4iLCJBcHByb3ZhbEJveCIsIl9yZWYiLCJvbkFwcHJvdmUiLCJvblJlamVjdCIsIl9yZWYkc3RhdHVzIiwic3RhdHVzIiwiX3JlZiRpc0xvYWRpbmciLCJpc0xvYWRpbmciLCJfcmVmJGlzUHJvamVjdERlbGV0ZWQiLCJpc1Byb2plY3REZWxldGVkIiwiX3JlZiRpc0V4cGFuZGVkIiwiaXNFeHBhbmRlZCIsImhpdGxJbnN0YW5jZUlkIiwid2FybmluZ01lc3NhZ2UiLCJfcmVmJG1hbnVhbEFwcHJvdmFsRGUiLCJtYW51YWxBcHByb3ZhbERldGVjdGVkIiwiX3VzZVRyYW5zbGF0aW9uIiwiY2hhdEFJIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxTdGF0dXMiLCJzZXRMb2NhbFN0YXR1cyIsIl91c2VHbG9iYWxDb250ZXh0IiwiYWdlbnQiLCJldmVudEFtcGxpdHVkZSIsImxhc3RIaXRsSW1wcmVzc2lvbktleVJlZiIsInByZXYiLCJ0eXBlIiwiaXNDb21wYWN0TWFudWFsQXBwcm92YWwiLCJsZW5ndGgiLCJpbXByZXNzaW9uS2V5IiwidGhyZWFkX2lkIiwidG9vbF9jYWxsX2lkIiwiY3VycmVudCIsImFpQ2hhdEhpdGwiLCJ0cmFja0hpdGxEZWNpc2lvbiIsImRlY2lzaW9uIiwiYWlDaGF0SGl0bE9wdGlvbiIsIl9vYmplY3RTcHJlYWQiLCJoYW5kbGVBcHByb3ZlIiwiaGFuZGxlUmVqZWN0IiwiY2hpbGRyZW4iLCIkZXhwYW5kZWQiLCJzcGVjaWFsQ29weSIsImFjdGlvbkxhYmVsIiwiZGlzcGxheV9uYW1lIiwiYWN0aW9uRGVzY3JpcHRpb24iLCIkdmFyaWFudCIsIm9uQ2xpY2siLCIkZGlzYWJsZWQiLCIkc3RhdHVzIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInBsYWNlbWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBBbGVydCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0FsZXJ0J1xuaW1wb3J0IHsgQ2hlY2tDaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVja0NpcmNsZSdcbmltcG9ydCB7IENyb3NzQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3NDaXJjbGUnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBQZW5kaW5nQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7XG4gIFNDQXBwcm92YWxCb3gsXG4gIFNDQUJIZWFkZXIsXG4gIFNDQUJUaXRsZSxcbiAgU0NBQkRlc2NyaXB0aW9uLFxuICBTQ0FCQWN0aW9uc0xpc3QsXG4gIFNDQUJBY3Rpb25JdGVtLFxuICBTQ0FCQWN0aW9uTmFtZSxcbiAgU0NBQkFjdGlvbkRlc2NyaXB0aW9uLFxuICBTQ0FCQnV0dG9uc0NvbnRhaW5lcixcbiAgU0NBQkJ1dHRvbixcbiAgU0NBQlN0YXR1c0JhZGdlLFxuICBTQ0FCU3RhdHVzV2FybmluZ0ljb24sXG59IGZyb20gJy4vQXBwcm92YWxCb3guc3R5bGVzJ1xuaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgdHlwZSB7IEFnZW50IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnQnXG5cbi8qKiBBbGluZWFkbyBjb24gVE9PTF9QRVJNSVNTSU9OX01BUCAvIFRPT0xfRElTUExBWV9OQU1FUyBlbiBtYWlhIChzbmFrZV9jYXNlKS4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUhpdGxUb29sTmFtZSh0b29sTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbiA9ICh0b29sTmFtZSB8fCAndW5rbm93bicpLnRvTG93ZXJDYXNlKCkudHJpbSgpXG4gIGlmIChuID09PSAnYXNzaWduJykgcmV0dXJuICd0YXNrX2Fzc2lnbidcbiAgcmV0dXJuIG5cbn1cblxuZnVuY3Rpb24gZm9ybWF0VG9vbE5hbWVGYWxsYmFjayh0b29sTmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB3aXRoU3BhY2VzID0gbm9ybWFsaXplZC5yZXBsYWNlKC9fL2csICcgJykudHJpbSgpXG4gIGlmICghd2l0aFNwYWNlcykgcmV0dXJuICdVbmtub3duJ1xuICByZXR1cm4gd2l0aFNwYWNlcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdpdGhTcGFjZXMuc2xpY2UoMSlcbn1cblxuZnVuY3Rpb24gZ2V0QWN0aW9uTGFiZWwodDogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcsIHRvb2xOYW1lPzogc3RyaW5nLCBkaXNwbGF5TmFtZT86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChkaXNwbGF5TmFtZT8udHJpbSgpKSByZXR1cm4gZGlzcGxheU5hbWVcblxuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGBhcHByb3ZhbEJveC5hY3Rpb25zLiR7bm9ybWFsaXplZFRvb2xOYW1lfWBcbiAgY29uc3QgdHJhbnNsYXRlZExhYmVsID0gdCh0cmFuc2xhdGlvbktleSlcblxuICBpZiAodHJhbnNsYXRlZExhYmVsICE9PSB0cmFuc2xhdGlvbktleSkgcmV0dXJuIHRyYW5zbGF0ZWRMYWJlbFxuICByZXR1cm4gZm9ybWF0VG9vbE5hbWVGYWxsYmFjayhub3JtYWxpemVkVG9vbE5hbWUpXG59XG5cbmZ1bmN0aW9uIGdldERlbGl2ZXJhYmxlTW9kZSh0b29sQXJnczogUGVuZGluZ0FjdGlvblsndG9vbF9hcmdzJ10pOiBzdHJpbmcge1xuICBpZiAoIXRvb2xBcmdzIHx8IEFycmF5LmlzQXJyYXkodG9vbEFyZ3MpKSByZXR1cm4gJydcbiAgcmV0dXJuIFN0cmluZyh0b29sQXJncy5kZWxpdmVyYWJsZVR5cGUgfHwgdG9vbEFyZ3MuZGVsaXZlcmFibGVfdHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKVxufVxuXG5mdW5jdGlvbiBnZXRTcGVjaWFsQWN0aW9uQ29weShcbiAgdDogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcsXG4gIGFjdGlvbjogUGVuZGluZ0FjdGlvblxuKTogeyB0aXRsZT86IHN0cmluZzsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRUb29sTmFtZSA9IG5vcm1hbGl6ZUhpdGxUb29sTmFtZShhY3Rpb24udG9vbF9uYW1lKVxuICBjb25zdCBkZWxpdmVyYWJsZU1vZGUgPSBnZXREZWxpdmVyYWJsZU1vZGUoYWN0aW9uLnRvb2xfYXJncylcblxuICBpZiAobm9ybWFsaXplZFRvb2xOYW1lID09PSAnY3JlYXRlX3Jld29yaycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IHQoJ2FwcHJvdmFsQm94LnNwZWNpYWwuY3JlYXRlUmV3b3JrLnRpdGxlJyksXG4gICAgICBkZXNjcmlwdGlvbjogdCgnYXBwcm92YWxCb3guc3BlY2lhbC5jcmVhdGVSZXdvcmsuZGVzY3JpcHRpb24nKSxcbiAgICB9XG4gIH1cblxuICBpZiAobm9ybWFsaXplZFRvb2xOYW1lID09PSAndXBkYXRlX2RlbGl2ZXJhYmxlJyAmJiBbJ2NoaWxkcmVuJywgJ2NoZWNrYm94J10uaW5jbHVkZXMoZGVsaXZlcmFibGVNb2RlKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdCgnYXBwcm92YWxCb3guc3BlY2lhbC51cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuLnRpdGxlJyksXG4gICAgICBkZXNjcmlwdGlvbjogdCgnYXBwcm92YWxCb3guc3BlY2lhbC51cGRhdGVEZWxpdmVyYWJsZUNoaWxkcmVuLmRlc2NyaXB0aW9uJyksXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHt9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoYWdlbnRUeXBlOiBBZ2VudFsndHlwZSddIHwgdW5kZWZpbmVkLCBhY3Rpb25zOiBQZW5kaW5nQWN0aW9uW10pIHtcbiAgY29uc3QgYWN0aW9uVHlwZXMgPSBbLi4ubmV3IFNldChhY3Rpb25zLm1hcChhID0+IG5vcm1hbGl6ZUhpdGxUb29sTmFtZShhLnRvb2xfbmFtZSkpKV0uc29ydCgpXG4gIHJldHVybiB7XG4gICAgYWdlbnRfdHlwZTogYWdlbnRUeXBlID8/ICdjdXN0b20nLFxuICAgIGFjdGlvbl90eXBlOiBhY3Rpb25UeXBlcy5qb2luKCcsJyksXG4gIH1cbn1cblxuaW50ZXJmYWNlIEFwcHJvdmFsQm94UHJvcHMge1xuICBhY3Rpb25zOiBQZW5kaW5nQWN0aW9uW11cbiAgb25BcHByb3ZlOiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBvblJlamVjdDogKHRocmVhZElkczogc3RyaW5nW10pID0+IHZvaWRcbiAgc3RhdHVzPzogJ3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCdcbiAgaXNMb2FkaW5nPzogYm9vbGVhblxuICAvKiogU2kgZWwgY2hhdC9wcm95ZWN0byBlc3TDoSBlbGltaW5hZG8sIHNlIG9jdWx0YW4gbG9zIGJvdG9uZXMgZGUgYXByb2Jhci9yZWNoYXphciAqL1xuICBpc1Byb2plY3REZWxldGVkPzogYm9vbGVhblxuICAvKiogU2kgZWwgY2hhdCBlc3TDoSBleHBhbmRpZG8gKHRydWUpIG8gY29sYXBzYWRvIChmYWxzZSkuIEFmZWN0YSBlbCBhbmNobyBkZWwgY29udGVuZWRvci4gKi9cbiAgaXNFeHBhbmRlZD86IGJvb2xlYW5cbiAgLyoqIElkIGVzdGFibGUgcG9yIGxvdGUgSElUTCAocC4gZWouIG9yaWdpbmFsX3RocmVhZF9pZCkgcGFyYSBlbCBldmVudG8gZGUgaW1wcmVzacOzbiAqL1xuICBoaXRsSW5zdGFuY2VJZD86IHN0cmluZ1xuICB3YXJuaW5nTWVzc2FnZT86IHN0cmluZ1xuICBtYW51YWxBcHByb3ZhbERldGVjdGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgQXBwcm92YWxCb3ggPSAoe1xuICBhY3Rpb25zLFxuICBvbkFwcHJvdmUsXG4gIG9uUmVqZWN0LFxuICBzdGF0dXMgPSAncGVuZGluZycsXG4gIGlzTG9hZGluZyA9IGZhbHNlLFxuICBpc1Byb2plY3REZWxldGVkID0gZmFsc2UsXG4gIGlzRXhwYW5kZWQgPSBmYWxzZSxcbiAgaGl0bEluc3RhbmNlSWQsXG4gIHdhcm5pbmdNZXNzYWdlLFxuICBtYW51YWxBcHByb3ZhbERldGVjdGVkID0gZmFsc2UsXG59OiBBcHByb3ZhbEJveFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oW1NFQ1RJT05TLmNoYXRBSV0pXG4gIGNvbnN0IFtsb2NhbFN0YXR1cywgc2V0TG9jYWxTdGF0dXNdID0gdXNlU3RhdGU8J3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCc+KHN0YXR1cylcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICAvLyBTaW5jcm9uaXphciBsb2NhbFN0YXR1cyBjb24gZWwgcHJvcCBzdGF0dXMgY3VhbmRvIGNhbWJpYSBkZXNkZSBlbCBwYWRyZSAoc29sbyBwb3IgdmFsdWUsIGV2aXRhIGJ1Y2xlcylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbFN0YXR1cyhwcmV2ID0+IChwcmV2ICE9PSBzdGF0dXMgPyBzdGF0dXMgOiBwcmV2KSlcbiAgfSwgW3N0YXR1c10pXG5cbiAgY29uc3QgYWdlbnRUeXBlID0gYWdlbnQ/LnR5cGVcbiAgY29uc3QgaXNDb21wYWN0TWFudWFsQXBwcm92YWwgPSBtYW51YWxBcHByb3ZhbERldGVjdGVkICYmIGxvY2FsU3RhdHVzID09PSAnYXBwcm92ZWQnXG5cbiAgLy8gQ0ExOiBjYXJkIGRlIGNvbmZpcm1hY2nDs24gSElUTCB2aXNpYmxlIChzb2xvIHBlbmRpZW50ZSwgbm8gaGlzdMOzcmljbyB5YSByZXN1ZWx0bylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGNvbnN0IGltcHJlc3Npb25LZXkgPVxuICAgICAgaGl0bEluc3RhbmNlSWQgPz9cbiAgICAgIGFjdGlvbnNcbiAgICAgICAgLm1hcChhID0+IGAke2EudGhyZWFkX2lkfToke2EudG9vbF9jYWxsX2lkfWApXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJ3wnKVxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCA9PT0gaW1wcmVzc2lvbktleSkgcmV0dXJuXG4gICAgbGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPSBpbXByZXNzaW9uS2V5XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGwsIGJ1aWxkSGl0bEFuYWx5dGljc1BheWxvYWQoYWdlbnRUeXBlLCBhY3Rpb25zKSlcbiAgfSwgW2FjdGlvbnMsIGFnZW50VHlwZSwgZXZlbnRBbXBsaXR1ZGUsIGxvY2FsU3RhdHVzLCBoaXRsSW5zdGFuY2VJZF0pXG5cbiAgY29uc3QgdHJhY2tIaXRsRGVjaXNpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoZGVjaXNpb246ICdhY2NlcHQnIHwgJ2RlbnknKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0SGl0bE9wdGlvbiwge1xuICAgICAgICAuLi5idWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGFnZW50VHlwZSwgYWN0aW9ucyksXG4gICAgICAgIGRlY2lzaW9uLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFthY3Rpb25zLCBhZ2VudFR5cGUsIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlQXBwcm92ZSA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHRyYWNrSGl0bERlY2lzaW9uKCdhY2NlcHQnKVxuICAgIHNldExvY2FsU3RhdHVzKCdhcHByb3ZlZCcpXG4gICAgb25BcHByb3ZlKGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUmVqZWN0ID0gKCkgPT4ge1xuICAgIGlmIChpc0xvYWRpbmcgfHwgbG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJykgcmV0dXJuXG4gICAgdHJhY2tIaXRsRGVjaXNpb24oJ2RlbnknKVxuICAgIHNldExvY2FsU3RhdHVzKCdyZWplY3RlZCcpXG4gICAgb25SZWplY3QoYWN0aW9ucy5tYXAoYSA9PiBhLnRocmVhZF9pZCkpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ0FwcHJvdmFsQm94PlxuICAgICAgeyFpc0NvbXBhY3RNYW51YWxBcHByb3ZhbCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFNDQUJIZWFkZXI+XG4gICAgICAgICAgICA8U0NBQlRpdGxlPnt0KCdhcHByb3ZhbEJveC50aXRsZScpfTwvU0NBQlRpdGxlPlxuICAgICAgICAgIDwvU0NBQkhlYWRlcj5cblxuICAgICAgICAgIDxTQ0FCRGVzY3JpcHRpb24+e3QoJ2FwcHJvdmFsQm94LmRlc2NyaXB0aW9uJyl9PC9TQ0FCRGVzY3JpcHRpb24+XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgPFNDQUJBY3Rpb25zTGlzdCAkZXhwYW5kZWQ9e2lzRXhwYW5kZWR9PlxuICAgICAgICB7YWN0aW9ucy5tYXAoYWN0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBzcGVjaWFsQ29weSA9IGdldFNwZWNpYWxBY3Rpb25Db3B5KHQsIGFjdGlvbilcbiAgICAgICAgICBjb25zdCBhY3Rpb25MYWJlbCA9IHNwZWNpYWxDb3B5LnRpdGxlIHx8IGdldEFjdGlvbkxhYmVsKHQsIGFjdGlvbi50b29sX25hbWUsIGFjdGlvbi5kaXNwbGF5X25hbWUpXG4gICAgICAgICAgY29uc3QgYWN0aW9uRGVzY3JpcHRpb24gPSBzcGVjaWFsQ29weS5kZXNjcmlwdGlvblxuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTQ0FCQWN0aW9uSXRlbSBrZXk9e2FjdGlvbi50aHJlYWRfaWR9PlxuICAgICAgICAgICAgICA8U0NBQkFjdGlvbk5hbWU+e2FjdGlvbkxhYmVsfTwvU0NBQkFjdGlvbk5hbWU+XG4gICAgICAgICAgICAgIHthY3Rpb25EZXNjcmlwdGlvbiAmJiA8U0NBQkFjdGlvbkRlc2NyaXB0aW9uPnthY3Rpb25EZXNjcmlwdGlvbn08L1NDQUJBY3Rpb25EZXNjcmlwdGlvbj59XG4gICAgICAgICAgICA8L1NDQUJBY3Rpb25JdGVtPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAgICA8L1NDQUJBY3Rpb25zTGlzdD5cblxuICAgICAge2xvY2FsU3RhdHVzID09PSAncGVuZGluZycgJiYgIWlzUHJvamVjdERlbGV0ZWQgJiYgKFxuICAgICAgICA8U0NBQkJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgPFNDQUJCdXR0b24gJHZhcmlhbnQ9XCJyZWplY3RcIiBvbkNsaWNrPXtoYW5kbGVSZWplY3R9ICRkaXNhYmxlZD17aXNMb2FkaW5nfT5cbiAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5kZW55Jyl9XG4gICAgICAgICAgPC9TQ0FCQnV0dG9uPlxuICAgICAgICAgIDxTQ0FCQnV0dG9uICR2YXJpYW50PVwiYXBwcm92ZVwiIG9uQ2xpY2s9e2hhbmRsZUFwcHJvdmV9ICRkaXNhYmxlZD17aXNMb2FkaW5nfT5cbiAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5hcHByb3ZlJyl9XG4gICAgICAgICAgPC9TQ0FCQnV0dG9uPlxuICAgICAgICA8L1NDQUJCdXR0b25zQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHtsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnICYmIChcbiAgICAgICAgPFNDQUJTdGF0dXNCYWRnZSAkc3RhdHVzPXtsb2NhbFN0YXR1c30+XG4gICAgICAgICAge2xvY2FsU3RhdHVzID09PSAnYXBwcm92ZWQnID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlIHdpZHRoPXsyMn0gaGVpZ2h0PXsyMn0gY29sb3I9XCIjMDA4NDAwXCIgLz5cbiAgICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LnN0YXR1cy5hcHByb3ZlZCcpfVxuICAgICAgICAgICAgICB7bWFudWFsQXBwcm92YWxEZXRlY3RlZCAmJiAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3dhcm5pbmdNZXNzYWdlIHx8IHQoJ2FwcHJvdmFsQm94Lm1hbnVhbEFwcHJvdmFsV2FybmluZycpfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPFNDQUJTdGF0dXNXYXJuaW5nSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPEFsZXJ0IGNvbG9yPVwiI0VBQTExQVwiIHdpZHRoPVwiMTRweFwiIGhlaWdodD1cIjE0cHhcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0FCU3RhdHVzV2FybmluZ0ljb24+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxDcm9zc0NpcmNsZSB3aWR0aD17MjJ9IGhlaWdodD17MjJ9IGNvbG9yPVwiI0M3MDUwNVwiIC8+XG4gICAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5zdGF0dXMuZGVuaWVkJyl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQUJTdGF0dXNCYWRnZT5cbiAgICAgICl9XG4gICAgPC9TQ0FwcHJvdmFsQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsV0FBVyxRQUFRLE9BQU87QUFDaEUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUU5QyxTQUNFQyxhQUFhLEVBQ2JDLFVBQVUsRUFDVkMsU0FBUyxFQUNUQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyxVQUFVLEVBQ1ZDLGVBQWUsRUFDZkMscUJBQXFCLFFBQ2hCLHNCQUFzQjtBQUM3QixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVND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
@@ -1,80 +1,89 @@
1
- import styled, { keyframes } from 'styled-components';
2
- var fadeIn = keyframes(["from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}"]);
1
+ import styled from 'styled-components';
2
+ import { BLUE_IA_COLORS } from '../../../styles/config';
3
3
  export var SCApprovalBox = styled.div.withConfig({
4
4
  displayName: "ApprovalBoxstyles__SCApprovalBox",
5
5
  componentId: "sc-1vnmjr4-0"
6
- })(["display:inline-flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:12px;background:#f7f7f6;min-width:0;max-width:340px;animation:", " 200ms ease;"], fadeIn);
6
+ })(["padding:0px;max-width:100%;min-width:0;"]);
7
7
  export var SCABHeader = styled.div.withConfig({
8
8
  displayName: "ApprovalBoxstyles__SCABHeader",
9
9
  componentId: "sc-1vnmjr4-1"
10
- })(["display:none;"]);
11
- export var SCABTitle = styled.span.withConfig({
10
+ })(["display:flex;align-items:center;gap:8px;"]);
11
+ export var SCABTitle = styled.h4.withConfig({
12
12
  displayName: "ApprovalBoxstyles__SCABTitle",
13
13
  componentId: "sc-1vnmjr4-2"
14
- })(["display:none;"]);
15
- export var SCABDescription = styled.span.withConfig({
14
+ })(["margin:0;color:#20201f;font-family:'Work Sans',sans-serif;font-size:16px;font-weight:700;line-height:1.6;letter-spacing:0px;"]);
15
+ export var SCABDescription = styled.p.withConfig({
16
16
  displayName: "ApprovalBoxstyles__SCABDescription",
17
17
  componentId: "sc-1vnmjr4-3"
18
- })(["display:none;"]);
18
+ })(["margin:0 0 12px 0;color:#20201f;font-family:'Work Sans',sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:1.6;letter-spacing:0px;"]);
19
19
  export var SCABStatusWarningIcon = styled.span.withConfig({
20
20
  displayName: "ApprovalBoxstyles__SCABStatusWarningIcon",
21
21
  componentId: "sc-1vnmjr4-4"
22
- })(["display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-left:2px;cursor:help;flex-shrink:0;"]);
22
+ })(["display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:4px;cursor:help;flex-shrink:0;"]);
23
23
  export var SCABActionsList = styled.div.withConfig({
24
24
  displayName: "ApprovalBoxstyles__SCABActionsList",
25
25
  componentId: "sc-1vnmjr4-5"
26
- })(["display:flex;flex-direction:column;gap:2px;"]);
26
+ })(["background:white;border-radius:8px;padding:12px;margin-bottom:16px;flex-direction:column;align-items:flex-start;gap:4px;border:1px solid #d5d5d5;background:#fff;max-width:100%;overflow:hidden;", ""], function (_ref) {
27
+ var $expanded = _ref.$expanded;
28
+ return $expanded ? "\n min-width: 480px;\n width: fit-content;\n " : "\n width: 100%;\n ";
29
+ });
27
30
  export var SCABActionItem = styled.div.withConfig({
28
31
  displayName: "ApprovalBoxstyles__SCABActionItem",
29
32
  componentId: "sc-1vnmjr4-6"
30
- })(["display:flex;align-items:center;min-width:0;"]);
33
+ })(["display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid #eee;min-width:0;&:last-child{border-bottom:none;padding-bottom:0;}&:first-child{padding-top:0;}"]);
31
34
  export var SCABActionName = styled.span.withConfig({
32
35
  displayName: "ApprovalBoxstyles__SCABActionName",
33
36
  componentId: "sc-1vnmjr4-7"
34
- })(["color:#20201f;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;line-height:1.4;letter-spacing:-0.1px;min-width:0;overflow-wrap:break-word;word-break:break-word;"]);
37
+ })(["color:#20201f;font-family:'Work Sans',sans-serif;font-size:16px;font-weight:500;font-style:normal;line-height:140%;letter-spacing:-0.21px;overflow-wrap:break-word;word-break:break-word;min-width:0;"]);
35
38
  export var SCABActionDescription = styled.p.withConfig({
36
39
  displayName: "ApprovalBoxstyles__SCABActionDescription",
37
40
  componentId: "sc-1vnmjr4-8"
38
- })(["display:none;"]);
41
+ })(["margin:0;color:#5d5d5c;font-family:'Work Sans',sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:150%;letter-spacing:0;overflow-wrap:break-word;word-break:break-word;white-space:pre-line;min-width:0;"]);
39
42
  export var SCABActionArgs = styled.ul.withConfig({
40
43
  displayName: "ApprovalBoxstyles__SCABActionArgs",
41
44
  componentId: "sc-1vnmjr4-9"
42
- })(["display:none;"]);
45
+ })(["font-size:16px;color:#666;list-style-type:disc;list-style-position:outside;padding-left:20px;margin:0;min-width:0;"]);
43
46
  export var SCABArgItem = styled.li.withConfig({
44
47
  displayName: "ApprovalBoxstyles__SCABArgItem",
45
48
  componentId: "sc-1vnmjr4-10"
46
- })(["display:none;"]);
49
+ })(["display:list-item;margin:0;padding-left:4px;min-width:0;overflow-wrap:break-word;word-break:break-word;"]);
47
50
  export var SCABArgKey = styled.span.withConfig({
48
51
  displayName: "ApprovalBoxstyles__SCABArgKey",
49
52
  componentId: "sc-1vnmjr4-11"
50
- })(["display:none;"]);
53
+ })(["color:#999;"]);
51
54
  export var SCABArgValue = styled.span.withConfig({
52
55
  displayName: "ApprovalBoxstyles__SCABArgValue",
53
56
  componentId: "sc-1vnmjr4-12"
54
- })(["display:none;"]);
57
+ })(["color:#20201f;font-family:'Work Sans',sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:140%;letter-spacing:-0.21px;overflow-wrap:break-word;word-break:break-word;min-width:0;"]);
55
58
  export var SCABButtonsContainer = styled.div.withConfig({
56
59
  displayName: "ApprovalBoxstyles__SCABButtonsContainer",
57
60
  componentId: "sc-1vnmjr4-13"
58
- })(["display:flex;align-items:center;gap:8px;"]);
61
+ })(["display:flex;align-items:flex-start;gap:18px;align-self:stretch;max-width:480px;width:100%;"]);
59
62
  export var SCABButton = styled.button.withConfig({
60
63
  displayName: "ApprovalBoxstyles__SCABButton",
61
64
  componentId: "sc-1vnmjr4-14"
62
- })(["display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:18px;border:1px solid var(--Gray-100,#d9d9d9);font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;line-height:140%;letter-spacing:-0.21px;white-space:nowrap;cursor:", ";opacity:", ";transition:background 160ms ease;", ""], function (_ref) {
63
- var $disabled = _ref.$disabled;
64
- return $disabled ? 'not-allowed' : 'pointer';
65
- }, function (_ref2) {
65
+ })(["display:flex;padding:10px 12px;height:36px;justify-content:center;align-items:center;flex:1 0 0;border-radius:4px;font-family:'Work Sans',sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:14px;text-align:center;cursor:", ";transition:all 0.2s ease;opacity:", ";", ""], function (_ref2) {
66
66
  var $disabled = _ref2.$disabled;
67
- return $disabled ? 0.5 : 1;
67
+ return $disabled ? 'not-allowed' : 'pointer';
68
68
  }, function (_ref3) {
69
- var $variant = _ref3.$variant;
70
- return $variant === 'approve' ? "\n background: #d4d4d3;\n color: #20201f;\n\n &:hover:not(:disabled) {\n background: #c4c4c3;\n }\n " : "\n background: transparent;\n color: #5d5d5c;\n\n &:hover:not(:disabled) {\n background: #f2f2f2;\n }\n ";
69
+ var $disabled = _ref3.$disabled;
70
+ return $disabled ? 0.6 : 1;
71
+ }, function (_ref4) {
72
+ var $variant = _ref4.$variant;
73
+ return $variant === 'approve' ? "\n background: ".concat(BLUE_IA_COLORS[500], ";\n color: #FFF;\n border: none;\n\n &:hover:not(:disabled) {\n background: ").concat(BLUE_IA_COLORS[700], ";\n }\n ") : "\n background: transparent;\n color: ".concat(BLUE_IA_COLORS[500], ";\n border: 1px solid ").concat(BLUE_IA_COLORS[500], ";\n\n &:hover:not(:disabled) {\n background: ").concat(BLUE_IA_COLORS[50], ";\n }\n ");
71
74
  });
72
75
  export var SCABStatusBadge = styled.div.withConfig({
73
76
  displayName: "ApprovalBoxstyles__SCABStatusBadge",
74
77
  componentId: "sc-1vnmjr4-15"
75
- })(["display:inline-flex;align-items:center;gap:5px;padding:6px 0;border:none;font-family:'Work Sans',sans-serif;font-size:13px;font-weight:400;line-height:1.4;letter-spacing:-0.1px;", ""], function (_ref4) {
76
- var $status = _ref4.$status;
77
- if ($status === 'rejected') return "color: #8a8a89;";
78
- return "color: #5d5d5c;";
78
+ })(["display:inline-flex;align-items:center;gap:4px;color:#343433;font-family:'Work Sans',sans-serif;font-size:16px;font-style:normal;font-weight:600;line-height:140%;letter-spacing:-0.21px;", ""], function (_ref5) {
79
+ var $status = _ref5.$status;
80
+ switch ($status) {
81
+ case 'approved':
82
+ return "";
83
+ case 'rejected':
84
+ return "";
85
+ default:
86
+ return "\n background: ".concat(BLUE_IA_COLORS[50], ";\n color: ").concat(BLUE_IA_COLORS[500], ";\n ");
87
+ }
79
88
  });
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJrZXlmcmFtZXMiLCJmYWRlSW4iLCJTQ0FwcHJvdmFsQm94IiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwic3BhbiIsIlNDQUJEZXNjcmlwdGlvbiIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNDQUJBY3Rpb25zTGlzdCIsIlNDQUJBY3Rpb25JdGVtIiwiU0NBQkFjdGlvbk5hbWUiLCJTQ0FCQWN0aW9uRGVzY3JpcHRpb24iLCJwIiwiU0NBQkFjdGlvbkFyZ3MiLCJ1bCIsIlNDQUJBcmdJdGVtIiwibGkiLCJTQ0FCQXJnS2V5IiwiU0NBQkFyZ1ZhbHVlIiwiU0NBQkJ1dHRvbnNDb250YWluZXIiLCJTQ0FCQnV0dG9uIiwiYnV0dG9uIiwiX3JlZiIsIiRkaXNhYmxlZCIsIl9yZWYyIiwiX3JlZjMiLCIkdmFyaWFudCIsIlNDQUJTdGF0dXNCYWRnZSIsIl9yZWY0IiwiJHN0YXR1cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FwcHJvdmFsQm94ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y2O1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogMzQwcHg7XG4gIGFuaW1hdGlvbjogJHtmYWRlSW59IDIwMG1zIGVhc2U7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogbm9uZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJUaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBub25lO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkRlc2NyaXB0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IG5vbmU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCU3RhdHVzV2FybmluZ0ljb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICBjdXJzb3I6IGhlbHA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbnNMaXN0ID0gc3R5bGVkLmRpdjx7ICRleHBhbmRlZD86IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbkl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCQWN0aW9uTmFtZSA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1mYW1pbHk6ICdXb3JrIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4xcHg7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBY3Rpb25EZXNjcmlwdGlvbiA9IHN0eWxlZC5wYFxuICBkaXNwbGF5OiBub25lO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbkFyZ3MgPSBzdHlsZWQudWxgXG4gIGRpc3BsYXk6IG5vbmU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCQXJnSXRlbSA9IHN0eWxlZC5saWBcbiAgZGlzcGxheTogbm9uZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBcmdLZXkgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogbm9uZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBcmdWYWx1ZSA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBub25lO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkJ1dHRvbnNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJHZhcmlhbnQ6ICdhcHByb3ZlJyB8ICdyZWplY3QnOyAkZGlzYWJsZWQ/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1HcmF5LTEwMCwgI2Q5ZDlkOSk7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogJHsoeyAkZGlzYWJsZWQgfSkgPT4gKCRkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicpfTtcbiAgb3BhY2l0eTogJHsoeyAkZGlzYWJsZWQgfSkgPT4gKCRkaXNhYmxlZCA/IDAuNSA6IDEpfTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNjBtcyBlYXNlO1xuXG4gICR7KHsgJHZhcmlhbnQgfSkgPT5cbiAgICAkdmFyaWFudCA9PT0gJ2FwcHJvdmUnXG4gICAgICA/IGBcbiAgICBiYWNrZ3JvdW5kOiAjZDRkNGQzO1xuICAgIGNvbG9yOiAjMjAyMDFmO1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjYzRjNGMzO1xuICAgIH1cbiAgYFxuICAgICAgOiBgXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM1ZDVkNWM7XG5cbiAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gICAgfVxuICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBQlN0YXR1c0JhZGdlID0gc3R5bGVkLmRpdjx7ICRzdGF0dXM6ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnIHwgJ3BlbmRpbmcnIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIHBhZGRpbmc6IDZweCAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMXB4O1xuXG4gICR7KHsgJHN0YXR1cyB9KSA9PiB7XG4gICAgaWYgKCRzdGF0dXMgPT09ICdyZWplY3RlZCcpIHJldHVybiBgY29sb3I6ICM4YThhODk7YFxuICAgIHJldHVybiBgY29sb3I6ICM1ZDVkNWM7YFxuICB9fVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLFNBQVMsUUFBUSxtQkFBbUI7QUFFckQsSUFBTUMsTUFBTSxHQUFHRCxTQUFTLHNGQUd2QjtBQUVELE9BQU8sSUFBTUUsYUFBYSxHQUFHSCxNQUFNLENBQUNJLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwS0FTeEJMLE1BQU0sQ0FDcEI7QUFFRCxPQUFPLElBQU1NLFVBQVUsR0FBR1IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEscUJBRW5DO0FBRUQsT0FBTyxJQUFNRSxTQUFTLEdBQUdULE1BQU0sQ0FBQ1UsSUFBSSxDQUFBTCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUVuQztBQUVELE9BQU8sSUFBTUksZUFBZSxHQUFHWCxNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxQkFFekM7QUFFRCxPQUFPLElBQU1LLHFCQUFxQixHQUFHWixNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1SUFTL0M7QUFFRCxPQUFPLElBQU1NLGVBQWUsR0FBR2IsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbURBSXhDO0FBRUQsT0FBTyxJQUFNTyxjQUFjLEdBQUdkLE1BQU0sQ0FBQ0ksR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9EQUl2QztBQUVELE9BQU8sSUFBTVEsY0FBYyxHQUFHZixNQUFNLENBQUNVLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5TEFVeEM7QUFFRCxPQUFPLElBQU1TLHFCQUFxQixHQUFHaEIsTUFBTSxDQUFDaUIsQ0FBQyxDQUFBWixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUU1QztBQUVELE9BQU8sSUFBTVcsY0FBYyxHQUFHbEIsTUFBTSxDQUFDbUIsRUFBRSxDQUFBZCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUV0QztBQUVELE9BQU8sSUFBTWEsV0FBVyxHQUFHcEIsTUFBTSxDQUFDcUIsRUFBRSxDQUFBaEIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxQkFFbkM7QUFFRCxPQUFPLElBQU1lLFVBQVUsR0FBR3RCLE1BQU0sQ0FBQ1UsSUFBSSxDQUFBTCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUVwQztBQUVELE9BQU8sSUFBTWdCLFlBQVksR0FBR3ZCLE1BQU0sQ0FBQ1UsSUFBSSxDQUFBTCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFCQUV0QztBQUVELE9BQU8sSUFBTWlCLG9CQUFvQixHQUFHeEIsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ0RBSTdDO0FBRUQsT0FBTyxJQUFNa0IsVUFBVSxHQUFHekIsTUFBTSxDQUFDMEIsTUFBTSxDQUFBckIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrVUFhM0IsVUFBQW9CLElBQUE7RUFBQSxJQUFHQyxTQUFTLEdBQUFELElBQUEsQ0FBVEMsU0FBUztFQUFBLE9BQVFBLFNBQVMsR0FBRyxhQUFhLEdBQUcsU0FBUztBQUFBLENBQUMsRUFDekQsVUFBQUMsS0FBQTtFQUFBLElBQUdELFNBQVMsR0FBQUMsS0FBQSxDQUFURCxTQUFTO0VBQUEsT0FBUUEsU0FBUyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQUEsQ0FBQyxFQUdqRCxVQUFBRSxLQUFBO0VBQUEsSUFBR0MsUUFBUSxHQUFBRCxLQUFBLENBQVJDLFFBQVE7RUFBQSxPQUNYQSxRQUFRLEtBQUssU0FBUywwUEFnQnZCO0FBQUEsRUFDRjtBQUVELE9BQU8sSUFBTUMsZUFBZSxHQUFHaEMsTUFBTSxDQUFDSSxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOExBWXJDLFVBQUEwQixLQUFBLEVBQWlCO0VBQUEsSUFBZEMsT0FBTyxHQUFBRCxLQUFBLENBQVBDLE9BQU87RUFDVixJQUFJQSxPQUFPLEtBQUssVUFBVSxFQUFFO0VBQzVCO0FBQ0YsQ0FBQyxDQUNGIiwiaWdub3JlTGlzdCI6W119
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJCTFVFX0lBX0NPTE9SUyIsIlNDQXBwcm92YWxCb3giLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDQUJIZWFkZXIiLCJTQ0FCVGl0bGUiLCJoNCIsIlNDQUJEZXNjcmlwdGlvbiIsInAiLCJTQ0FCU3RhdHVzV2FybmluZ0ljb24iLCJzcGFuIiwiU0NBQkFjdGlvbnNMaXN0IiwiX3JlZiIsIiRleHBhbmRlZCIsIlNDQUJBY3Rpb25JdGVtIiwiU0NBQkFjdGlvbk5hbWUiLCJTQ0FCQWN0aW9uRGVzY3JpcHRpb24iLCJTQ0FCQWN0aW9uQXJncyIsInVsIiwiU0NBQkFyZ0l0ZW0iLCJsaSIsIlNDQUJBcmdLZXkiLCJTQ0FCQXJnVmFsdWUiLCJTQ0FCQnV0dG9uc0NvbnRhaW5lciIsIlNDQUJCdXR0b24iLCJidXR0b24iLCJfcmVmMiIsIiRkaXNhYmxlZCIsIl9yZWYzIiwiX3JlZjQiLCIkdmFyaWFudCIsImNvbmNhdCIsIlNDQUJTdGF0dXNCYWRnZSIsIl9yZWY1IiwiJHN0YXR1cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL0FwcHJvdmFsQm94L0FwcHJvdmFsQm94LnN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHsgQkxVRV9JQV9DT0xPUlMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuXG5leHBvcnQgY29uc3QgU0NBcHByb3ZhbEJveCA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCVGl0bGUgPSBzdHlsZWQuaDRgXG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkRlc2NyaXB0aW9uID0gc3R5bGVkLnBgXG4gIG1hcmdpbjogMCAwIDEycHggMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxldHRlci1zcGFjaW5nOiAwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCU3RhdHVzV2FybmluZ0ljb24gPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBtYXJnaW4tbGVmdDogNHB4O1xuICBjdXJzb3I6IGhlbHA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbnNMaXN0ID0gc3R5bGVkLmRpdjx7ICRleHBhbmRlZD86IGJvb2xlYW4gfT5gXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAkeyh7ICRleHBhbmRlZCB9KSA9PlxuICAgICRleHBhbmRlZFxuICAgICAgPyBgXG4gICAgbWluLXdpZHRoOiA0ODBweDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGBcbiAgICAgIDogYFxuICAgIHdpZHRoOiAxMDAlO1xuICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbkl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICBtaW4td2lkdGg6IDA7XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBY3Rpb25OYW1lID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAjMjAyMDFmO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjIxcHg7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBY3Rpb25EZXNjcmlwdGlvbiA9IHN0eWxlZC5wYFxuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjNWQ1ZDVjO1xuICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkFjdGlvbkFyZ3MgPSBzdHlsZWQudWxgXG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6ICM2NjY7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW46IDA7XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBcmdJdGVtID0gc3R5bGVkLmxpYFxuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJBcmdLZXkgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICM5OTk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0FCQXJnVmFsdWUgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgbWluLXdpZHRoOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NBQkJ1dHRvbnNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxOHB4O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xuICB3aWR0aDogMTAwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDQUJCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgJHZhcmlhbnQ6ICdhcHByb3ZlJyB8ICdyZWplY3QnOyAkZGlzYWJsZWQ/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGhlaWdodDogMzZweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDEgMCAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogJHsoeyAkZGlzYWJsZWQgfSkgPT4gKCRkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcicpfTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgb3BhY2l0eTogJHsoeyAkZGlzYWJsZWQgfSkgPT4gKCRkaXNhYmxlZCA/IDAuNiA6IDEpfTtcblxuICAkeyh7ICR2YXJpYW50IH0pID0+XG4gICAgJHZhcmlhbnQgPT09ICdhcHByb3ZlJ1xuICAgICAgPyBgXG4gICAgYmFja2dyb3VuZDogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6ICR7QkxVRV9JQV9DT0xPUlNbNzAwXX07XG4gICAgfVxuICBgXG4gICAgICA6IGBcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAke0JMVUVfSUFfQ09MT1JTWzUwXX07XG4gICAgfVxuICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NBQlN0YXR1c0JhZGdlID0gc3R5bGVkLmRpdjx7ICRzdGF0dXM6ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnIHwgJ3BlbmRpbmcnIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG5cbiAgY29sb3I6ICMzNDM0MzM7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMjFweDtcblxuICAkeyh7ICRzdGF0dXMgfSkgPT4ge1xuICAgIHN3aXRjaCAoJHN0YXR1cykge1xuICAgICAgY2FzZSAnYXBwcm92ZWQnOlxuICAgICAgICByZXR1cm4gYGBcbiAgICAgIGNhc2UgJ3JlamVjdGVkJzpcbiAgICAgICAgcmV0dXJuIGBgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYFxuICAgICAgICAgIGJhY2tncm91bmQ6ICR7QkxVRV9JQV9DT0xPUlNbNTBdfTtcbiAgICAgICAgICBjb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICAgICAgYFxuICAgIH1cbiAgfX1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxTQUFTQyxjQUFjLFFBQVEsd0JBQXdCO0FBRXZELE9BQU8sSUFBTUMsYUFBYSxHQUFHRixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrQ0FJdEM7QUFFRCxPQUFPLElBQU1DLFVBQVUsR0FBR1AsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ0RBSW5DO0FBRUQsT0FBTyxJQUFNRSxTQUFTLEdBQUdSLE1BQU0sQ0FBQ1MsRUFBRSxDQUFBTCxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9JQVFqQztBQUVELE9BQU8sSUFBTUksZUFBZSxHQUFHVixNQUFNLENBQUNXLENBQUMsQ0FBQVAsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrSkFTdEM7QUFFRCxPQUFPLElBQU1NLHFCQUFxQixHQUFHWixNQUFNLENBQUNhLElBQUksQ0FBQVQsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1SUFTL0M7QUFFRCxPQUFPLElBQU1RLGVBQWUsR0FBR2QsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNk1BWXJDLFVBQUFTLElBQUE7RUFBQSxJQUFHQyxTQUFTLEdBQUFELElBQUEsQ0FBVEMsU0FBUztFQUFBLE9BQ1pBLFNBQVMsb0ZBT1Y7QUFBQSxFQUNGO0FBRUQsT0FBTyxJQUFNQyxjQUFjLEdBQUdqQixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5TEFnQnZDO0FBRUQsT0FBTyxJQUFNWSxjQUFjLEdBQUdsQixNQUFNLENBQUNhLElBQUksQ0FBQVQsVUFB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