@agilemotion/oui-react-js 2.0.28 → 2.0.31
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.
|
@@ -24,6 +24,8 @@ var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
|
|
|
24
24
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
25
25
|
var _Icon = _interopRequireDefault(require("./Icon"));
|
|
26
26
|
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
27
|
+
var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
|
|
28
|
+
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
27
29
|
var _Calendar = _interopRequireDefault(require("../js/Calendar"));
|
|
28
30
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
31
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -87,6 +89,13 @@ const Calendar = props => {
|
|
|
87
89
|
bottom: '20px',
|
|
88
90
|
right: '20px'
|
|
89
91
|
});
|
|
92
|
+
const [createMenu, setCreateMenu] = (0, _react.useState)({
|
|
93
|
+
open: false,
|
|
94
|
+
x: 0,
|
|
95
|
+
y: 0,
|
|
96
|
+
items: [],
|
|
97
|
+
info: null
|
|
98
|
+
});
|
|
90
99
|
const contextChangeHandler = {};
|
|
91
100
|
let counter = 1;
|
|
92
101
|
const StyledDialog = (0, _withStyles.default)({
|
|
@@ -112,7 +121,8 @@ const Calendar = props => {
|
|
|
112
121
|
})(_Dialog.default);
|
|
113
122
|
const loadEvents = function () {
|
|
114
123
|
let track = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
115
|
-
|
|
124
|
+
const eventsUrl = props.config && props.config.eventsUrl || '/calendar/api/v1/event/list';
|
|
125
|
+
fetch(encodeURI(location + _ApplicationManager.default.getContextRoot() + eventsUrl), {
|
|
116
126
|
method: 'GET',
|
|
117
127
|
headers: {
|
|
118
128
|
'Accept': 'application/json',
|
|
@@ -149,6 +159,69 @@ const Calendar = props => {
|
|
|
149
159
|
const calenderScrollListener = () => {
|
|
150
160
|
setOpen(false);
|
|
151
161
|
};
|
|
162
|
+
const isTodayOrFuture = dateStr => (0, _moment.default)(new Date()).startOf('day') <= (0, _moment.default)(new Date(dateStr)).startOf('day');
|
|
163
|
+
const buildCalendarEvent = (info, _ref) => {
|
|
164
|
+
let {
|
|
165
|
+
eventType,
|
|
166
|
+
conferencingActivityGroup,
|
|
167
|
+
metadata
|
|
168
|
+
} = _ref;
|
|
169
|
+
let date = new Date(info.dateStr);
|
|
170
|
+
let timeDate = new Date();
|
|
171
|
+
let startTime = (0, _moment.default)(info.dateStr, 'ddd MMM D YYYY HH:mm:ss ZZ');
|
|
172
|
+
timeDate.setHours(timeDate.getHours() + 1);
|
|
173
|
+
startTime.set({
|
|
174
|
+
h: timeDate.getHours(),
|
|
175
|
+
m: 0
|
|
176
|
+
});
|
|
177
|
+
let endTime = (0, _moment.default)(info.dateStr, 'ddd MMM D YYYY HH:mm:ss ZZ');
|
|
178
|
+
timeDate.setHours(timeDate.getHours() + 1);
|
|
179
|
+
endTime.set({
|
|
180
|
+
h: timeDate.getHours(),
|
|
181
|
+
m: 0
|
|
182
|
+
});
|
|
183
|
+
const calendarEvent = _objectSpread(_objectSpread({}, eventTemplate), {}, {
|
|
184
|
+
schedule: {
|
|
185
|
+
startDate: date,
|
|
186
|
+
endDate: date,
|
|
187
|
+
startTime: startTime.toDate(),
|
|
188
|
+
endTime: endTime.toDate(),
|
|
189
|
+
recurringStartDate: date,
|
|
190
|
+
recurringEndDate: date
|
|
191
|
+
},
|
|
192
|
+
eventType: eventType,
|
|
193
|
+
conferencingActivityGroup: conferencingActivityGroup,
|
|
194
|
+
metadata: metadata
|
|
195
|
+
});
|
|
196
|
+
if (_Utils.default.isStringEmpty(calendarEvent.id)) {
|
|
197
|
+
calendarEvent.id = null;
|
|
198
|
+
}
|
|
199
|
+
return calendarEvent;
|
|
200
|
+
};
|
|
201
|
+
const fireCreate = calendarEvent => {
|
|
202
|
+
let event = new _Event.default(props.handle, props.viewId, calendarEvent);
|
|
203
|
+
_Observable.default.fireEvent(_EventType.default.CALENDAR_DATE_CLICK, event);
|
|
204
|
+
};
|
|
205
|
+
const fireCreateForMetadata = (info, meta) => {
|
|
206
|
+
fireCreate(buildCalendarEvent(info, {
|
|
207
|
+
eventType: meta.conferencingActivityGroup,
|
|
208
|
+
conferencingActivityGroup: meta.conferencingActivityGroup,
|
|
209
|
+
metadata: meta
|
|
210
|
+
}));
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
// Fetch the CREATE-operation metadata the current user is entitled to (role-filtered server-side).
|
|
214
|
+
const fetchCreateMetadata = url => {
|
|
215
|
+
return fetch(encodeURI(location + _ApplicationManager.default.getContextRoot() + url), {
|
|
216
|
+
method: 'GET',
|
|
217
|
+
headers: {
|
|
218
|
+
'Accept': 'application/json',
|
|
219
|
+
'Content-Type': 'application/json',
|
|
220
|
+
'Authorization': 'Bearer ' + sessionStorage.getItem("accessToken"),
|
|
221
|
+
'idToken': sessionStorage.getItem("idToken")
|
|
222
|
+
}
|
|
223
|
+
}).then(status).then(json).then(response => JSON.parse(response));
|
|
224
|
+
};
|
|
152
225
|
const calendarOptions = {
|
|
153
226
|
events: events,
|
|
154
227
|
plugins: [_interaction.default, _daygrid.default, _timegrid.default, _list.default, _rrule.default],
|
|
@@ -190,10 +263,10 @@ const Calendar = props => {
|
|
|
190
263
|
? Docs: https://fullcalendar.io/docs/navLinks
|
|
191
264
|
*/
|
|
192
265
|
navLinks: true,
|
|
193
|
-
eventClassNames(
|
|
266
|
+
eventClassNames(_ref2) {
|
|
194
267
|
let {
|
|
195
268
|
event: calendarEvent
|
|
196
|
-
} =
|
|
269
|
+
} = _ref2;
|
|
197
270
|
// eslint-disable-next-line no-underscore-dangle
|
|
198
271
|
const colorName = '#945c33';
|
|
199
272
|
return ["bg-light-".concat(colorName)];
|
|
@@ -201,11 +274,11 @@ const Calendar = props => {
|
|
|
201
274
|
viewDidMount() {
|
|
202
275
|
setOpen(false);
|
|
203
276
|
},
|
|
204
|
-
eventClick(
|
|
277
|
+
eventClick(_ref3) {
|
|
205
278
|
let {
|
|
206
279
|
el: el,
|
|
207
280
|
event: event
|
|
208
|
-
} =
|
|
281
|
+
} = _ref3;
|
|
209
282
|
setSelectedEvent(event);
|
|
210
283
|
setOpen(true);
|
|
211
284
|
let elementsByClassName = document.getElementsByClassName('fc-scroller-liquid-absolute');
|
|
@@ -220,49 +293,48 @@ const Calendar = props => {
|
|
|
220
293
|
}
|
|
221
294
|
},
|
|
222
295
|
dateClick(info) {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
let startTime = (0, _moment.default)(info.dateStr, 'ddd MMM D YYYY HH:mm:ss ZZ');
|
|
226
|
-
timeDate.setHours(timeDate.getHours() + 1);
|
|
227
|
-
startTime.set({
|
|
228
|
-
h: timeDate.getHours(),
|
|
229
|
-
m: 0
|
|
230
|
-
});
|
|
231
|
-
let endTime = (0, _moment.default)(info.dateStr, 'ddd MMM D YYYY HH:mm:ss ZZ');
|
|
232
|
-
timeDate.setHours(timeDate.getHours() + 1);
|
|
233
|
-
endTime.set({
|
|
234
|
-
h: timeDate.getHours(),
|
|
235
|
-
m: 0
|
|
236
|
-
});
|
|
237
|
-
const calendarEvent = _objectSpread(_objectSpread({}, eventTemplate), {}, {
|
|
238
|
-
schedule: {
|
|
239
|
-
startDate: date,
|
|
240
|
-
endDate: date,
|
|
241
|
-
startTime: startTime.toDate(),
|
|
242
|
-
endTime: endTime.toDate(),
|
|
243
|
-
recurringStartDate: date,
|
|
244
|
-
recurringEndDate: date
|
|
245
|
-
},
|
|
246
|
-
eventType: _Utils.default.getComponentAttribute(props.config, 'eventType', 'TRAINING')
|
|
247
|
-
});
|
|
248
|
-
if (_Utils.default.isStringEmpty(calendarEvent.id)) {
|
|
249
|
-
calendarEvent.id = null;
|
|
296
|
+
if (open || !isTodayOrFuture(info.dateStr)) {
|
|
297
|
+
return;
|
|
250
298
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
299
|
+
const createEventMetadataUrl = props.config && props.config.createEventMetadataUrl;
|
|
300
|
+
if (createEventMetadataUrl) {
|
|
301
|
+
// Role-gated create: fetch the domains this user may create, then let them pick from a menu.
|
|
302
|
+
fetchCreateMetadata(createEventMetadataUrl).then(result => {
|
|
303
|
+
const items = result && result.records ? result.records : [];
|
|
304
|
+
if (items.length === 0) {
|
|
305
|
+
return; // nothing creatable for this user's roles — no menu, no event fired
|
|
306
|
+
}
|
|
307
|
+
if (items.length === 1) {
|
|
308
|
+
// Only one option — skip the menu and act as if it was clicked.
|
|
309
|
+
fireCreateForMetadata(info, items[0]);
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
const jsEvent = info.jsEvent || {};
|
|
313
|
+
setCreateMenu({
|
|
314
|
+
open: true,
|
|
315
|
+
x: jsEvent.clientX || 0,
|
|
316
|
+
y: jsEvent.clientY || 0,
|
|
317
|
+
items,
|
|
318
|
+
info
|
|
319
|
+
});
|
|
320
|
+
}).catch(ignored => {});
|
|
321
|
+
return;
|
|
255
322
|
}
|
|
323
|
+
|
|
324
|
+
// Legacy behaviour: single hard-coded event type.
|
|
325
|
+
fireCreate(buildCalendarEvent(info, {
|
|
326
|
+
eventType: _Utils.default.getComponentAttribute(props.config, 'eventType', 'TRAINING')
|
|
327
|
+
}));
|
|
256
328
|
},
|
|
257
329
|
/*
|
|
258
330
|
Handle event drop (Also include dragged event)
|
|
259
331
|
? Docs: https://fullcalendar.io/docs/eventDrop
|
|
260
332
|
? We can use `eventDragStop` but it doesn't return updated event so we have to use `eventDrop` which returns updated event
|
|
261
333
|
*/
|
|
262
|
-
eventDrop(
|
|
334
|
+
eventDrop(_ref4) {
|
|
263
335
|
let {
|
|
264
336
|
event: droppedEvent
|
|
265
|
-
} =
|
|
337
|
+
} = _ref4;
|
|
266
338
|
//dispatch(updateEvent(droppedEvent));
|
|
267
339
|
_reactHotToast.default.success('Event Updated');
|
|
268
340
|
},
|
|
@@ -270,10 +342,10 @@ const Calendar = props => {
|
|
|
270
342
|
Handle event resize
|
|
271
343
|
? Docs: https://fullcalendar.io/docs/eventResize
|
|
272
344
|
*/
|
|
273
|
-
eventResize(
|
|
345
|
+
eventResize(_ref5) {
|
|
274
346
|
let {
|
|
275
347
|
event: resizedEvent
|
|
276
|
-
} =
|
|
348
|
+
} = _ref5;
|
|
277
349
|
//dispatch(updateEvent(resizedEvent));
|
|
278
350
|
_reactHotToast.default.success('Event Updated');
|
|
279
351
|
},
|
|
@@ -281,20 +353,20 @@ const Calendar = props => {
|
|
|
281
353
|
Handle event mouse enter
|
|
282
354
|
? Docs: https://fullcalendar.io/docs/eventMouseEnter
|
|
283
355
|
*/
|
|
284
|
-
eventMouseEnter(
|
|
356
|
+
eventMouseEnter(_ref6) {
|
|
285
357
|
let {
|
|
286
358
|
el: el,
|
|
287
359
|
event: event
|
|
288
|
-
} =
|
|
360
|
+
} = _ref6;
|
|
289
361
|
},
|
|
290
362
|
/*
|
|
291
363
|
Handle event mouse enter
|
|
292
364
|
? Docs: https://fullcalendar.io/docs/eventMouseEnter
|
|
293
365
|
*/
|
|
294
|
-
eventMouseLeave(
|
|
366
|
+
eventMouseLeave(_ref7) {
|
|
295
367
|
let {
|
|
296
368
|
el: el
|
|
297
|
-
} =
|
|
369
|
+
} = _ref7;
|
|
298
370
|
},
|
|
299
371
|
ref: calendarRef,
|
|
300
372
|
// Get direction from app state (store)
|
|
@@ -415,7 +487,25 @@ const Calendar = props => {
|
|
|
415
487
|
}
|
|
416
488
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
417
489
|
className: 'w-100 h-100'
|
|
418
|
-
}, createEventPopup()))
|
|
490
|
+
}, createEventPopup())), /*#__PURE__*/_react.default.createElement(_Menu.default, {
|
|
491
|
+
open: createMenu.open,
|
|
492
|
+
onClose: () => setCreateMenu(_objectSpread(_objectSpread({}, createMenu), {}, {
|
|
493
|
+
open: false
|
|
494
|
+
})),
|
|
495
|
+
anchorReference: "anchorPosition",
|
|
496
|
+
anchorPosition: createMenu.open ? {
|
|
497
|
+
top: createMenu.y,
|
|
498
|
+
left: createMenu.x
|
|
499
|
+
} : undefined
|
|
500
|
+
}, createMenu.items.map((meta, idx) => /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
501
|
+
key: meta.conferencingActivityGroup || idx,
|
|
502
|
+
onClick: () => {
|
|
503
|
+
setCreateMenu(_objectSpread(_objectSpread({}, createMenu), {}, {
|
|
504
|
+
open: false
|
|
505
|
+
}));
|
|
506
|
+
fireCreateForMetadata(createMenu.info, meta);
|
|
507
|
+
}
|
|
508
|
+
}, meta.description || meta.conferencingActivityGroup))));
|
|
419
509
|
};
|
|
420
510
|
var _default = exports.default = Calendar;
|
|
421
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX09ic2VydmFibGUiLCJfcmVhY3QyIiwiX2xpc3QiLCJfcnJ1bGUiLCJfZGF5Z3JpZCIsIl90aW1lZ3JpZCIsIl9pbnRlcmFjdGlvbiIsIl9tb21lbnQiLCJfcmVhY3RIb3RUb2FzdCIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0RpYWxvZyIsIl93aXRoU3R5bGVzIiwiX0ljb25CdXR0b24iLCJfSWNvbiIsIl9CdXR0b24iLCJfQ2FsZW5kYXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJldmVudFRlbXBsYXRlIiwiaWQiLCJ0aXRsZSIsInN0YXJ0IiwiZW5kIiwiYWxsRGF5IiwiZXh0ZW5kZWRQcm9wcyIsImRlc2NyaXB0aW9uIiwiYXR0ZW5kZWVzIiwiaWRlbnRpZmllciIsIm5hbWUiLCJvcHRpb25hbCIsInNjaGVkdWxlIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJsb2NhdGlvbnMiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJlcnJvciIsIkVycm9yIiwic3RhdHVzVGV4dCIsImNvZGUiLCJyZWplY3QiLCJqc29uIiwidGV4dCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkNhbGVuZGFyIiwicHJvcHMiLCJpc1J0bCIsImV2ZW50cyIsInNldEV2ZW50cyIsInVzZVN0YXRlIiwibG9hZGluZyIsInNldExvYWRpbmciLCJvcGVuIiwic2V0T3BlbiIsInNlbGVjdGVkRXZlbnQiLCJzZXRTZWxlY3RlZEV2ZW50IiwiY2FsZW5kYXJSZWYiLCJ1c2VSZWYiLCJkaWFsb2dSZWYiLCJyZWZyZXNoZXIiLCJzZXRSZWZyZXNoZXIiLCJkaWFsb2dQb3NpdGlvbiIsInNldERpYWxvZ1Bvc2l0aW9uIiwiYm90dG9tIiwicmlnaHQiLCJjb250ZXh0Q2hhbmdlSGFuZGxlciIsImNvdW50ZXIiLCJTdHlsZWREaWFsb2ciLCJ3aXRoU3R5bGVzIiwicm9vdCIsInBvaW50ZXJFdmVudHMiLCJwYXBlciIsIndpZHRoIiwiaGVpZ2h0IiwibWluV2lkdGgiLCJwYWRkaW5nIiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJtYXJnaW4iLCJib3JkZXJSYWRpdXMiLCJEaWFsb2ciLCJsb2FkRXZlbnRzIiwidHJhY2siLCJ1bmRlZmluZWQiLCJmZXRjaCIsImVuY29kZVVSSSIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldENvbnRleHRSb290IiwibWV0aG9kIiwiaGVhZGVycyIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsInRoZW4iLCJKU09OIiwicGFyc2UiLCJjYXRjaCIsImlnbm9yZWQiLCJoYW5kbGVyIiwib25Db250ZXh0Q2hhbmdlIiwiY29udGV4dCIsIm5ld1ZhbHVlcyIsImZpbmQiLCJrZXkiLCJ1c2VFZmZlY3QiLCJhcGkiLCJhZGRBcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24iLCJjYWxlbmRlclNjcm9sbExpc3RlbmVyIiwiY2FsZW5kYXJPcHRpb25zIiwicGx1Z2lucyIsImludGVyYWN0aW9uUGx1Z2luIiwiZGF5R3JpZFBsdWdpbiIsInRpbWVHcmlkUGx1Z2luIiwibGlzdFBsdWdpbiIsInJydWxlUGx1Z2luIiwiaW5pdGlhbFZpZXciLCJoZWFkZXJUb29sYmFyIiwiZWRpdGFibGUiLCJzdGlja3lIZWFkZXJEYXRlcyIsImV2ZW50VGltZUZvcm1hdCIsImhvdXIiLCJtaW51dGUiLCJob3VyMTIiLCJldmVudFJlc2l6YWJsZUZyb21TdGFydCIsImRyYWdTY3JvbGwiLCJkYXlNYXhFdmVudHMiLCJuYXZMaW5rcyIsImV2ZW50Q2xhc3NOYW1lcyIsIl9yZWYiLCJldmVudCIsImNhbGVuZGFyRXZlbnQiLCJjb2xvck5hbWUiLCJjb25jYXQiLCJ2aWV3RGlkTW91bnQiLCJldmVudENsaWNrIiwiX3JlZjIiLCJlbCIsImVsZW1lbnRzQnlDbGFzc05hbWUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRhdGVDbGljayIsImluZm8iLCJkYXRlIiwiRGF0ZSIsImRhdGVTdHIiLCJ0aW1lRGF0ZSIsIm1vbWVudCIsInNldEhvdXJzIiwiZ2V0SG91cnMiLCJoIiwibSIsInRvRGF0ZSIsInJlY3VycmluZ1N0YXJ0RGF0ZSIsInJlY3VycmluZ0VuZERhdGUiLCJldmVudFR5cGUiLCJVdGlscyIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsImNvbmZpZyIsImlzU3RyaW5nRW1wdHkiLCJzdGFydE9mIiwiY29uc29sZSIsImxvZyIsIkV2ZW50IiwiaGFuZGxlIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiQ0FMRU5EQVJfREFURV9DTElDSyIsImV2ZW50RHJvcCIsIl9yZWYzIiwiZHJvcHBlZEV2ZW50IiwidG9hc3QiLCJzdWNjZXNzIiwiZXZlbnRSZXNpemUiLCJfcmVmNCIsInJlc2l6ZWRFdmVudCIsImV2ZW50TW91c2VFbnRlciIsIl9yZWY1IiwiZXZlbnRNb3VzZUxlYXZlIiwiX3JlZjYiLCJyZWYiLCJkaXJlY3Rpb24iLCJSZWFjdCIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImlzTnVsbCIsInN1YnNjcmlwdGlvbnMiLCJhZGRTdWJzY3JpcHRpb25zIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsInRvRGF0ZVRpbWVTdHJpbmciLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ0aW1lU3RyVG9rZW5zIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwic3BsaXQiLCJnZXRGb3JtT2JqZWN0IiwiY2FsZW5kYXIiLCJjYWxlbmRhckV2ZW50VG9Gb3JtT2JqZWN0IiwiZ2V0Q2hpbGRyZW4iLCJjcmVhdGVFdmVudFBvcHVwIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsImNvbG9yIiwiaG9zdCIsInN0eWxlIiwibWFyZ2luVG9wIiwiaGFzQWN0aXZlTWVldGluZyIsInZhcmlhbnQiLCJzaXplIiwibWFyZ2luUmlnaHQiLCJDQUxFTkRBUl9FVkVOVF9TVEFSVCIsIm1lcmdlU3R5bGVzIiwibWF4SGVpZ2h0Iiwib25DbG9zZSIsImhpZGVCYWNrZHJvcCIsImRpc2FibGVFbmZvcmNlRm9jdXMiLCJkaXNhYmxlQXV0b0ZvY3VzIiwiUGFwZXJQcm9wcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9DYWxlbmRhci5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBGdWxsQ2FsZW5kYXIgZnJvbSAnQGZ1bGxjYWxlbmRhci9yZWFjdCc7XG5pbXBvcnQgbGlzdFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2xpc3QnO1xuaW1wb3J0IHJydWxlUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvcnJ1bGUnO1xuaW1wb3J0IGRheUdyaWRQbHVnaW4gZnJvbSAnQGZ1bGxjYWxlbmRhci9kYXlncmlkJztcbmltcG9ydCB0aW1lR3JpZFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL3RpbWVncmlkJztcbmltcG9ydCBpbnRlcmFjdGlvblBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2ludGVyYWN0aW9uJztcbmltcG9ydCBcIi4vQ2FsZW5kZXIuY3NzXCJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHRvYXN0IGZyb20gJ3JlYWN0LWhvdC10b2FzdCc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tIFwiLi4vZXZlbnQvRXZlbnRUeXBlXCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvRGlhbG9nXCI7XG5pbXBvcnQgd2l0aFN0eWxlcyBmcm9tIFwiQG11aS9zdHlsZXMvd2l0aFN0eWxlc1wiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvblwiO1xuaW1wb3J0IEljb24gZnJvbSBcIi4vSWNvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9CdXR0b25cIjtcbmltcG9ydCBjYWxlbmRhciBmcm9tICcuLi9qcy9DYWxlbmRhcic7XG5cbmNvbnN0IGV2ZW50VGVtcGxhdGUgPSB7XG4gICAgaWQ6ICcnLFxuICAgIHRpdGxlOiAnJyxcbiAgICBzdGFydDogJycsXG4gICAgZW5kOiAnJyxcbiAgICBhbGxEYXk6IGZhbHNlLFxuICAgIGV4dGVuZGVkUHJvcHM6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICBhdHRlbmRlZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJycsXG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJycsXG4gICAgICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICAgICAgb3B0aW9uYWw6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgc2NoZWR1bGU6IHtcbiAgICAgICAgICAgIGlkOiAnJyxcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogJycsXG4gICAgICAgICAgICBlbmREYXRlOiAnJyxcbiAgICAgICAgICAgIHN0YXJ0VGltZTogJycsXG4gICAgICAgICAgICBlbmRUaW1lOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYXRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgIH0sXG59O1xuXG5jb25zdCBzdGF0dXMgPSAocmVzcG9uc2UpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKHJlc3BvbnNlLnN0YXR1c1RleHQpO1xuICAgICAgICBlcnJvci5jb2RlID0gcmVzcG9uc2Uuc3RhdHVzO1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfVxufTtcblxuY29uc3QganNvbiA9IChyZXNwb25zZSkgPT4ge1xuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59O1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmNvbnN0IENhbGVuZGFyID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3Qge2lzUnRsfSA9IHByb3BzO1xuICAgIGNvbnN0IFtldmVudHMsIHNldEV2ZW50c10gPSB1c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEV2ZW50LCBzZXRTZWxlY3RlZEV2ZW50XSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNhbGVuZGFyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbcmVmcmVzaGVyLCBzZXRSZWZyZXNoZXJdID0gdXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2RpYWxvZ1Bvc2l0aW9uLCBzZXREaWFsb2dQb3NpdGlvbl0gPSB1c2VTdGF0ZSh7IGJvdHRvbTogJzIwcHgnLCByaWdodDogJzIwcHgnIH0pO1xuICAgIGNvbnN0IGNvbnRleHRDaGFuZ2VIYW5kbGVyID0ge307XG4gICAgbGV0IGNvdW50ZXIgPSAxO1xuXG4gICAgY29uc3QgU3R5bGVkRGlhbG9nID0gd2l0aFN0eWxlcyh7XG4gICAgICAgIHJvb3Q6IHtcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHBhcGVyOiB7XG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnYXV0bycsXG4gICAgICAgICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgICAgICAgIGhlaWdodDogJzIyOHB4JyxcbiAgICAgICAgICAgIG1pbldpZHRoOiAnNDAwcHgnLFxuICAgICAgICAgICAgcGFkZGluZzogJzAnLFxuICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgICBib3R0b206IGRpYWxvZ1Bvc2l0aW9uLmJvdHRvbSxcbiAgICAgICAgICAgIHJpZ2h0OiBkaWFsb2dQb3NpdGlvbi5yaWdodCxcbiAgICAgICAgICAgIGxlZnQ6ICdhdXRvICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgdG9wOiAnYXV0byAhaW1wb3J0YW50JyxcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgICAgICAgICBtYXJnaW46ICcwICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICB9XG4gICAgfSkoRGlhbG9nKTtcblxuICAgIGNvbnN0IGxvYWRFdmVudHMgPSAodHJhY2sgPSB0cnVlKSA9PiB7XG4gICAgICAgIGZldGNoKGVuY29kZVVSSShsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy9jYWxlbmRhci9hcGkvdjEvZXZlbnQvbGlzdCcpLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKSxcbiAgICAgICAgICAgICAgICAnaWRUb2tlbic6IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAudGhlbihqc29uKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXZlbnRzKEpTT04ucGFyc2UocmVzcG9uc2UpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGlnbm9yZWQpID0+IHtcbiAgICAgICAgICAgIH0pXG4gICAgfTtcblxuXG4gICAgY29uc3QgaGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NhbGVuZGFyJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNvbnRleHRDaGFuZ2U6IChjb250ZXh0LCBuZXdWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobmV3VmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAuZmluZCgoa2V5KSA9PiBrZXkgPT09ICd3aW5kb3dEaXNwbGF5U3RhdGUnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZWZyZXNoZXIoY291bnRlciA+IDIwID8gMCA6IGNvdW50ZXIrKyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb250ZXh0Q2hhbmdlSGFuZGxlci5hcGkgPSBoYW5kbGVyKCk7XG4gICAgICAgIGxvYWRFdmVudHMoKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBoYW5kbGVyOiBjb250ZXh0Q2hhbmdlSGFuZGxlclxuICAgICAgICB9KVxuICAgIH0sIFtdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnRleHRDaGFuZ2VIYW5kbGVyLmFwaSA9IGhhbmRsZXIoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNhbGVuZGVyU2Nyb2xsTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpXG4gICAgfTtcblxuICAgIGNvbnN0IGNhbGVuZGFyT3B0aW9ucyA9IHtcbiAgICAgICAgZXZlbnRzOiBldmVudHMsXG4gICAgICAgIHBsdWdpbnM6IFtpbnRlcmFjdGlvblBsdWdpbiwgZGF5R3JpZFBsdWdpbiwgdGltZUdyaWRQbHVnaW4sIGxpc3RQbHVnaW4sIHJydWxlUGx1Z2luXSxcbiAgICAgICAgaW5pdGlhbFZpZXc6ICdkYXlHcmlkTW9udGgnLFxuICAgICAgICBoZWFkZXJUb29sYmFyOiB7XG4gICAgICAgICAgICBzdGFydDogJ3NpZGViYXJUb2dnbGUsIHByZXYsbmV4dCwgdGl0bGUnLFxuICAgICAgICAgICAgZW5kOiAnZGF5R3JpZE1vbnRoLHRpbWVHcmlkV2Vlayx0aW1lR3JpZERheSxsaXN0TW9udGgnLFxuICAgICAgICB9LFxuICAgICAgICAvKlxuICAgICAgICAgIEVuYWJsZSBkcmFnZ2luZyBhbmQgcmVzaXppbmcgZXZlbnRcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZWRpdGFibGVcbiAgICAgICAgKi9cbiAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICBzdGlja3lIZWFkZXJEYXRlczogdHJ1ZSxcblxuICAgICAgICBldmVudFRpbWVGb3JtYXQ6IHsgLy8gbGlrZSAnMTQ6MzA6MDAnXG4gICAgICAgICAgICBob3VyOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICBob3VyMTI6IGZhbHNlXG4gICAgICAgIH0sXG5cbiAgICAgICAgLypcbiAgICAgICAgICBFbmFibGUgcmVzaXppbmcgZXZlbnQgZnJvbSBzdGFydFxuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9ldmVudFJlc2l6YWJsZUZyb21TdGFydFxuICAgICAgICAqL1xuICAgICAgICBldmVudFJlc2l6YWJsZUZyb21TdGFydDogdHJ1ZSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEF1dG9tYXRpY2FsbHkgc2Nyb2xsIHRoZSBzY3JvbGwtY29udGFpbmVycyBkdXJpbmcgZXZlbnQgZHJhZy1hbmQtZHJvcCBhbmQgZGF0ZSBzZWxlY3RpbmdcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZHJhZ1Njcm9sbFxuICAgICAgICAqL1xuICAgICAgICBkcmFnU2Nyb2xsOiB0cnVlLFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgTWF4IG51bWJlciBvZiBldmVudHMgd2l0aGluIGEgZ2l2ZW4gZGF5XG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL2RheU1heEV2ZW50c1xuICAgICAgICAqL1xuICAgICAgICBkYXlNYXhFdmVudHM6IDIsXG5cbiAgICAgICAgLypcbiAgICAgICAgICBEZXRlcm1pbmVzIGlmIGRheSBuYW1lcyBhbmQgd2VlayBuYW1lcyBhcmUgY2xpY2thYmxlXG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL25hdkxpbmtzXG4gICAgICAgICovXG4gICAgICAgIG5hdkxpbmtzOiB0cnVlLFxuXG4gICAgICAgIGV2ZW50Q2xhc3NOYW1lcyh7ZXZlbnQ6IGNhbGVuZGFyRXZlbnR9KSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yTmFtZSA9ICcjOTQ1YzMzJztcblxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBgYmctbGlnaHQtJHtjb2xvck5hbWV9YCxcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0sXG5cbiAgICAgICAgdmlld0RpZE1vdW50KCkge1xuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRDbGljayh7ZWw6IGVsLCBldmVudDogZXZlbnR9KSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG5cbiAgICAgICAgICAgIGxldCBlbGVtZW50c0J5Q2xhc3NOYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZmMtc2Nyb2xsZXItbGlxdWlkLWFic29sdXRlJyk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudHNCeUNsYXNzTmFtZSAmJiBlbGVtZW50c0J5Q2xhc3NOYW1lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50c0J5Q2xhc3NOYW1lWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsZW5kZXJTY3JvbGxMaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgZWxlbWVudHNCeUNsYXNzTmFtZVswXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjYWxlbmRlclNjcm9sbExpc3RlbmVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxlbWVudHNCeUNsYXNzTmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZjLXNjcm9sbGVyLWxpcXVpZCcpO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRzQnlDbGFzc05hbWUgJiYgZWxlbWVudHNCeUNsYXNzTmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHNCeUNsYXNzTmFtZVswXS5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGNhbGVuZGVyU2Nyb2xsTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzQnlDbGFzc05hbWVbMF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2FsZW5kZXJTY3JvbGxMaXN0ZW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0ZUNsaWNrKGluZm8pIHtcbiAgICAgICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoaW5mby5kYXRlU3RyKTtcbiAgICAgICAgICAgIGxldCB0aW1lRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBsZXQgc3RhcnRUaW1lID0gbW9tZW50KGluZm8uZGF0ZVN0ciwgJ2RkZCBNTU0gRCBZWVlZIEhIOm1tOnNzIFpaJyk7XG4gICAgICAgICAgICB0aW1lRGF0ZS5zZXRIb3Vycyh0aW1lRGF0ZS5nZXRIb3VycygpICsgMSk7XG4gICAgICAgICAgICBzdGFydFRpbWUuc2V0KHtoOiB0aW1lRGF0ZS5nZXRIb3VycygpLCBtOiAwfSk7XG5cbiAgICAgICAgICAgIGxldCBlbmRUaW1lID0gbW9tZW50KGluZm8uZGF0ZVN0ciwgJ2RkZCBNTU0gRCBZWVlZIEhIOm1tOnNzIFpaJyk7XG4gICAgICAgICAgICB0aW1lRGF0ZS5zZXRIb3Vycyh0aW1lRGF0ZS5nZXRIb3VycygpICsgMSk7XG4gICAgICAgICAgICBlbmRUaW1lLnNldCh7aDogdGltZURhdGUuZ2V0SG91cnMoKSwgbTogMH0pO1xuXG4gICAgICAgICAgICBjb25zdCBjYWxlbmRhckV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIC4uLmV2ZW50VGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgc2NoZWR1bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnREYXRlOiBkYXRlLFxuICAgICAgICAgICAgICAgICAgICBlbmREYXRlOiBkYXRlLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZS50b0RhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogZW5kVGltZS50b0RhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVjdXJyaW5nU3RhcnREYXRlOiBkYXRlLFxuICAgICAgICAgICAgICAgICAgICByZWN1cnJpbmdFbmREYXRlOiBkYXRlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdldmVudFR5cGUnLCAnVFJBSU5JTkcnKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYoVXRpbHMuaXNTdHJpbmdFbXB0eShjYWxlbmRhckV2ZW50LmlkKSkge1xuICAgICAgICAgICAgICAgIGNhbGVuZGFyRXZlbnQuaWQgPSBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW9wZW4gJiYgbW9tZW50KG5ldyBEYXRlKCkpLnN0YXJ0T2YoJ2RheScpIDw9IG1vbWVudChkYXRlKS5zdGFydE9mKCdkYXknKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ0FMRU5EQVIgREFURSBDTElDS1wiKTtcbiAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGNhbGVuZGFyRXZlbnQpO1xuICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNBTEVOREFSX0RBVEVfQ0xJQ0ssIGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEhhbmRsZSBldmVudCBkcm9wIChBbHNvIGluY2x1ZGUgZHJhZ2dlZCBldmVudClcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnREcm9wXG4gICAgICAgICAgPyBXZSBjYW4gdXNlIGBldmVudERyYWdTdG9wYCBidXQgaXQgZG9lc24ndCByZXR1cm4gdXBkYXRlZCBldmVudCBzbyB3ZSBoYXZlIHRvIHVzZSBgZXZlbnREcm9wYCB3aGljaCByZXR1cm5zIHVwZGF0ZWQgZXZlbnRcbiAgICAgICAgKi9cbiAgICAgICAgZXZlbnREcm9wKHtldmVudDogZHJvcHBlZEV2ZW50fSkge1xuICAgICAgICAgICAgLy9kaXNwYXRjaCh1cGRhdGVFdmVudChkcm9wcGVkRXZlbnQpKTtcbiAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoJ0V2ZW50IFVwZGF0ZWQnKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEhhbmRsZSBldmVudCByZXNpemVcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnRSZXNpemVcbiAgICAgICAgKi9cbiAgICAgICAgZXZlbnRSZXNpemUoe2V2ZW50OiByZXNpemVkRXZlbnR9KSB7XG4gICAgICAgICAgICAvL2Rpc3BhdGNoKHVwZGF0ZUV2ZW50KHJlc2l6ZWRFdmVudCkpO1xuICAgICAgICAgICAgdG9hc3Quc3VjY2VzcygnRXZlbnQgVXBkYXRlZCcpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgSGFuZGxlIGV2ZW50IG1vdXNlIGVudGVyXG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL2V2ZW50TW91c2VFbnRlclxuICAgICAgICAqL1xuICAgICAgICBldmVudE1vdXNlRW50ZXIoe2VsOiBlbCwgZXZlbnQ6IGV2ZW50fSkge1xuICAgICAgICB9LFxuXG5cbiAgICAgICAgLypcbiAgICAgICAgICBIYW5kbGUgZXZlbnQgbW91c2UgZW50ZXJcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnRNb3VzZUVudGVyXG4gICAgICAgICovXG4gICAgICAgIGV2ZW50TW91c2VMZWF2ZSh7ZWw6IGVsfSkge1xuICAgICAgICB9LFxuXG4gICAgICAgIHJlZjogY2FsZW5kYXJSZWYsXG5cbiAgICAgICAgLy8gR2V0IGRpcmVjdGlvbiBmcm9tIGFwcCBzdGF0ZSAoc3RvcmUpXG4gICAgICAgIGRpcmVjdGlvbjogaXNSdGwgPyAncnRsJyA6ICdsdHInLFxuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgIGxldCBldmVudEhhbmRsaW5nQ29uZmlnID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnKSA/IHt9IDogcGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWc7XG4gICAgICAgIGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucyA9IFV0aWxzLmlzTnVsbChldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMpID8gW10gOiBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKGV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHRvRGF0ZVRpbWVTdHJpbmcgPSAoZGF0ZSkgPT4ge1xuICAgICAgICBsZXQgZGF0ZVN0ciA9IHNlbGVjdGVkRXZlbnQuc3RhcnQudG9Mb2NhbGVEYXRlU3RyaW5nKCk7XG4gICAgICAgIGxldCB0aW1lU3RyVG9rZW5zID0gc2VsZWN0ZWRFdmVudC5zdGFydC50b0xvY2FsZVRpbWVTdHJpbmcoKS5zcGxpdCgnOicpO1xuXG4gICAgICAgIHJldHVybiBkYXRlU3RyICsgJyAnICsgdGltZVN0clRva2Vuc1swXSArICc6JyArIHRpbWVTdHJUb2tlbnNbMV07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEZvcm1PYmplY3QgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmNhbGVuZGFyRXZlbnRUb0Zvcm1PYmplY3QoZXZlbnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgY3JlYXRlRXZlbnRQb3B1cCA9IChlbCkgPT4ge1xuICAgICAgICByZXR1cm4gPD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEV2ZW50ICYmIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnQtcG9wdXAnfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyd0b3AtdG9vbGJhciByb3cgbm8tcGFkZGluZyBuby1tYXJnaW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnbGVmdCBjb2wgbm8tcGFkZGluZyBuby1tYXJnaW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnQ0xPU0UnfSBjb2xvcj17JyMwMTQ3NkMnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3JpZ2h0IGNvbCBuby1wYWRkaW5nIG5vLW1hcmdpbid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiU0VMRUNURUQgRVZFTlQgOiBcIiwgZ2V0Rm9ybU9iamVjdChzZWxlY3RlZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGdldEZvcm1PYmplY3Qoc2VsZWN0ZWRFdmVudCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ0FMRU5EQVJfREFURV9DTElDSywgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydNQVhJTUlaRSd9IGNvbG9yPXsnIzAxNDc2Qyd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnc3VtbWFyeSd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtb2RhbC10aXRsZSd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZWxlY3RlZEV2ZW50LnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0b0RhdGVUaW1lU3RyaW5nKHNlbGVjdGVkRXZlbnQuc3RhcnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J29yZ2FuaXNlcid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZ2FuaXNlcjoge3NlbGVjdGVkRXZlbnQuZXh0ZW5kZWRQcm9wcy5ob3N0Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3ttYXJnaW5Ub3A6ICcxNnB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWFwcGxpY2F0aW9uTWFuYWdlci5oYXNBY3RpdmVNZWV0aW5nKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17J2NvbnRhaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e1wicHJpbWFyeVwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tib3JkZXJSYWRpdXM6ICc0cHgnLCBtYXJnaW5SaWdodDogJzJweCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGdldEZvcm1PYmplY3Qoc2VsZWN0ZWRFdmVudCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNBTEVOREFSX0VWRU5UX1NUQVJULCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKT0lOXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC8+XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9IHN0eWxlPXtcbiAgICAgICAgICAgIFV0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTZweCAwJyxcbiAgICAgICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgICAgIH0sIHByb3BzLmNvbmZpZylcbiAgICAgICAgfT5cbiAgICAgICAgICAgIDxkaXYga2V5PXtyZWZyZXNoZXJ9IGNsYXNzTmFtZT17J3ctMTAwIGgtMTAwJ30+XG4gICAgICAgICAgICAgICAgPEZ1bGxDYWxlbmRhciB7Li4uY2FsZW5kYXJPcHRpb25zfS8+eycgJ31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFN0eWxlZERpYWxvZ1xuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgcmVmPXtkaWFsb2dSZWZ9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRPcGVuKGZhbHNlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaGlkZUJhY2tkcm9wXG4gICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1c1xuICAgICAgICAgICAgICAgIGRpc2FibGVBdXRvRm9jdXNcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJhbGVydC1kaWFsb2ctdGl0bGVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJhbGVydC1kaWFsb2ctZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbW9kYWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogJ2F1dG8nXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBQYXBlclByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogJzIwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICcyMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndy0xMDAgaC0xMDAnfT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRXZlbnRQb3B1cCgpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvU3R5bGVkRGlhbG9nPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsU0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBVSxPQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVyxjQUFBLEdBQUFULHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFWLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYSxVQUFBLEdBQUFYLHNCQUFBLENBQUFG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
|
|
511
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX09ic2VydmFibGUiLCJfcmVhY3QyIiwiX2xpc3QiLCJfcnJ1bGUiLCJfZGF5Z3JpZCIsIl90aW1lZ3JpZCIsIl9pbnRlcmFjdGlvbiIsIl9tb21lbnQiLCJfcmVhY3RIb3RUb2FzdCIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0RpYWxvZyIsIl93aXRoU3R5bGVzIiwiX0ljb25CdXR0b24iLCJfSWNvbiIsIl9CdXR0b24iLCJfTWVudSIsIl9NZW51SXRlbSIsIl9DYWxlbmRhciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImV2ZW50VGVtcGxhdGUiLCJpZCIsInRpdGxlIiwic3RhcnQiLCJlbmQiLCJhbGxEYXkiLCJleHRlbmRlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJhdHRlbmRlZXMiLCJpZGVudGlmaWVyIiwibmFtZSIsIm9wdGlvbmFsIiwic2NoZWR1bGUiLCJzdGFydERhdGUiLCJlbmREYXRlIiwic3RhcnRUaW1lIiwiZW5kVGltZSIsImxvY2F0aW9ucyIsInN0YXR1cyIsInJlc3BvbnNlIiwib2siLCJQcm9taXNlIiwicmVzb2x2ZSIsImVycm9yIiwiRXJyb3IiLCJzdGF0dXNUZXh0IiwiY29kZSIsInJlamVjdCIsImpzb24iLCJ0ZXh0IiwibG9jYXRpb24iLCJ3aW5kb3ciLCJwcm90b2NvbCIsImhvc3RuYW1lIiwiQ2FsZW5kYXIiLCJwcm9wcyIsImlzUnRsIiwiZXZlbnRzIiwic2V0RXZlbnRzIiwidXNlU3RhdGUiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIm9wZW4iLCJzZXRPcGVuIiwic2VsZWN0ZWRFdmVudCIsInNldFNlbGVjdGVkRXZlbnQiLCJjYWxlbmRhclJlZiIsInVzZVJlZiIsImRpYWxvZ1JlZiIsInJlZnJlc2hlciIsInNldFJlZnJlc2hlciIsImRpYWxvZ1Bvc2l0aW9uIiwic2V0RGlhbG9nUG9zaXRpb24iLCJib3R0b20iLCJyaWdodCIsImNyZWF0ZU1lbnUiLCJzZXRDcmVhdGVNZW51IiwieCIsInkiLCJpdGVtcyIsImluZm8iLCJjb250ZXh0Q2hhbmdlSGFuZGxlciIsImNvdW50ZXIiLCJTdHlsZWREaWFsb2ciLCJ3aXRoU3R5bGVzIiwicm9vdCIsInBvaW50ZXJFdmVudHMiLCJwYXBlciIsIndpZHRoIiwiaGVpZ2h0IiwibWluV2lkdGgiLCJwYWRkaW5nIiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJtYXJnaW4iLCJib3JkZXJSYWRpdXMiLCJEaWFsb2ciLCJsb2FkRXZlbnRzIiwidHJhY2siLCJ1bmRlZmluZWQiLCJldmVudHNVcmwiLCJjb25maWciLCJmZXRjaCIsImVuY29kZVVSSSIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldENvbnRleHRSb290IiwibWV0aG9kIiwiaGVhZGVycyIsInNlc3Npb25TdG9yYWdlIiwiZ2V0SXRlbSIsInRoZW4iLCJKU09OIiwicGFyc2UiLCJjYXRjaCIsImlnbm9yZWQiLCJoYW5kbGVyIiwib25Db250ZXh0Q2hhbmdlIiwiY29udGV4dCIsIm5ld1ZhbHVlcyIsImZpbmQiLCJrZXkiLCJ1c2VFZmZlY3QiLCJhcGkiLCJhZGRBcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24iLCJjYWxlbmRlclNjcm9sbExpc3RlbmVyIiwiaXNUb2RheU9yRnV0dXJlIiwiZGF0ZVN0ciIsIm1vbWVudCIsIkRhdGUiLCJzdGFydE9mIiwiYnVpbGRDYWxlbmRhckV2ZW50IiwiX3JlZiIsImV2ZW50VHlwZSIsImNvbmZlcmVuY2luZ0FjdGl2aXR5R3JvdXAiLCJtZXRhZGF0YSIsImRhdGUiLCJ0aW1lRGF0ZSIsInNldEhvdXJzIiwiZ2V0SG91cnMiLCJoIiwibSIsImNhbGVuZGFyRXZlbnQiLCJ0b0RhdGUiLCJyZWN1cnJpbmdTdGFydERhdGUiLCJyZWN1cnJpbmdFbmREYXRlIiwiVXRpbHMiLCJpc1N0cmluZ0VtcHR5IiwiZmlyZUNyZWF0ZSIsImV2ZW50IiwiRXZlbnQiLCJoYW5kbGUiLCJ2aWV3SWQiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJDQUxFTkRBUl9EQVRFX0NMSUNLIiwiZmlyZUNyZWF0ZUZvck1ldGFkYXRhIiwibWV0YSIsImZldGNoQ3JlYXRlTWV0YWRhdGEiLCJ1cmwiLCJjYWxlbmRhck9wdGlvbnMiLCJwbHVnaW5zIiwiaW50ZXJhY3Rpb25QbHVnaW4iLCJkYXlHcmlkUGx1Z2luIiwidGltZUdyaWRQbHVnaW4iLCJsaXN0UGx1Z2luIiwicnJ1bGVQbHVnaW4iLCJpbml0aWFsVmlldyIsImhlYWRlclRvb2xiYXIiLCJlZGl0YWJsZSIsInN0aWNreUhlYWRlckRhdGVzIiwiZXZlbnRUaW1lRm9ybWF0IiwiaG91ciIsIm1pbnV0ZSIsImhvdXIxMiIsImV2ZW50UmVzaXphYmxlRnJvbVN0YXJ0IiwiZHJhZ1Njcm9sbCIsImRheU1heEV2ZW50cyIsIm5hdkxpbmtzIiwiZXZlbnRDbGFzc05hbWVzIiwiX3JlZjIiLCJjb2xvck5hbWUiLCJjb25jYXQiLCJ2aWV3RGlkTW91bnQiLCJldmVudENsaWNrIiwiX3JlZjMiLCJlbCIsImVsZW1lbnRzQnlDbGFzc05hbWUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRhdGVDbGljayIsImNyZWF0ZUV2ZW50TWV0YWRhdGFVcmwiLCJyZXN1bHQiLCJyZWNvcmRzIiwianNFdmVudCIsImNsaWVudFgiLCJjbGllbnRZIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiZXZlbnREcm9wIiwiX3JlZjQiLCJkcm9wcGVkRXZlbnQiLCJ0b2FzdCIsInN1Y2Nlc3MiLCJldmVudFJlc2l6ZSIsIl9yZWY1IiwicmVzaXplZEV2ZW50IiwiZXZlbnRNb3VzZUVudGVyIiwiX3JlZjYiLCJldmVudE1vdXNlTGVhdmUiLCJfcmVmNyIsInJlZiIsImRpcmVjdGlvbiIsIlJlYWN0IiwicGFyc2VkQ29uZmlnIiwicGFyc2VDb25maWciLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiaXNOdWxsIiwic3Vic2NyaXB0aW9ucyIsImFkZFN1YnNjcmlwdGlvbnMiLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwidG9EYXRlVGltZVN0cmluZyIsInRvTG9jYWxlRGF0ZVN0cmluZyIsInRpbWVTdHJUb2tlbnMiLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJzcGxpdCIsImdldEZvcm1PYmplY3QiLCJjYWxlbmRhciIsImNhbGVuZGFyRXZlbnRUb0Zvcm1PYmplY3QiLCJnZXRDaGlsZHJlbiIsImNyZWF0ZUV2ZW50UG9wdXAiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiY29sb3IiLCJjb25zb2xlIiwibG9nIiwiaG9zdCIsInN0eWxlIiwibWFyZ2luVG9wIiwiaGFzQWN0aXZlTWVldGluZyIsInZhcmlhbnQiLCJzaXplIiwibWFyZ2luUmlnaHQiLCJDQUxFTkRBUl9FVkVOVF9TVEFSVCIsIm1lcmdlU3R5bGVzIiwibWF4SGVpZ2h0Iiwib25DbG9zZSIsImhpZGVCYWNrZHJvcCIsImRpc2FibGVFbmZvcmNlRm9jdXMiLCJkaXNhYmxlQXV0b0ZvY3VzIiwiUGFwZXJQcm9wcyIsImFuY2hvclJlZmVyZW5jZSIsImFuY2hvclBvc2l0aW9uIiwibWFwIiwiaWR4IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL0NhbGVuZGFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IEZ1bGxDYWxlbmRhciBmcm9tICdAZnVsbGNhbGVuZGFyL3JlYWN0JztcbmltcG9ydCBsaXN0UGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvbGlzdCc7XG5pbXBvcnQgcnJ1bGVQbHVnaW4gZnJvbSAnQGZ1bGxjYWxlbmRhci9ycnVsZSc7XG5pbXBvcnQgZGF5R3JpZFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2RheWdyaWQnO1xuaW1wb3J0IHRpbWVHcmlkUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvdGltZWdyaWQnO1xuaW1wb3J0IGludGVyYWN0aW9uUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvaW50ZXJhY3Rpb24nO1xuaW1wb3J0IFwiLi9DYWxlbmRlci5jc3NcIlxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgdG9hc3QgZnJvbSAncmVhY3QtaG90LXRvYXN0JztcbmltcG9ydCBFdmVudCBmcm9tICcuLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gXCIuLi9ldmVudC9FdmVudFR5cGVcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuaW1wb3J0IERpYWxvZyBmcm9tIFwiQG11aS9tYXRlcmlhbC9EaWFsb2dcIjtcbmltcG9ydCB3aXRoU3R5bGVzIGZyb20gXCJAbXVpL3N0eWxlcy93aXRoU3R5bGVzXCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tIFwiQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uXCI7XG5pbXBvcnQgSWNvbiBmcm9tIFwiLi9JY29uXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJAbXVpL21hdGVyaWFsL0J1dHRvblwiO1xuaW1wb3J0IE1lbnUgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTWVudVwiO1xuaW1wb3J0IE1lbnVJdGVtIGZyb20gXCJAbXVpL21hdGVyaWFsL01lbnVJdGVtXCI7XG5pbXBvcnQgY2FsZW5kYXIgZnJvbSAnLi4vanMvQ2FsZW5kYXInO1xuXG5jb25zdCBldmVudFRlbXBsYXRlID0ge1xuICAgIGlkOiAnJyxcbiAgICB0aXRsZTogJycsXG4gICAgc3RhcnQ6ICcnLFxuICAgIGVuZDogJycsXG4gICAgYWxsRGF5OiBmYWxzZSxcbiAgICBleHRlbmRlZFByb3BzOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgYXR0ZW5kZWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICcnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHNjaGVkdWxlOiB7XG4gICAgICAgICAgICBpZDogJycsXG4gICAgICAgICAgICBzdGFydERhdGU6ICcnLFxuICAgICAgICAgICAgZW5kRGF0ZTogJycsXG4gICAgICAgICAgICBzdGFydFRpbWU6ICcnLFxuICAgICAgICAgICAgZW5kVGltZTogJycsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2F0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICB9LFxufTtcblxuY29uc3Qgc3RhdHVzID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihyZXNwb25zZS5zdGF0dXNUZXh0KTtcbiAgICAgICAgZXJyb3IuY29kZSA9IHJlc3BvbnNlLnN0YXR1cztcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH1cbn07XG5cbmNvbnN0IGpzb24gPSAocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xufTtcblxuY29uc3QgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5jb25zdCBDYWxlbmRhciA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHtpc1J0bH0gPSBwcm9wcztcbiAgICBjb25zdCBbZXZlbnRzLCBzZXRFdmVudHNdID0gdXNlU3RhdGUoW10pO1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRFdmVudCwgc2V0U2VsZWN0ZWRFdmVudF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjYWxlbmRhclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW3JlZnJlc2hlciwgc2V0UmVmcmVzaGVyXSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtkaWFsb2dQb3NpdGlvbiwgc2V0RGlhbG9nUG9zaXRpb25dID0gdXNlU3RhdGUoeyBib3R0b206ICcyMHB4JywgcmlnaHQ6ICcyMHB4JyB9KTtcbiAgICBjb25zdCBbY3JlYXRlTWVudSwgc2V0Q3JlYXRlTWVudV0gPSB1c2VTdGF0ZSh7IG9wZW46IGZhbHNlLCB4OiAwLCB5OiAwLCBpdGVtczogW10sIGluZm86IG51bGwgfSk7XG4gICAgY29uc3QgY29udGV4dENoYW5nZUhhbmRsZXIgPSB7fTtcbiAgICBsZXQgY291bnRlciA9IDE7XG5cbiAgICBjb25zdCBTdHlsZWREaWFsb2cgPSB3aXRoU3R5bGVzKHtcbiAgICAgICAgcm9vdDoge1xuICAgICAgICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCJcbiAgICAgICAgfSxcbiAgICAgICAgcGFwZXI6IHtcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdhdXRvJyxcbiAgICAgICAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMjI4cHgnLFxuICAgICAgICAgICAgbWluV2lkdGg6ICc0MDBweCcsXG4gICAgICAgICAgICBwYWRkaW5nOiAnMCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgIGJvdHRvbTogZGlhbG9nUG9zaXRpb24uYm90dG9tLFxuICAgICAgICAgICAgcmlnaHQ6IGRpYWxvZ1Bvc2l0aW9uLnJpZ2h0LFxuICAgICAgICAgICAgbGVmdDogJ2F1dG8gIWltcG9ydGFudCcsXG4gICAgICAgICAgICB0b3A6ICdhdXRvICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgdHJhbnNmb3JtOiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgICAgICAgICAgIG1hcmdpbjogJzAgIWltcG9ydGFudCcsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnXG4gICAgICAgIH1cbiAgICB9KShEaWFsb2cpO1xuXG4gICAgY29uc3QgbG9hZEV2ZW50cyA9ICh0cmFjayA9IHRydWUpID0+IHtcbiAgICAgICAgY29uc3QgZXZlbnRzVXJsID0gKHByb3BzLmNvbmZpZyAmJiBwcm9wcy5jb25maWcuZXZlbnRzVXJsKSB8fCAnL2NhbGVuZGFyL2FwaS92MS9ldmVudC9saXN0JztcbiAgICAgICAgZmV0Y2goZW5jb2RlVVJJKGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyBldmVudHNVcmwpLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKSxcbiAgICAgICAgICAgICAgICAnaWRUb2tlbic6IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAudGhlbihqc29uKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXZlbnRzKEpTT04ucGFyc2UocmVzcG9uc2UpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGlnbm9yZWQpID0+IHtcbiAgICAgICAgICAgIH0pXG4gICAgfTtcblxuXG4gICAgY29uc3QgaGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NhbGVuZGFyJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNvbnRleHRDaGFuZ2U6IChjb250ZXh0LCBuZXdWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobmV3VmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAuZmluZCgoa2V5KSA9PiBrZXkgPT09ICd3aW5kb3dEaXNwbGF5U3RhdGUnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZWZyZXNoZXIoY291bnRlciA+IDIwID8gMCA6IGNvdW50ZXIrKyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb250ZXh0Q2hhbmdlSGFuZGxlci5hcGkgPSBoYW5kbGVyKCk7XG4gICAgICAgIGxvYWRFdmVudHMoKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbih7XG4gICAgICAgICAgICBoYW5kbGVyOiBjb250ZXh0Q2hhbmdlSGFuZGxlclxuICAgICAgICB9KVxuICAgIH0sIFtdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnRleHRDaGFuZ2VIYW5kbGVyLmFwaSA9IGhhbmRsZXIoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNhbGVuZGVyU2Nyb2xsTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpXG4gICAgfTtcblxuICAgIGNvbnN0IGlzVG9kYXlPckZ1dHVyZSA9IChkYXRlU3RyKSA9PiBtb21lbnQobmV3IERhdGUoKSkuc3RhcnRPZignZGF5JykgPD0gbW9tZW50KG5ldyBEYXRlKGRhdGVTdHIpKS5zdGFydE9mKCdkYXknKTtcblxuICAgIGNvbnN0IGJ1aWxkQ2FsZW5kYXJFdmVudCA9IChpbmZvLCB7ZXZlbnRUeXBlLCBjb25mZXJlbmNpbmdBY3Rpdml0eUdyb3VwLCBtZXRhZGF0YX0pID0+IHtcbiAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZShpbmZvLmRhdGVTdHIpO1xuICAgICAgICBsZXQgdGltZURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBsZXQgc3RhcnRUaW1lID0gbW9tZW50KGluZm8uZGF0ZVN0ciwgJ2RkZCBNTU0gRCBZWVlZIEhIOm1tOnNzIFpaJyk7XG4gICAgICAgIHRpbWVEYXRlLnNldEhvdXJzKHRpbWVEYXRlLmdldEhvdXJzKCkgKyAxKTtcbiAgICAgICAgc3RhcnRUaW1lLnNldCh7aDogdGltZURhdGUuZ2V0SG91cnMoKSwgbTogMH0pO1xuXG4gICAgICAgIGxldCBlbmRUaW1lID0gbW9tZW50KGluZm8uZGF0ZVN0ciwgJ2RkZCBNTU0gRCBZWVlZIEhIOm1tOnNzIFpaJyk7XG4gICAgICAgIHRpbWVEYXRlLnNldEhvdXJzKHRpbWVEYXRlLmdldEhvdXJzKCkgKyAxKTtcbiAgICAgICAgZW5kVGltZS5zZXQoe2g6IHRpbWVEYXRlLmdldEhvdXJzKCksIG06IDB9KTtcblxuICAgICAgICBjb25zdCBjYWxlbmRhckV2ZW50ID0ge1xuICAgICAgICAgICAgLi4uZXZlbnRUZW1wbGF0ZSxcbiAgICAgICAgICAgIHNjaGVkdWxlOiB7XG4gICAgICAgICAgICAgICAgc3RhcnREYXRlOiBkYXRlLFxuICAgICAgICAgICAgICAgIGVuZERhdGU6IGRhdGUsXG4gICAgICAgICAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUudG9EYXRlKCksXG4gICAgICAgICAgICAgICAgZW5kVGltZTogZW5kVGltZS50b0RhdGUoKSxcbiAgICAgICAgICAgICAgICByZWN1cnJpbmdTdGFydERhdGU6IGRhdGUsXG4gICAgICAgICAgICAgICAgcmVjdXJyaW5nRW5kRGF0ZTogZGF0ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV2ZW50VHlwZTogZXZlbnRUeXBlLFxuICAgICAgICAgICAgY29uZmVyZW5jaW5nQWN0aXZpdHlHcm91cDogY29uZmVyZW5jaW5nQWN0aXZpdHlHcm91cCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChVdGlscy5pc1N0cmluZ0VtcHR5KGNhbGVuZGFyRXZlbnQuaWQpKSB7XG4gICAgICAgICAgICBjYWxlbmRhckV2ZW50LmlkID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FsZW5kYXJFdmVudDtcbiAgICB9O1xuXG4gICAgY29uc3QgZmlyZUNyZWF0ZSA9IChjYWxlbmRhckV2ZW50KSA9PiB7XG4gICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCwgY2FsZW5kYXJFdmVudCk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNBTEVOREFSX0RBVEVfQ0xJQ0ssIGV2ZW50KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZmlyZUNyZWF0ZUZvck1ldGFkYXRhID0gKGluZm8sIG1ldGEpID0+IHtcbiAgICAgICAgZmlyZUNyZWF0ZShidWlsZENhbGVuZGFyRXZlbnQoaW5mbywge1xuICAgICAgICAgICAgZXZlbnRUeXBlOiBtZXRhLmNvbmZlcmVuY2luZ0FjdGl2aXR5R3JvdXAsXG4gICAgICAgICAgICBjb25mZXJlbmNpbmdBY3Rpdml0eUdyb3VwOiBtZXRhLmNvbmZlcmVuY2luZ0FjdGl2aXR5R3JvdXAsXG4gICAgICAgICAgICBtZXRhZGF0YTogbWV0YVxuICAgICAgICB9KSk7XG4gICAgfTtcblxuICAgIC8vIEZldGNoIHRoZSBDUkVBVEUtb3BlcmF0aW9uIG1ldGFkYXRhIHRoZSBjdXJyZW50IHVzZXIgaXMgZW50aXRsZWQgdG8gKHJvbGUtZmlsdGVyZWQgc2VydmVyLXNpZGUpLlxuICAgIGNvbnN0IGZldGNoQ3JlYXRlTWV0YWRhdGEgPSAodXJsKSA9PiB7XG4gICAgICAgIHJldHVybiBmZXRjaChlbmNvZGVVUkkobG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIHVybCksIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpLFxuICAgICAgICAgICAgICAgICdpZFRva2VuJzogc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImlkVG9rZW5cIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IEpTT04ucGFyc2UocmVzcG9uc2UpKTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2FsZW5kYXJPcHRpb25zID0ge1xuICAgICAgICBldmVudHM6IGV2ZW50cyxcbiAgICAgICAgcGx1Z2luczogW2ludGVyYWN0aW9uUGx1Z2luLCBkYXlHcmlkUGx1Z2luLCB0aW1lR3JpZFBsdWdpbiwgbGlzdFBsdWdpbiwgcnJ1bGVQbHVnaW5dLFxuICAgICAgICBpbml0aWFsVmlldzogJ2RheUdyaWRNb250aCcsXG4gICAgICAgIGhlYWRlclRvb2xiYXI6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAnc2lkZWJhclRvZ2dsZSwgcHJldixuZXh0LCB0aXRsZScsXG4gICAgICAgICAgICBlbmQ6ICdkYXlHcmlkTW9udGgsdGltZUdyaWRXZWVrLHRpbWVHcmlkRGF5LGxpc3RNb250aCcsXG4gICAgICAgIH0sXG4gICAgICAgIC8qXG4gICAgICAgICAgRW5hYmxlIGRyYWdnaW5nIGFuZCByZXNpemluZyBldmVudFxuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9lZGl0YWJsZVxuICAgICAgICAqL1xuICAgICAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHN0aWNreUhlYWRlckRhdGVzOiB0cnVlLFxuXG4gICAgICAgIGV2ZW50VGltZUZvcm1hdDogeyAvLyBsaWtlICcxNDozMDowMCdcbiAgICAgICAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgIGhvdXIxMjogZmFsc2VcbiAgICAgICAgfSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEVuYWJsZSByZXNpemluZyBldmVudCBmcm9tIHN0YXJ0XG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL2V2ZW50UmVzaXphYmxlRnJvbVN0YXJ0XG4gICAgICAgICovXG4gICAgICAgIGV2ZW50UmVzaXphYmxlRnJvbVN0YXJ0OiB0cnVlLFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgQXV0b21hdGljYWxseSBzY3JvbGwgdGhlIHNjcm9sbC1jb250YWluZXJzIGR1cmluZyBldmVudCBkcmFnLWFuZC1kcm9wIGFuZCBkYXRlIHNlbGVjdGluZ1xuICAgICAgICAgID8gRG9jczogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vZG9jcy9kcmFnU2Nyb2xsXG4gICAgICAgICovXG4gICAgICAgIGRyYWdTY3JvbGw6IHRydWUsXG5cbiAgICAgICAgLypcbiAgICAgICAgICBNYXggbnVtYmVyIG9mIGV2ZW50cyB3aXRoaW4gYSBnaXZlbiBkYXlcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZGF5TWF4RXZlbnRzXG4gICAgICAgICovXG4gICAgICAgIGRheU1heEV2ZW50czogMixcblxuICAgICAgICAvKlxuICAgICAgICAgIERldGVybWluZXMgaWYgZGF5IG5hbWVzIGFuZCB3ZWVrIG5hbWVzIGFyZSBjbGlja2FibGVcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvbmF2TGlua3NcbiAgICAgICAgKi9cbiAgICAgICAgbmF2TGlua3M6IHRydWUsXG5cbiAgICAgICAgZXZlbnRDbGFzc05hbWVzKHtldmVudDogY2FsZW5kYXJFdmVudH0pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgICAgICAgY29uc3QgY29sb3JOYW1lID0gJyM5NDVjMzMnO1xuXG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIGBiZy1saWdodC0ke2NvbG9yTmFtZX1gLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSxcblxuICAgICAgICB2aWV3RGlkTW91bnQoKSB7XG4gICAgICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgfSxcblxuICAgICAgICBldmVudENsaWNrKHtlbDogZWwsIGV2ZW50OiBldmVudH0pIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcblxuICAgICAgICAgICAgbGV0IGVsZW1lbnRzQnlDbGFzc05hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdmYy1zY3JvbGxlci1saXF1aWQtYWJzb2x1dGUnKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50c0J5Q2xhc3NOYW1lICYmIGVsZW1lbnRzQnlDbGFzc05hbWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzQnlDbGFzc05hbWVbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBjYWxlbmRlclNjcm9sbExpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50c0J5Q2xhc3NOYW1lWzBdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNhbGVuZGVyU2Nyb2xsTGlzdGVuZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbGVtZW50c0J5Q2xhc3NOYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZmMtc2Nyb2xsZXItbGlxdWlkJyk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudHNCeUNsYXNzTmFtZSAmJiBlbGVtZW50c0J5Q2xhc3NOYW1lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50c0J5Q2xhc3NOYW1lWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgY2FsZW5kZXJTY3JvbGxMaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgZWxlbWVudHNCeUNsYXNzTmFtZVswXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjYWxlbmRlclNjcm9sbExpc3RlbmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkYXRlQ2xpY2soaW5mbykge1xuICAgICAgICAgICAgaWYgKG9wZW4gfHwgIWlzVG9kYXlPckZ1dHVyZShpbmZvLmRhdGVTdHIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjcmVhdGVFdmVudE1ldGFkYXRhVXJsID0gcHJvcHMuY29uZmlnICYmIHByb3BzLmNvbmZpZy5jcmVhdGVFdmVudE1ldGFkYXRhVXJsO1xuICAgICAgICAgICAgaWYgKGNyZWF0ZUV2ZW50TWV0YWRhdGFVcmwpIHtcbiAgICAgICAgICAgICAgICAvLyBSb2xlLWdhdGVkIGNyZWF0ZTogZmV0Y2ggdGhlIGRvbWFpbnMgdGhpcyB1c2VyIG1heSBjcmVhdGUsIHRoZW4gbGV0IHRoZW0gcGljayBmcm9tIGEgbWVudS5cbiAgICAgICAgICAgICAgICBmZXRjaENyZWF0ZU1ldGFkYXRhKGNyZWF0ZUV2ZW50TWV0YWRhdGFVcmwpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gcmVzdWx0ICYmIHJlc3VsdC5yZWNvcmRzID8gcmVzdWx0LnJlY29yZHMgOiBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIG5vdGhpbmcgY3JlYXRhYmxlIGZvciB0aGlzIHVzZXIncyByb2xlcyDigJQgbm8gbWVudSwgbm8gZXZlbnQgZmlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IG9uZSBvcHRpb24g4oCUIHNraXAgdGhlIG1lbnUgYW5kIGFjdCBhcyBpZiBpdCB3YXMgY2xpY2tlZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJlQ3JlYXRlRm9yTWV0YWRhdGEoaW5mbywgaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGpzRXZlbnQgPSBpbmZvLmpzRXZlbnQgfHwge307XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRDcmVhdGVNZW51KHtvcGVuOiB0cnVlLCB4OiBqc0V2ZW50LmNsaWVudFggfHwgMCwgeToganNFdmVudC5jbGllbnRZIHx8IDAsIGl0ZW1zLCBpbmZvfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoaWdub3JlZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIExlZ2FjeSBiZWhhdmlvdXI6IHNpbmdsZSBoYXJkLWNvZGVkIGV2ZW50IHR5cGUuXG4gICAgICAgICAgICBmaXJlQ3JlYXRlKGJ1aWxkQ2FsZW5kYXJFdmVudChpbmZvLCB7XG4gICAgICAgICAgICAgICAgZXZlbnRUeXBlOiBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnZXZlbnRUeXBlJywgJ1RSQUlOSU5HJylcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEhhbmRsZSBldmVudCBkcm9wIChBbHNvIGluY2x1ZGUgZHJhZ2dlZCBldmVudClcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnREcm9wXG4gICAgICAgICAgPyBXZSBjYW4gdXNlIGBldmVudERyYWdTdG9wYCBidXQgaXQgZG9lc24ndCByZXR1cm4gdXBkYXRlZCBldmVudCBzbyB3ZSBoYXZlIHRvIHVzZSBgZXZlbnREcm9wYCB3aGljaCByZXR1cm5zIHVwZGF0ZWQgZXZlbnRcbiAgICAgICAgKi9cbiAgICAgICAgZXZlbnREcm9wKHtldmVudDogZHJvcHBlZEV2ZW50fSkge1xuICAgICAgICAgICAgLy9kaXNwYXRjaCh1cGRhdGVFdmVudChkcm9wcGVkRXZlbnQpKTtcbiAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoJ0V2ZW50IFVwZGF0ZWQnKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKlxuICAgICAgICAgIEhhbmRsZSBldmVudCByZXNpemVcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnRSZXNpemVcbiAgICAgICAgKi9cbiAgICAgICAgZXZlbnRSZXNpemUoe2V2ZW50OiByZXNpemVkRXZlbnR9KSB7XG4gICAgICAgICAgICAvL2Rpc3BhdGNoKHVwZGF0ZUV2ZW50KHJlc2l6ZWRFdmVudCkpO1xuICAgICAgICAgICAgdG9hc3Quc3VjY2VzcygnRXZlbnQgVXBkYXRlZCcpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qXG4gICAgICAgICAgSGFuZGxlIGV2ZW50IG1vdXNlIGVudGVyXG4gICAgICAgICAgPyBEb2NzOiBodHRwczovL2Z1bGxjYWxlbmRhci5pby9kb2NzL2V2ZW50TW91c2VFbnRlclxuICAgICAgICAqL1xuICAgICAgICBldmVudE1vdXNlRW50ZXIoe2VsOiBlbCwgZXZlbnQ6IGV2ZW50fSkge1xuICAgICAgICB9LFxuXG5cbiAgICAgICAgLypcbiAgICAgICAgICBIYW5kbGUgZXZlbnQgbW91c2UgZW50ZXJcbiAgICAgICAgICA/IERvY3M6IGh0dHBzOi8vZnVsbGNhbGVuZGFyLmlvL2RvY3MvZXZlbnRNb3VzZUVudGVyXG4gICAgICAgICovXG4gICAgICAgIGV2ZW50TW91c2VMZWF2ZSh7ZWw6IGVsfSkge1xuICAgICAgICB9LFxuXG4gICAgICAgIHJlZjogY2FsZW5kYXJSZWYsXG5cbiAgICAgICAgLy8gR2V0IGRpcmVjdGlvbiBmcm9tIGFwcCBzdGF0ZSAoc3RvcmUpXG4gICAgICAgIGRpcmVjdGlvbjogaXNSdGwgPyAncnRsJyA6ICdsdHInLFxuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgIGxldCBldmVudEhhbmRsaW5nQ29uZmlnID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnKSA/IHt9IDogcGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWc7XG4gICAgICAgIGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucyA9IFV0aWxzLmlzTnVsbChldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMpID8gW10gOiBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKGV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHRvRGF0ZVRpbWVTdHJpbmcgPSAoZGF0ZSkgPT4ge1xuICAgICAgICBsZXQgZGF0ZVN0ciA9IHNlbGVjdGVkRXZlbnQuc3RhcnQudG9Mb2NhbGVEYXRlU3RyaW5nKCk7XG4gICAgICAgIGxldCB0aW1lU3RyVG9rZW5zID0gc2VsZWN0ZWRFdmVudC5zdGFydC50b0xvY2FsZVRpbWVTdHJpbmcoKS5zcGxpdCgnOicpO1xuXG4gICAgICAgIHJldHVybiBkYXRlU3RyICsgJyAnICsgdGltZVN0clRva2Vuc1swXSArICc6JyArIHRpbWVTdHJUb2tlbnNbMV07XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEZvcm1PYmplY3QgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmNhbGVuZGFyRXZlbnRUb0Zvcm1PYmplY3QoZXZlbnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgY3JlYXRlRXZlbnRQb3B1cCA9IChlbCkgPT4ge1xuICAgICAgICByZXR1cm4gPD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEV2ZW50ICYmIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnQtcG9wdXAnfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eyd0b3AtdG9vbGJhciByb3cgbm8tcGFkZGluZyBuby1tYXJnaW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnbGVmdCBjb2wgbm8tcGFkZGluZyBuby1tYXJnaW4nfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnQ0xPU0UnfSBjb2xvcj17JyMwMTQ3NkMnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3JpZ2h0IGNvbCBuby1wYWRkaW5nIG5vLW1hcmdpbid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiU0VMRUNURUQgRVZFTlQgOiBcIiwgZ2V0Rm9ybU9iamVjdChzZWxlY3RlZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGdldEZvcm1PYmplY3Qoc2VsZWN0ZWRFdmVudCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ0FMRU5EQVJfREFURV9DTElDSywgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydNQVhJTUlaRSd9IGNvbG9yPXsnIzAxNDc2Qyd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnc3VtbWFyeSd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtb2RhbC10aXRsZSd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZWxlY3RlZEV2ZW50LnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0b0RhdGVUaW1lU3RyaW5nKHNlbGVjdGVkRXZlbnQuc3RhcnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J29yZ2FuaXNlcid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZ2FuaXNlcjoge3NlbGVjdGVkRXZlbnQuZXh0ZW5kZWRQcm9wcy5ob3N0Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3ttYXJnaW5Ub3A6ICcxNnB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWFwcGxpY2F0aW9uTWFuYWdlci5oYXNBY3RpdmVNZWV0aW5nKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17J2NvbnRhaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e1wicHJpbWFyeVwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tib3JkZXJSYWRpdXM6ICc0cHgnLCBtYXJnaW5SaWdodDogJzJweCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGdldEZvcm1PYmplY3Qoc2VsZWN0ZWRFdmVudCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNBTEVOREFSX0VWRU5UX1NUQVJULCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKT0lOXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC8+XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtwcm9wcy5jbGFzc05hbWV9IHN0eWxlPXtcbiAgICAgICAgICAgIFV0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTZweCAwJyxcbiAgICAgICAgICAgICAgICBtYXJnaW46ICcwJyxcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgICAgIH0sIHByb3BzLmNvbmZpZylcbiAgICAgICAgfT5cbiAgICAgICAgICAgIDxkaXYga2V5PXtyZWZyZXNoZXJ9IGNsYXNzTmFtZT17J3ctMTAwIGgtMTAwJ30+XG4gICAgICAgICAgICAgICAgPEZ1bGxDYWxlbmRhciB7Li4uY2FsZW5kYXJPcHRpb25zfS8+eycgJ31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFN0eWxlZERpYWxvZ1xuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgcmVmPXtkaWFsb2dSZWZ9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRPcGVuKGZhbHNlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaGlkZUJhY2tkcm9wXG4gICAgICAgICAgICAgICAgZGlzYWJsZUVuZm9yY2VGb2N1c1xuICAgICAgICAgICAgICAgIGRpc2FibGVBdXRvRm9jdXNcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJhbGVydC1kaWFsb2ctdGl0bGVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJhbGVydC1kaWFsb2ctZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbW9kYWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogJ2F1dG8nXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBQYXBlclByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogJzIwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICcyMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndy0xMDAgaC0xMDAnfT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRXZlbnRQb3B1cCgpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvU3R5bGVkRGlhbG9nPlxuICAgICAgICAgICAgPE1lbnVcbiAgICAgICAgICAgICAgICBvcGVuPXtjcmVhdGVNZW51Lm9wZW59XG4gICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0Q3JlYXRlTWVudSh7Li4uY3JlYXRlTWVudSwgb3BlbjogZmFsc2V9KX1cbiAgICAgICAgICAgICAgICBhbmNob3JSZWZlcmVuY2U9XCJhbmNob3JQb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgYW5jaG9yUG9zaXRpb249e2NyZWF0ZU1lbnUub3BlbiA/IHt0b3A6IGNyZWF0ZU1lbnUueSwgbGVmdDogY3JlYXRlTWVudS54fSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZU1lbnUuaXRlbXMubWFwKChtZXRhLCBpZHgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17bWV0YS5jb25mZXJlbmNpbmdBY3Rpdml0eUdyb3VwIHx8IGlkeH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENyZWF0ZU1lbnUoey4uLmNyZWF0ZU1lbnUsIG9wZW46IGZhbHNlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVDcmVhdGVGb3JNZXRhZGF0YShjcmVhdGVNZW51LmluZm8sIG1ldGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21ldGEuZGVzY3JpcHRpb24gfHwgbWV0YS5jb25mZXJlbmNpbmdBY3Rpdml0eUdyb3VwfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L01lbnU+XG4gICAgICAgIDwvZGl2PlxuICAgICk7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
|
|
@@ -88,6 +88,7 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
88
88
|
}
|
|
89
89
|
_react.default.useEffect(() => {
|
|
90
90
|
setup();
|
|
91
|
+
api().refresh();
|
|
91
92
|
}, []);
|
|
92
93
|
_react.default.useEffect(() => {
|
|
93
94
|
if (!visibleTabPages) {
|
|
@@ -164,7 +165,7 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
164
165
|
// Force re-render
|
|
165
166
|
setVisibleTabPages(null);
|
|
166
167
|
},
|
|
167
|
-
refresh() {
|
|
168
|
+
refresh: () => {
|
|
168
169
|
let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
|
|
169
170
|
if (!_Utils.default.isNull(props.config) && !_Utils.default.isNull(parsedConfig.visible)) {
|
|
170
171
|
setVisible(_Utils.default.evaluateBooleanExpression(parsedConfig.visible, parsedConfig.id));
|
|
@@ -180,7 +181,8 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
180
181
|
return !_Utils.default.isNull(visibleTabPages) && visible && /*#__PURE__*/_react.default.createElement("div", {
|
|
181
182
|
style: {
|
|
182
183
|
width: (_props$config = props.config) !== null && _props$config !== void 0 && (_props$config = _props$config.attributes) !== null && _props$config !== void 0 && (_props$config = _props$config.style) !== null && _props$config !== void 0 && _props$config.width ? (_props$config2 = props.config) === null || _props$config2 === void 0 || (_props$config2 = _props$config2.attributes) === null || _props$config2 === void 0 || (_props$config2 = _props$config2.style) === null || _props$config2 === void 0 ? void 0 : _props$config2.width : '100%',
|
|
183
|
-
height: (_props$config3 = props.config) !== null && _props$config3 !== void 0 && (_props$config3 = _props$config3.attributes) !== null && _props$config3 !== void 0 && (_props$config3 = _props$config3.style) !== null && _props$config3 !== void 0 && _props$config3.height ? (_props$config4 = props.config) === null || _props$config4 === void 0 || (_props$config4 = _props$config4.attributes) === null || _props$config4 === void 0 || (_props$config4 = _props$config4.style) === null || _props$config4 === void 0 ? void 0 : _props$config4.height : '100%'
|
|
184
|
+
height: (_props$config3 = props.config) !== null && _props$config3 !== void 0 && (_props$config3 = _props$config3.attributes) !== null && _props$config3 !== void 0 && (_props$config3 = _props$config3.style) !== null && _props$config3 !== void 0 && _props$config3.height ? (_props$config4 = props.config) === null || _props$config4 === void 0 || (_props$config4 = _props$config4.attributes) === null || _props$config4 === void 0 || (_props$config4 = _props$config4.style) === null || _props$config4 === void 0 ? void 0 : _props$config4.height : '100%',
|
|
185
|
+
border: '4px solid green'
|
|
184
186
|
}
|
|
185
187
|
}, /*#__PURE__*/_react.default.createElement(_AppBar.default, {
|
|
186
188
|
position: "static",
|
|
@@ -256,4 +258,4 @@ const TabPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
256
258
|
})));
|
|
257
259
|
});
|
|
258
260
|
var _default = exports.default = TabPanel;
|
|
259
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBCYXIiLCJfVGFiIiwiX1RhYnMiLCJfVGFiUGFnZSIsIl9TZWN0aW9uIiwiX1Rvb2xiYXIiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0xheW91dCIsIl9JY29uIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImExMXlQcm9wcyIsImluZGV4IiwiaWQiLCJjb25jYXQiLCJUYWJQYW5lbCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX3Byb3BzJGNvbmZpZyIsIl9wcm9wcyRjb25maWcyIiwiX3Byb3BzJGNvbmZpZzMiLCJfcHJvcHMkY29uZmlnNCIsInRhYlZhbHVlIiwic2V0VGFiVmFsdWUiLCJ1c2VTdGF0ZSIsImVycm9ycyIsInNldEVycm9ycyIsInZpc2libGVUYWJQYWdlcyIsInNldFZpc2libGVUYWJQYWdlcyIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwibG9hZGVkIiwidXNlUmVmIiwiY29tcG9uZW50SGFuZGxlcyIsImhhbmRsZVRhYkNoYW5nZSIsImV2ZW50IiwibmV3VmFsdWUiLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJjb21wb25lbnQiLCJVdGlscyIsImlzTnVsbCIsImhhbmRsZSIsInVzZUVmZmVjdCIsImFwaSIsInNldHVwVmlzaWJsZVBhZ2VzIiwiY29uZmlnIiwidGFiUGFnZXMiLCJhbGxWaXNpYmxlVGFiUGFnZXMiLCJwYWdlIiwicGFyc2VkQ29uZmlnIiwicGFyc2VDb25maWciLCJ2aWV3SWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwic2V0dXAiLCJmb3JtIiwic2V0Q29udGFpbmVyRXJyb3JIYW5kbGVyIiwiY29udGFpbmVyRXJyb3JzIiwic2hvdWxkUmVmcmVzaCIsInByb3BlcnRpZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJpc0Zvcm1NYXJrZXJzRW5hYmxlZCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImN1cnJlbnQiLCJyZW5kZXJUYWJQYWdlQ29tcG9uZW50IiwidGFiSWQiLCJ0eXBlIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJrZXkiLCJwYXJlbnRJZCIsInZhbHVlcyIsIkxheW91dCIsInJlbmRlclBhZ2UiLCJwYWdlSW5kZXgiLCJjbGFzc05hbWUiLCJjb21wb25lbnRzIiwibWFwIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIl9jb21wb25lbnRIYW5kbGUkYXBpIiwiY29tcG9uZW50SGFuZGxlIiwiY2hpbGQiLCJzZXRQYWdlSGFzRXJyb3IiLCJwYWdlSWQiLCJoYXNFcnJvciIsImNsZWFyRXJyb3JzIiwicmVkcmF3IiwicmVmcmVzaCIsInN0eWxlIiwid2lkdGgiLCJhdHRyaWJ1dGVzIiwiaGVpZ2h0IiwicG9zaXRpb24iLCJjb2xvciIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJib3JkZXJCb3R0b20iLCJvbkNoYW5nZSIsInZhcmlhbnQiLCJzY3JvbGxCdXR0b25zIiwiYWxsb3dTY3JvbGxCdXR0b25zTW9iaWxlIiwidGV4dENvbG9yIiwiaW5kaWNhdG9yQ29sb3IiLCJzeCIsIm1pbldpZHRoIiwiaWNvbklkIiwibGFiZWwiLCJpY29uIiwidW5kZWZpbmVkIiwiaWNvblBvc2l0aW9uIiwid3JhcHBlZCIsIm1heFdpZHRoIiwid2hpdGVTcGFjZSIsIndvcmRCcmVhayIsInRleHRUcmFuc2Zvcm0iLCJtZXJnZVN0eWxlcyIsIl9wYWdlJGF0dHJpYnV0ZXMiLCJfcGFnZSRhdHRyaWJ1dGVzMiIsImRpc3BsYXkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvVGFiUGFuZWwuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEFwcEJhciBmcm9tICdAbXVpL21hdGVyaWFsL0FwcEJhcic7XG5pbXBvcnQgVGFiIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGFiJztcbmltcG9ydCBUYWJzIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGFicyc7XG5pbXBvcnQgVGFiUGFnZSBmcm9tICcuL1RhYlBhZ2UnO1xuaW1wb3J0IEZvcm1TZWN0aW9uIGZyb20gJy4vZm9ybS9TZWN0aW9uJztcbmltcG9ydCBUb29sYmFyIGZyb20gJy4vVG9vbGJhcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi9sYXlvdXQvTGF5b3V0JztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbmZ1bmN0aW9uIGExMXlQcm9wcyhpbmRleCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBgc2ltcGxlLXRhYi0ke2luZGV4fWAsXG4gICAgICAgICdhcmlhLWNvbnRyb2xzJzogYHNpbXBsZS10YWJwYW5lbC0ke2luZGV4fWAsXG4gICAgfTtcbn1cblxuY29uc3QgVGFiUGFuZWwgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFt0YWJWYWx1ZSwgc2V0VGFiVmFsdWVdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2Vycm9ycywgc2V0RXJyb3JzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbdmlzaWJsZVRhYlBhZ2VzLCBzZXRWaXNpYmxlVGFiUGFnZXNdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuXG4gICAgY29uc3QgaGFuZGxlVGFiQ2hhbmdlID0gKGV2ZW50LCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBzZXRUYWJWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChjb21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbY29tcG9uZW50LmlkXTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2V0dXBWaXNpYmxlUGFnZXMoKSB7XG4gICAgICAgIGlmIChwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgIGxldCBhbGxWaXNpYmxlVGFiUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhZ2UuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2UuaWQgPSBpbmRleCArICctdGFiLXBhZ2UnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwYWdlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIGxldCB2aXNpYmxlID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYWdlLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBhbGxWaXNpYmxlVGFiUGFnZXMucHVzaChwYWdlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VmlzaWJsZVRhYlBhZ2VzKGFsbFZpc2libGVUYWJQYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXR1cCgpIHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgIC5zZXRDb250YWluZXJFcnJvckhhbmRsZXIoKGNvbnRhaW5lckVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2hvdWxkUmVmcmVzaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbnRhaW5lckVycm9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzW3Byb3BlcnR5XSAhPT0gY29udGFpbmVyRXJyb3JzW3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFJlZnJlc2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmIHNob3VsZFJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEVycm9ycyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRhaW5lckVycm9ycykpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9zZXR1cFZpc2libGVQYWdlcygpO1xuICAgICAgICBsb2FkZWQuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0dXAoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZighdmlzaWJsZVRhYlBhZ2VzKSB7XG4gICAgICAgICAgICBzZXR1cFZpc2libGVQYWdlcygpXG4gICAgICAgIH1cbiAgICB9LCBbdmlzaWJsZVRhYlBhZ2VzXSk7XG5cbiAgICBmdW5jdGlvbiByZW5kZXJUYWJQYWdlQ29tcG9uZW50KGNvbXBvbmVudCwgdGFiSWQsIGluZGV4KSB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50LmlkKSkge1xuICAgICAgICAgICAgY29tcG9uZW50LmlkID0gaW5kZXggKyAnLXRhYi1jb250ZW50JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wb25lbnQudHlwZSA9PT0gJ2Zvcm1TZWN0aW9uJyA/XG4gICAgICAgICAgICA8Rm9ybVNlY3Rpb24ga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbXBvbmVudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3RhYklkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgLz4gOlxuICAgICAgICAgICAgY29tcG9uZW50LnR5cGUgPT09ICd0b29sYmFyJyA/XG4gICAgICAgICAgICAgICAgPFRvb2xiYXIgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz4gOlxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC50eXBlID09PSAnbGF5b3V0JyA/XG4gICAgICAgICAgICAgICAgICAgIDxMYXlvdXQgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb21wb25lbnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz4gOlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PnsnVW5zdXBwb3J0ZWQgY29tcG9uZW50IHR5cGUgJyArIGNvbXBvbmVudC50eXBlfTwvZGl2PjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW5kZXJQYWdlKHBhZ2UsIHBhZ2VJbmRleCkge1xuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eyd0YWItcGFnZS1jb250YWluZXInfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYWdlLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZW5kZXJUYWJQYWdlQ29tcG9uZW50KGNvbXBvbmVudCwgcGFnZS5pZCwgcGFnZUluZGV4ICsgaW5kZXgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PjtcbiAgICB9XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuXG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb21wb25lbnRIYW5kbGVzKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNvbXBvbmVudEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZS5hcGk/LmdldENoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjb21wb25lbnRIYW5kbGUuYXBpLmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzZXRUYWJWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJWYWx1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRQYWdlSGFzRXJyb3I6IChwYWdlSWQsIGhhc0Vycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JzKHsuLi5lcnJvcnMsIFtwYWdlSWRdOiBoYXNFcnJvcn0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyRXJyb3JzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3JzKHt9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWRyYXc6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBGb3JjZSByZS1yZW5kZXJcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlVGFiUGFnZXMobnVsbCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgJiYgIVV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcudmlzaWJsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYXJzZWRDb25maWcuaWQpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmlzaWJsZSh2aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh2aXNpYmxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgIVV0aWxzLmlzTnVsbCh2aXNpYmxlVGFiUGFnZXMpICYmIHZpc2libGUgJiZcbiAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgd2lkdGg6IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoID8gcHJvcHMuY29uZmlnPy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGggOiAnMTAwJScsXG4gICAgICAgICAgICBoZWlnaHQ6IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA/IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA6ICcxMDAlJ1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIDxBcHBCYXIgcG9zaXRpb249XCJzdGF0aWNcIiBjb2xvcj1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMWUxZTEnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxUYWJzXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0YWJWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVRhYkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInNjcm9sbGFibGVcIiAgICAgICAgICAgICAgICAvLyBlbmFibGVzIGhvcml6b250YWwgc2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbEJ1dHRvbnM9XCJhdXRvXCIgICAgICAgICAgICAgICAgLy8gc2hvd3MgYXJyb3dzIHdoZW4gbmVlZGVkXG4gICAgICAgICAgICAgICAgICAgIGFsbG93U2Nyb2xsQnV0dG9uc01vYmlsZSAgICAgICAgICAgIC8vIHNob3cgYXJyb3dzIG9uIG1vYmlsZSB0b29cbiAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIGluZGljYXRvckNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJ0YWJzXCJcbiAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9wdGlvbmFsOiByZWR1Y2UgZGVmYXVsdCBtaW4gd2lkdGggc28gbW9yZSB0YWJzIGZpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aVRhYi1yb290Jzoge21pbldpZHRoOiAxMjB9LFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3Zpc2libGVUYWJQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBPcHRpb25hbCBwZXItdGFiIGljb246IGBhdHRyaWJ1dGVzLmljb25gIGlzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWNvbiBjb21wb25lbnQncyBpZCAoZS5nLiBcIldPUktcIiwgXCJWSUVXXCIpLiBXaGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmVzZW50LCByZW5kZXIgdG8gdGhlIGxlZnQgb2YgdGhlIGxhYmVsLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaWNvbklkID0gcGFnZS5hdHRyaWJ1dGVzWydpY29uJ107XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3BhZ2UuYXR0cmlidXRlc1snbGFiZWwnXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17aWNvbklkID8gPEljb24gaWQ9e2ljb25JZH0vPiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPXtpY29uSWQgPyAnc3RhcnQnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGxvdyBtdWx0aS1saW5lIGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5hMTF5UHJvcHMoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDI0MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLCAgICAgICAgICAgICAgICAgLy8gY29uc3RyYWluIHNvIHdyYXBwaW5nIGNhbiBvY2N1clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGVTcGFjZTogJ25vcm1hbCcsICAgICAgICAgICAgIC8vIGFsbG93IHdyYXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRCcmVhazogJ2JyZWFrLXdvcmQnLCAgICAgICAgICAvLyBicmVhayBsb25nIHdvcmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJywgICAgICAgICAgICAvLyBrZWVwIG9yaWdpbmFsIGNhc2luZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmlzRm9ybU1hcmtlcnNFbmFibGVkKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnNbcGFnZS5pZF0gPT09IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnI2VkNTI0OSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvVGFicz5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDAlIC0gNjRweCknXG4gICAgICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVUYWJQYWdlcy5tYXAoKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBwYWdlPy5hdHRyaWJ1dGVzPy5zdHlsZT8uaGVpZ2h0ID8gcGFnZT8uYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCA6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFiVmFsdWUgPT09IGluZGV4ID8gbnVsbCA6ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFiUGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RhYlZhbHVlfSBpbmRleD17aW5kZXh9IGNvbmZpZz17cGFnZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyUGFnZShwYWdlLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGFiUGFnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVGFiUGFuZWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLElBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLG1CQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBMEIsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFXLENBQUEs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
|
|
261
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBCYXIiLCJfVGFiIiwiX1RhYnMiLCJfVGFiUGFnZSIsIl9TZWN0aW9uIiwiX1Rvb2xiYXIiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0xheW91dCIsIl9JY29uIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImExMXlQcm9wcyIsImluZGV4IiwiaWQiLCJjb25jYXQiLCJUYWJQYW5lbCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX3Byb3BzJGNvbmZpZyIsIl9wcm9wcyRjb25maWcyIiwiX3Byb3BzJGNvbmZpZzMiLCJfcHJvcHMkY29uZmlnNCIsInRhYlZhbHVlIiwic2V0VGFiVmFsdWUiLCJ1c2VTdGF0ZSIsImVycm9ycyIsInNldEVycm9ycyIsInZpc2libGVUYWJQYWdlcyIsInNldFZpc2libGVUYWJQYWdlcyIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwibG9hZGVkIiwidXNlUmVmIiwiY29tcG9uZW50SGFuZGxlcyIsImhhbmRsZVRhYkNoYW5nZSIsImV2ZW50IiwibmV3VmFsdWUiLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJjb21wb25lbnQiLCJVdGlscyIsImlzTnVsbCIsImhhbmRsZSIsInVzZUVmZmVjdCIsImFwaSIsInNldHVwVmlzaWJsZVBhZ2VzIiwiY29uZmlnIiwidGFiUGFnZXMiLCJhbGxWaXNpYmxlVGFiUGFnZXMiLCJwYWdlIiwicGFyc2VkQ29uZmlnIiwicGFyc2VDb25maWciLCJ2aWV3SWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwic2V0dXAiLCJmb3JtIiwic2V0Q29udGFpbmVyRXJyb3JIYW5kbGVyIiwiY29udGFpbmVyRXJyb3JzIiwic2hvdWxkUmVmcmVzaCIsInByb3BlcnRpZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJpc0Zvcm1NYXJrZXJzRW5hYmxlZCIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsImN1cnJlbnQiLCJyZWZyZXNoIiwicmVuZGVyVGFiUGFnZUNvbXBvbmVudCIsInRhYklkIiwidHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXlIYW5kbGVyIiwia2V5IiwicGFyZW50SWQiLCJ2YWx1ZXMiLCJMYXlvdXQiLCJyZW5kZXJQYWdlIiwicGFnZUluZGV4IiwiY2xhc3NOYW1lIiwiY29tcG9uZW50cyIsIm1hcCIsImdldENoaWxkcmVuIiwiY2hpbGRyZW4iLCJfY29tcG9uZW50SGFuZGxlJGFwaSIsImNvbXBvbmVudEhhbmRsZSIsImNoaWxkIiwic2V0UGFnZUhhc0Vycm9yIiwicGFnZUlkIiwiaGFzRXJyb3IiLCJjbGVhckVycm9ycyIsInJlZHJhdyIsInN0eWxlIiwid2lkdGgiLCJhdHRyaWJ1dGVzIiwiaGVpZ2h0IiwiYm9yZGVyIiwicG9zaXRpb24iLCJjb2xvciIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJib3JkZXJCb3R0b20iLCJvbkNoYW5nZSIsInZhcmlhbnQiLCJzY3JvbGxCdXR0b25zIiwiYWxsb3dTY3JvbGxCdXR0b25zTW9iaWxlIiwidGV4dENvbG9yIiwiaW5kaWNhdG9yQ29sb3IiLCJzeCIsIm1pbldpZHRoIiwiaWNvbklkIiwibGFiZWwiLCJpY29uIiwidW5kZWZpbmVkIiwiaWNvblBvc2l0aW9uIiwid3JhcHBlZCIsIm1heFdpZHRoIiwid2hpdGVTcGFjZSIsIndvcmRCcmVhayIsInRleHRUcmFuc2Zvcm0iLCJtZXJnZVN0eWxlcyIsIl9wYWdlJGF0dHJpYnV0ZXMiLCJfcGFnZSRhdHRyaWJ1dGVzMiIsImRpc3BsYXkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvVGFiUGFuZWwuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEFwcEJhciBmcm9tICdAbXVpL21hdGVyaWFsL0FwcEJhcic7XG5pbXBvcnQgVGFiIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGFiJztcbmltcG9ydCBUYWJzIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVGFicyc7XG5pbXBvcnQgVGFiUGFnZSBmcm9tICcuL1RhYlBhZ2UnO1xuaW1wb3J0IEZvcm1TZWN0aW9uIGZyb20gJy4vZm9ybS9TZWN0aW9uJztcbmltcG9ydCBUb29sYmFyIGZyb20gJy4vVG9vbGJhcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQge0xheW91dH0gZnJvbSAnLi9sYXlvdXQvTGF5b3V0JztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbmZ1bmN0aW9uIGExMXlQcm9wcyhpbmRleCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBgc2ltcGxlLXRhYi0ke2luZGV4fWAsXG4gICAgICAgICdhcmlhLWNvbnRyb2xzJzogYHNpbXBsZS10YWJwYW5lbC0ke2luZGV4fWAsXG4gICAgfTtcbn1cblxuY29uc3QgVGFiUGFuZWwgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFt0YWJWYWx1ZSwgc2V0VGFiVmFsdWVdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2Vycm9ycywgc2V0RXJyb3JzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbdmlzaWJsZVRhYlBhZ2VzLCBzZXRWaXNpYmxlVGFiUGFnZXNdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuXG4gICAgY29uc3QgaGFuZGxlVGFiQ2hhbmdlID0gKGV2ZW50LCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBzZXRUYWJWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChjb21wb25lbnQpID0+IHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbY29tcG9uZW50LmlkXTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2V0dXBWaXNpYmxlUGFnZXMoKSB7XG4gICAgICAgIGlmIChwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgIGxldCBhbGxWaXNpYmxlVGFiUGFnZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiBwcm9wcy5jb25maWcudGFiUGFnZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhZ2UuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2UuaWQgPSBpbmRleCArICctdGFiLXBhZ2UnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwYWdlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIGxldCB2aXNpYmxlID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYWdlLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBhbGxWaXNpYmxlVGFiUGFnZXMucHVzaChwYWdlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VmlzaWJsZVRhYlBhZ2VzKGFsbFZpc2libGVUYWJQYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXR1cCgpIHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgIHByb3BzLmZvcm0oKVxuICAgICAgICAgICAgICAgIC5zZXRDb250YWluZXJFcnJvckhhbmRsZXIoKGNvbnRhaW5lckVycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2hvdWxkUmVmcmVzaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbnRhaW5lckVycm9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzW3Byb3BlcnR5XSAhPT0gY29udGFpbmVyRXJyb3JzW3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFJlZnJlc2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcGxpY2F0aW9uTWFuYWdlci5pc0Zvcm1NYXJrZXJzRW5hYmxlZCgpICYmIHNob3VsZFJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEVycm9ycyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbnRhaW5lckVycm9ycykpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9zZXR1cFZpc2libGVQYWdlcygpO1xuICAgICAgICBsb2FkZWQuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0dXAoKTtcbiAgICAgICAgYXBpKCkucmVmcmVzaCgpO1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmKCF2aXNpYmxlVGFiUGFnZXMpIHtcbiAgICAgICAgICAgIHNldHVwVmlzaWJsZVBhZ2VzKClcbiAgICAgICAgfVxuICAgIH0sIFt2aXNpYmxlVGFiUGFnZXNdKTtcblxuICAgIGZ1bmN0aW9uIHJlbmRlclRhYlBhZ2VDb21wb25lbnQoY29tcG9uZW50LCB0YWJJZCwgaW5kZXgpIHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnQuaWQpKSB7XG4gICAgICAgICAgICBjb21wb25lbnQuaWQgPSBpbmRleCArICctdGFiLWNvbnRlbnQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC50eXBlID09PSAnZm9ybVNlY3Rpb24nID9cbiAgICAgICAgICAgIDxGb3JtU2VjdGlvbiBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29tcG9uZW50LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17dGFiSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAvPiA6XG4gICAgICAgICAgICBjb21wb25lbnQudHlwZSA9PT0gJ3Rvb2xiYXInID9cbiAgICAgICAgICAgICAgICA8VG9vbGJhciBjb25maWc9e2NvbXBvbmVudH0gaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbXBvbmVudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPiA6XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LnR5cGUgPT09ICdsYXlvdXQnID9cbiAgICAgICAgICAgICAgICAgICAgPExheW91dCBjb25maWc9e2NvbXBvbmVudH0gaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbXBvbmVudC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPiA6XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+eydVbnN1cHBvcnRlZCBjb21wb25lbnQgdHlwZSAnICsgY29tcG9uZW50LnR5cGV9PC9kaXY+O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbmRlclBhZ2UocGFnZSwgcGFnZUluZGV4KSB7XG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J3RhYi1wYWdlLWNvbnRhaW5lcid9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhZ2UuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlclRhYlBhZ2VDb21wb25lbnQoY29tcG9uZW50LCBwYWdlLmlkLCBwYWdlSW5kZXggKyBpbmRleCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+O1xuICAgIH1cblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldENoaWxkcmVuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gW107XG5cbiAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50SGFuZGxlID0gY29tcG9uZW50SGFuZGxlc1twcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY29tcG9uZW50SGFuZGxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29tcG9uZW50SGFuZGxlLmFwaT8uZ2V0Q2hpbGRyZW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNvbXBvbmVudEhhbmRsZS5hcGkuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCB2YWx1ZSh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHNldFRhYlZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhYlZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFBhZ2VIYXNFcnJvcjogKHBhZ2VJZCwgaGFzRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcnMoey4uLmVycm9ycywgW3BhZ2VJZF06IGhhc0Vycm9yfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xlYXJFcnJvcnM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcnMoe30pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZHJhdzogKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEZvcmNlIHJlLXJlbmRlclxuICAgICAgICAgICAgICAgIHNldFZpc2libGVUYWJQYWdlcyhudWxsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpICYmICFVdGlscy5pc051bGwocGFyc2VkQ29uZmlnLnZpc2libGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcGFyc2VkQ29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgICFVdGlscy5pc051bGwodmlzaWJsZVRhYlBhZ2VzKSAmJiB2aXNpYmxlICYmXG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIHdpZHRoOiBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy53aWR0aCA/IHByb3BzLmNvbmZpZz8uYXR0cmlidXRlcz8uc3R5bGU/LndpZHRoIDogJzEwMCUnLFxuICAgICAgICAgICAgaGVpZ2h0OiBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgPyBwcm9wcy5jb25maWc/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgOiAnMTAwJScsXG4gICAgICAgICAgICBib3JkZXI6ICc0cHggc29saWQgZ3JlZW4nXG4gICAgICAgIH19PlxuICAgICAgICAgICAgPEFwcEJhciBwb3NpdGlvbj1cInN0YXRpY1wiIGNvbG9yPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgI2UxZTFlMSdcbiAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgPFRhYnNcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3RhYlZhbHVlfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlVGFiQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic2Nyb2xsYWJsZVwiICAgICAgICAgICAgICAgIC8vIGVuYWJsZXMgaG9yaXpvbnRhbCBzY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQnV0dG9ucz1cImF1dG9cIiAgICAgICAgICAgICAgICAvLyBzaG93cyBhcnJvd3Mgd2hlbiBuZWVkZWRcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dTY3JvbGxCdXR0b25zTW9iaWxlICAgICAgICAgICAgLy8gc2hvdyBhcnJvd3Mgb24gbW9iaWxlIHRvb1xuICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgaW5kaWNhdG9yQ29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cInRhYnNcIlxuICAgICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3B0aW9uYWw6IHJlZHVjZSBkZWZhdWx0IG1pbiB3aWR0aCBzbyBtb3JlIHRhYnMgZml0XG4gICAgICAgICAgICAgICAgICAgICAgICAnJiAuTXVpVGFiLXJvb3QnOiB7bWluV2lkdGg6IDEyMH0sXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dmlzaWJsZVRhYlBhZ2VzLm1hcCgocGFnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9wdGlvbmFsIHBlci10YWIgaWNvbjogYGF0dHJpYnV0ZXMuaWNvbmAgaXMgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJY29uIGNvbXBvbmVudCdzIGlkIChlLmcuIFwiV09SS1wiLCBcIlZJRVdcIikuIFdoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXNlbnQsIHJlbmRlciB0byB0aGUgbGVmdCBvZiB0aGUgbGFiZWwuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpY29uSWQgPSBwYWdlLmF0dHJpYnV0ZXNbJ2ljb24nXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRhYlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17cGFnZS5hdHRyaWJ1dGVzWydsYWJlbCddfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtpY29uSWQgPyA8SWNvbiBpZD17aWNvbklkfS8+IDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249e2ljb25JZCA/ICdzdGFydCcgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbG93IG11bHRpLWxpbmUgbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmExMXlQcm9wcyhpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogMjQwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsICAgICAgICAgICAgICAgICAvLyBjb25zdHJhaW4gc28gd3JhcHBpbmcgY2FuIG9jY3VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm9ybWFsJywgICAgICAgICAgICAgLy8gYWxsb3cgd3JhcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29yZEJyZWFrOiAnYnJlYWstd29yZCcsICAgICAgICAgIC8vIGJyZWFrIGxvbmcgd29yZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLCAgICAgICAgICAgIC8vIGtlZXAgb3JpZ2luYWwgY2FzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuaXNGb3JtTWFya2Vyc0VuYWJsZWQoKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yc1twYWdlLmlkXSA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjZWQ1MjQ5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9UYWJzPlxuICAgICAgICAgICAgPC9BcHBCYXI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICdjYWxjKDEwMCUgLSA2NHB4KSdcbiAgICAgICAgICAgICAgICB9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZVRhYlBhZ2VzLm1hcCgocGFnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fSBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHBhZ2U/LmF0dHJpYnV0ZXM/LnN0eWxlPy5oZWlnaHQgPyBwYWdlPy5hdHRyaWJ1dGVzPy5zdHlsZT8uaGVpZ2h0IDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJWYWx1ZSA9PT0gaW5kZXggPyBudWxsIDogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJQYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dGFiVmFsdWV9IGluZGV4PXtpbmRleH0gY29uZmlnPXtwYWdlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJQYWdlKHBhZ2UsIGluZGV4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UYWJQYWdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBUYWJQYW5lbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsSUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsbUJBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLE9BQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLEtBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUEwQixTQUFBRCx1QkFBQVksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFNBQUEsV0FBQUEsUUFBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsR0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUFDLElBQUEsZUFBQUMsQ0FBQSxhQUFBUCxDQUFBLE1BQUFBLENB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
|
|
@@ -106,6 +106,11 @@ const VideoPlayer = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default
|
|
|
106
106
|
}
|
|
107
107
|
};
|
|
108
108
|
};
|
|
109
|
+
|
|
110
|
+
// CDUI-configurable: hide the native download control and block the right-click "save video"
|
|
111
|
+
// menu unless the view explicitly opts in via attributes.allowDownload = true. Default: false
|
|
112
|
+
// (download disabled).
|
|
113
|
+
const allowDownload = _Utils.default.getComponentAttribute(props.config, 'allowDownload', false) === true;
|
|
109
114
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, visible && /*#__PURE__*/_react.default.createElement("div", {
|
|
110
115
|
style: _Utils.default.mergeStyles({}, props.config)
|
|
111
116
|
}, downloadUrl && /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -120,6 +125,15 @@ const VideoPlayer = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default
|
|
|
120
125
|
controls: true,
|
|
121
126
|
width: "100%",
|
|
122
127
|
height: "100%",
|
|
128
|
+
config: {
|
|
129
|
+
file: {
|
|
130
|
+
attributes: {
|
|
131
|
+
controlsList: allowDownload ? undefined : 'nodownload',
|
|
132
|
+
disablePictureInPicture: !allowDownload,
|
|
133
|
+
onContextMenu: allowDownload ? undefined : e => e.preventDefault()
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
123
137
|
onPlay: () => setPlaying(true),
|
|
124
138
|
onPause: () => setPlaying(false)
|
|
125
139
|
})), loading && !downloadUrl && /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -157,4 +171,4 @@ const VideoPlayer = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default
|
|
|
157
171
|
}, "NO TRAINING VIDEO AVAILABLE")));
|
|
158
172
|
}));
|
|
159
173
|
var _default = exports.default = VideoPlayer;
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0UGxheWVyIiwiX0NpcmN1bGFyUHJvZ3Jlc3MiLCJfT2JzZXJ2YWJsZSIsIl9kb2N1bWVudERvd25sb2FkIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiVmlkZW9QbGF5ZXIiLCJSZWFjdCIsIm1lbW8iLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJwbGF5aW5nIiwic2V0UGxheWluZyIsInVzZVN0YXRlIiwiZG9jdW1lbnRJZCIsInNldERvY3VtZW50SWQiLCJkb3dubG9hZFVybCIsInNldERvd25sb2FkVXJsIiwibG9hZGluZyIsInNldExvYWRpbmciLCJkaXNhYmxlZCIsInNldERpc2FibGVkIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJ1c2VFZmZlY3QiLCJoYW5kbGUiLCJhcGkiLCJwYXJzZWRDb25maWciLCJVdGlscyIsInBhcnNlQ29uZmlnIiwiY29uZmlnIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwicmVmcmVzaCIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJhY3RpdmUiLCJjcmVhdGVkIiwiZmV0Y2hEb2N1bWVudE9iamVjdFVybCIsInRoZW4iLCJvYmplY3RVcmwiLCJVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJjYXRjaCIsImZpbmFsbHkiLCJpZCIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJpc051bGwiLCJnZXRDaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJjbGFzc05hbWUiLCJib3JkZXJSYWRpdXMiLCJ1cmwiLCJjb250cm9scyIsIndpZHRoIiwiaGVpZ2h0Iiwib25QbGF5Iiwib25QYXVzZSIsImJhY2tncm91bmRDb2xvciIsImNvbG9yIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJzaXplIiwibWFyZ2luVG9wIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21lZGlhL1ZpZGVvUGxheWVyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCAnLi9WaWRlb1BsYXllci5jc3MnO1xuaW1wb3J0IFJlYWN0UGxheWVyIGZyb20gJ3JlYWN0LXBsYXllcic7XG5pbXBvcnQgQ2lyY3VsYXJQcm9ncmVzcyBmcm9tICdAbXVpL21hdGVyaWFsL0NpcmN1bGFyUHJvZ3Jlc3MnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tIFwiLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZVwiO1xuaW1wb3J0IHtmZXRjaERvY3VtZW50T2JqZWN0VXJsfSBmcm9tICcuLi8uLi9kb2N1bWVudERvd25sb2FkJztcblxuY29uc3QgVmlkZW9QbGF5ZXIgPSBSZWFjdC5tZW1vKFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcblxuICAgIGNvbnN0IFtwbGF5aW5nLCBzZXRQbGF5aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbZG9jdW1lbnRJZCwgc2V0RG9jdW1lbnRJZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2Rvd25sb2FkVXJsLCBzZXREb3dubG9hZFVybF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbZGlzYWJsZWQsIHNldERpc2FibGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcblxuICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkucmVmcmVzaCgpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuY2xlYXJDb21wb25lbnRFdmVudExpc3RlbmVycyhwcm9wcy5oYW5kbGUpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkucmVmcmVzaCgpO1xuICAgIH0sIFtkb2N1bWVudElkXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIH0sIFtwbGF5aW5nXSk7XG5cbiAgICAvLyBGZXRjaCB0aGUgdmlkZW8gd2l0aCBoZWFkZXIgYXV0aCAoQXV0aG9yaXphdGlvbiArIGlkVG9rZW4gKyB0ZW5hbnQpIGFzIGEgYmxvYiBvYmplY3QgVVJMLiBBXG4gICAgLy8gcGxhaW4gPHZpZGVvPiBzcmMgKHdoYXQgUmVhY3RQbGF5ZXIgc2V0cykgY2FuJ3Qgc2VuZCB0aGUgdGVuYW50IGhlYWRlciwgc28gdGhlIGRvY3Mgc2VydmljZVxuICAgIC8vIHdvdWxkIHJlc29sdmUgdGhlIHdyb25nIFMzIGJ1Y2tldCBhbmQgdGhlIHZpZGVvIHdvdWxkIGZhaWwgdG8gbG9hZC5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBJbml0aWFsIGBmYWxzZWAgc2VudGluZWw6IHRoZSBwYXJlbnQgaGFzbid0IHJlc29sdmVkIHRoZSB0cmFpbmluZyBkYXRhIHlldCwgc28ga2VlcCB0aGVcbiAgICAgICAgLy8gc3Bpbm5lciAobG9hZGluZyBzdGFydHMgdHJ1ZSkgcmF0aGVyIHRoYW4gZmxhc2hpbmcgXCJubyB2aWRlb1wiLlxuICAgICAgICBpZiAoZG9jdW1lbnRJZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRvY3VtZW50SWQpIHtcbiAgICAgICAgICAgIC8vIFBhcmVudCByZXNvbHZlZCBkb2N1bWVudElkIHRvIGVtcHR5ICh1bmRlZmluZWQvbnVsbCkg4oCUIGdlbnVpbmVseSBubyB2aWRlby5cbiAgICAgICAgICAgIHNldERvd25sb2FkVXJsKG51bGwpO1xuICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGFjdGl2ZSA9IHRydWU7XG4gICAgICAgIGxldCBjcmVhdGVkID0gbnVsbDtcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgc2V0RG93bmxvYWRVcmwobnVsbCk7XG4gICAgICAgIGZldGNoRG9jdW1lbnRPYmplY3RVcmwoZG9jdW1lbnRJZClcbiAgICAgICAgICAgIC50aGVuKChvYmplY3RVcmwpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSBvYmplY3RVcmw7XG4gICAgICAgICAgICAgICAgICAgIHNldERvd25sb2FkVXJsKG9iamVjdFVybCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge30pXG4gICAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGNyZWF0ZWQpIHtcbiAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGNyZWF0ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtkb2N1bWVudElkXSk7XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgcGxheWluZyhwbGF5aW5nKSB7XG4gICAgICAgICAgICAgICAgc2V0UGxheWluZyhwbGF5aW5nKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgZG9jdW1lbnRJZChkb2N1bWVudElkKSB7XG4gICAgICAgICAgICAgICAgc2V0RG9jdW1lbnRJZChkb2N1bWVudElkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgZG9jdW1lbnRJZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnRJZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBzZXREaXNhYmxlZChkaXNhYmxlZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIHNldERpc2FibGVkKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyc2VkQ29uZmlnLmRpc2FibGVkLCBwYXJzZWRDb25maWcuaWQpKTtcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKFV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcudmlzaWJsZSkgfHwgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcGFyc2VkQ29uZmlnLmlkKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZSAmJlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHt9LCBwcm9wcy5jb25maWcpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWRVcmwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGxheWVyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmVhY3RQbGF5ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tib3JkZXJSYWRpdXM6ICc0cHgnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsPXtkb3dubG9hZFVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVhY3QtcGxheWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWluZz17cGxheWluZ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uUGxheT17KCkgPT4gc2V0UGxheWluZyh0cnVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25QYXVzZT17KCkgPT4gc2V0UGxheWluZyhmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmcgJiYgIWRvd25sb2FkVXJsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdibGFjaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2lyY3VsYXJQcm9ncmVzcyBzaXplPXs0MH0gc3R5bGU9e3tjb2xvcjogJ3doaXRlJ319Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7bWFyZ2luVG9wOiAnMTJweCd9fT5Mb2FkaW5nIHZpZGVv4oCmPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAhZG93bmxvYWRVcmwgJiYgIWxvYWRpbmcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PIFRSQUlOSU5HIFZJREVPIEFWQUlMQUJMRVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC8+XG4gICAgKTtcbn0pKTtcblxuZXhwb3J0IGRlZmF1bHQgVmlkZW9QbGF5ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLGlCQUFBLEdBQUFOLE9BQUE7QUFBOEQsU0FBQUUsdUJBQUFLLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFB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
|
|
174
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0UGxheWVyIiwiX0NpcmN1bGFyUHJvZ3Jlc3MiLCJfT2JzZXJ2YWJsZSIsIl9kb2N1bWVudERvd25sb2FkIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiVmlkZW9QbGF5ZXIiLCJSZWFjdCIsIm1lbW8iLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJwbGF5aW5nIiwic2V0UGxheWluZyIsInVzZVN0YXRlIiwiZG9jdW1lbnRJZCIsInNldERvY3VtZW50SWQiLCJkb3dubG9hZFVybCIsInNldERvd25sb2FkVXJsIiwibG9hZGluZyIsInNldExvYWRpbmciLCJkaXNhYmxlZCIsInNldERpc2FibGVkIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJ1c2VFZmZlY3QiLCJoYW5kbGUiLCJhcGkiLCJwYXJzZWRDb25maWciLCJVdGlscyIsInBhcnNlQ29uZmlnIiwiY29uZmlnIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwicmVmcmVzaCIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJhY3RpdmUiLCJjcmVhdGVkIiwiZmV0Y2hEb2N1bWVudE9iamVjdFVybCIsInRoZW4iLCJvYmplY3RVcmwiLCJVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJjYXRjaCIsImZpbmFsbHkiLCJpZCIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJpc051bGwiLCJnZXRDaGlsZHJlbiIsImFsbG93RG93bmxvYWQiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJzdHlsZSIsIm1lcmdlU3R5bGVzIiwiY2xhc3NOYW1lIiwiYm9yZGVyUmFkaXVzIiwidXJsIiwiY29udHJvbHMiLCJ3aWR0aCIsImhlaWdodCIsImZpbGUiLCJhdHRyaWJ1dGVzIiwiY29udHJvbHNMaXN0IiwidW5kZWZpbmVkIiwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUiLCJvbkNvbnRleHRNZW51IiwicHJldmVudERlZmF1bHQiLCJvblBsYXkiLCJvblBhdXNlIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsInNpemUiLCJtYXJnaW5Ub3AiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVkaWEvVmlkZW9QbGF5ZXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0ICcuL1ZpZGVvUGxheWVyLmNzcyc7XG5pbXBvcnQgUmVhY3RQbGF5ZXIgZnJvbSAncmVhY3QtcGxheWVyJztcbmltcG9ydCBDaXJjdWxhclByb2dyZXNzIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQ2lyY3VsYXJQcm9ncmVzcyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gXCIuLi8uLi9ldmVudC9PYnNlcnZhYmxlXCI7XG5pbXBvcnQge2ZldGNoRG9jdW1lbnRPYmplY3RVcmx9IGZyb20gJy4uLy4uL2RvY3VtZW50RG93bmxvYWQnO1xuXG5jb25zdCBWaWRlb1BsYXllciA9IFJlYWN0Lm1lbW8oUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuXG4gICAgY29uc3QgW3BsYXlpbmcsIHNldFBsYXlpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtkb2N1bWVudElkLCBzZXREb2N1bWVudElkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbZG93bmxvYWRVcmwsIHNldERvd25sb2FkVXJsXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtkaXNhYmxlZCwgc2V0RGlzYWJsZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuXG4gICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnLCBwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5hZGRTeXN0ZW1TdWJzY3JpcHRpb25zKHByb3BzLnZpZXdJZCwgcGFyc2VkQ29uZmlnKTtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaS5yZWZyZXNoKCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5jbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzKHByb3BzLmhhbmRsZSk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaS5yZWZyZXNoKCk7XG4gICAgfSwgW2RvY3VtZW50SWRdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgfSwgW3BsYXlpbmddKTtcblxuICAgIC8vIEZldGNoIHRoZSB2aWRlbyB3aXRoIGhlYWRlciBhdXRoIChBdXRob3JpemF0aW9uICsgaWRUb2tlbiArIHRlbmFudCkgYXMgYSBibG9iIG9iamVjdCBVUkwuIEFcbiAgICAvLyBwbGFpbiA8dmlkZW8+IHNyYyAod2hhdCBSZWFjdFBsYXllciBzZXRzKSBjYW4ndCBzZW5kIHRoZSB0ZW5hbnQgaGVhZGVyLCBzbyB0aGUgZG9jcyBzZXJ2aWNlXG4gICAgLy8gd291bGQgcmVzb2x2ZSB0aGUgd3JvbmcgUzMgYnVja2V0IGFuZCB0aGUgdmlkZW8gd291bGQgZmFpbCB0byBsb2FkLlxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIEluaXRpYWwgYGZhbHNlYCBzZW50aW5lbDogdGhlIHBhcmVudCBoYXNuJ3QgcmVzb2x2ZWQgdGhlIHRyYWluaW5nIGRhdGEgeWV0LCBzbyBrZWVwIHRoZVxuICAgICAgICAvLyBzcGlubmVyIChsb2FkaW5nIHN0YXJ0cyB0cnVlKSByYXRoZXIgdGhhbiBmbGFzaGluZyBcIm5vIHZpZGVvXCIuXG4gICAgICAgIGlmIChkb2N1bWVudElkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZG9jdW1lbnRJZCkge1xuICAgICAgICAgICAgLy8gUGFyZW50IHJlc29sdmVkIGRvY3VtZW50SWQgdG8gZW1wdHkgKHVuZGVmaW5lZC9udWxsKSDigJQgZ2VudWluZWx5IG5vIHZpZGVvLlxuICAgICAgICAgICAgc2V0RG93bmxvYWRVcmwobnVsbCk7XG4gICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGNyZWF0ZWQgPSBudWxsO1xuICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICBzZXREb3dubG9hZFVybChudWxsKTtcbiAgICAgICAgZmV0Y2hEb2N1bWVudE9iamVjdFVybChkb2N1bWVudElkKVxuICAgICAgICAgICAgLnRoZW4oKG9iamVjdFVybCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IG9iamVjdFVybDtcbiAgICAgICAgICAgICAgICAgICAgc2V0RG93bmxvYWRVcmwob2JqZWN0VXJsKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKG9iamVjdFVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSlcbiAgICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoY3JlYXRlZCkge1xuICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoY3JlYXRlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW2RvY3VtZW50SWRdKTtcblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCBwbGF5aW5nKHBsYXlpbmcpIHtcbiAgICAgICAgICAgICAgICBzZXRQbGF5aW5nKHBsYXlpbmcpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCBkb2N1bWVudElkKGRvY3VtZW50SWQpIHtcbiAgICAgICAgICAgICAgICBzZXREb2N1bWVudElkKGRvY3VtZW50SWQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBkb2N1bWVudElkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudElkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCBkaXNhYmxlZChkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHNldERpc2FibGVkKGRpc2FibGVkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgdmlzaWJsZSh2aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh2aXNpYmxlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoKCkge1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICAgICAgc2V0RGlzYWJsZWQoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcuZGlzYWJsZWQsIHBhcnNlZENvbmZpZy5pZCkpO1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYXJzZWRDb25maWcuaWQpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLy8gQ0RVSS1jb25maWd1cmFibGU6IGhpZGUgdGhlIG5hdGl2ZSBkb3dubG9hZCBjb250cm9sIGFuZCBibG9jayB0aGUgcmlnaHQtY2xpY2sgXCJzYXZlIHZpZGVvXCJcbiAgICAvLyBtZW51IHVubGVzcyB0aGUgdmlldyBleHBsaWNpdGx5IG9wdHMgaW4gdmlhIGF0dHJpYnV0ZXMuYWxsb3dEb3dubG9hZCA9IHRydWUuIERlZmF1bHQ6IGZhbHNlXG4gICAgLy8gKGRvd25sb2FkIGRpc2FibGVkKS5cbiAgICBjb25zdCBhbGxvd0Rvd25sb2FkID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2FsbG93RG93bmxvYWQnLCBmYWxzZSkgPT09IHRydWU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZpc2libGUgJiZcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7fSwgcHJvcHMuY29uZmlnKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkVXJsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBsYXllci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlYWN0UGxheWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Ym9yZGVyUmFkaXVzOiAnNHB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybD17ZG93bmxvYWRVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlYWN0LXBsYXllclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlpbmc9e3BsYXlpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzTGlzdDogYWxsb3dEb3dubG9hZCA/IHVuZGVmaW5lZCA6ICdub2Rvd25sb2FkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6ICFhbGxvd0Rvd25sb2FkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNvbnRleHRNZW51OiBhbGxvd0Rvd25sb2FkID8gdW5kZWZpbmVkIDogKGUpID0+IGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25QbGF5PXsoKSA9PiBzZXRQbGF5aW5nKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblBhdXNlPXsoKSA9PiBzZXRQbGF5aW5nKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZyAmJiAhZG93bmxvYWRVcmwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaXJjdWxhclByb2dyZXNzIHNpemU9ezQwfSBzdHlsZT17e2NvbG9yOiAnd2hpdGUnfX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3ttYXJnaW5Ub3A6ICcxMnB4J319PkxvYWRpbmcgdmlkZW/igKY8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICFkb3dubG9hZFVybCAmJiAhbG9hZGluZyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTk8gVFJBSU5JTkcgVklERU8gQVZBSUxBQkxFXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8Lz5cbiAgICApO1xufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBWaWRlb1BsYXllcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FB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
|
package/package.json
CHANGED