@agilemotion/oui-react-js 2.0.13 → 2.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/RestService.js +12 -4
- package/dist/RestUtils.js +33 -4
- package/dist/Utils.js +82 -1
- package/dist/components/AlertBar.js +22 -10
- package/dist/components/Button.js +19 -7
- package/dist/components/DataGrid.js +118 -31
- package/dist/components/ProgressTracker.js +195 -37
- package/dist/components/StepperTitleBar.js +28 -24
- package/dist/components/TabPanel.js +30 -19
- package/dist/components/TableCellContent.js +38 -1
- package/dist/components/Turnstile.js +14 -3
- package/dist/components/form/FieldSet.js +13 -1
- package/dist/components/form/MultiLookupField.js +407 -0
- package/dist/event/RouteActionHandler.js +28 -4
- package/dist/event/ServiceCallActionHandler.js +56 -17
- package/dist/view/Dashboard.js +4 -1
- package/dist/view/security/RegisterInteractionPortal.js +100 -14
- package/package.json +1 -1
|
@@ -14,6 +14,7 @@ var _Section = _interopRequireDefault(require("./form/Section"));
|
|
|
14
14
|
var _Toolbar = _interopRequireDefault(require("./Toolbar"));
|
|
15
15
|
var _ApplicationManager = _interopRequireDefault(require("../ApplicationManager"));
|
|
16
16
|
var _Layout = require("./layout/Layout");
|
|
17
|
+
var _Icon = _interopRequireDefault(require("./Icon"));
|
|
17
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
19
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
19
20
|
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; }
|
|
@@ -196,24 +197,34 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
196
197
|
minWidth: 120
|
|
197
198
|
}
|
|
198
199
|
}
|
|
199
|
-
}, visibleTabPages.map((page, index) =>
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
200
|
+
}, visibleTabPages.map((page, index) => {
|
|
201
|
+
// Optional per-tab icon: `attributes.icon` is the
|
|
202
|
+
// Icon component's id (e.g. "WORK", "VIEW"). When
|
|
203
|
+
// present, render to the left of the label.
|
|
204
|
+
const iconId = page.attributes['icon'];
|
|
205
|
+
return /*#__PURE__*/_react.default.createElement(_Tab.default, _extends({
|
|
206
|
+
key: index,
|
|
207
|
+
label: page.attributes['label'],
|
|
208
|
+
icon: iconId ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
209
|
+
id: iconId
|
|
210
|
+
}) : undefined,
|
|
211
|
+
iconPosition: iconId ? 'start' : undefined,
|
|
212
|
+
wrapped: true // allow multi-line label
|
|
213
|
+
}, a11yProps(index), {
|
|
214
|
+
sx: {
|
|
215
|
+
maxWidth: 240,
|
|
216
|
+
height: '100%',
|
|
217
|
+
// constrain so wrapping can occur
|
|
218
|
+
whiteSpace: 'normal',
|
|
219
|
+
// allow wrap
|
|
220
|
+
wordBreak: 'break-word',
|
|
221
|
+
// break long words
|
|
222
|
+
textTransform: 'uppercase',
|
|
223
|
+
// keep original casing
|
|
224
|
+
color: _ApplicationManager.default.isFormMarkersEnabled() && errors !== null && errors[page.id] === true ? '#ed5249' : undefined
|
|
225
|
+
}
|
|
226
|
+
}));
|
|
227
|
+
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
217
228
|
style: _Utils.default.mergeStyles({
|
|
218
229
|
width: '100%',
|
|
219
230
|
height: 'calc(100% - 64px)'
|
|
@@ -234,4 +245,4 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
234
245
|
})));
|
|
235
246
|
});
|
|
236
247
|
var _default = exports.default = TabPanel;
|
|
237
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBCYXIiLCJfVGFiIiwiX1RhYnMiLCJfVGFiUGFnZSIsIl9TZWN0aW9uIiwiX1Rvb2xiYXIiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0xheW91dCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJhMTF5UHJvcHMiLCJpbmRleCIsImlkIiwiY29uY2F0IiwiVGFiUGFuZWwiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWciLCJfcHJvcHMkY29uZmlnMiIsIl9wcm9wcyRjb25maWczIiwiX3Byb3BzJGNvbmZpZzQiLCJ0YWJWYWx1ZSIsInNldFRhYlZhbHVlIiwidXNlU3RhdGUiLCJlcnJvcnMiLCJzZXRFcnJvcnMiLCJ2aXNpYmxlVGFiUGFnZXMiLCJzZXRWaXNpYmxlVGFiUGFnZXMiLCJsb2FkZWQiLCJ1c2VSZWYiLCJjb21wb25lbnRIYW5kbGVzIiwiaGFuZGxlVGFiQ2hhbmdlIiwiZXZlbnQiLCJuZXdWYWx1ZSIsImNyZWF0ZUNvbXBvbmVudEhhbmRsZSIsImNvbXBvbmVudCIsIlV0aWxzIiwiaXNOdWxsIiwiaGFuZGxlIiwidXNlRWZmZWN0IiwiYXBpIiwic2V0dXBWaXNpYmxlUGFnZXMiLCJjb25maWciLCJ0YWJQYWdlcyIsImFsbFZpc2libGVUYWJQYWdlcyIsInBhZ2UiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsInZpc2libGUiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwic2V0dXAiLCJmb3JtIiwic2V0Q29udGFpbmVyRXJyb3JIYW5kbGVyIiwiY29udGFpbmVyRXJyb3JzIiwic2hvdWxkUmVmcmVzaCIsInByb3BlcnRpZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJpc0Zvcm1NYXJrZXJzRW5hYmxlZCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImN1cnJlbnQiLCJyZW5kZXJUYWJQYWdlQ29tcG9uZW50IiwidGFiSWQiLCJ0eXBlIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJrZXkiLCJwYXJlbnRJZCIsInZhbHVlcyIsIkxheW91dCIsInJlbmRlclBhZ2UiLCJwYWdlSW5kZXgiLCJjbGFzc05hbWUiLCJjb21wb25lbnRzIiwibWFwIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIl9jb21wb25lbnRIYW5kbGUkYXBpIiwiY29tcG9uZW50SGFuZGxlIiwiY2hpbGQiLCJzZXRQYWdlSGFzRXJyb3IiLCJwYWdlSWQiLCJoYXNFcnJvciIsImNsZWFyRXJyb3JzIiwicmVmcmVzaCIsInJlZHJhdyIsInN0eWxlIiwid2lkdGgiLCJhdHRyaWJ1dGVzIiwiaGVpZ2h0IiwicG9zaXRpb24iLCJjb2xvciIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJib3JkZXJCb3R0b20iLCJvbkNoYW5nZSIsInZhcmlhbnQiLCJzY3JvbGxCdXR0b25zIiwiYWxsb3dTY3JvbGxCdXR0b25zTW9iaWxlIiwidGV4dENvbG9yIiwiaW5kaWNhdG9yQ29sb3IiLCJzeCIsIm1pbldpZHRoIiwibGFiZWwiLCJ3cmFwcGVkIiwibWF4V2lkdGgiLCJ3aGl0ZVNwYWNlIiwid29yZEJyZWFrIiwidGV4dFRyYW5zZm9ybSIsInVuZGVmaW5lZCIsIm1lcmdlU3R5bGVzIiwiX3BhZ2UkYXR0cmlidXRlcyIsIl9wYWdlJGF0dHJpYnV0ZXMyIiwiZGlzcGxheSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9UYWJQYW5lbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQXBwQmFyJztcbmltcG9ydCBUYWIgZnJvbSAnQG11aS9tYXRlcmlhbC9UYWInO1xuaW1wb3J0IFRhYnMgZnJvbSAnQG11aS9tYXRlcmlhbC9UYWJzJztcbmltcG9ydCBUYWJQYWdlIGZyb20gJy4vVGFiUGFnZSc7XG5pbXBvcnQgRm9ybVNlY3Rpb24gZnJvbSAnLi9mb3JtL1NlY3Rpb24nO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSAnLi9Ub29sYmFyJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7TGF5b3V0fSBmcm9tICcuL2xheW91dC9MYXlvdXQnO1xuXG5mdW5jdGlvbiBhMTF5UHJvcHMoaW5kZXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBpZDogYHNpbXBsZS10YWItJHtpbmRleH1gLFxuICAgICAgICAnYXJpYS1jb250cm9scyc6IGBzaW1wbGUtdGFicGFuZWwtJHtpbmRleH1gLFxuICAgIH07XG59XG5cbmNvbnN0IFRhYlBhbmVsID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbdGFiVmFsdWUsIHNldFRhYlZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3Zpc2libGVUYWJQYWdlcywgc2V0VmlzaWJsZVRhYlBhZ2VzXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuXG4gICAgY29uc3QgaGFuZGxlVGFiQ2hhbmdlID0gKGV2ZW50LCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBzZXRUYWJWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChjb21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbY29tcG9uZW50LmlkXTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2V0dXBWaXNpYmxlUGFnZXMoKSB7XG4gICAgICAgIGlmIChwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgIGxldCBhbGxWaXNpYmxlVGFiUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhZ2UuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2UuaWQgPSBpbmRleCArICctdGFiLXBhZ2UnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwYWdlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIGxldCB2aXNpYmxlID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYWdlLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBhbGxWaXNpYmxlVGFiUGFnZXMucHVzaChwYWdlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VmlzaWJsZVRhYlBhZ2VzKGFsbFZpc2libGVUYWJQYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXR1cCgpIHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgIC5zZXRDb250YWluZXJFcnJvckhhbmRsZXIoKGNvbnRhaW5lckVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2hvdWxkUmVmcmVzaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbnRhaW5lckVycm9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzW3Byb3BlcnR5XSAhPT0gY29udGFpbmVyRXJyb3JzW3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFJlZnJlc2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmIHNob3VsZFJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEVycm9ycyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRhaW5lckVycm9ycykpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9zZXR1cFZpc2libGVQYWdlcygpO1xuICAgICAgICBsb2FkZWQuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0dXAoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZighdmlzaWJsZVRhYlBhZ2VzKSB7XG4gICAgICAgICAgICBzZXR1cFZpc2libGVQYWdlcygpXG4gICAgICAgIH1cbiAgICB9LCBbdmlzaWJsZVRhYlBhZ2VzXSk7XG5cbiAgICBmdW5jdGlvbiByZW5kZXJUYWJQYWdlQ29tcG9uZW50KGNvbXBvbmVudCwgdGFiSWQsIGluZGV4KSB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50LmlkKSkge1xuICAgICAgICAgICAgY29tcG9uZW50LmlkID0gaW5kZXggKyAnLXRhYi1jb250ZW50JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnQudHlwZSA9PT0gJ2Zvcm1TZWN0aW9uJyA/XG4gICAgICAgICAgICA8Rm9ybVNlY3Rpb24ga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbXBvbmVudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3RhYklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgLz4gOlxuICAgICAgICAgICAgY29tcG9uZW50LnR5cGUgPT09ICd0b29sYmFyJyA/XG4gICAgICAgICAgICAgICAgPFRvb2xiYXIgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz4gOlxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC50eXBlID09PSAnbGF5b3V0JyA/XG4gICAgICAgICAgICAgICAgICAgIDxMYXlvdXQgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz4gOlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PnsnVW5zdXBwb3J0ZWQgY29tcG9uZW50IHR5cGUgJyArIGNvbXBvbmVudC50eXBlfTwvZGl2PjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW5kZXJQYWdlKHBhZ2UsIHBhZ2VJbmRleCkge1xuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eyd0YWItcGFnZS1jb250YWluZXInfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYWdlLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJUYWJQYWdlQ29tcG9uZW50KGNvbXBvbmVudCwgcGFnZS5pZCwgcGFnZUluZGV4ICsgaW5kZXgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PjtcbiAgICB9XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb21wb25lbnRIYW5kbGVzKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNvbXBvbmVudEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZS5hcGk/LmdldENoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjb21wb25lbnRIYW5kbGUuYXBpLmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzZXRUYWJWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJWYWx1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRQYWdlSGFzRXJyb3I6IChwYWdlSWQsIGhhc0Vycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JzKHsuLi5lcnJvcnMsIFtwYWdlSWRdOiBoYXNFcnJvcn0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyRXJyb3JzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JzKHt9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoOiAoKSA9PiB7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVkcmF3OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gRm9yY2UgcmUtcmVuZGVyXG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZVRhYlBhZ2VzKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICAhVXRpbHMuaXNOdWxsKHZpc2libGVUYWJQYWdlcykgJiZcbiAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgd2lkdGg6IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoID8gcHJvcHMuY29uZmlnPy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGggOiAnMTAwJScsXG4gICAgICAgICAgICBoZWlnaHQ6IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA/IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA6ICcxMDAlJ1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIDxBcHBCYXIgcG9zaXRpb249XCJzdGF0aWNcIiBjb2xvcj1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMWUxZTEnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxUYWJzXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0YWJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRhYkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInNjcm9sbGFibGVcIiAgICAgICAgICAgICAgICAvLyBlbmFibGVzIGhvcml6b250YWwgc2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbEJ1dHRvbnM9XCJhdXRvXCIgICAgICAgICAgICAgICAgLy8gc2hvd3MgYXJyb3dzIHdoZW4gbmVlZGVkXG4gICAgICAgICAgICAgICAgICAgIGFsbG93U2Nyb2xsQnV0dG9uc01vYmlsZSAgICAgICAgICAgIC8vIHNob3cgYXJyb3dzIG9uIG1vYmlsZSB0b29cbiAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIGluZGljYXRvckNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJ0YWJzXCJcbiAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9wdGlvbmFsOiByZWR1Y2UgZGVmYXVsdCBtaW4gd2lkdGggc28gbW9yZSB0YWJzIGZpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aVRhYi1yb290Jzoge21pbldpZHRoOiAxMjB9LFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3Zpc2libGVUYWJQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17cGFnZS5hdHRyaWJ1dGVzWydsYWJlbCddfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGxvdyBtdWx0aS1saW5lIGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5hMTF5UHJvcHMoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDI0MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLCAgICAgICAgICAgICAgICAgLy8gY29uc3RyYWluIHNvIHdyYXBwaW5nIGNhbiBvY2N1clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsICAgICAgICAgICAgIC8vIGFsbG93IHdyYXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLCAgICAgICAgICAvLyBicmVhayBsb25nIHdvcmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJywgICAgICAgICAgICAvLyBrZWVwIG9yaWdpbmFsIGNhc2luZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmlzRm9ybU1hcmtlcnNFbmFibGVkKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnNbcGFnZS5pZF0gPT09IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnI2VkNTI0OSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvVGFicz5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDAlIC0gNjRweCknXG4gICAgICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVUYWJQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBwYWdlPy5hdHRyaWJ1dGVzPy5zdHlsZT8uaGVpZ2h0ID8gcGFnZT8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFiVmFsdWUgPT09IGluZGV4ID8gbnVsbCA6ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFiUGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RhYlZhbHVlfSBpbmRleD17aW5kZXh9IGNvbmZpZz17cGFnZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyUGFnZShwYWdlLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGFiUGFnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVGFiUGFuZWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFD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
|
|
248
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBCYXIiLCJfVGFiIiwiX1RhYnMiLCJfVGFiUGFnZSIsIl9TZWN0aW9uIiwiX1Rvb2xiYXIiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0xheW91dCIsIl9JY29uIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImExMXlQcm9wcyIsImluZGV4IiwiaWQiLCJjb25jYXQiLCJUYWJQYW5lbCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX3Byb3BzJGNvbmZpZyIsIl9wcm9wcyRjb25maWcyIiwiX3Byb3BzJGNvbmZpZzMiLCJfcHJvcHMkY29uZmlnNCIsInRhYlZhbHVlIiwic2V0VGFiVmFsdWUiLCJ1c2VTdGF0ZSIsImVycm9ycyIsInNldEVycm9ycyIsInZpc2libGVUYWJQYWdlcyIsInNldFZpc2libGVUYWJQYWdlcyIsImxvYWRlZCIsInVzZVJlZiIsImNvbXBvbmVudEhhbmRsZXMiLCJoYW5kbGVUYWJDaGFuZ2UiLCJldmVudCIsIm5ld1ZhbHVlIiwiY3JlYXRlQ29tcG9uZW50SGFuZGxlIiwiY29tcG9uZW50IiwiVXRpbHMiLCJpc051bGwiLCJoYW5kbGUiLCJ1c2VFZmZlY3QiLCJhcGkiLCJzZXR1cFZpc2libGVQYWdlcyIsImNvbmZpZyIsInRhYlBhZ2VzIiwiYWxsVmlzaWJsZVRhYlBhZ2VzIiwicGFnZSIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwidmlld0lkIiwidmlzaWJsZSIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJzZXR1cCIsImZvcm0iLCJzZXRDb250YWluZXJFcnJvckhhbmRsZXIiLCJjb250YWluZXJFcnJvcnMiLCJzaG91bGRSZWZyZXNoIiwicHJvcGVydGllcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wZXJ0eSIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRm9ybU1hcmtlcnNFbmFibGVkIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiY3VycmVudCIsInJlbmRlclRhYlBhZ2VDb21wb25lbnQiLCJ0YWJJZCIsInR5cGUiLCJjcmVhdGVFbGVtZW50Iiwia2V5SGFuZGxlciIsImtleSIsInBhcmVudElkIiwidmFsdWVzIiwiTGF5b3V0IiwicmVuZGVyUGFnZSIsInBhZ2VJbmRleCIsImNsYXNzTmFtZSIsImNvbXBvbmVudHMiLCJtYXAiLCJnZXRDaGlsZHJlbiIsImNoaWxkcmVuIiwiX2NvbXBvbmVudEhhbmRsZSRhcGkiLCJjb21wb25lbnRIYW5kbGUiLCJjaGlsZCIsInNldFBhZ2VIYXNFcnJvciIsInBhZ2VJZCIsImhhc0Vycm9yIiwiY2xlYXJFcnJvcnMiLCJyZWZyZXNoIiwicmVkcmF3Iiwic3R5bGUiLCJ3aWR0aCIsImF0dHJpYnV0ZXMiLCJoZWlnaHQiLCJwb3NpdGlvbiIsImNvbG9yIiwiYmFja2dyb3VuZCIsImJveFNoYWRvdyIsImJvcmRlckJvdHRvbSIsIm9uQ2hhbmdlIiwidmFyaWFudCIsInNjcm9sbEJ1dHRvbnMiLCJhbGxvd1Njcm9sbEJ1dHRvbnNNb2JpbGUiLCJ0ZXh0Q29sb3IiLCJpbmRpY2F0b3JDb2xvciIsInN4IiwibWluV2lkdGgiLCJpY29uSWQiLCJsYWJlbCIsImljb24iLCJ1bmRlZmluZWQiLCJpY29uUG9zaXRpb24iLCJ3cmFwcGVkIiwibWF4V2lkdGgiLCJ3aGl0ZVNwYWNlIiwid29yZEJyZWFrIiwidGV4dFRyYW5zZm9ybSIsIm1lcmdlU3R5bGVzIiwiX3BhZ2UkYXR0cmlidXRlcyIsIl9wYWdlJGF0dHJpYnV0ZXMyIiwiZGlzcGxheSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9UYWJQYW5lbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgQXBwQmFyIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQXBwQmFyJztcbmltcG9ydCBUYWIgZnJvbSAnQG11aS9tYXRlcmlhbC9UYWInO1xuaW1wb3J0IFRhYnMgZnJvbSAnQG11aS9tYXRlcmlhbC9UYWJzJztcbmltcG9ydCBUYWJQYWdlIGZyb20gJy4vVGFiUGFnZSc7XG5pbXBvcnQgRm9ybVNlY3Rpb24gZnJvbSAnLi9mb3JtL1NlY3Rpb24nO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSAnLi9Ub29sYmFyJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7TGF5b3V0fSBmcm9tICcuL2xheW91dC9MYXlvdXQnO1xuaW1wb3J0IEljb24gZnJvbSAnLi9JY29uJztcblxuZnVuY3Rpb24gYTExeVByb3BzKGluZGV4KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGBzaW1wbGUtdGFiLSR7aW5kZXh9YCxcbiAgICAgICAgJ2FyaWEtY29udHJvbHMnOiBgc2ltcGxlLXRhYnBhbmVsLSR7aW5kZXh9YCxcbiAgICB9O1xufVxuXG5jb25zdCBUYWJQYW5lbCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW3RhYlZhbHVlLCBzZXRUYWJWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbZXJyb3JzLCBzZXRFcnJvcnNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt2aXNpYmxlVGFiUGFnZXMsIHNldFZpc2libGVUYWJQYWdlc10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBsb2FkZWQgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IFtjb21wb25lbnRIYW5kbGVzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcblxuICAgIGNvbnN0IGhhbmRsZVRhYkNoYW5nZSA9IChldmVudCwgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgc2V0VGFiVmFsdWUobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBjb25zdCBjcmVhdGVDb21wb25lbnRIYW5kbGUgPSAoY29tcG9uZW50KSA9PiB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50SGFuZGxlc1tjb21wb25lbnQuaWRdKSkge1xuICAgICAgICAgICAgbGV0IGhhbmRsZSA9IHt9O1xuICAgICAgICAgICAgY29tcG9uZW50SGFuZGxlc1tjb21wb25lbnQuaWRdID0gaGFuZGxlO1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF07XG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHNldHVwVmlzaWJsZVBhZ2VzKCkge1xuICAgICAgICBpZiAocHJvcHMuY29uZmlnLnRhYlBhZ2VzKSB7XG4gICAgICAgICAgICBsZXQgYWxsVmlzaWJsZVRhYlBhZ2VzID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgcHJvcHMuY29uZmlnLnRhYlBhZ2VzKSB7XG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChwYWdlLmlkKSkge1xuICAgICAgICAgICAgICAgICAgICBwYWdlLmlkID0gaW5kZXggKyAnLXRhYi1wYWdlJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocGFnZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBsZXQgdmlzaWJsZSA9IFV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcudmlzaWJsZSkgfHwgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcGFnZS5pZCk7XG4gICAgICAgICAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsVmlzaWJsZVRhYlBhZ2VzLnB1c2gocGFnZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldFZpc2libGVUYWJQYWdlcyhhbGxWaXNpYmxlVGFiUGFnZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0dXAoKSB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmZvcm0pKSB7XG4gICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAuc2V0Q29udGFpbmVyRXJyb3JIYW5kbGVyKChjb250YWluZXJFcnJvcnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNob3VsZFJlZnJlc2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb250YWluZXJFcnJvcnMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yc1twcm9wZXJ0eV0gIT09IGNvbnRhaW5lckVycm9yc1twcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRSZWZyZXNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBsaWNhdGlvbk1hbmFnZXIuaXNGb3JtTWFya2Vyc0VuYWJsZWQoKSAmJiBzaG91bGRSZWZyZXNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRFcnJvcnMoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb250YWluZXJFcnJvcnMpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vc2V0dXBWaXNpYmxlUGFnZXMoKTtcbiAgICAgICAgbG9hZGVkLmN1cnJlbnQgPSB0cnVlO1xuICAgIH1cblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldHVwKCk7XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYoIXZpc2libGVUYWJQYWdlcykge1xuICAgICAgICAgICAgc2V0dXBWaXNpYmxlUGFnZXMoKVxuICAgICAgICB9XG4gICAgfSwgW3Zpc2libGVUYWJQYWdlc10pO1xuXG4gICAgZnVuY3Rpb24gcmVuZGVyVGFiUGFnZUNvbXBvbmVudChjb21wb25lbnQsIHRhYklkLCBpbmRleCkge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudC5pZCkpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5pZCA9IGluZGV4ICsgJy10YWItY29udGVudCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9uZW50LnR5cGUgPT09ICdmb3JtU2VjdGlvbicgP1xuICAgICAgICAgICAgPEZvcm1TZWN0aW9uIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXt0YWJJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgIC8+IDpcbiAgICAgICAgICAgIGNvbXBvbmVudC50eXBlID09PSAndG9vbGJhcicgP1xuICAgICAgICAgICAgICAgIDxUb29sYmFyIGNvbmZpZz17Y29tcG9uZW50fSBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29tcG9uZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+IDpcbiAgICAgICAgICAgICAgICBjb21wb25lbnQudHlwZSA9PT0gJ2xheW91dCcgP1xuICAgICAgICAgICAgICAgICAgICA8TGF5b3V0IGNvbmZpZz17Y29tcG9uZW50fSBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29tcG9uZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+IDpcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57J1Vuc3VwcG9ydGVkIGNvbXBvbmVudCB0eXBlICcgKyBjb21wb25lbnQudHlwZX08L2Rpdj47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyUGFnZShwYWdlLCBwYWdlSW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXsndGFiLXBhZ2UtY29udGFpbmVyJ30+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFnZS5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyVGFiUGFnZUNvbXBvbmVudChjb21wb25lbnQsIHBhZ2UuaWQsIHBhZ2VJbmRleCArIGluZGV4KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj47XG4gICAgfVxuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcblxuICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChjb21wb25lbnRIYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGUuYXBpPy5nZXRDaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY29tcG9uZW50SGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgc2V0VGFiVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFiVmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0UGFnZUhhc0Vycm9yOiAocGFnZUlkLCBoYXNFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHNldEVycm9ycyh7Li4uZXJyb3JzLCBbcGFnZUlkXTogaGFzRXJyb3J9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGVhckVycm9yczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldEVycm9ycyh7fSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaDogKCkgPT4ge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZHJhdzogKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEZvcmNlIHJlLXJlbmRlclxuICAgICAgICAgICAgICAgIHNldFZpc2libGVUYWJQYWdlcyhudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgIVV0aWxzLmlzTnVsbCh2aXNpYmxlVGFiUGFnZXMpICYmXG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIHdpZHRoOiBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy53aWR0aCA/IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoIDogJzEwMCUnLFxuICAgICAgICAgICAgaGVpZ2h0OiBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgPyBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgOiAnMTAwJSdcbiAgICAgICAgfX0+XG4gICAgICAgICAgICA8QXBwQmFyIHBvc2l0aW9uPVwic3RhdGljXCIgY29sb3I9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTFlMWUxJ1xuICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICA8VGFic1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGFiVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVUYWJDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzY3JvbGxhYmxlXCIgICAgICAgICAgICAgICAgLy8gZW5hYmxlcyBob3Jpem9udGFsIHNjcm9sbFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxCdXR0b25zPVwiYXV0b1wiICAgICAgICAgICAgICAgIC8vIHNob3dzIGFycm93cyB3aGVuIG5lZWRlZFxuICAgICAgICAgICAgICAgICAgICBhbGxvd1Njcm9sbEJ1dHRvbnNNb2JpbGUgICAgICAgICAgICAvLyBzaG93IGFycm93cyBvbiBtb2JpbGUgdG9vXG4gICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICBpbmRpY2F0b3JDb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwidGFic1wiXG4gICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvcHRpb25hbDogcmVkdWNlIGRlZmF1bHQgbWluIHdpZHRoIHNvIG1vcmUgdGFicyBmaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICcmIC5NdWlUYWItcm9vdCc6IHttaW5XaWR0aDogMTIwfSxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt2aXNpYmxlVGFiUGFnZXMubWFwKChwYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3B0aW9uYWwgcGVyLXRhYiBpY29uOiBgYXR0cmlidXRlcy5pY29uYCBpcyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEljb24gY29tcG9uZW50J3MgaWQgKGUuZy4gXCJXT1JLXCIsIFwiVklFV1wiKS4gV2hlblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJlc2VudCwgcmVuZGVyIHRvIHRoZSBsZWZ0IG9mIHRoZSBsYWJlbC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGljb25JZCA9IHBhZ2UuYXR0cmlidXRlc1snaWNvbiddO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtwYWdlLmF0dHJpYnV0ZXNbJ2xhYmVsJ119XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e2ljb25JZCA/IDxJY29uIGlkPXtpY29uSWR9Lz4gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj17aWNvbklkID8gJ3N0YXJ0JyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3cgbXVsdGktbGluZSBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uYTExeVByb3BzKGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiAyNDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJywgICAgICAgICAgICAgICAgIC8vIGNvbnN0cmFpbiBzbyB3cmFwcGluZyBjYW4gb2NjdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3JtYWwnLCAgICAgICAgICAgICAvLyBhbGxvdyB3cmFwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JkQnJlYWs6ICdicmVhay13b3JkJywgICAgICAgICAgLy8gYnJlYWsgbG9uZyB3b3Jkc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFRyYW5zZm9ybTogJ3VwcGVyY2FzZScsICAgICAgICAgICAgLy8ga2VlcCBvcmlnaW5hbCBjYXNpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzW3BhZ2UuaWRdID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJyNlZDUyNDknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L1RhYnM+XG4gICAgICAgICAgICA8L0FwcEJhcj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwJSAtIDY0cHgpJ1xuICAgICAgICAgICAgICAgIH0sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlVGFiUGFnZXMubWFwKChwYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcGFnZT8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA/IHBhZ2U/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYlZhbHVlID09PSBpbmRleCA/IG51bGwgOiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYlBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0YWJWYWx1ZX0gaW5kZXg9e2luZGV4fSBjb25maWc9e3BhZ2V9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclBhZ2UocGFnZSwgaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RhYlBhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYlBhbmVsO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxtQkFBQSxH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
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _Utils = _interopRequireDefault(require("../Utils"));
|
|
9
9
|
var _Error = _interopRequireDefault(require("@mui/icons-material/Error"));
|
|
10
|
+
var _Chip = _interopRequireDefault(require("@mui/material/Chip"));
|
|
10
11
|
var _Tooltip = _interopRequireDefault(require("./Tooltip"));
|
|
11
12
|
var _Form = _interopRequireDefault(require("./form/Form"));
|
|
12
13
|
var _DynamicJS = _interopRequireDefault(require("../DynamicJS"));
|
|
@@ -167,6 +168,42 @@ const TableCellContent = /*#__PURE__*/_react.default.memo(props => {
|
|
|
167
168
|
displayValue = contentValue ? "Yes" : "No";
|
|
168
169
|
} else if (contentType === 'MULTI_FILE_UPLOAD') {
|
|
169
170
|
displayValue = contentValue.map(file => file.name).join(", ");
|
|
171
|
+
} else if (Array.isArray(contentValue)) {
|
|
172
|
+
// MULTI_LOOKUP cells render each item as an inline Chip so the
|
|
173
|
+
// non-edit row looks identical to the edit-mode field (which
|
|
174
|
+
// also renders Chips). The container wraps so rows grow only
|
|
175
|
+
// when there are many items, instead of being clipped.
|
|
176
|
+
const chipItems = contentValue.map(item => {
|
|
177
|
+
var _ref, _item$id;
|
|
178
|
+
return {
|
|
179
|
+
id: item && ((_ref = (_item$id = item.id) !== null && _item$id !== void 0 ? _item$id : item.username) !== null && _ref !== void 0 ? _ref : item.dataRecordDescription),
|
|
180
|
+
label: item && (item.__oui_label || item.dataRecordDescription || item.fullName || item.username || '')
|
|
181
|
+
};
|
|
182
|
+
}).filter(c => c.label);
|
|
183
|
+
if (chipItems.length === 0) {
|
|
184
|
+
return '';
|
|
185
|
+
}
|
|
186
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
187
|
+
style: {
|
|
188
|
+
display: 'flex',
|
|
189
|
+
flexWrap: 'wrap',
|
|
190
|
+
gap: '4px',
|
|
191
|
+
padding: '2px 0',
|
|
192
|
+
alignItems: 'center'
|
|
193
|
+
}
|
|
194
|
+
}, chipItems.map(c => /*#__PURE__*/_react.default.createElement(_Chip.default, {
|
|
195
|
+
key: c.id,
|
|
196
|
+
label: c.label,
|
|
197
|
+
size: "small",
|
|
198
|
+
variant: "outlined",
|
|
199
|
+
sx: {
|
|
200
|
+
maxWidth: '100%',
|
|
201
|
+
'& .MuiChip-label': {
|
|
202
|
+
overflow: 'hidden',
|
|
203
|
+
textOverflow: 'ellipsis'
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
})));
|
|
170
207
|
} else {
|
|
171
208
|
if (typeof contentValue === 'object') {
|
|
172
209
|
// TODO : First check if the editor has a display template. If it does, use it to get the display value
|
|
@@ -269,4 +306,4 @@ const TableCellContent = /*#__PURE__*/_react.default.memo(props => {
|
|
|
269
306
|
return (!props.editor || props.editor && editor) && render();
|
|
270
307
|
});
|
|
271
308
|
var _default = exports.default = TableCellContent;
|
|
272
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FcnJvciIsIl9Ub29sdGlwIiwiX0Zvcm0iLCJfRHluYW1pY0pTIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIlRhYmxlQ2VsbENvbnRlbnQiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImNvbnRlbnRUeXBlIiwidXNlU3RhdGUiLCJyZWZyZXNoZXIiLCJzZXRSZWZyZXNoZXIiLCJlZGl0b3IiLCJzZXRFZGl0b3IiLCJlZGl0b3JWYWx1ZSIsInVzZVJlZiIsImVzY2FwZVJlZ2V4IiwicyIsInJlcGxhY2UiLCJlZGl0aW5nUmVmIiwiZm9ybWF0dGVyIiwiSW50bCIsIk51bWJlckZvcm1hdCIsInN0eWxlIiwiY3VycmVuY3kiLCJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiLCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMiLCJ2YWxpZGF0ZSIsInZhbGlkYXRvciIsIlV0aWxzIiwiaXNOdWxsIiwicmVxdWlyZWQiLCJudWxsYWJsZSIsIm51bGxhYmxlRXhwcmVzc2lvbiIsImNvbmNhdCIsInJvdyIsImluZGV4IiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsImRhdGFCaW5kaW5nIiwiZm9ybVZhbHVlIiwiaWQiLCJ2YWxpZGF0aW9uIiwidmFsaWRhdGVGaWVsZCIsInZhbGlkIiwiZXJyb3IiLCJjb2x1bW4iLCJtZXNzYWdlIiwidXBkYXRlRXJyb3JzIiwib25Sb3dFcnJvciIsInZhbHVlQ2hhbmdlSGFuZGxlciIsImN1cnJlbnQiLCJ1c2VFZmZlY3QiLCJyZWFkTmVzdGVkUHJvcGVydHkiLCJhdHRyaWJ1dGVzIiwiY29udGFpbmVyU3R5bGUiLCJtaW5XaWR0aCIsIndpZHRoIiwicm93SWQiLCJmb3JtYXREYXRlIiwiY29udGVudFZhbHVlIiwiZGF0ZSIsIkRhdGUiLCJmb3JtYXR0ZWQiLCJnZXREYXRlIiwicGFkU3RhcnQiLCJnZXRNb250aCIsImdldEZ1bGxZZWFyIiwiYnVpbGRTZWFyY2hUZXJtcyIsInBhcmFtZXRlcnMiLCJzZXQiLCJTZXQiLCJwIiwidGVybSIsInNwbGl0IiwidHJpbSIsImFkZCIsInRvTG93ZXJDYXNlIiwiQXJyYXkiLCJmcm9tIiwiaGlnaGxpZ2h0VG9rZW5zIiwidGVybXMiLCJwYXR0ZXJuIiwibWFwIiwiam9pbiIsInNwbGl0UmVnZXgiLCJSZWdFeHAiLCJleGFjdFJlZ2V4IiwicGFydHMiLCJwYXJ0IiwiaXNNYXRjaCIsInRlc3QiLCJjcmVhdGVFbGVtZW50Iiwia2V5IiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJib3JkZXJSYWRpdXMiLCJmb250V2VpZ2h0IiwiYm94U2hhZG93IiwiZ2V0U3RhdGljRGlzcGxheVZhbHVlIiwiZGlzcGxheVZhbHVlIiwidG9rZW5zIiwicGFyZW50IiwiY29sdW1uQ29uZmlnIiwiY2VsbEZvcm1hdCIsImNlbGxGb3JtYXR0ZXIiLCJkeW5hbWljSlMiLCJleGVjdXRlU2NyaXB0RnVuY3Rpb24iLCJmb3JtYXQiLCJNYXRoIiwicm91bmQiLCJFUFNJTE9OIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiZmlsZSIsIm5hbWUiLCJkYXRhUmVjb3JkRGVzY3JpcHRpb24iLCJjcml0ZXJpYSIsImRvUmVuZGVyIiwic2VsZWN0ZWQiLCJmb3JtQ29uZmlnIiwidHlwZSIsInNlY3Rpb25zIiwiY29tcG9uZW50cyIsImZpZWxkcyIsImNvbmZpZyIsImhhbmRsZSIsInZhbHVlcyIsInZpZXdJZCIsInJlbmRlciIsImhhc0Vycm9yIiwiY2xhc3NOYW1lIiwid3JhcCIsImJvcmRlciIsInRpdGxlIiwidGV4dEFsaWduIiwibWF4V2lkdGgiLCJhcGkiLCJ2YWwiLCJyZWZyZXNoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL1RhYmxlQ2VsbENvbnRlbnQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEVycm9ySWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Vycm9yJztcbmltcG9ydCBDdXN0b21Ub29sdGlwIGZyb20gJy4vVG9vbHRpcCc7XG5pbXBvcnQgRm9ybSBmcm9tIFwiLi9mb3JtL0Zvcm1cIjtcbmltcG9ydCBkeW5hbWljSlMgZnJvbSBcIi4uL0R5bmFtaWNKU1wiO1xuXG5jb25zdCBUYWJsZUNlbGxDb250ZW50ID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbY29udGVudFR5cGVdID0gUmVhY3QudXNlU3RhdGUocHJvcHMuY29udGVudFR5cGUpO1xuICAgIGNvbnN0IFtyZWZyZXNoZXIsIHNldFJlZnJlc2hlcl0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbZWRpdG9yLCBzZXRFZGl0b3JdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgZWRpdG9yVmFsdWUgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZXNjYXBlUmVnZXggPSAocykgPT4gcy5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xuICAgIGNvbnN0IGVkaXRpbmdSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KFwiZW4tWkFcIiwge1xuICAgICAgICBzdHlsZTogXCJjdXJyZW5jeVwiLFxuICAgICAgICBjdXJyZW5jeTogXCJaQVJcIixcbiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgfSk7XG5cbiAgICBjb25zdCB2YWxpZGF0ZSA9ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuZWRpdG9yKSB7XG4gICAgICAgICAgICBsZXQgdmFsaWRhdG9yID0gcHJvcHMudmFsaWRhdG9yO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsaWRhdG9yKSkge1xuICAgICAgICAgICAgICAgIGxldCByZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbGlkYXRvci5udWxsYWJsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG51bGxhYmxlRXhwcmVzc2lvbiA9IHZhbGlkYXRvci5udWxsYWJsZS5yZXBsYWNlKC9cXFsjaV0vZywgYFske3Byb3BzLnJvdy5pbmRleH1dYCk7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkID0gIVV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24obnVsbGFibGVFeHByZXNzaW9uLCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1WYWx1ZSA9IHt9O1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZVtwcm9wcy5lZGl0b3IuZGF0YUJpbmRpbmcgfHwgcHJvcHMuZWRpdG9yLmlkXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0aW9uID0gVXRpbHMudmFsaWRhdGVGaWVsZChwcm9wcy5kYXRhQmluZGluZyxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQsIGZvcm1WYWx1ZSwgdmFsdWUsIHZhbGlkYXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0aW9uLnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBlcnJvci5jb2x1bW4gPSBwcm9wcy5kYXRhQmluZGluZztcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IHZhbGlkYXRpb24ubWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZUVycm9ycyhlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHByb3BzLm9uUm93RXJyb3IocHJvcHMuZGF0YUJpbmRpbmcsIGVycm9yLCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9wcy5vblJvd0Vycm9yKHByb3BzLmRhdGFCaW5kaW5nLCBudWxsLCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZUNoYW5nZUhhbmRsZXIgPSAodmFsdWUpID0+IHtcbiAgICAgICAgZWRpdGluZ1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgdXBkYXRlRXJyb3JzKHZhbGlkYXRlKHZhbHVlKSk7XG4gICAgICAgIHByb3BzLnZhbHVlQ2hhbmdlSGFuZGxlcihwcm9wcy5yb3cuaWQsIHByb3BzLmRhdGFCaW5kaW5nLCB2YWx1ZSk7XG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZWRpdGluZ1JlZi5jdXJyZW50ICYmIHByb3BzLmVkaXRvciAmJiBwcm9wcy5yb3cpIHtcbiAgICAgICAgICAgIGVkaXRvclZhbHVlLmN1cnJlbnQgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIH1cbiAgICB9LCBbcHJvcHMucm93LCBwcm9wcy5lZGl0b3JdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmVkaXRvcikpIHtcbiAgICAgICAgICAgIGxldCBlID0gey4uLnByb3BzLmVkaXRvciwgaWQ6IHByb3BzLmVkaXRvci5pZC5yZXBsYWNlKCcuJywgJ18nKX07XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGUuYXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgICAgICBlLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChlLmF0dHJpYnV0ZXMuc3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLnN0eWxlID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlKSkge1xuICAgICAgICAgICAgICAgIGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZSA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggPSBlLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggPyBlLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggOiAwO1xuICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoID0gZS5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoID8gZS5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoIDogJ2NhbGMoMTAwJSAtIDhweCknO1xuICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlLm1pbldpZHRoID0gZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlLm1pbldpZHRoID8gZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlLm1pbldpZHRoIDogMDtcbiAgICAgICAgICAgIGUucm93SWQgPSBwcm9wcy5yb3cuaWQ7XG5cbiAgICAgICAgICAgIHNldEVkaXRvcihlKTtcbiAgICAgICAgICAgIC8vIFRoaXMgZm9yY2VzIHRoZSBlZGl0YWJsZSBncmlkIHRvIHZhbGlkYXRlIGl0cyBpbml0aWFsIHZhbHVlXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXIoVXRpbHMuaXNOdWxsKHZhbHVlKSA/IG51bGwgOiB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbcHJvcHMuZWRpdG9yXSk7XG5cbiAgICBjb25zdCBmb3JtYXREYXRlID0gKGNvbnRlbnRWYWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoY29udGVudFZhbHVlKTtcblxuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBgJHtTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyl9L2AgK1xuICAgICAgICAgICAgYCR7U3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyl9L2AgK1xuICAgICAgICAgICAgYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgICB9XG5cbi8vIEJ1aWxkIGZsYXQsIGRlZHVwZWQgbGlzdCBvZiBzZWFyY2ggdGVybXMgZnJvbSBjcml0ZXJpYS5wYXJhbWV0ZXJzXG4gICAgY29uc3QgYnVpbGRTZWFyY2hUZXJtcyA9IChwYXJhbWV0ZXJzKSA9PiB7XG4gICAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhcmFtZXRlcnMgfHwgW10pIHtcbiAgICAgICAgICAgIGlmIChwPy52YWx1ZSAmJiB0eXBlb2YgcC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRlcm0gb2YgcC52YWx1ZS5zcGxpdCgvXFxzKy8pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSB0ZXJtLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQpIHNldC5hZGQodC50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oc2V0KTsgLy8gbG93ZXJjYXNlIHRlcm1zXG4gICAgfTtcblxuICAgIGNvbnN0IGhpZ2hsaWdodFRva2VucyA9ICh2YWx1ZSwgdGVybXMpID0+IHtcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdGVybXM/Lmxlbmd0aCkgcmV0dXJuIHZhbHVlO1xuXG4gICAgICAgIC8vIENvbWJpbmUgdGVybXMgaW50byBhIHNpbmdsZSBjYXB0dXJpbmcgZ3JvdXAgZm9yIHNwbGl0XG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSBgKCR7dGVybXMubWFwKHQgPT4gZXNjYXBlUmVnZXgodCkpLmpvaW4oJ3wnKX0pYDtcbiAgICAgICAgY29uc3Qgc3BsaXRSZWdleCA9IG5ldyBSZWdFeHAocGF0dGVybiwgJ2dpJyk7XG4gICAgICAgIGNvbnN0IGV4YWN0UmVnZXggPSBuZXcgUmVnRXhwKGBeKD86JHtwYXR0ZXJufSkkYCwgJ2knKTsgLy8gdG8gdGVzdCBwYXJ0c1xuXG4gICAgICAgIGNvbnN0IHBhcnRzID0gdmFsdWUuc3BsaXQoc3BsaXRSZWdleCk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnRzLm1hcCgocGFydCwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNNYXRjaCA9IGV4YWN0UmVnZXgudGVzdChwYXJ0KTtcbiAgICAgICAgICAgIHJldHVybiBpc01hdGNoID8gKFxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmViM2InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDAgM3B4IHJnYmEoMCwwLDAsMC4zKSdcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgIHtwYXJ0fVxuICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3BhbiBrZXk9e2l9PntwYXJ0fTwvc3Bhbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRTdGF0aWNEaXNwbGF5VmFsdWUgPSAoKSA9PiB7XG4gICAgICAgIGxldCBkaXNwbGF5VmFsdWU7XG4gICAgICAgIGxldCBjb250ZW50VmFsdWU7XG4gICAgICAgIGxldCB0b2tlbnMgPSBwcm9wcy5kYXRhQmluZGluZy5zcGxpdCgnLicpO1xuXG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBjb250ZW50VmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgcGFyZW50ID0gcHJvcHMucm93O1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50W3Rva2Vuc1tpXV07XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgY29udGVudFZhbHVlID0gcGFyZW50W3Rva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BzLmNvbHVtbkNvbmZpZy5jZWxsRm9ybWF0ID09PSAnQ1VSUkVOQ1knIHx8IHByb3BzLmNvbHVtbkNvbmZpZy5jZWxsRm9ybWF0ID09PSAnTlVNQkVSJykge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNlbGxGb3JtYXR0ZXIgPyBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdEZ1bmN0aW9uKHByb3BzLmNlbGxGb3JtYXR0ZXIsIGNvbnRlbnRWYWx1ZSlcbiAgICAgICAgICAgICAgICA6IFV0aWxzLmlzTnVsbChjb250ZW50VmFsdWUpID8gJycgOiBwcm9wcy5jb2x1bW5Db25maWcuY2VsbEZvcm1hdCA9PT0gJ0NVUlJFTkNZJyA/XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlci5mb3JtYXQoTWF0aC5yb3VuZCgoY29udGVudFZhbHVlICsgTnVtYmVyLkVQU0lMT04pICogMTAwKSAvIDEwMCkgOiBNYXRoLnJvdW5kKChjb250ZW50VmFsdWUgKyBOdW1iZXIuRVBTSUxPTikgKiAxMDApIC8gMTAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb250ZW50VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRUeXBlID09PSAnREFURScpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBmb3JtYXREYXRlKGNvbnRlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRUeXBlID09PSAnVElNRScpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBuZXcgRGF0ZShjb250ZW50VmFsdWUpLnRvTG9jYWxlVGltZVN0cmluZygpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ0NIRUNLQk9YJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IGNvbnRlbnRWYWx1ZSA/IFwiWWVzXCIgOiBcIk5vXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRUeXBlID09PSAnTVVMVElfRklMRV9VUExPQUQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gY29udGVudFZhbHVlLm1hcChmaWxlID0+IGZpbGUubmFtZSkuam9pbihcIiwgXCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyA6IEZpcnN0IGNoZWNrIGlmIHRoZSBlZGl0b3IgaGFzIGEgZGlzcGxheSB0ZW1wbGF0ZS4gSWYgaXQgZG9lcywgdXNlIGl0IHRvIGdldCB0aGUgZGlzcGxheSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUuZGF0YVJlY29yZERlc2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wcy5jcml0ZXJpYSAmJiBwcm9wcy5jcml0ZXJpYS5wYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXJtcyA9IGJ1aWxkU2VhcmNoVGVybXMocHJvcHMuY3JpdGVyaWEucGFyYW1ldGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0VG9rZW5zKGNvbnRlbnRWYWx1ZSwgdGVybXMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3BzLmNlbGxGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdEZ1bmN0aW9uKHByb3BzLmNlbGxGb3JtYXR0ZXIsIGNvbnRlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZG9SZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICghcHJvcHMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRTdGF0aWNEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAvL3Byb3BzLmZvcm1WYWx1ZXNbcHJvcHMuZWRpdG9yLmlkXSA9IHByb3BzLnJvd1twcm9wcy5kYXRhQmluZGluZ107XG5cbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW3Byb3BzLmVkaXRvci5kYXRhQmluZGluZyB8fCBwcm9wcy5lZGl0b3IuaWRdID0gZWRpdG9yVmFsdWUuY3VycmVudDtcbiAgICAgICAgICAgICAgICBsZXQgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5lZGl0b3IuaWQgKyBcIl9mb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtU2VjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmaWVsZFNldFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2lkdGhcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluV2lkdGhcIjogXCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtIGNvbmZpZz17Zm9ybUNvbmZpZ30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17Zm9ybVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yVmFsdWUuY3VycmVudCA9IHZhbHVlID8gdmFsdWVbZWRpdG9yLmRhdGFCaW5kaW5nIHx8IGVkaXRvci5pZF0gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKGVkaXRvclZhbHVlLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3RhdGljRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVuZGVyID0gKCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIGxldCBlcnJvciA9IHZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgdXBkYXRlRXJyb3JzKGVycm9yKTtcblxuICAgICAgICBsZXQgaGFzRXJyb3IgPSAhVXRpbHMuaXNOdWxsKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIDx0YWJsZSBjbGFzc05hbWU9e3Byb3BzLndyYXAgPyAndGFibGVDZWxsQ29udGVudENvbnRhaW5lcicgOiAndGFibGVDZWxsQ29udGVudENvbnRhaW5lck5vV3JhcCd9IGJvcmRlcj1cIjBcIj5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICB7aGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3t3aWR0aDogJzhweCd9fT48Q3VzdG9tVG9vbHRpcCB0aXRsZT17ZXJyb3IubWVzc2FnZX0gdHlwZT17J0VSUk9SJ30+PEVycm9ySWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tjb2xvcjogJyNmNDQzMzYnfX0vPjwvQ3VzdG9tVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD4gOiBudWxsfVxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT17cHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdNT05FWScgfHwgcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdOVU1CRVInXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfX0+e2RvUmVuZGVyKCl9PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPjtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBzZXQgdmFsdWUodmFsKSB7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFJlZnJlc2hlcighcmVmcmVzaGVyKTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXIodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoIXByb3BzLmVkaXRvciB8fCAocHJvcHMuZWRpdG9yICYmIGVkaXRvcikpICYmIHJlbmRlcigpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQ2VsbENvbnRlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUFxQyxTQUFBRCx1QkFBQU8sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFR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
|
|
309
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FcnJvciIsIl9DaGlwIiwiX1Rvb2x0aXAiLCJfRm9ybSIsIl9EeW5hbWljSlMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiVGFibGVDZWxsQ29udGVudCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiY29udGVudFR5cGUiLCJ1c2VTdGF0ZSIsInJlZnJlc2hlciIsInNldFJlZnJlc2hlciIsImVkaXRvciIsInNldEVkaXRvciIsImVkaXRvclZhbHVlIiwidXNlUmVmIiwiZXNjYXBlUmVnZXgiLCJzIiwicmVwbGFjZSIsImVkaXRpbmdSZWYiLCJmb3JtYXR0ZXIiLCJJbnRsIiwiTnVtYmVyRm9ybWF0Iiwic3R5bGUiLCJjdXJyZW5jeSIsIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIsIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIsInZhbGlkYXRlIiwidmFsaWRhdG9yIiwiVXRpbHMiLCJpc051bGwiLCJyZXF1aXJlZCIsIm51bGxhYmxlIiwibnVsbGFibGVFeHByZXNzaW9uIiwiY29uY2F0Iiwicm93IiwiaW5kZXgiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiZGF0YUJpbmRpbmciLCJmb3JtVmFsdWUiLCJpZCIsInZhbGlkYXRpb24iLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWQiLCJlcnJvciIsImNvbHVtbiIsIm1lc3NhZ2UiLCJ1cGRhdGVFcnJvcnMiLCJvblJvd0Vycm9yIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsImF0dHJpYnV0ZXMiLCJjb250YWluZXJTdHlsZSIsIm1pbldpZHRoIiwid2lkdGgiLCJyb3dJZCIsImZvcm1hdERhdGUiLCJjb250ZW50VmFsdWUiLCJkYXRlIiwiRGF0ZSIsImZvcm1hdHRlZCIsImdldERhdGUiLCJwYWRTdGFydCIsImdldE1vbnRoIiwiZ2V0RnVsbFllYXIiLCJidWlsZFNlYXJjaFRlcm1zIiwicGFyYW1ldGVycyIsInNldCIsIlNldCIsInAiLCJ0ZXJtIiwic3BsaXQiLCJ0cmltIiwiYWRkIiwidG9Mb3dlckNhc2UiLCJBcnJheSIsImZyb20iLCJoaWdobGlnaHRUb2tlbnMiLCJ0ZXJtcyIsInBhdHRlcm4iLCJtYXAiLCJqb2luIiwic3BsaXRSZWdleCIsIlJlZ0V4cCIsImV4YWN0UmVnZXgiLCJwYXJ0cyIsInBhcnQiLCJpc01hdGNoIiwidGVzdCIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb2xvciIsImJvcmRlclJhZGl1cyIsImZvbnRXZWlnaHQiLCJib3hTaGFkb3ciLCJnZXRTdGF0aWNEaXNwbGF5VmFsdWUiLCJkaXNwbGF5VmFsdWUiLCJ0b2tlbnMiLCJwYXJlbnQiLCJjb2x1bW5Db25maWciLCJjZWxsRm9ybWF0IiwiY2VsbEZvcm1hdHRlciIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHRGdW5jdGlvbiIsImZvcm1hdCIsIk1hdGgiLCJyb3VuZCIsIkVQU0lMT04iLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJmaWxlIiwibmFtZSIsImlzQXJyYXkiLCJjaGlwSXRlbXMiLCJpdGVtIiwiX3JlZiIsIl9pdGVtJGlkIiwidXNlcm5hbWUiLCJkYXRhUmVjb3JkRGVzY3JpcHRpb24iLCJsYWJlbCIsIl9fb3VpX2xhYmVsIiwiZnVsbE5hbWUiLCJjIiwiZGlzcGxheSIsImZsZXhXcmFwIiwiZ2FwIiwicGFkZGluZyIsImFsaWduSXRlbXMiLCJzaXplIiwidmFyaWFudCIsInN4IiwibWF4V2lkdGgiLCJvdmVyZmxvdyIsInRleHRPdmVyZmxvdyIsImNyaXRlcmlhIiwiZG9SZW5kZXIiLCJzZWxlY3RlZCIsImZvcm1Db25maWciLCJ0eXBlIiwic2VjdGlvbnMiLCJjb21wb25lbnRzIiwiZmllbGRzIiwiY29uZmlnIiwiaGFuZGxlIiwidmFsdWVzIiwidmlld0lkIiwicmVuZGVyIiwiaGFzRXJyb3IiLCJjbGFzc05hbWUiLCJ3cmFwIiwiYm9yZGVyIiwidGl0bGUiLCJ0ZXh0QWxpZ24iLCJhcGkiLCJ2YWwiLCJyZWZyZXNoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL1RhYmxlQ2VsbENvbnRlbnQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEVycm9ySWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Vycm9yJztcbmltcG9ydCBDaGlwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQ2hpcCc7XG5pbXBvcnQgQ3VzdG9tVG9vbHRpcCBmcm9tICcuL1Rvb2x0aXAnO1xuaW1wb3J0IEZvcm0gZnJvbSBcIi4vZm9ybS9Gb3JtXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi9EeW5hbWljSlNcIjtcblxuY29uc3QgVGFibGVDZWxsQ29udGVudCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2NvbnRlbnRUeXBlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmNvbnRlbnRUeXBlKTtcbiAgICBjb25zdCBbcmVmcmVzaGVyLCBzZXRSZWZyZXNoZXJdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2VkaXRvciwgc2V0RWRpdG9yXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGVkaXRvclZhbHVlID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGVzY2FwZVJlZ2V4ID0gKHMpID0+IHMucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKTtcbiAgICBjb25zdCBlZGl0aW5nUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChcImVuLVpBXCIsIHtcbiAgICAgICAgc3R5bGU6IFwiY3VycmVuY3lcIixcbiAgICAgICAgY3VycmVuY3k6IFwiWkFSXCIsXG4gICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSAodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLmVkaXRvcikge1xuICAgICAgICAgICAgbGV0IHZhbGlkYXRvciA9IHByb3BzLnZhbGlkYXRvcjtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbGlkYXRvcikpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh2YWxpZGF0b3IubnVsbGFibGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBudWxsYWJsZUV4cHJlc3Npb24gPSB2YWxpZGF0b3IubnVsbGFibGUucmVwbGFjZSgvXFxbI2ldL2csIGBbJHtwcm9wcy5yb3cuaW5kZXh9XWApO1xuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCA9ICFVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKG51bGxhYmxlRXhwcmVzc2lvbiwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVbcHJvcHMuZWRpdG9yLmRhdGFCaW5kaW5nIHx8IHByb3BzLmVkaXRvci5pZF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdGlvbiA9IFV0aWxzLnZhbGlkYXRlRmllbGQocHJvcHMuZGF0YUJpbmRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkLCBmb3JtVmFsdWUsIHZhbHVlLCB2YWxpZGF0b3IpO1xuICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuY29sdW1uID0gcHJvcHMuZGF0YUJpbmRpbmc7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSB2YWxpZGF0aW9uLm1lc3NhZ2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVFcnJvcnMoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICBwcm9wcy5vblJvd0Vycm9yKHByb3BzLmRhdGFCaW5kaW5nLCBlcnJvciwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvcHMub25Sb3dFcnJvcihwcm9wcy5kYXRhQmluZGluZywgbnVsbCwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVDaGFuZ2VIYW5kbGVyID0gKHZhbHVlKSA9PiB7XG4gICAgICAgIGVkaXRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHVwZGF0ZUVycm9ycyh2YWxpZGF0ZSh2YWx1ZSkpO1xuICAgICAgICBwcm9wcy52YWx1ZUNoYW5nZUhhbmRsZXIocHJvcHMucm93LmlkLCBwcm9wcy5kYXRhQmluZGluZywgdmFsdWUpO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVkaXRpbmdSZWYuY3VycmVudCAmJiBwcm9wcy5lZGl0b3IgJiYgcHJvcHMucm93KSB7XG4gICAgICAgICAgICBlZGl0b3JWYWx1ZS5jdXJyZW50ID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLnJvdywgcHJvcHMuZWRpdG9yXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICBsZXQgZSA9IHsuLi5wcm9wcy5lZGl0b3IsIGlkOiBwcm9wcy5lZGl0b3IuaWQucmVwbGFjZSgnLicsICdfJyl9O1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChlLmF0dHJpYnV0ZXMpKSB7XG4gICAgICAgICAgICAgICAgZS5hdHRyaWJ1dGVzID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZS5hdHRyaWJ1dGVzLnN0eWxlKSkge1xuICAgICAgICAgICAgICAgIGUuYXR0cmlidXRlcy5zdHlsZSA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZSkpIHtcbiAgICAgICAgICAgICAgICBlLmF0dHJpYnV0ZXMuY29udGFpbmVyU3R5bGUgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoID0gZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoID8gZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoIDogMDtcbiAgICAgICAgICAgIGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA9IGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA/IGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA6ICdjYWxjKDEwMCUgLSA4cHgpJztcbiAgICAgICAgICAgIGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA9IGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA/IGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA6IDA7XG4gICAgICAgICAgICBlLnJvd0lkID0gcHJvcHMucm93LmlkO1xuXG4gICAgICAgICAgICBzZXRFZGl0b3IoZSk7XG4gICAgICAgICAgICAvLyBUaGlzIGZvcmNlcyB0aGUgZWRpdGFibGUgZ3JpZCB0byB2YWxpZGF0ZSBpdHMgaW5pdGlhbCB2YWx1ZVxuICAgICAgICAgICAgbGV0IHZhbHVlID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKFV0aWxzLmlzTnVsbCh2YWx1ZSkgPyBudWxsIDogdmFsdWUpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLmVkaXRvcl0pO1xuXG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IChjb250ZW50VmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGNvbnRlbnRWYWx1ZSk7XG5cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYCR7U3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpfS9gICtcbiAgICAgICAgICAgIGAke1N0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpfS9gICtcbiAgICAgICAgICAgIGAke2RhdGUuZ2V0RnVsbFllYXIoKX1gO1xuXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgfVxuXG4vLyBCdWlsZCBmbGF0LCBkZWR1cGVkIGxpc3Qgb2Ygc2VhcmNoIHRlcm1zIGZyb20gY3JpdGVyaWEucGFyYW1ldGVyc1xuICAgIGNvbnN0IGJ1aWxkU2VhcmNoVGVybXMgPSAocGFyYW1ldGVycykgPT4ge1xuICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXJhbWV0ZXJzIHx8IFtdKSB7XG4gICAgICAgICAgICBpZiAocD8udmFsdWUgJiYgdHlwZW9mIHAudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0ZXJtIG9mIHAudmFsdWUuc3BsaXQoL1xccysvKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gdGVybS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0KSBzZXQuYWRkKHQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHNldCk7IC8vIGxvd2VyY2FzZSB0ZXJtc1xuICAgIH07XG5cbiAgICBjb25zdCBoaWdobGlnaHRUb2tlbnMgPSAodmFsdWUsIHRlcm1zKSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgIXRlcm1zPy5sZW5ndGgpIHJldHVybiB2YWx1ZTtcblxuICAgICAgICAvLyBDb21iaW5lIHRlcm1zIGludG8gYSBzaW5nbGUgY2FwdHVyaW5nIGdyb3VwIGZvciBzcGxpdFxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gYCgke3Rlcm1zLm1hcCh0ID0+IGVzY2FwZVJlZ2V4KHQpKS5qb2luKCd8Jyl9KWA7XG4gICAgICAgIGNvbnN0IHNwbGl0UmVnZXggPSBuZXcgUmVnRXhwKHBhdHRlcm4sICdnaScpO1xuICAgICAgICBjb25zdCBleGFjdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXig/OiR7cGF0dGVybn0pJGAsICdpJyk7IC8vIHRvIHRlc3QgcGFydHNcblxuICAgICAgICBjb25zdCBwYXJ0cyA9IHZhbHVlLnNwbGl0KHNwbGl0UmVnZXgpO1xuXG4gICAgICAgIHJldHVybiBwYXJ0cy5tYXAoKHBhcnQsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzTWF0Y2ggPSBleGFjdFJlZ2V4LnRlc3QocGFydCk7XG4gICAgICAgICAgICByZXR1cm4gaXNNYXRjaCA/IChcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZlYjNiJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnMCAwIDNweCByZ2JhKDAsMCwwLDAuMyknXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICB7cGFydH1cbiAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPHNwYW4ga2V5PXtpfT57cGFydH08L3NwYW4+XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0U3RhdGljRGlzcGxheVZhbHVlID0gKCkgPT4ge1xuICAgICAgICBsZXQgZGlzcGxheVZhbHVlO1xuICAgICAgICBsZXQgY29udGVudFZhbHVlO1xuICAgICAgICBsZXQgdG9rZW5zID0gcHJvcHMuZGF0YUJpbmRpbmcuc3BsaXQoJy4nKTtcblxuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29udGVudFZhbHVlID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IHByb3BzLnJvdztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudFt0b2tlbnNbaV1dO1xuICAgICAgICAgICAgICAgIGlmICghcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRWYWx1ZSA9IHBhcmVudFt0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wcy5jb2x1bW5Db25maWcuY2VsbEZvcm1hdCA9PT0gJ0NVUlJFTkNZJyB8fCBwcm9wcy5jb2x1bW5Db25maWcuY2VsbEZvcm1hdCA9PT0gJ05VTUJFUicpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy5jZWxsRm9ybWF0dGVyID8gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHRGdW5jdGlvbihwcm9wcy5jZWxsRm9ybWF0dGVyLCBjb250ZW50VmFsdWUpXG4gICAgICAgICAgICAgICAgOiBVdGlscy5pc051bGwoY29udGVudFZhbHVlKSA/ICcnIDogcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdDVVJSRU5DWScgP1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIuZm9ybWF0KE1hdGgucm91bmQoKGNvbnRlbnRWYWx1ZSArIE51bWJlci5FUFNJTE9OKSAqIDEwMCkgLyAxMDApIDogTWF0aC5yb3VuZCgoY29udGVudFZhbHVlICsgTnVtYmVyLkVQU0lMT04pICogMTAwKSAvIDEwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoY29udGVudFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ0RBVEUnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gZm9ybWF0RGF0ZShjb250ZW50VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ1RJTUUnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gbmV3IERhdGUoY29udGVudFZhbHVlKS50b0xvY2FsZVRpbWVTdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFR5cGUgPT09ICdDSEVDS0JPWCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUgPyBcIlllc1wiIDogXCJOb1wiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ01VTFRJX0ZJTEVfVVBMT0FEJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IGNvbnRlbnRWYWx1ZS5tYXAoZmlsZSA9PiBmaWxlLm5hbWUpLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb250ZW50VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgLy8gTVVMVElfTE9PS1VQIGNlbGxzIHJlbmRlciBlYWNoIGl0ZW0gYXMgYW4gaW5saW5lIENoaXAgc28gdGhlXG4gICAgICAgICAgICAgICAgLy8gbm9uLWVkaXQgcm93IGxvb2tzIGlkZW50aWNhbCB0byB0aGUgZWRpdC1tb2RlIGZpZWxkICh3aGljaFxuICAgICAgICAgICAgICAgIC8vIGFsc28gcmVuZGVycyBDaGlwcykuIFRoZSBjb250YWluZXIgd3JhcHMgc28gcm93cyBncm93IG9ubHlcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZXJlIGFyZSBtYW55IGl0ZW1zLCBpbnN0ZWFkIG9mIGJlaW5nIGNsaXBwZWQuXG4gICAgICAgICAgICAgICAgY29uc3QgY2hpcEl0ZW1zID0gY29udGVudFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0gJiYgKGl0ZW0uaWQgPz8gaXRlbS51c2VybmFtZSA/PyBpdGVtLmRhdGFSZWNvcmREZXNjcmlwdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogaXRlbSAmJiAoaXRlbS5fX291aV9sYWJlbCB8fCBpdGVtLmRhdGFSZWNvcmREZXNjcmlwdGlvbiB8fCBpdGVtLmZ1bGxOYW1lIHx8IGl0ZW0udXNlcm5hbWUgfHwgJycpXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy5sYWJlbCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpcEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMnB4IDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcidcbiAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2hpcEl0ZW1zLm1hcCgoYykgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGlwIGtleT17Yy5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17Yy5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aUNoaXAtbGFiZWwnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyA6IEZpcnN0IGNoZWNrIGlmIHRoZSBlZGl0b3IgaGFzIGEgZGlzcGxheSB0ZW1wbGF0ZS4gSWYgaXQgZG9lcywgdXNlIGl0IHRvIGdldCB0aGUgZGlzcGxheSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUuZGF0YVJlY29yZERlc2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wcy5jcml0ZXJpYSAmJiBwcm9wcy5jcml0ZXJpYS5wYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXJtcyA9IGJ1aWxkU2VhcmNoVGVybXMocHJvcHMuY3JpdGVyaWEucGFyYW1ldGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0VG9rZW5zKGNvbnRlbnRWYWx1ZSwgdGVybXMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3BzLmNlbGxGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdEZ1bmN0aW9uKHByb3BzLmNlbGxGb3JtYXR0ZXIsIGNvbnRlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZG9SZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICghcHJvcHMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRTdGF0aWNEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAvL3Byb3BzLmZvcm1WYWx1ZXNbcHJvcHMuZWRpdG9yLmlkXSA9IHByb3BzLnJvd1twcm9wcy5kYXRhQmluZGluZ107XG5cbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW3Byb3BzLmVkaXRvci5kYXRhQmluZGluZyB8fCBwcm9wcy5lZGl0b3IuaWRdID0gZWRpdG9yVmFsdWUuY3VycmVudDtcbiAgICAgICAgICAgICAgICBsZXQgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5lZGl0b3IuaWQgKyBcIl9mb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtU2VjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmaWVsZFNldFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2lkdGhcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluV2lkdGhcIjogXCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtIGNvbmZpZz17Zm9ybUNvbmZpZ30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17Zm9ybVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yVmFsdWUuY3VycmVudCA9IHZhbHVlID8gdmFsdWVbZWRpdG9yLmRhdGFCaW5kaW5nIHx8IGVkaXRvci5pZF0gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKGVkaXRvclZhbHVlLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3RhdGljRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVuZGVyID0gKCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIGxldCBlcnJvciA9IHZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgdXBkYXRlRXJyb3JzKGVycm9yKTtcblxuICAgICAgICBsZXQgaGFzRXJyb3IgPSAhVXRpbHMuaXNOdWxsKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIDx0YWJsZSBjbGFzc05hbWU9e3Byb3BzLndyYXAgPyAndGFibGVDZWxsQ29udGVudENvbnRhaW5lcicgOiAndGFibGVDZWxsQ29udGVudENvbnRhaW5lck5vV3JhcCd9IGJvcmRlcj1cIjBcIj5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICB7aGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3t3aWR0aDogJzhweCd9fT48Q3VzdG9tVG9vbHRpcCB0aXRsZT17ZXJyb3IubWVzc2FnZX0gdHlwZT17J0VSUk9SJ30+PEVycm9ySWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tjb2xvcjogJyNmNDQzMzYnfX0vPjwvQ3VzdG9tVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD4gOiBudWxsfVxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT17cHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdNT05FWScgfHwgcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdOVU1CRVInXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfX0+e2RvUmVuZGVyKCl9PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPjtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBzZXQgdmFsdWUodmFsKSB7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFJlZnJlc2hlcighcmVmcmVzaGVyKTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXIodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoIXByb3BzLmVkaXRvciB8fCAocHJvcHMuZWRpdG9yICYmIGVkaXRvcikpICYmIHJlbmRlcigpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQ2VsbENvbnRlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUFxQyxTQUFBRCx1QkFB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
|
|
@@ -82,7 +82,14 @@ const Turnstile = /*#__PURE__*/_react.default.memo(props => {
|
|
|
82
82
|
if (cancelled || !containerRef.current || !window.turnstile) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
// `action` is a Cloudflare-side label echoed back in the
|
|
86
|
+
// siteverify response. The backend verifier matches it
|
|
87
|
+
// against application.security.turnstile.expected-action
|
|
88
|
+
// so a token minted for one surface can't be replayed
|
|
89
|
+
// against another. Sourced from CDUI config; omitted when
|
|
90
|
+
// the view didn't set it (Cloudflare treats undefined as
|
|
91
|
+
// a wildcard).
|
|
92
|
+
const renderOptions = {
|
|
86
93
|
sitekey: SITE_KEY,
|
|
87
94
|
callback: newToken => {
|
|
88
95
|
setToken(newToken);
|
|
@@ -95,7 +102,11 @@ const Turnstile = /*#__PURE__*/_react.default.memo(props => {
|
|
|
95
102
|
'expired-callback': () => {
|
|
96
103
|
setToken(null);
|
|
97
104
|
}
|
|
98
|
-
}
|
|
105
|
+
};
|
|
106
|
+
if (parsedConfig.action) {
|
|
107
|
+
renderOptions.action = parsedConfig.action;
|
|
108
|
+
}
|
|
109
|
+
widgetIdRef.current = window.turnstile.render(containerRef.current, renderOptions);
|
|
99
110
|
}).catch(e => console.error('Turnstile: failed to load vendor script', e));
|
|
100
111
|
|
|
101
112
|
// Fire COMPONENT_LOAD so any view-level eventHandlingConfig keyed
|
|
@@ -148,4 +159,4 @@ const Turnstile = /*#__PURE__*/_react.default.memo(props => {
|
|
|
148
159
|
}));
|
|
149
160
|
});
|
|
150
161
|
var _default = exports.default = Turnstile;
|
|
151
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlRVUk5TVElMRV9TQ1JJUFRfVVJMIiwiU0lURV9LRVkiLCJwcm9jZXNzIiwiZW52IiwiUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWSIsInNjcmlwdExvYWRQcm9taXNlIiwibG9hZFR1cm5zdGlsZVNjcmlwdCIsIndpbmRvdyIsInR1cm5zdGlsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2NyaXB0IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic3JjIiwiYXN5bmMiLCJkZWZlciIsIm9ubG9hZCIsIm9uZXJyb3IiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJUdXJuc3RpbGUiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImNvbnRhaW5lclJlZiIsInVzZVJlZiIsIndpZGdldElkUmVmIiwidG9rZW4iLCJzZXRUb2tlbiIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiYXBpIiwicGFyc2VkQ29uZmlnIiwiVXRpbHMiLCJwYXJzZUNvbmZpZyIsImNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImNvbnNvbGUiLCJlcnJvciIsImNhbmNlbGxlZCIsInRoZW4iLCJjdXJyZW50IiwicmVuZGVyIiwic2l0ZWtleSIsImNhbGxiYWNrIiwibmV3VG9rZW4iLCJldmVudCIsIkV2ZW50IiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiVkFMVUVfQ0hBTkdFIiwiZXJyb3ItY2FsbGJhY2siLCJleHBpcmVkLWNhbGxiYWNrIiwiY2F0Y2giLCJsb2FkRXZlbnQiLCJDT01QT05FTlRfTE9BRCIsInJlbW92ZSIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJpZCIsInZhbHVlIiwiZ2V0Q2hpbGRyZW4iLCJyZXNldCIsInJlZnJlc2giLCJzdHlsZSIsIm1lcmdlU3R5bGVzIiwibWFyZ2luIiwicmVmIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL1R1cm5zdGlsZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi4vZXZlbnQvRXZlbnRUeXBlJztcblxuLyoqXG4gKiBDRFVJLXdyYXBwZWQgQ2xvdWRmbGFyZSBUdXJuc3RpbGUgd2lkZ2V0LiBEcm9wcyB0aGUgd2lkZ2V0IGludG8gYVxuICogbGF5b3V0IHRoZSBzYW1lIHdheSBhbnkgb3RoZXIgQ0RVSSBjb21wb25lbnQgZG9lcyBhbmQgZXhwb3NlcyB0aGVcbiAqIHJlc29sdmVkIGNoYWxsZW5nZSB0b2tlbiB0aHJvdWdoIHtAY29kZSBoYW5kbGUuYXBpLnZhbHVlfSwgc28gdmlld1xuICogYXV0aG9ycyBjYW4gcmVmZXJlbmNlIGl0IGZyb20gb3RoZXIgY29tcG9uZW50cyAvIHNlcnZpY2UgY2FsbHMgdmlhXG4gKiB7QGNvZGUgQCN7dHVybnN0aWxlfS52YWx1ZX0gd2hlbiB3aXJpbmcgdXAgYW4gaHR0cFBhcmFtZXRlclR5cGUuXG4gKlxuICogPHA+TG9hZHMgQ2xvdWRmbGFyZSdzIHZlbmRvciBzY3JpcHQgbGF6aWx5IG9uIGZpcnN0IG1vdW50LiBUaGUgc2NyaXB0XG4gKiBkZWZpbmVzIHtAY29kZSB3aW5kb3cudHVybnN0aWxlfSB3aGljaCBleHBvc2VzIHtAY29kZSByZW5kZXIoKX0g4oCUXG4gKiB3ZSByZW5kZXIgZXhwbGljaXRseSAobm90IGF1dG8tcmVuZGVyIHZpYSBjbGFzcz1cImNmLXR1cm5zdGlsZVwiKSBzb1xuICogdGhlIFJlYWN0IGxpZmVjeWNsZSBjYW4gaXNzdWUgYSB7QGNvZGUgcmVzZXR9IHdoZW4gdGhlIHBhcmVudCB2aWV3XG4gKiByZS1tb3VudHMuXG4gKlxuICogPHA+U2l0ZSBrZXkgaXMgc291cmNlZCBmcm9tIHtAY29kZSBSRUFDVF9BUFBfVFVSTlNUSUxFX1NJVEVfS0VZfSBhdFxuICogYnVpbGQgdGltZSAobWF0Y2hlcyB0aGUgcHJvamVjdCdzIGV4aXN0aW5nIFJFQUNUX0FQUF8qIGNvbnZlbnRpb24pLFxuICogTk9UIGZyb20gQ0RVSSBKU09OIOKAlCB2aWV3IGF1dGhvcnMgc2hvdWxkbid0IGhhdmUgdG8ga25vdyB0aGUga2V5LlxuICogRm9yIGRldiwgaG9zdG5hbWUge0Bjb2RlIGxvY2FsaG9zdH0gaXMgZXhwbGljaXRseSBzdXBwb3J0ZWQgYnlcbiAqIENsb3VkZmxhcmUgc28gdGhlIHNhbWUgZW52IHZhciBjYW4gYmUgdXNlZCB1bmNoYW5nZWQuXG4gKi9cbmNvbnN0IFRVUk5TVElMRV9TQ1JJUFRfVVJMID0gJ2h0dHBzOi8vY2hhbGxlbmdlcy5jbG91ZGZsYXJlLmNvbS90dXJuc3RpbGUvdjAvYXBpLmpzP3JlbmRlcj1leHBsaWNpdCc7XG5cbi8vIENsb3VkZmxhcmUgVHVybnN0aWxlJ3MgXCJzaXRlIGtleVwiIGlzIGludGVudGlvbmFsbHkgcHVibGljIChpdCdzIHRoZVxuLy8gcHVibGlzaGFibGUgaWRlbnRpZmllciwgYW5hbG9nb3VzIHRvIFN0cmlwZSdzIHB1Ymxpc2hhYmxlIGtleSkgYW5kXG4vLyBpcyBob3N0bmFtZS1ib3VuZCBvbiB0aGUgQ2xvdWRmbGFyZSBzaWRlLCBzbyBsZWFraW5nIGl0IGNhbid0IGJlXG4vLyB1c2VkIGFnYWluc3Qgb3RoZXIgZG9tYWlucy4gRXZlbiBzbywgc291cmNpbmcgaXQgZnJvbSBhbiBlbnYgdmFyXG4vLyBrZWVwcyBkZXYvc3RhZ2luZy9wcm9kIHN3YXBwYWJsZSB3aXRob3V0IGEgY29kZSBjaGFuZ2Ug4oCUIHNhbWUgc2hhcGVcbi8vIHRoZSBjb2RlYmFzZSBhbHJlYWR5IHVzZXMgZm9yIFJFQUNUX0FQUF9ET0NTX0FQSV9IT1NUIGV0Yy4gU2V0XG4vLyBSRUFDVF9BUFBfVFVSTlNUSUxFX1NJVEVfS0VZIHBlciBlbnZpcm9ubWVudC5cbmNvbnN0IFNJVEVfS0VZID0gcHJvY2Vzcy5lbnYuUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWTtcblxubGV0IHNjcmlwdExvYWRQcm9taXNlID0gbnVsbDtcbmNvbnN0IGxvYWRUdXJuc3RpbGVTY3JpcHQgPSAoKSA9PiB7XG4gICAgaWYgKHNjcmlwdExvYWRQcm9taXNlKSB7XG4gICAgICAgIHJldHVybiBzY3JpcHRMb2FkUHJvbWlzZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy50dXJuc3RpbGUpIHtcbiAgICAgICAgc2NyaXB0TG9hZFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIHNjcmlwdExvYWRQcm9taXNlO1xuICAgIH1cbiAgICBzY3JpcHRMb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIHNjcmlwdC5zcmMgPSBUVVJOU1RJTEVfU0NSSVBUX1VSTDtcbiAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHJlc29sdmUoKTtcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZSkgPT4ge1xuICAgICAgICAgICAgc2NyaXB0TG9hZFByb21pc2UgPSBudWxsOyAvLyBhbGxvdyByZXRyeSBuZXh0IG1vdW50XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH07XG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2NyaXB0TG9hZFByb21pc2U7XG59O1xuXG5jb25zdCBUdXJuc3RpbGUgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB3aWRnZXRJZFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbdG9rZW4sIHNldFRva2VuXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG5cbiAgICAgICAgaWYgKCFTSVRFX0tFWSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignVHVybnN0aWxlOiBSRUFDVF9BUFBfVFVSTlNUSUxFX1NJVEVfS0VZIGVudiB2YXIgaXMgbm90IHNldCDigJQgdGhlIHdpZGdldCB3aWxsIG5vdCByZW5kZXInKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgICAgICAgbG9hZFR1cm5zdGlsZVNjcmlwdCgpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbmNlbGxlZCB8fCAhY29udGFpbmVyUmVmLmN1cnJlbnQgfHwgIXdpbmRvdy50dXJuc3RpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aWRnZXRJZFJlZi5jdXJyZW50ID0gd2luZG93LnR1cm5zdGlsZS5yZW5kZXIoY29udGFpbmVyUmVmLmN1cnJlbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgc2l0ZWtleTogU0lURV9LRVksXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAobmV3VG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRva2VuKG5ld1Rva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBuZXdUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5WQUxVRV9DSEFOR0UsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJ2Vycm9yLWNhbGxiYWNrJzogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKCdUdXJuc3RpbGU6IGZhaWxlZCB0byBsb2FkIHZlbmRvciBzY3JpcHQnLCBlKSk7XG5cbiAgICAgICAgLy8gRmlyZSBDT01QT05FTlRfTE9BRCBzbyBhbnkgdmlldy1sZXZlbCBldmVudEhhbmRsaW5nQ29uZmlnIGtleWVkXG4gICAgICAgIC8vIG9uIHRoZSB0dXJuc3RpbGUgY29tcG9uZW50J3MgbG9hZCBjYW4gaG9vayBpbiAobWlycm9ycyB0aGVcbiAgICAgICAgLy8gcGF0dGVybiB1c2VkIGJ5IEh0bWxQYW5lbCAvIG90aGVyIENEVUkgY29tcG9uZW50cykuXG4gICAgICAgIGNvbnN0IGxvYWRFdmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCwgbnVsbCk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNPTVBPTkVOVF9MT0FELCBsb2FkRXZlbnQpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHdpZGdldElkUmVmLmN1cnJlbnQgJiYgd2luZG93LnR1cm5zdGlsZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy50dXJuc3RpbGUucmVtb3ZlKHdpZGdldElkUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdHVybnN0aWxlLnJlbW92ZSB0aHJvd3MgaWYgdGhlIHdpZGdldCBpZCBpcyB1bmtub3duXG4gICAgICAgICAgICAgICAgICAgIC8vIChlLmcuIHNjcmlwdCB1bmxvYWRlZCBtaWQtY2xlYW51cCkg4oCUIHNhZmUgdG8gaWdub3JlLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aWRnZXRJZFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5jbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzKHByb3BzLmhhbmRsZSk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgYXBpID0gKCkgPT4gKHtcbiAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gVGhlIGNoYWxsZW5nZSB0b2tlbiB0aGUgYmFja2VuZCBzaXRldmVyaWZpZXMgYWdhaW5zdC4gTnVsbFxuICAgICAgICAvLyBiZWZvcmUgdGhlIHdpZGdldCByZXNvbHZlczsgQ0RVSSBzZXJ2aWNlLWNhbGwgd2lyaW5nIHNob3VsZFxuICAgICAgICAvLyBndWFyZCB3aXRoIGBudWxsYWJsZTogZmFsc2VgIHNvIHN1Ym1pdCBjYW4ndCBmaXJlIHByZS1zb2x2ZS5cbiAgICAgICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9LFxuICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4gW10sXG4gICAgICAgIC8vIEFsbG93cyBjYWxsZXJzIHRvIG1hbnVhbGx5IHJlc2V0IHRoZSB3aWRnZXQgYWZ0ZXIgYSBiYWNrZW5kXG4gICAgICAgIC8vIHJlamVjdGlvbiDigJQgZS5nLiBhIDQwMyBmcm9tIHNpdGV2ZXJpZnkuIFRva2VuIGlzIGNvbnN1bWVkIHBlclxuICAgICAgICAvLyBjYWxsOyByZXNldHRpbmcgcmUtaXNzdWVzIGEgZnJlc2ggb25lLlxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHdpZGdldElkUmVmLmN1cnJlbnQgJiYgd2luZG93LnR1cm5zdGlsZSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy50dXJuc3RpbGUucmVzZXQod2lkZ2V0SWRSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgc2V0VG9rZW4obnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6ICgpID0+IHt9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe21hcmdpbjogJzhweCAwJ30sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0vPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFR1cm5zdGlsZTsiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUEyQyxTQUFBRCx1QkFBQU0sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUUzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1HLG9CQUFvQixHQUFHLHVFQUF1RTs7QUFFcEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQyxRQUFRLEdBQUdDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyw0QkFBNEI7QUFFekQsSUFBSUMsaUJBQWlCLEdBQUcsSUFBSTtBQUM1QixNQUFNQyxtQkFBbUIsR0FBR0EsQ0FBQSxLQUFNO0VBQzlCLElBQUlELGlCQUFpQixFQUFFO0lBQ25CLE9BQU9BLGlCQUFpQjtFQUM1QjtFQUNBLElBQUksT0FBT0UsTUFBTSxLQUFLLFdBQVcsSUFBSUEsTUFBTSxDQUFDQyxTQUFTLEVBQUU7SUFDbkRI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
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlRVUk5TVElMRV9TQ1JJUFRfVVJMIiwiU0lURV9LRVkiLCJwcm9jZXNzIiwiZW52IiwiUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWSIsInNjcmlwdExvYWRQcm9taXNlIiwibG9hZFR1cm5zdGlsZVNjcmlwdCIsIndpbmRvdyIsInR1cm5zdGlsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2NyaXB0IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic3JjIiwiYXN5bmMiLCJkZWZlciIsIm9ubG9hZCIsIm9uZXJyb3IiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJUdXJuc3RpbGUiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImNvbnRhaW5lclJlZiIsInVzZVJlZiIsIndpZGdldElkUmVmIiwidG9rZW4iLCJzZXRUb2tlbiIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiYXBpIiwicGFyc2VkQ29uZmlnIiwiVXRpbHMiLCJwYXJzZUNvbmZpZyIsImNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImNvbnNvbGUiLCJlcnJvciIsImNhbmNlbGxlZCIsInRoZW4iLCJjdXJyZW50IiwicmVuZGVyT3B0aW9ucyIsInNpdGVrZXkiLCJjYWxsYmFjayIsIm5ld1Rva2VuIiwiZXZlbnQiLCJFdmVudCIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIlZBTFVFX0NIQU5HRSIsImVycm9yLWNhbGxiYWNrIiwiZXhwaXJlZC1jYWxsYmFjayIsImFjdGlvbiIsInJlbmRlciIsImNhdGNoIiwibG9hZEV2ZW50IiwiQ09NUE9ORU5UX0xPQUQiLCJyZW1vdmUiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwiaWQiLCJ2YWx1ZSIsImdldENoaWxkcmVuIiwicmVzZXQiLCJyZWZyZXNoIiwic3R5bGUiLCJtZXJnZVN0eWxlcyIsIm1hcmdpbiIsInJlZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9UdXJuc3RpbGUuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudCBmcm9tICcuLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5cbi8qKlxuICogQ0RVSS13cmFwcGVkIENsb3VkZmxhcmUgVHVybnN0aWxlIHdpZGdldC4gRHJvcHMgdGhlIHdpZGdldCBpbnRvIGFcbiAqIGxheW91dCB0aGUgc2FtZSB3YXkgYW55IG90aGVyIENEVUkgY29tcG9uZW50IGRvZXMgYW5kIGV4cG9zZXMgdGhlXG4gKiByZXNvbHZlZCBjaGFsbGVuZ2UgdG9rZW4gdGhyb3VnaCB7QGNvZGUgaGFuZGxlLmFwaS52YWx1ZX0sIHNvIHZpZXdcbiAqIGF1dGhvcnMgY2FuIHJlZmVyZW5jZSBpdCBmcm9tIG90aGVyIGNvbXBvbmVudHMgLyBzZXJ2aWNlIGNhbGxzIHZpYVxuICoge0Bjb2RlIEAje3R1cm5zdGlsZX0udmFsdWV9IHdoZW4gd2lyaW5nIHVwIGFuIGh0dHBQYXJhbWV0ZXJUeXBlLlxuICpcbiAqIDxwPkxvYWRzIENsb3VkZmxhcmUncyB2ZW5kb3Igc2NyaXB0IGxhemlseSBvbiBmaXJzdCBtb3VudC4gVGhlIHNjcmlwdFxuICogZGVmaW5lcyB7QGNvZGUgd2luZG93LnR1cm5zdGlsZX0gd2hpY2ggZXhwb3NlcyB7QGNvZGUgcmVuZGVyKCl9IOKAlFxuICogd2UgcmVuZGVyIGV4cGxpY2l0bHkgKG5vdCBhdXRvLXJlbmRlciB2aWEgY2xhc3M9XCJjZi10dXJuc3RpbGVcIikgc29cbiAqIHRoZSBSZWFjdCBsaWZlY3ljbGUgY2FuIGlzc3VlIGEge0Bjb2RlIHJlc2V0fSB3aGVuIHRoZSBwYXJlbnQgdmlld1xuICogcmUtbW91bnRzLlxuICpcbiAqIDxwPlNpdGUga2V5IGlzIHNvdXJjZWQgZnJvbSB7QGNvZGUgUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWX0gYXRcbiAqIGJ1aWxkIHRpbWUgKG1hdGNoZXMgdGhlIHByb2plY3QncyBleGlzdGluZyBSRUFDVF9BUFBfKiBjb252ZW50aW9uKSxcbiAqIE5PVCBmcm9tIENEVUkgSlNPTiDigJQgdmlldyBhdXRob3JzIHNob3VsZG4ndCBoYXZlIHRvIGtub3cgdGhlIGtleS5cbiAqIEZvciBkZXYsIGhvc3RuYW1lIHtAY29kZSBsb2NhbGhvc3R9IGlzIGV4cGxpY2l0bHkgc3VwcG9ydGVkIGJ5XG4gKiBDbG91ZGZsYXJlIHNvIHRoZSBzYW1lIGVudiB2YXIgY2FuIGJlIHVzZWQgdW5jaGFuZ2VkLlxuICovXG5jb25zdCBUVVJOU1RJTEVfU0NSSVBUX1VSTCA9ICdodHRwczovL2NoYWxsZW5nZXMuY2xvdWRmbGFyZS5jb20vdHVybnN0aWxlL3YwL2FwaS5qcz9yZW5kZXI9ZXhwbGljaXQnO1xuXG4vLyBDbG91ZGZsYXJlIFR1cm5zdGlsZSdzIFwic2l0ZSBrZXlcIiBpcyBpbnRlbnRpb25hbGx5IHB1YmxpYyAoaXQncyB0aGVcbi8vIHB1Ymxpc2hhYmxlIGlkZW50aWZpZXIsIGFuYWxvZ291cyB0byBTdHJpcGUncyBwdWJsaXNoYWJsZSBrZXkpIGFuZFxuLy8gaXMgaG9zdG5hbWUtYm91bmQgb24gdGhlIENsb3VkZmxhcmUgc2lkZSwgc28gbGVha2luZyBpdCBjYW4ndCBiZVxuLy8gdXNlZCBhZ2FpbnN0IG90aGVyIGRvbWFpbnMuIEV2ZW4gc28sIHNvdXJjaW5nIGl0IGZyb20gYW4gZW52IHZhclxuLy8ga2VlcHMgZGV2L3N0YWdpbmcvcHJvZCBzd2FwcGFibGUgd2l0aG91dCBhIGNvZGUgY2hhbmdlIOKAlCBzYW1lIHNoYXBlXG4vLyB0aGUgY29kZWJhc2UgYWxyZWFkeSB1c2VzIGZvciBSRUFDVF9BUFBfRE9DU19BUElfSE9TVCBldGMuIFNldFxuLy8gUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWSBwZXIgZW52aXJvbm1lbnQuXG5jb25zdCBTSVRFX0tFWSA9IHByb2Nlc3MuZW52LlJFQUNUX0FQUF9UVVJOU1RJTEVfU0lURV9LRVk7XG5cbmxldCBzY3JpcHRMb2FkUHJvbWlzZSA9IG51bGw7XG5jb25zdCBsb2FkVHVybnN0aWxlU2NyaXB0ID0gKCkgPT4ge1xuICAgIGlmIChzY3JpcHRMb2FkUHJvbWlzZSkge1xuICAgICAgICByZXR1cm4gc2NyaXB0TG9hZFByb21pc2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cudHVybnN0aWxlKSB7XG4gICAgICAgIHNjcmlwdExvYWRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIHJldHVybiBzY3JpcHRMb2FkUHJvbWlzZTtcbiAgICB9XG4gICAgc2NyaXB0TG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzY3JpcHQuc3JjID0gVFVSTlNUSUxFX1NDUklQVF9VUkw7XG4gICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG4gICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKCk7XG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKGUpID0+IHtcbiAgICAgICAgICAgIHNjcmlwdExvYWRQcm9taXNlID0gbnVsbDsgLy8gYWxsb3cgcmV0cnkgbmV4dCBtb3VudFxuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNjcmlwdExvYWRQcm9taXNlO1xufTtcblxuY29uc3QgVHVybnN0aWxlID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgd2lkZ2V0SWRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW3Rva2VuLCBzZXRUb2tlbl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMocGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuXG4gICAgICAgIGlmICghU0lURV9LRVkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1R1cm5zdGlsZTogUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWSBlbnYgdmFyIGlzIG5vdCBzZXQg4oCUIHRoZSB3aWRnZXQgd2lsbCBub3QgcmVuZGVyJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGxvYWRUdXJuc3RpbGVTY3JpcHQoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjYW5jZWxsZWQgfHwgIWNvbnRhaW5lclJlZi5jdXJyZW50IHx8ICF3aW5kb3cudHVybnN0aWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYGFjdGlvbmAgaXMgYSBDbG91ZGZsYXJlLXNpZGUgbGFiZWwgZWNob2VkIGJhY2sgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gc2l0ZXZlcmlmeSByZXNwb25zZS4gVGhlIGJhY2tlbmQgdmVyaWZpZXIgbWF0Y2hlcyBpdFxuICAgICAgICAgICAgICAgIC8vIGFnYWluc3QgYXBwbGljYXRpb24uc2VjdXJpdHkudHVybnN0aWxlLmV4cGVjdGVkLWFjdGlvblxuICAgICAgICAgICAgICAgIC8vIHNvIGEgdG9rZW4gbWludGVkIGZvciBvbmUgc3VyZmFjZSBjYW4ndCBiZSByZXBsYXllZFxuICAgICAgICAgICAgICAgIC8vIGFnYWluc3QgYW5vdGhlci4gU291cmNlZCBmcm9tIENEVUkgY29uZmlnOyBvbWl0dGVkIHdoZW5cbiAgICAgICAgICAgICAgICAvLyB0aGUgdmlldyBkaWRuJ3Qgc2V0IGl0IChDbG91ZGZsYXJlIHRyZWF0cyB1bmRlZmluZWQgYXNcbiAgICAgICAgICAgICAgICAvLyBhIHdpbGRjYXJkKS5cbiAgICAgICAgICAgICAgICBjb25zdCByZW5kZXJPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICBzaXRla2V5OiBTSVRFX0tFWSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IChuZXdUb2tlbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9rZW4obmV3VG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIG5ld1Rva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLlZBTFVFX0NIQU5HRSwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAnZXJyb3ItY2FsbGJhY2snOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRDb25maWcuYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdGlvbnMuYWN0aW9uID0gcGFyc2VkQ29uZmlnLmFjdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2lkZ2V0SWRSZWYuY3VycmVudCA9IHdpbmRvdy50dXJuc3RpbGUucmVuZGVyKGNvbnRhaW5lclJlZi5jdXJyZW50LCByZW5kZXJPcHRpb25zKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IGNvbnNvbGUuZXJyb3IoJ1R1cm5zdGlsZTogZmFpbGVkIHRvIGxvYWQgdmVuZG9yIHNjcmlwdCcsIGUpKTtcblxuICAgICAgICAvLyBGaXJlIENPTVBPTkVOVF9MT0FEIHNvIGFueSB2aWV3LWxldmVsIGV2ZW50SGFuZGxpbmdDb25maWcga2V5ZWRcbiAgICAgICAgLy8gb24gdGhlIHR1cm5zdGlsZSBjb21wb25lbnQncyBsb2FkIGNhbiBob29rIGluIChtaXJyb3JzIHRoZVxuICAgICAgICAvLyBwYXR0ZXJuIHVzZWQgYnkgSHRtbFBhbmVsIC8gb3RoZXIgQ0RVSSBjb21wb25lbnRzKS5cbiAgICAgICAgY29uc3QgbG9hZEV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBudWxsKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ09NUE9ORU5UX0xPQUQsIGxvYWRFdmVudCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAod2lkZ2V0SWRSZWYuY3VycmVudCAmJiB3aW5kb3cudHVybnN0aWxlKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnR1cm5zdGlsZS5yZW1vdmUod2lkZ2V0SWRSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0dXJuc3RpbGUucmVtb3ZlIHRocm93cyBpZiB0aGUgd2lkZ2V0IGlkIGlzIHVua25vd25cbiAgICAgICAgICAgICAgICAgICAgLy8gKGUuZy4gc2NyaXB0IHVubG9hZGVkIG1pZC1jbGVhbnVwKSDigJQgc2FmZSB0byBpZ25vcmUuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdpZGdldElkUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMocHJvcHMuaGFuZGxlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiAoe1xuICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICB9LFxuICAgICAgICAvLyBUaGUgY2hhbGxlbmdlIHRva2VuIHRoZSBiYWNrZW5kIHNpdGV2ZXJpZmllcyBhZ2FpbnN0LiBOdWxsXG4gICAgICAgIC8vIGJlZm9yZSB0aGUgd2lkZ2V0IHJlc29sdmVzOyBDRFVJIHNlcnZpY2UtY2FsbCB3aXJpbmcgc2hvdWxkXG4gICAgICAgIC8vIGd1YXJkIHdpdGggYG51bGxhYmxlOiBmYWxzZWAgc28gc3VibWl0IGNhbid0IGZpcmUgcHJlLXNvbHZlLlxuICAgICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH0sXG4gICAgICAgIGdldENoaWxkcmVuOiAoKSA9PiBbXSxcbiAgICAgICAgLy8gQWxsb3dzIGNhbGxlcnMgdG8gbWFudWFsbHkgcmVzZXQgdGhlIHdpZGdldCBhZnRlciBhIGJhY2tlbmRcbiAgICAgICAgLy8gcmVqZWN0aW9uIOKAlCBlLmcuIGEgNDAzIGZyb20gc2l0ZXZlcmlmeS4gVG9rZW4gaXMgY29uc3VtZWQgcGVyXG4gICAgICAgIC8vIGNhbGw7IHJlc2V0dGluZyByZS1pc3N1ZXMgYSBmcmVzaCBvbmUuXG4gICAgICAgIHJlc2V0OiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAod2lkZ2V0SWRSZWYuY3VycmVudCAmJiB3aW5kb3cudHVybnN0aWxlKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnR1cm5zdGlsZS5yZXNldCh3aWRnZXRJZFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICBzZXRUb2tlbihudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVmcmVzaDogKCkgPT4ge30sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7bWFyZ2luOiAnOHB4IDAnfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfS8+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVHVybnN0aWxlOyJdLCJtYXBwaW5n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
|