@agilemotion/oui-react-js 2.0.17 → 2.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ApplicationManager.js +25 -8
- package/dist/components/SocketManager.js +6 -3
- package/dist/components/TableCellContent.js +2 -1
- package/dist/components/dashboard/FoldingSideTabDashboard.js +4 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +18 -2
- package/dist/components/layout/Window.js +2 -2
- package/dist/components/media/TrainingRoom.js +110 -42
- package/dist/js/Media.js +11 -2
- package/dist/view/Dashboard.js +2 -2
- package/package.json +2 -2
package/dist/js/Media.js
CHANGED
|
@@ -24,7 +24,16 @@ class Media {
|
|
|
24
24
|
};
|
|
25
25
|
let event = new _Event.default(component, 'vcSettings', null);
|
|
26
26
|
try {
|
|
27
|
-
|
|
27
|
+
// Ask-to-join / lobby host-approval is NOT implemented server-side yet: the signalling
|
|
28
|
+
// REQUEST_TO_JOIN_MEETING handler's "publish request to host" is a TODO, and its
|
|
29
|
+
// returned outcome ("PERMIT") doesn't even match SocketResponse.JOIN_MEETING_PERMIT —
|
|
30
|
+
// so routing through it would hang the joiner. Until that feature lands, permit
|
|
31
|
+
// directly. The host is always permitted. (This replaces a misleading always-true
|
|
32
|
+
// tautology `host.username === host.username`.) Flip `lobbyApprovalImplemented` when
|
|
33
|
+
// the server-side approval flow exists; the request branch below is then live.
|
|
34
|
+
const lobbyApprovalImplemented = false;
|
|
35
|
+
const isHost = _ApplicationManager.default.getUserDetails().username === calendarEvent.host.username;
|
|
36
|
+
if (!lobbyApprovalImplemented || isHost || !calendarEvent.askToJoin) {
|
|
28
37
|
resolve(_SocketResponse.default.JOIN_MEETING_PERMIT);
|
|
29
38
|
_Observable.default.fireEvent(_VCEventType.VCEventType.JOIN_MEETING_PERMIT, event);
|
|
30
39
|
} else {
|
|
@@ -170,4 +179,4 @@ class Media {
|
|
|
170
179
|
exports.Media = Media;
|
|
171
180
|
const instance = new Media();
|
|
172
181
|
var _default = exports.default = instance;
|
|
173
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU29ja2V0UmVzcG9uc2UiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Tb2NrZXRNYW5hZ2VyIiwiX1NvY2tldFJlcXVlc3QiLCJfRXZlbnQiLCJfT2JzZXJ2YWJsZSIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfVkNFdmVudFR5cGUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmaW5lUHJvcGVydHkiLCJyIiwidCIsIl90b1Byb3BlcnR5S2V5IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJNZWRpYSIsImNvbnN0cnVjdG9yIiwicmVzb2x2ZXIiLCJjYWxlbmRhckV2ZW50IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb21wb25lbnQiLCJhcGkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJyZXNvbHZlQ29tcG9uZW50QXBpIiwiZXZlbnQiLCJFdmVudCIsImhvc3QiLCJ1c2VybmFtZSIsIlNvY2tldFJlc3BvbnNlIiwiSk9JTl9NRUVUSU5HX1BFUk1JVCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIlZDRXZlbnRUeXBlIiwic29ja2V0TWFuYWdlciIsImVtaXRFdmVudCIsIlNvY2tldFJlcXVlc3QiLCJSRVFVRVNUX1RPX0pPSU5fTUVFVElORyIsInVzZXJJZCIsImdldFVzZXJEZXRhaWxzIiwiaG9zdElkIiwiYXNrVG9Kb2luIiwibWVldGluZ0lkIiwiaWQiLCJ0aGVuIiwicmVzdWx0IiwiY29uc29sZSIsImxvZyIsIm91dGNvbWUiLCJjYXRjaCIsInNldHRpbmdzIiwidXNlckZ1bGxOYW1lIiwicHJvZmlsZSIsIkVycm9yIiwiZ2V0QWN0aXZlVGVuYW50IiwiSk9JTl9NRUVUSU5HIiwiYXZhdGFySWQiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpc0hvc3QiLCJyZXNwb25zZSIsInN0YXR1cyIsInJ0cENhcGFiaWxpdGllcyIsImRhdGEiLCJzaGFyZVNjcmVlblByb2R1Y2VyRGF0YSIsInBhcnRpY2lwYW50cyIsInVzZXJzSW5Sb29tIiwiR0VUX0xPQkJZIiwiZ2V0TG9iYnlSZXNwb25zZSIsImxvYmJ5IiwicGVvcGxlIiwicGVyc29uIiwicHVzaCIsImVycm9yIiwibmF2aWdhdG9yIiwibWVkaWFEZXZpY2VzIiwiZW51bWVyYXRlRGV2aWNlcyIsImRldmljZXMiLCJhdWRpb0Nvbm5lY3RlZCIsInZpZGVvQ29ubmVjdGVkIiwiZm9yRWFjaCIsImRldmljZSIsImtpbmQiLCJsYWJlbCIsInN0cmVhbSIsImdldFVzZXJNZWRpYSIsImF1ZGlvIiwidmlkZW8iLCJnZXRWaWRlb1RyYWNrcyIsImxlbmd0aCIsInN0b3AiLCJnZXRBdWRpb1RyYWNrcyIsImF2U3RhdHVzIiwiZXJyb3JNZXNzYWdlIiwiZXhwb3J0cyIsImluc3RhbmNlIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2pzL01lZGlhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTb2NrZXRSZXNwb25zZSBmcm9tICcuLi9jb21wb25lbnRzL21lZGlhL1NvY2tldFJlc3BvbnNlJztcbmltcG9ydCBzb2NrZXRNYW5hZ2VyIGZyb20gJy4uL2NvbXBvbmVudHMvU29ja2V0TWFuYWdlcic7XG5pbXBvcnQgU29ja2V0UmVxdWVzdCBmcm9tICcuLi9jb21wb25lbnRzL21lZGlhL1NvY2tldFJlcXVlc3QnO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQge1ZDRXZlbnRUeXBlfSBmcm9tICcuLi9jb21wb25lbnRzL21lZGlhL1ZDRXZlbnRUeXBlJztcblxuZXhwb3J0IGNsYXNzIE1lZGlhIHtcbiAgICBjb25zdHJ1Y3RvcihyZXNvbHZlcikge1xuICAgICAgICB0aGlzLnJlc29sdmVyID0gcmVzb2x2ZXI7XG4gICAgfVxuXG4gICAgcmVxdWVzdFRvSm9pbk1lZXRpbmcgPSAoY2FsZW5kYXJFdmVudCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IHtcbiAgICAgICAgICAgICAgICBhcGk6IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlQ29tcG9uZW50QXBpKCdzZXR0aW5nc05leHQnKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGNvbXBvbmVudCwgJ3ZjU2V0dGluZ3MnLCBudWxsKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbGVuZGFyRXZlbnQuaG9zdC51c2VybmFtZSA9PT0gY2FsZW5kYXJFdmVudC5ob3N0LnVzZXJuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoU29ja2V0UmVzcG9uc2UuSk9JTl9NRUVUSU5HX1BFUk1JVCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoVkNFdmVudFR5cGUuSk9JTl9NRUVUSU5HX1BFUk1JVCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNvY2tldE1hbmFnZXIuZW1pdEV2ZW50KFNvY2tldFJlcXVlc3QuUkVRVUVTVF9UT19KT0lOX01FRVRJTkcsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcklkOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKS51c2VybmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0SWQ6IGNhbGVuZGFyRXZlbnQuaG9zdC51c2VybmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2tUb0pvaW46IGNhbGVuZGFyRXZlbnQuYXNrVG9Kb2luLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdJZDogY2FsZW5kYXJFdmVudC5pZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIioqKioqIEpPSU4gTUVFVElORyBSRVNQT05TRSAqKioqKlwiLCByZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvdXRjb21lID0gcmVzdWx0Lm91dGNvbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShvdXRjb21lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3V0Y29tZSA9PT0gU29ja2V0UmVzcG9uc2UuSk9JTl9NRUVUSU5HX1BFUk1JVCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkpPSU5fTUVFVElOR19QRVJNSVQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIqKioqKiBKT0lOIE1FRVRJTkcgRVJST1IgKioqKipcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIqKioqKiBSRVFVRVNUIFRPIEpPSU4gTUVFVElORyBFUlJPUiAqKioqKlwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBqb2luTWVldGluZyA9IChjYWxlbmRhckV2ZW50LCBzZXR0aW5ncywgdXNlckZ1bGxOYW1lKSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSB7fTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGlmICghYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkucHJvZmlsZSkge1xuICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ05vIHVzZXIgcHJvZmlsZScpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyA6IFJlbW92ZSBoYXJkY29kaW5nIGFuZCByZXBsYWNlIHdpdGggYWN0aXZlIHRlbmFudHMgd2hlbiBpbXBsZW1lbnRlZFxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvZmlsZSA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBY3RpdmVUZW5hbnQoKSB8fCBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKS5wcm9maWxlO1xuICAgICAgICAgICAgICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChTb2NrZXRSZXF1ZXN0LkpPSU5fTUVFVElORywge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVldGluZ0lkOiBjYWxlbmRhckV2ZW50LmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlckZ1bGxOYW1lOiB1c2VyRnVsbE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VySWQ6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFySWQ6IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJBdmF0YUlkJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0hvc3Q6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lID09PSBjYWxlbmRhckV2ZW50Lmhvc3QudXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogc2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9maWxlOiBwcm9maWxlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdTVUNDRVNTJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucnRwQ2FwYWJpbGl0aWVzID0gcmVzcG9uc2UuZGF0YS5ydHBDYXBhYmlsaXRpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zaGFyZVNjcmVlblByb2R1Y2VyRGF0YSA9IHJlc3BvbnNlLmRhdGEuc2hhcmVTY3JlZW5Qcm9kdWNlckRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wYXJ0aWNpcGFudHMgPSByZXNwb25zZS5kYXRhLnVzZXJzSW5Sb29tO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKS51c2VybmFtZSA9PT0gY2FsZW5kYXJFdmVudC5ob3N0LnVzZXJuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChTb2NrZXRSZXF1ZXN0LkdFVF9MT0JCWSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdJZDogY2FsZW5kYXJFdmVudC5pZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoZ2V0TG9iYnlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TG9iYnlSZXNwb25zZS5zdGF0dXMgPT09ICdTVUNDRVNTJyAmJiBnZXRMb2JieVJlc3BvbnNlLmxvYmJ5ICYmIGdldExvYmJ5UmVzcG9uc2UubG9iYnkucGVvcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQubG9iYnkgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGVyc29uIG9mIGdldExvYmJ5UmVzcG9uc2UubG9iYnkucGVvcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmxvYmJ5LnB1c2gocGVyc29uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGhhc0Nvbm5lY3RlZE1lZGlhRGV2aWNlcyA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKVxuICAgICAgICAgICAgICAgIC50aGVuKGFzeW5jIChkZXZpY2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhdWRpb0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2aWRlb0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZXMuZm9yRWFjaCgoZGV2aWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnYXVkaW9pbnB1dCcgPT09IGRldmljZS5raW5kICYmIGRldmljZS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9Db25uZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCd2aWRlb2lucHV0JyA9PT0gZGV2aWNlLmtpbmQgJiYgZGV2aWNlLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0Nvbm5lY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdHJlYW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IGZhbHNlLCB2aWRlbzogdHJ1ZX0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggPT09IDAgfHwgIXN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZSwgdmlkZW86IGZhbHNlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCA9PT0gMCB8fCAhc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXS5zdG9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvQ29ubmVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvQ29ubmVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0Nvbm5lY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb0Nvbm5lY3RlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvQ29ubmVjdGVkOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldEF2U3RhdHVzTWVzc2FnZSA9IChhdlN0YXR1cykgPT4ge1xuICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgICAgIGlmICghYXZTdGF0dXMuYXVkaW9Db25uZWN0ZWQgfHwgIWF2U3RhdHVzLnZpZGVvQ29ubmVjdGVkKSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAnTm8gJyArICghYXZTdGF0dXMuYXVkaW9Db25uZWN0ZWQgPyAnYXVkaW8gJyA6ICcnKTtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSArPSAoIWF2U3RhdHVzLnZpZGVvQ29ubmVjdGVkID8gKCghYXZTdGF0dXMuYXVkaW9Db25uZWN0ZWQgPyAnYW5kIHZpZGVvJyA6ICd2aWRlbyAnKSkgOiAnJyk7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgKz0gJyBkZXZpY2UnICsgKCFhdlN0YXR1cy5hdWRpb0Nvbm5lY3RlZCAmJiAhYXZTdGF0dXMudmlkZW9Db25uZWN0ZWQgPyAncycgOiAnJykgKyAnIGNvbm5lY3RlZCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xuICAgIH07XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IE1lZGlhKCk7XG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFB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
|
|
182
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU29ja2V0UmVzcG9uc2UiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Tb2NrZXRNYW5hZ2VyIiwiX1NvY2tldFJlcXVlc3QiLCJfRXZlbnQiLCJfT2JzZXJ2YWJsZSIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfVkNFdmVudFR5cGUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmaW5lUHJvcGVydHkiLCJyIiwidCIsIl90b1Byb3BlcnR5S2V5IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJNZWRpYSIsImNvbnN0cnVjdG9yIiwicmVzb2x2ZXIiLCJjYWxlbmRhckV2ZW50IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb21wb25lbnQiLCJhcGkiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJyZXNvbHZlQ29tcG9uZW50QXBpIiwiZXZlbnQiLCJFdmVudCIsImxvYmJ5QXBwcm92YWxJbXBsZW1lbnRlZCIsImlzSG9zdCIsImdldFVzZXJEZXRhaWxzIiwidXNlcm5hbWUiLCJob3N0IiwiYXNrVG9Kb2luIiwiU29ja2V0UmVzcG9uc2UiLCJKT0lOX01FRVRJTkdfUEVSTUlUIiwiZXZlbnRNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiVkNFdmVudFR5cGUiLCJzb2NrZXRNYW5hZ2VyIiwiZW1pdEV2ZW50IiwiU29ja2V0UmVxdWVzdCIsIlJFUVVFU1RfVE9fSk9JTl9NRUVUSU5HIiwidXNlcklkIiwiaG9zdElkIiwibWVldGluZ0lkIiwiaWQiLCJ0aGVuIiwicmVzdWx0IiwiY29uc29sZSIsImxvZyIsIm91dGNvbWUiLCJjYXRjaCIsInNldHRpbmdzIiwidXNlckZ1bGxOYW1lIiwicHJvZmlsZSIsIkVycm9yIiwiZ2V0QWN0aXZlVGVuYW50IiwiSk9JTl9NRUVUSU5HIiwiYXZhdGFySWQiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJyZXNwb25zZSIsInN0YXR1cyIsInJ0cENhcGFiaWxpdGllcyIsImRhdGEiLCJzaGFyZVNjcmVlblByb2R1Y2VyRGF0YSIsInBhcnRpY2lwYW50cyIsInVzZXJzSW5Sb29tIiwiR0VUX0xPQkJZIiwiZ2V0TG9iYnlSZXNwb25zZSIsImxvYmJ5IiwicGVvcGxlIiwicGVyc29uIiwicHVzaCIsImVycm9yIiwibmF2aWdhdG9yIiwibWVkaWFEZXZpY2VzIiwiZW51bWVyYXRlRGV2aWNlcyIsImRldmljZXMiLCJhdWRpb0Nvbm5lY3RlZCIsInZpZGVvQ29ubmVjdGVkIiwiZm9yRWFjaCIsImRldmljZSIsImtpbmQiLCJsYWJlbCIsInN0cmVhbSIsImdldFVzZXJNZWRpYSIsImF1ZGlvIiwidmlkZW8iLCJnZXRWaWRlb1RyYWNrcyIsImxlbmd0aCIsInN0b3AiLCJnZXRBdWRpb1RyYWNrcyIsImF2U3RhdHVzIiwiZXJyb3JNZXNzYWdlIiwiZXhwb3J0cyIsImluc3RhbmNlIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2pzL01lZGlhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTb2NrZXRSZXNwb25zZSBmcm9tICcuLi9jb21wb25lbnRzL21lZGlhL1NvY2tldFJlc3BvbnNlJztcbmltcG9ydCBzb2NrZXRNYW5hZ2VyIGZyb20gJy4uL2NvbXBvbmVudHMvU29ja2V0TWFuYWdlcic7XG5pbXBvcnQgU29ja2V0UmVxdWVzdCBmcm9tICcuLi9jb21wb25lbnRzL21lZGlhL1NvY2tldFJlcXVlc3QnO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQge1ZDRXZlbnRUeXBlfSBmcm9tICcuLi9jb21wb25lbnRzL21lZGlhL1ZDRXZlbnRUeXBlJztcblxuZXhwb3J0IGNsYXNzIE1lZGlhIHtcbiAgICBjb25zdHJ1Y3RvcihyZXNvbHZlcikge1xuICAgICAgICB0aGlzLnJlc29sdmVyID0gcmVzb2x2ZXI7XG4gICAgfVxuXG4gICAgcmVxdWVzdFRvSm9pbk1lZXRpbmcgPSAoY2FsZW5kYXJFdmVudCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IHtcbiAgICAgICAgICAgICAgICBhcGk6IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlQ29tcG9uZW50QXBpKCdzZXR0aW5nc05leHQnKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGNvbXBvbmVudCwgJ3ZjU2V0dGluZ3MnLCBudWxsKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gQXNrLXRvLWpvaW4gLyBsb2JieSBob3N0LWFwcHJvdmFsIGlzIE5PVCBpbXBsZW1lbnRlZCBzZXJ2ZXItc2lkZSB5ZXQ6IHRoZSBzaWduYWxsaW5nXG4gICAgICAgICAgICAgICAgLy8gUkVRVUVTVF9UT19KT0lOX01FRVRJTkcgaGFuZGxlcidzIFwicHVibGlzaCByZXF1ZXN0IHRvIGhvc3RcIiBpcyBhIFRPRE8sIGFuZCBpdHNcbiAgICAgICAgICAgICAgICAvLyByZXR1cm5lZCBvdXRjb21lIChcIlBFUk1JVFwiKSBkb2Vzbid0IGV2ZW4gbWF0Y2ggU29ja2V0UmVzcG9uc2UuSk9JTl9NRUVUSU5HX1BFUk1JVCDigJRcbiAgICAgICAgICAgICAgICAvLyBzbyByb3V0aW5nIHRocm91Z2ggaXQgd291bGQgaGFuZyB0aGUgam9pbmVyLiBVbnRpbCB0aGF0IGZlYXR1cmUgbGFuZHMsIHBlcm1pdFxuICAgICAgICAgICAgICAgIC8vIGRpcmVjdGx5LiBUaGUgaG9zdCBpcyBhbHdheXMgcGVybWl0dGVkLiAoVGhpcyByZXBsYWNlcyBhIG1pc2xlYWRpbmcgYWx3YXlzLXRydWVcbiAgICAgICAgICAgICAgICAvLyB0YXV0b2xvZ3kgYGhvc3QudXNlcm5hbWUgPT09IGhvc3QudXNlcm5hbWVgLikgRmxpcCBgbG9iYnlBcHByb3ZhbEltcGxlbWVudGVkYCB3aGVuXG4gICAgICAgICAgICAgICAgLy8gdGhlIHNlcnZlci1zaWRlIGFwcHJvdmFsIGZsb3cgZXhpc3RzOyB0aGUgcmVxdWVzdCBicmFuY2ggYmVsb3cgaXMgdGhlbiBsaXZlLlxuICAgICAgICAgICAgICAgIGNvbnN0IGxvYmJ5QXBwcm92YWxJbXBsZW1lbnRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSG9zdCA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lID09PSBjYWxlbmRhckV2ZW50Lmhvc3QudXNlcm5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKCFsb2JieUFwcHJvdmFsSW1wbGVtZW50ZWQgfHwgaXNIb3N0IHx8ICFjYWxlbmRhckV2ZW50LmFza1RvSm9pbikge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFNvY2tldFJlc3BvbnNlLkpPSU5fTUVFVElOR19QRVJNSVQpO1xuICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KFZDRXZlbnRUeXBlLkpPSU5fTUVFVElOR19QRVJNSVQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChTb2NrZXRSZXF1ZXN0LlJFUVVFU1RfVE9fSk9JTl9NRUVUSU5HLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJJZDogYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdElkOiBjYWxlbmRhckV2ZW50Lmhvc3QudXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNrVG9Kb2luOiBjYWxlbmRhckV2ZW50LmFza1RvSm9pbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nSWQ6IGNhbGVuZGFyRXZlbnQuaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIqKioqKiBKT0lOIE1FRVRJTkcgUkVTUE9OU0UgKioqKipcIiwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3V0Y29tZSA9IHJlc3VsdC5vdXRjb21lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUob3V0Y29tZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG91dGNvbWUgPT09IFNvY2tldFJlc3BvbnNlLkpPSU5fTUVFVElOR19QRVJNSVQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChWQ0V2ZW50VHlwZS5KT0lOX01FRVRJTkdfUEVSTUlULCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiKioqKiogSk9JTiBNRUVUSU5HIEVSUk9SICoqKioqXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiKioqKiogUkVRVUVTVCBUTyBKT0lOIE1FRVRJTkcgRVJST1IgKioqKipcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgam9pbk1lZXRpbmcgPSAoY2FsZW5kYXJFdmVudCwgc2V0dGluZ3MsIHVzZXJGdWxsTmFtZSkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0ge307XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnByb2ZpbGUpIHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdObyB1c2VyIHByb2ZpbGUnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gOiBSZW1vdmUgaGFyZGNvZGluZyBhbmQgcmVwbGFjZSB3aXRoIGFjdGl2ZSB0ZW5hbnRzIHdoZW4gaW1wbGVtZW50ZWRcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb2ZpbGUgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KCkgfHwgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkucHJvZmlsZTtcbiAgICAgICAgICAgICAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoU29ja2V0UmVxdWVzdC5KT0lOX01FRVRJTkcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdJZDogY2FsZW5kYXJFdmVudC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJGdWxsTmFtZTogdXNlckZ1bGxOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcklkOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKS51c2VybmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhcklkOiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c2VyQXZhdGFJZCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNIb3N0OiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKS51c2VybmFtZSA9PT0gY2FsZW5kYXJFdmVudC5ob3N0LnVzZXJuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHNldHRpbmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZmlsZTogcHJvZmlsZVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnU1VDQ0VTUycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnJ0cENhcGFiaWxpdGllcyA9IHJlc3BvbnNlLmRhdGEucnRwQ2FwYWJpbGl0aWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2hhcmVTY3JlZW5Qcm9kdWNlckRhdGEgPSByZXNwb25zZS5kYXRhLnNoYXJlU2NyZWVuUHJvZHVjZXJEYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucGFydGljaXBhbnRzID0gcmVzcG9uc2UuZGF0YS51c2Vyc0luUm9vbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWUgPT09IGNhbGVuZGFyRXZlbnQuaG9zdC51c2VybmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0TWFuYWdlci5lbWl0RXZlbnQoU29ja2V0UmVxdWVzdC5HRVRfTE9CQlksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nSWQ6IGNhbGVuZGFyRXZlbnQuaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGdldExvYmJ5UmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldExvYmJ5UmVzcG9uc2Uuc3RhdHVzID09PSAnU1VDQ0VTUycgJiYgZ2V0TG9iYnlSZXNwb25zZS5sb2JieSAmJiBnZXRMb2JieVJlc3BvbnNlLmxvYmJ5LnBlb3BsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmxvYmJ5ID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBlcnNvbiBvZiBnZXRMb2JieVJlc3BvbnNlLmxvYmJ5LnBlb3BsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5sb2JieS5wdXNoKHBlcnNvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYXNDb25uZWN0ZWRNZWRpYURldmljZXMgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKClcbiAgICAgICAgICAgICAgICAudGhlbihhc3luYyAoZGV2aWNlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXVkaW9Db25uZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmlkZW9Db25uZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VzLmZvckVhY2goKGRldmljZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ2F1ZGlvaW5wdXQnID09PSBkZXZpY2Uua2luZCAmJiBkZXZpY2UubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvQ29ubmVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgndmlkZW9pbnB1dCcgPT09IGRldmljZS5raW5kICYmIGRldmljZS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9Db25uZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RyZWFtO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiBmYWxzZSwgdmlkZW86IHRydWV9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoID09PSAwIHx8ICFzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9Db25uZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9Db25uZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWUsIHZpZGVvOiBmYWxzZX0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggPT09IDAgfHwgIXN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0uc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb0Nvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWRpb0Nvbm5lY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9Db25uZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9Db25uZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0Nvbm5lY3RlZDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBnZXRBdlN0YXR1c01lc3NhZ2UgPSAoYXZTdGF0dXMpID0+IHtcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZSA9ICcnO1xuICAgICAgICBpZiAoIWF2U3RhdHVzLmF1ZGlvQ29ubmVjdGVkIHx8ICFhdlN0YXR1cy52aWRlb0Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ05vICcgKyAoIWF2U3RhdHVzLmF1ZGlvQ29ubmVjdGVkID8gJ2F1ZGlvICcgOiAnJyk7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgKz0gKCFhdlN0YXR1cy52aWRlb0Nvbm5lY3RlZCA/ICgoIWF2U3RhdHVzLmF1ZGlvQ29ubmVjdGVkID8gJ2FuZCB2aWRlbycgOiAndmlkZW8gJykpIDogJycpO1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlICs9ICcgZGV2aWNlJyArICghYXZTdGF0dXMuYXVkaW9Db25uZWN0ZWQgJiYgIWF2U3RhdHVzLnZpZGVvQ29ubmVjdGVkID8gJ3MnIDogJycpICsgJyBjb25uZWN0ZWQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZTtcbiAgICB9O1xufVxuXG5jb25zdCBpbnN0YW5jZSA9IG5ldyBNZWRpYSgpO1xuZXhwb3J0IGRlZmF1bHQgaW5zdGFuY2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGNBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLG1CQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFOLE9BQUE7QUFBNEQsU0FBQUQsdUJBQUFRLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxnQkFBQUgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFDLENBQUEsWUFBQUQsQ0FBQSxHQUFBRSxjQUFBLENBQUFGLENBQUEsTUFBQUosQ0FBQSxHQUFBTyxNQUFBLENBQUFDLGNBQUEsQ0FBQVIsQ0FBQSxFQUFBSSxDQUFBLElBQUFLLEtBQUEsRUFBQUosQ0FBQSxFQUFBSyxVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxVQUFBWixDQUFBLENBQUFJLENBQUEsSUFBQUMsQ0FBQSxFQUFBTCxDQUFBO0FBQUEsU0FBQU0sZUFBQUQsQ0FBQSxRQUFBUSxDQUFBLEdBQUFDLFlBQUEsQ0FBQVQsQ0FBQSx1Q0FBQVEsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBQyxhQUFBVCxDQUFBLEVBQUFELENBQUEsMkJBQUFDLENBQUEsS0FBQUEsQ0FBQSxTQUFBQSxDQUFBLE1BQUFMLENBQUEsR0FBQUssQ0FBQSxDQUFBVSxNQUFBLENBQUFDLFdBQUEsa0JBQUFoQixDQUFBLFFBQUFhLENBQUEsR0FBQWIsQ0FBQSxDQUFBaUIsSUFBQSxDQUFBWixDQUFBLEVBQUFELENBQUEsdUNBQUFTLENBQUEsU0FBQUEsQ0FBQSxZQUFBSyxTQUFBLHlFQUFBZCxDQUFBLEdBQUFlLE1BQUEsR0FBQUMsTUFBQSxFQUFBZixDQUFBO0FBRXJELE1BQU1nQixLQUFLLENBQUM7RUFDZkMsV0FBV0EsQ0FBQ0MsUUFBUSxFQUFFO0lBQUFwQixlQUFBLCtCQUlFcUIsYUFBYSxJQUFLO01BQ3RDLE9BQU8sSUFBSUMsT0FBTyxDQUFDLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO1FBQ3BDLElBQUlDLFNBQVMsR0FBRztVQUNaQyxHQUFHLEVBQUVDLDJCQUFrQixDQUFDQyxtQkFBbUIsQ0FBQyxjQUFjO1FBQzlELENBQUM7UUFFRCxJQUFJQyxLQUFLLEdBQUcsSUFBSUMsY0FBSyxDQUFDTCxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQztRQUNwRCxJQUFJO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQSxNQUFNTSx3QkFBd0IsR0FBRyxLQUFLO1VBQ3RDLE1BQU1DLE1BQU0sR0FBR0wsMkJBQWtCLENBQUNNLGNBQWMsQ0FBQyxDQUFDLENBQUNDLFFBQVEsS0FBS2IsYUFBYSxDQUFDYyxJQUFJLENBQUNELFFBQVE7VUFDM0YsSUFBSSxDQUFDSCx3QkFBd0IsSUFBSUMsTUFBTSxJQUFJLENBQUNYLGFBQWEsQ0FBQ2UsU0FBUyxFQUFFO1lBQ2pFYixPQUFPLENBQUNjLHVCQUFjLENBQUNDLG1CQUFtQixDQUFDO1lBQzNDQyxtQkFBWSxDQUFDQyxTQUFTLENBQUNDLHdCQUFXLENBQUNILG1CQUFtQixFQUFFVCxLQUFLLENBQUM7VUFDbEUsQ0FBQyxNQUFNO1lBQ0hhLHNCQUFhLENBQUNDLFNBQVMsQ0FBQ0Msc0JBQWEsQ0FBQ0MsdUJBQXVCLEVBQ3pEO2NBQ0lDLE1BQU0sRUFBRW5CLDJCQUFrQixDQUFDTSxjQUFjLENBQUMsQ0FBQyxDQUFDQyxRQUFRO2NBQ3BEYSxNQUFNLEVBQUUxQixhQUFhLENBQUNjLElBQUksQ0FBQ0QsUUFBUTtjQUNuQ0UsU0FBUyxFQUFFZixhQUFhLENBQUNlLFNBQVM7Y0FDbENZLFNBQVMsRUFBRTNCLGFBQWEsQ0FBQzRCO1lBQzdCLENBQUMsQ0FBQyxDQUNEQyxJQUFJLENBQUVDLE1BQU0sSUFBSztjQUNkQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBRUYsTUFBTSxDQUFDO2NBQ3hELElBQUlHLE9BQU8sR0FBR0gsTUFBTSxDQUFDRyxPQUFPO2NBQzVCL0IsT0FBTyxDQUFDK0IsT0FBTyxDQUFDO2NBQ2hCLElBQUlBLE9BQU8sS0FBS2pCLHVCQUFjLENBQUNDLG1CQUFtQixFQUFFO2dCQUNoREMsbUJBQVksQ0FBQ0MsU0FBUyxDQUFDQyx3QkFBVyxDQUFDSCxtQkFBbUIsRUFBRVQsS0FBSyxDQUFDO2NBQ2xFO1lBQ0osQ0FBQyxDQUFDLENBQUMwQixLQUFLLENBQUUxRCxDQUFDLElBQUs7Y0FDaEJ1RCxPQUFPLENBQUNDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQztjQUM3Q0QsT0FBTyxDQUFDQyxHQUFHLENBQUN4RCxDQUFDLENBQUM7Y0FFZDJCLE1BQU0sQ0FBQzNCLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQztVQUNOO1FBQ0osQ0FBQyxDQUFDLE9BQU9BLENBQUMsRUFBRTtVQUNSdUQsT0FBTyxDQUFDQyxHQUFHLENBQUMsMkNBQTJDLENBQUM7VUFDeERELE9BQU8sQ0FBQ0MsR0FBRyxDQUFDeEQsQ0FBQyxDQUFDO1VBQ2QyQixNQUFNLENBQUMzQixDQUFDLENBQUM7UUFDYjtNQUNKLENBQUMsQ0FBQztJQUNOLENBQUM7SUFBQUcsZUFBQSxzQkFFYSxDQUFDcUIsYUFBYSxFQUFFbUMsUUFBUSxFQUFFQyxZQUFZLEtBQUs7TUFDckQsSUFBSU4sTUFBTSxHQUFHLENBQUMsQ0FBQztNQUNmLE9BQU8sSUFBSTdCLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztRQUNwQyxJQUFJLENBQUNHLDJCQUFrQixDQUFDTSxjQUFjLENBQUMsQ0FBQyxDQUFDeUIsT0FBTyxFQUFFO1VBQzlDbEMsTUFBTSxDQUFDLElBQUltQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxDQUFDLE1BQU07VUFDSCxJQUFJO1lBQ0E7WUFDQSxJQUFJRCxPQUFPLEdBQUcvQiwyQkFBa0IsQ0FBQ2lDLGVBQWUsQ0FBQyxDQUFDLElBQUlqQywyQkFBa0IsQ0FBQ00sY0FBYyxDQUFDLENBQUMsQ0FBQ3lCLE9BQU87WUFDakdoQixzQkFBYSxDQUFDQyxTQUFTLENBQUNDLHNCQUFhLENBQUNpQixZQUFZLEVBQUU7Y0FDaERiLFNBQVMsRUFBRTNCLGFBQWEsQ0FBQzRCLEVBQUU7Y0FDM0JRLFlBQVksRUFBRUEsWUFBWTtjQUMxQlgsTUFBTSxFQUFFbkIsMkJBQWtCLENBQUNNLGNBQWMsQ0FBQyxDQUFDLENBQUNDLFFBQVE7Y0FDcEQ0QixRQUFRLEVBQUVDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDLGFBQWEsQ0FBQztjQUMvQ2hDLE1BQU0sRUFBRUwsMkJBQWtCLENBQUNNLGNBQWMsQ0FBQyxDQUFDLENBQUNDLFFBQVEsS0FBS2IsYUFBYSxDQUFDYyxJQUFJLENBQUNELFFBQVE7Y0FDcEZzQixRQUFRLEVBQUVBLFFBQVE7Y0FDbEJFLE9BQU8sRUFBRUE7WUFDYixDQUFDLENBQUMsQ0FDR1IsSUFBSSxDQUFFZSxRQUFRLElBQUs7Y0FDaEJkLE1BQU0sQ0FBQ2UsTUFBTSxHQUFHRCxRQUFRLENBQUNDLE1BQU07Y0FDL0IsSUFBSUQsUUFBUSxDQUFDQyxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUMvQmYsTUFBTSxDQUFDZ0IsZUFBZSxHQUFHRixRQUFRLENBQUNHLElBQUksQ0FBQ0QsZUFBZTtnQkFDdERoQixNQUFNLENBQUNrQix1QkFBdUIsR0FBR0osUUFBUSxDQUFDRyxJQUFJLENBQUNDLHVCQUF1QjtnQkFDdEVsQixNQUFNLENBQUNtQixZQUFZLEdBQUdMLFFBQVEsQ0FBQ0csSUFBSSxDQUFDRyxXQUFXO2dCQUUvQyxJQUFJNUMsMkJBQWtCLENBQUNNLGNBQWMsQ0FBQyxDQUFDLENBQUNDLFFBQVEsS0FBS2IsYUFBYSxDQUFDYyxJQUFJLENBQUNELFFBQVEsRUFBRTtrQkFDOUVRLHNCQUFhLENBQUNDLFNBQVMsQ0FBQ0Msc0JBQWEsQ0FBQzRCLFNBQVMsRUFBRTtvQkFDN0N4QixTQUFTLEVBQUUzQixhQUFhLENBQUM0QjtrQkFDN0IsQ0FBQyxDQUFDLENBQ0dDLElBQUksQ0FBRXVCLGdCQUFnQixJQUFLO29CQUN4QixJQUFJQSxnQkFBZ0IsQ0FBQ1AsTUFBTSxLQUFLLFNBQVMsSUFBSU8sZ0JBQWdCLENBQUNDLEtBQUssSUFBSUQsZ0JBQWdCLENBQUNDLEtBQUssQ0FBQ0MsTUFBTSxFQUFFO3NCQUNsR3hCLE1BQU0sQ0FBQ3VCLEtBQUssR0FBRyxFQUFFO3NCQUNqQixLQUFLLE1BQU1FLE1BQU0sSUFBSUgsZ0JBQWdCLENBQUNDLEtBQUssQ0FBQ0MsTUFBTSxFQUFFO3dCQUNoRHhCLE1BQU0sQ0FBQ3VCLEtBQUssQ0FBQ0csSUFBSSxDQUFDRCxNQUFNLENBQUM7c0JBQzdCO29CQUNKO2tCQUNKLENBQUMsQ0FBQztnQkFDVjtnQkFFQXJELE9BQU8sQ0FBQzRCLE1BQU0sQ0FBQztjQUNuQixDQUFDLE1BQU07Z0JBQ0gzQixNQUFNLENBQUMyQixNQUFNLENBQUM7Y0FDbEI7WUFDSixDQUFDLENBQUMsQ0FDREksS0FBSyxDQUFFdUIsS0FBSyxJQUFLO2NBQ2R0RCxNQUFNLENBQUNzRCxLQUFLLENBQUM7WUFDakIsQ0FBQyxDQUFDO1VBQ1YsQ0FBQyxDQUFDLE9BQU9qRixDQUFDLEVBQUU7WUFDUjJCLE1BQU0sQ0FBQzNCLENBQUMsQ0FBQztVQUNiO1FBQ0o7TUFDSixDQUFDLENBQUM7SUFDTixDQUFDO0lBQUFHLGVBQUEsbUNBRTBCLE1BQU07TUFDN0IsT0FBTyxJQUFJc0IsT0FBTyxDQUFFQyxPQUFPLElBQUs7UUFDNUJ3RCxTQUFTLENBQUNDLFlBQVksQ0FBQ0MsZ0JBQWdCLENBQUMsQ0FBQyxDQUNwQy9CLElBQUksQ0FBQyxNQUFPZ0MsT0FBTyxJQUFLO1VBQ2pCLElBQUk7WUFDQSxJQUFJQyxjQUFjLEdBQUcsS0FBSztZQUMxQixJQUFJQyxjQUFjLEdBQUcsS0FBSztZQUMxQkYsT0FBTyxDQUFDRyxPQUFPLENBQUVDLE1BQU0sSUFBSztjQUN4QixJQUFJLFlBQVksS0FBS0EsTUFBTSxDQUFDQyxJQUFJLElBQUlELE1BQU0sQ0FBQ0UsS0FBSyxFQUFFO2dCQUM5Q0wsY0FBYyxHQUFHLElBQUk7Y0FDekI7Y0FFQSxJQUFJLFlBQVksS0FBS0csTUFBTSxDQUFDQyxJQUFJLElBQUlELE1BQU0sQ0FBQ0UsS0FBSyxFQUFFO2dCQUM5Q0osY0FBYyxHQUFHLElBQUk7Y0FDekI7WUFDSixDQUFDLENBQUM7WUFFRixJQUFJSyxNQUFNO1lBRVYsSUFBSTtjQUNBQSxNQUFNLEdBQUcsTUFBTVYsU0FBUyxDQUFDQyxZQUFZLENBQUNVLFlBQVksQ0FBQztnQkFBQ0MsS0FBSyxFQUFFLEtBQUs7Z0JBQUVDLEtBQUssRUFBRTtjQUFJLENBQUMsQ0FBQztjQUMvRSxJQUFHSCxNQUFNLENBQUNJLGNBQWMsQ0FBQyxDQUFDLENBQUNDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQ0wsTUFBTSxDQUFDSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwRVQsY0FBYyxHQUFHLEtBQUs7Y0FDMUIsQ0FBQyxNQUFNO2dCQUNISyxNQUFNLENBQUNJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNFLElBQUksQ0FBQyxDQUFDO2NBQ3JDO1lBQ0osQ0FBQyxDQUFDLE9BQU9sRyxDQUFDLEVBQUU7Y0FDUnVGLGNBQWMsR0FBRyxLQUFLO1lBQzFCO1lBRUEsSUFBSTtjQUNBSyxNQUFNLEdBQUcsTUFBTVYsU0FBUyxDQUFDQyxZQUFZLENBQUNVLFlBQVksQ0FBQztnQkFBQ0MsS0FBSyxFQUFFLElBQUk7Z0JBQUVDLEtBQUssRUFBRTtjQUFLLENBQUMsQ0FBQztjQUMvRSxJQUFHSCxNQUFNLENBQUNPLGNBQWMsQ0FBQyxDQUFDLENBQUNGLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQ0wsTUFBTSxDQUFDTyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwRWIsY0FBYyxHQUFHLEtBQUs7Y0FDMUIsQ0FBQyxNQUFNO2dCQUNITSxNQUFNLENBQUNPLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNELElBQUksQ0FBQyxDQUFDO2NBQ3JDO1lBQ0osQ0FBQyxDQUFDLE9BQU9sRyxDQUFDLEVBQUU7Y0FDUnNGLGNBQWMsR0FBRyxLQUFLO1lBQzFCO1lBRUE1RCxPQUFPLENBQUM7Y0FDSjRELGNBQWM7Y0FDZEM7WUFDSixDQUFDLENBQUM7VUFDTixDQUFDLENBQUMsT0FBT3ZGLENBQUMsRUFBRTtZQUNSMEIsT0FBTyxDQUFDO2NBQ0o0RCxjQUFjLEVBQUUsS0FBSztjQUNyQkMsY0FBYyxFQUFFO1lBQ3BCLENBQUMsQ0FBQztVQUNOO1FBQ0osQ0FDSixDQUFDO01BQ1QsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUFBcEYsZUFBQSw2QkFFcUJpRyxRQUFRLElBQUs7TUFDL0IsSUFBSUMsWUFBWSxHQUFHLEVBQUU7TUFDckIsSUFBSSxDQUFDRCxRQUFRLENBQUNkLGNBQWMsSUFBSSxDQUFDYyxRQUFRLENBQUNiLGNBQWMsRUFBRTtRQUN0RGMsWUFBWSxHQUFHLEtBQUssSUFBSSxDQUFDRCxRQUFRLENBQUNkLGNBQWMsR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2pFZSxZQUFZLElBQUssQ0FBQ0QsUUFBUSxDQUFDYixjQUFjLEdBQUssQ0FBQ2EsUUFBUSxDQUFDZCxjQUFjLEdBQUcsV0FBVyxHQUFHLFFBQVEsR0FBSyxFQUFHO1FBQ3ZHZSxZQUFZLElBQUksU0FBUyxJQUFJLENBQUNELFFBQVEsQ0FBQ2QsY0FBYyxJQUFJLENBQUNjLFFBQVEsQ0FBQ2IsY0FBYyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxZQUFZO01BQ2hIO01BRUEsT0FBT2MsWUFBWTtJQUN2QixDQUFDO0lBNUtHLElBQUksQ0FBQzlFLFFBQVEsR0FBR0EsUUFBUTtFQUM1QjtBQTRLSjtBQUFDK0UsT0FBQSxDQUFBakYsS0FBQSxHQUFBQSxLQUFBO0FBRUQsTUFBTWtGLFFBQVEsR0FBRyxJQUFJbEYsS0FBSyxDQUFDLENBQUM7QUFBQyxJQUFBbUYsUUFBQSxHQUFBRixPQUFBLENBQUFwRyxPQUFBLEdBQ2RxRyxRQUFRIiwiaWdub3JlTGlzdCI6W119
|
package/dist/view/Dashboard.js
CHANGED
|
@@ -530,7 +530,7 @@ const Dashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.f
|
|
|
530
530
|
overflowY: 'hidden',
|
|
531
531
|
overflowX: 'hidden',
|
|
532
532
|
height: '100%',
|
|
533
|
-
padding: '0
|
|
533
|
+
padding: '0'
|
|
534
534
|
}
|
|
535
535
|
}, /*#__PURE__*/_react.default.createElement(_AlertBar.default, {
|
|
536
536
|
config: {
|
|
@@ -603,4 +603,4 @@ const Dashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.default.f
|
|
|
603
603
|
})))))))))));
|
|
604
604
|
}));
|
|
605
605
|
var _default = exports.default = Dashboard;
|
|
606
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0c3RyYXAiLCJfSWNvbiIsIl9JY29uQnV0dG9uIiwiX1BhcGVyIiwiX0J1dHRvbiIsIl9SZXN0VXRpbHMiLCJfUm91dGVBY3Rpb25IYW5kbGVyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9FdmVudCIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsIl9BbGVydEJhciIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX1ZpZXciLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJ0ZXh0IiwicmVzcG9uc2UiLCJrZXlDb3VudGVyIiwiYWxlcnRCYXJIYW5kbGUiLCJEYXNoYm9hcmRDYXJkIiwicHJvcHMiLCJwYXRoIiwic2V0UGF0aCIsIlJlYWN0IiwidXNlU3RhdGUiLCJuYW1lIiwic2V0TmFtZSIsImRpc3BsYXlUeXBlIiwic2V0RGlzcGxheVR5cGUiLCJ2aWV3Iiwic2V0dmlldyIsInNldHRpbmdzIiwiaWQiLCJzZXRJZCIsImNvbnRlbnQiLCJzZXRDb250ZW50IiwicmVmIiwiY3JlYXRlUmVmIiwidXNlRWZmZWN0IiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwiaGFuZGxlIiwiYXBpIiwibG9hZGVkIiwic2VuZFJlcXVlc3QiLCJkYXRhIiwiZGFzaGJvYXJkVmlldyIsImNvbmZpZyIsInBhcmVudCIsInBvcFVwIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiYWRkRGFzaGJvYXJkVmlldyIsImVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiVmlldyIsImtleSIsInBhcmFtZXRlcnMiLCJmZXRjaENvbmZpZyIsIm1ldGhvZCIsImhlYWRlcnMiLCJ0cmFja1Byb21pc2UiLCJmZXRjaCIsImVuY29kZVVSSSIsInRoZW4iLCJjb25zb2xlIiwibG9nIiwiY2F0Y2giLCJhbGVydCIsIm1lc3NhZ2UiLCJlcnJvciIsImxvYWQiLCJ1cmwiLCJnZXRDb250ZXh0Um9vdCIsImdldFVJQ29uZmlnUGF0aCIsImRlZmF1bHREaXNwbGF5VHlwZSIsIlV0aWxzIiwiaXNOdWxsIiwiZGVmYXVsdE5hbWUiLCJkYXNoYm9hcmROYW1lIiwiZGVmYXVsdERhc2hib2FyZE5hbWUiLCJjb250ZW50UGF0aCIsImNvbmNhdCIsInRvTG93ZXJDYXNlIiwic2F2ZURhc2hib2FyZCIsInBvc3REYXRhIiwiZGlzcGxheUFsZXJ0IiwiU1lTVEVNX0VSUk9SX01FU1NBR0UiLCJtZXNzYWdlVHlwZSIsIm1lc3NhZ2VUZXh0IiwiZXZlbnQiLCJFdmVudCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsImRlbGV0ZURhc2hib2FyZCIsIm9wZW5Db25maXJtRGlhbG9nIiwicmVzdWx0Iiwib25EZWxldGUiLCJzdHlsZSIsIm1pbldpZHRoIiwib3ZlcmZsb3ciLCJjbGFzc05hbWUiLCJoZWlnaHQiLCJVbmNvbnRyb2xsZWREcm9wZG93biIsIkRyb3Bkb3duVG9nZ2xlIiwiY29sb3IiLCJ3aWR0aCIsIm1hcmdpbiIsIm5hdiIsInBhZGRpbmciLCJEcm9wZG93bk1lbnUiLCJ0YWciLCJOYXZMaW5rIiwiRHJvcGRvd25JdGVtIiwib25DbGljayIsImRpc2FibGVkIiwiZm9udFNpemUiLCJ0eXBlIiwiV29ya0Zsb3dDYXJkIiwic3AiLCJzZXRTcCIsIm1pblciLCJzZXRNaW5XIiwicm91dGVBY3Rpb24iLCJpbm5lcldpZHRoIiwidGl0bGUiLCJpdGVtQ291bnQiLCJtYXJnaW5Ub3AiLCJ2YXJpYW50Iiwic2l6ZSIsInBhcnNlRmxvYXQiLCJSb3V0ZUFjdGlvbkhhbmRsZXIiLCJleGVjdXRlIiwidmlld1JlZiIsIkRhc2hib2FyZCIsIm1lbW8iLCJmb3J3YXJkUmVmIiwidXNlckRhc2hib2FyZHMiLCJnZXREYXNoYm9hcmRTZXR0aW5ncyIsInRhc2tTdW1tYXJ5Iiwic2V0VGFza1N1bW1hcnkiLCJtZW51SXRlbXMiLCJzZXRNZW51SXRlbXMiLCJjYXJkQ29scyIsInNldENhcmRDb2xzIiwiY29sdW1uSGVpZ2h0cyIsInNldENvbHVtbkhlaWdodHMiLCJudW1Db2xzIiwiZ2V0Q2hpbGRyZW4iLCJnZXRDaGlsZCIsImdldERhc2hib2FyZE1lbnUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNlcnZpY2UiLCJ2YWx1ZSIsImh0dHBQYXJhbWV0ZXJUeXBlIiwiY29udGVudFR5cGUiLCJpbnZva2VSZXN0IiwibWVudXMiLCJsb2FkTWVudXMiLCJzeXN0ZW1Qcm9maWxlRHRvIiwibW9kdWxlcyIsImRhc2hib2FyZE1lbnVpdGVtcyIsImxlbmd0aCIsIm1vZHVsZSIsImRhc2hib2FyZE1lbnUiLCJqIiwibWVudSIsIml0ZW1zIiwiaXRlbSIsInB1c2giLCJzZXR1cENhcmRDb2xzIiwidG90YWxJdGVtcyIsImNvbHMiLCJBcnJheSIsImZyb20iLCJfIiwiZm9yRWFjaCIsImluZGV4IiwibWF4SXRlbXMiLCJNYXRoIiwibWF4IiwibWFwIiwiY29sIiwiYmFzZUhlaWdodFBlckNhcmQiLCJ0b3RhbFRhcmdldEhlaWdodCIsImhlaWdodHMiLCJ0b0ZpeGVkIiwiZGFzaGJvYXJkcyIsImRhc2hib2FyZCIsInNldERhc2hib2FyZFZpZXciLCJjbGVhckRhc2hib2FyZFZpZXdzIiwiYWRkRGFzaGJvYXJkQ2FyZCIsImV2ZW50SGFuZGxpbmdDb25maWciLCJzdWJzY3JpcHRpb25zIiwiYWN0aW9ucyIsIkZyYWdtZW50IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImdhcCIsImVuZCIsImF0dHJpYnV0ZXMiLCJsYWJlbCIsIm1heEhlaWdodCIsIm92ZXJmbG93WSIsIm92ZXJmbG93WCIsInZpZXdJZCIsInBhZGRpbmdSaWdodCIsIm1pbkhlaWdodCIsInBlcnNvbmFsV29ya0l0ZW1Db3VudCIsImdyb3VwV29ya0l0ZW1Db3VudCIsImR1ZVRvZGF5SXRlbUNvdW50IiwiY29sSW5kZXgiLCJmbGV4IiwiYm94U2l6aW5nIiwiZmxleERpcmVjdGlvbiIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImJvcmRlclJhZGl1cyIsInNwbGljZSIsImluZGV4T2YiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3ZpZXcvRGFzaGJvYXJkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QsIHt1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQge0Ryb3Bkb3duSXRlbSwgRHJvcGRvd25NZW51LCBEcm9wZG93blRvZ2dsZSwgTmF2TGluaywgVW5jb250cm9sbGVkRHJvcGRvd259IGZyb20gJ3JlYWN0c3RyYXAnO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vY29tcG9uZW50cy9JY29uJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9QYXBlcic7XG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQnV0dG9uJztcbmltcG9ydCB7aW52b2tlUmVzdCwgcG9zdERhdGEsIHNlbmRSZXF1ZXN0fSBmcm9tICcuLi9SZXN0VXRpbHMnO1xuaW1wb3J0IFJvdXRlQWN0aW9uSGFuZGxlciBmcm9tICcuLi9ldmVudC9Sb3V0ZUFjdGlvbkhhbmRsZXInO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQgQWxlcnRCYXIgZnJvbSAnLi4vY29tcG9uZW50cy9BbGVydEJhcic7XG5pbXBvcnQge3RyYWNrUHJvbWlzZX0gZnJvbSBcInJlYWN0LXByb21pc2UtdHJhY2tlclwiO1xuaW1wb3J0IHtWaWV3fSBmcm9tIFwiLi4vY29tcG9uZW50cy9sYXlvdXQvVmlld1wiO1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5jb25zdCB0ZXh0ID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmxldCBrZXlDb3VudGVyID0gMDtcblxuY29uc3QgYWxlcnRCYXJIYW5kbGUgPSB7fTtcbmNvbnN0IERhc2hib2FyZENhcmQgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBbcGF0aCwgc2V0UGF0aF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbbmFtZSwgc2V0TmFtZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbZGlzcGxheVR5cGUsIHNldERpc3BsYXlUeXBlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFt2aWV3LCBzZXR2aWV3XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IHtzZXR0aW5nc30gPSBwcm9wcztcbiAgICBjb25zdCBbaWQsIHNldElkXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLnNldHRpbmdzLmlkKTtcbiAgICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbcmVmXSA9IFJlYWN0LnVzZVN0YXRlKFJlYWN0LmNyZWF0ZVJlZigpKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhY2Nlc3NUb2tlbicpO1xuICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2lkVG9rZW4nKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IHtcbiAgICAgICAgICAgICAgICBhcGk6IHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkYXNoYm9hcmQtbWVudXMnO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChwYXRoICYmIGRpc3BsYXlUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRpc3BsYXlUeXBlID09PSAnVklFVycpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VuZFJlcXVlc3QocGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VuZFJlcXVlc3QgYXV0by1kZWNvZGVzIHRoZSB7X2NkdWlfen0gd2lyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyYXAgZm9yIC91aS9hcGkvdiovIFVSTHMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5pZCA9IGRhdGEuaWQgKyBcIl9cIiArIGtleUNvdW50ZXIrKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGFzaGJvYXJkVmlldyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZFZpZXcuY29uZmlnID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRWaWV3LnBhcmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZFZpZXcucG9wVXAgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRWaWV3LndpbmRvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZFZpZXcuY29uZmlnLndpbmRvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZFZpZXcuaGFuZGxlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkRGFzaGJvYXJkVmlldyhkYXNoYm9hcmRWaWV3LCBwYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IDxWaWV3IGtleT17ZGF0YS5pZCArIFwiX1wiICsga2V5Q291bnRlcn0gY29uZmlnPXtkYXRhfSBwYXJhbWV0ZXJzPXtbXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2Rhc2hib2FyZFZpZXcuaGFuZGxlfS8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHZpZXcoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAndGV4dC9odG1sJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ3RleHQvaHRtbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW5cblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoKGVuY29kZVVSSShwYXRoKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4odGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNPTlRFTlQgOiBcIiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRlbnQoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoZS5tZXNzYWdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbcGF0aCwgZGlzcGxheVR5cGVdKTtcblxuICAgIGZ1bmN0aW9uIGxvYWQoKSB7XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgLy8gVE9ETzogTWFrZSB0aGUgYmFzZSBVUkwgZHluYW1pY1xuICAgICAgICAgICAgbGV0IHVybCA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KClcbiAgICAgICAgICAgICAgICArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVSUNvbmZpZ1BhdGgoKSArICcvZGFzaGJvYXJkL2dldD92ZXJzaW9uPTEuMCZpZD0nICsgc2V0dGluZ3MucGF0aDtcbiAgICAgICAgICAgIHNlbmRSZXF1ZXN0KHVybCxcbiAgICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBzZW5kUmVxdWVzdCBhdXRvLWRlY29kZXMgdGhlIHtfY2R1aV96fSB3aXJlIHdyYXAuXG4gICAgICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0RGlzcGxheVR5cGUgPSAhVXRpbHMuaXNOdWxsKHNldHRpbmdzLnBhcmFtZXRlcnMuZGlzcGxheVR5cGUpID8gc2V0dGluZ3MucGFyYW1ldGVycy5kaXNwbGF5VHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBkYXRhLmRlZmF1bHREaXNwbGF5VHlwZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGRlZmF1bHREaXNwbGF5VHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBkZXRlcm1pbmUgZGlzcGxheSB0eXBlIGZvciBkYXNoYm9hcmQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlUeXBlKGRlZmF1bHREaXNwbGF5VHlwZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGRlZmF1bHROYW1lID0gIVV0aWxzLmlzTnVsbChzZXR0aW5ncy5wYXJhbWV0ZXJzLmRhc2hib2FyZE5hbWUpID8gc2V0dGluZ3MucGFyYW1ldGVycy5kYXNoYm9hcmROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGRhdGEuZGVmYXVsdERhc2hib2FyZE5hbWU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChkZWZhdWx0RGlzcGxheVR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGEgZGVmYXVsdCBuYW1lIGZvciBkYXNoYm9hcmQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldE5hbWUoZGVmYXVsdE5hbWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzVG9rZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2lkVG9rZW4nKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdERpc3BsYXlUeXBlID09PSAnVklFVycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVJQ29uZmlnUGF0aCgpICsgJy92aWV3L2dldD92ZXJzaW9uPTEuMCZpZD0nICsgZGF0YS5jb250ZW50UGF0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhdGgodXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlUeXBlKGRlZmF1bHREaXNwbGF5VHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRQYXRoKGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVSUNvbmZpZ1BhdGgoKSArICcvaHRtbC9nZXQ/dmVyc2lvbj0xLjAmaWQ9J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGF0YS5jb250ZW50UGF0aCArIGAtJHtkZWZhdWx0RGlzcGxheVR5cGUudG9Mb3dlckNhc2UoKX0uaHRtbCZhY2Nlc3NfdG9rZW49JHthY2Nlc3NUb2tlbn0maWRUb2tlbj0ke2lkVG9rZW59YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBsb2FkKCk7XG4gICAgICAgIH0sIFtdXG4gICAgKTtcblxuICAgIGNvbnN0IHNhdmVEYXNoYm9hcmQgPSAoKSA9PiB7XG4gICAgICAgIHNldHRpbmdzLnBhcmFtZXRlcnMuZGlzcGxheVR5cGUgPSBkaXNwbGF5VHlwZTtcbiAgICAgICAgc2V0dGluZ3MucGFyYW1ldGVycy5kYXNoYm9hcmROYW1lID0gbmFtZTtcblxuICAgICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBzZXR0aW5ncy5pZCxcbiAgICAgICAgICAgIHBhdGg6IHNldHRpbmdzLnBhdGgsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBzZXR0aW5ncy5wYXJhbWV0ZXJzXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHVybCA9IGAke2xvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L3N5c3RlbS9hcGkvdjEvdXNlci9kYXNoYm9hcmQvc2F2ZWA7XG4gICAgICAgIHBvc3REYXRhKHVybCwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBzZXR0aW5ncy5pZCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgc2V0SWQocmVzcG9uc2UpO1xuICAgICAgICAgICAgZGlzcGxheUFsZXJ0KCdTVUNDRVNTJywgJ0Rhc2hib2FyZCBzYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICAgICAgZGlzcGxheUFsZXJ0KCdFUlJPUicsIFV0aWxzLlNZU1RFTV9FUlJPUl9NRVNTQUdFKVxuICAgICAgICB9LCB0cnVlLCBkYXRhKTtcbiAgICB9O1xuXG4gICAgY29uc3QgZGlzcGxheUFsZXJ0ID0gKG1lc3NhZ2VUeXBlLCBtZXNzYWdlVGV4dCkgPT4ge1xuICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgIG1lc3NhZ2VUeXBlOiBtZXNzYWdlVHlwZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2VUZXh0XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGFwcGxpY2F0aW9uTWFuYWdlciwgJ19zeXNfZGFzaGJvYXJkJywgbWVzc2FnZSk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZURhc2hib2FyZCA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc2V0dGluZ3MpICYmICFVdGlscy5pc051bGwoc2V0dGluZ3MuaWQpKSB7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIub3BlbkNvbmZpcm1EaWFsb2coJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBkYXNoYm9hcmQ/JywgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IGAke2xvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L3N5c3RlbS9hcGkvdjEvdXNlci9kYXNoYm9hcmQvZGVsZXRlLyR7c2V0dGluZ3MuaWR9YDtcbiAgICAgICAgICAgICAgICAgICAgc2VuZFJlcXVlc3QodXJsLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vbkRlbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQYXBlciBzdHlsZT17e1xuICAgICAgICAgICAgbWluV2lkdGg6ICcyMDBweCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgICAgICAgfX1cbiAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2NvbCd9IHJlZj17cmVmfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30gc3R5bGU9e3toZWlnaHQ6ICc2NHB4J319PlxuICAgICAgICAgICAgICAgICAgICA8VW5jb250cm9sbGVkRHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25Ub2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMzJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzMycHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICc4cHggOHB4IDAgMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzMycHgnLCBoZWlnaHQ6ICczMnB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYSBmYS1lbGxpcHNpcy12IGZhLXhzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgc3R5bGU9e3twYWRkaW5nOiAnM3B4J319Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duVG9nZ2xlPnsnICd9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudSBjbGFzc05hbWU9XCJkcm9wZG93bi1uYXZiYXJcIiB0YWc9XCJ1bFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKkRpc2FibGUgdGhpcyBidXR0b24gaWYgaWQgaXMgYWxyZWFkeSBzYXZlZC4gQWZ0ZXIgY3JlYXRpbmcgZGFzaGJvYXJkIHByb3BlcnRpZXMgc3VjaCBhcyBmaWx0ZXJzLCB0aGlzIGJ1dHRvbiBtdXN0IHJlbWFpbiBlbmFibGVkIGF0IGFsbCB0aW1lcyovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2TGluayB0YWc9XCJsaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW0gY2xhc3NOYW1lPVwibmF2LWl0ZW1cIiBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXNoYm9hcmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSBkaXNhYmxlZD17IVV0aWxzLmlzTnVsbChpZCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J1NBVkUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9OYXZMaW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZMaW5rIHRhZz1cImxpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbSBjbGFzc05hbWU9XCJuYXYtaXRlbVwiIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlRGFzaGJvYXJkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gZGlzYWJsZWQ9e1V0aWxzLmlzTnVsbChpZCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J0RFTEVURSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bkl0ZW0+eycgJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTmF2TGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L1VuY29udHJvbGxlZERyb3Bkb3duPnsnICd9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30gc3R5bGU9e3twYWRkaW5nOiAnMTRweCAwIDAgMTJweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9e3tmb250U2l6ZTogJzI0cHgnfX0+e25hbWV9PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3Jvdyd9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICdjYWxjKDEwMCUgLSA2NHB4KScsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogJzhweCAwIDMycHggMzJweCdcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwYXRoKSAmJiAhVXRpbHMuaXNOdWxsKGRpc3BsYXlUeXBlKSAmJiBkaXNwbGF5VHlwZSAhPT0gJ1ZJRVcnICYmXG4gICAgICAgICAgICAgICAgICAgIDxvYmplY3QgZGF0YT17cGF0aH0gdHlwZT1cInRleHQvaHRtbFwiIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgfX0vPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwocGF0aCkgJiYgZGlzcGxheVR5cGUgIT09ICdWSUVXJyAmJlxuICAgICAgICAgICAgICAgICAgICA8cD5Mb2FkaW5nLi4uPC9wPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlUeXBlID09PSAnVklFVycgJiYgIVV0aWxzLmlzTnVsbCh2aWV3KSAmJlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7d2lkdGg6ICcxMDAlJywgaGVpZ2h0OiBcIjEwMCVcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUGFwZXI+XG4gICAgKTtcbn07XG5cbmNvbnN0IFdvcmtGbG93Q2FyZCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtzcCwgc2V0U3BdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW21pblcsIHNldE1pblddID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgcm91dGVBY3Rpb24gPSB7XG4gICAgICAgICdhY3Rpb25UeXBlJzogJ3JvdXRlJyxcbiAgICAgICAgJ3BhcmVudCc6IHRydWVcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA0MDApIHtcbiAgICAgICAgICAgICAgICBzZXRTcCgxNik7XG4gICAgICAgICAgICAgICAgc2V0TWluVygyODApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRTcCg0OCk7XG4gICAgICAgICAgICAgICAgc2V0TWluVygzMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICBVdGlscy5pc051bGwoc3ApIHx8IFV0aWxzLmlzTnVsbChtaW5XKSA/XG4gICAgICAgICAgICBudWxsIDpcbiAgICAgICAgICAgIDxQYXBlciBzdHlsZT17e1xuICAgICAgICAgICAgICAgIG1pbldpZHRoOiBgJHttaW5XfXB4YCxcbiAgICAgICAgICAgICAgICBtYXJnaW46IHByb3BzLm1hcmdpbixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxNTJweCdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnY29sJ30+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30gc3R5bGU9e3t3aWR0aDogJzcwJSd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBgMTZweCAke3NwfXB4IDE2cHggJHtzcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjU0KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JrIEl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBgMTZweCAke3NwfXB4IDQ4cHggJHtzcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcyMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogYDAgJHtzcH1weCAxNnB4ICR7c3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5pdGVtQ291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9IHN0eWxlPXt7bWFyZ2luVG9wOiAnNTBweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXsnY29udGFpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17J3ByaW1hcnknfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3BhcnNlRmxvYXQocHJvcHMuaXRlbUNvdW50KSA9PT0gMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlQWN0aW9uLnBhdGggPSBwcm9wcy5wYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3V0ZUFjdGlvbkhhbmRsZXIuZXhlY3V0ZShyb3V0ZUFjdGlvbiwgbnVsbCwgcHJvcHMudmlld1JlZiwgJ19zeXNfZGFzaGJvYXJkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L1BhcGVyPlxuICAgICk7XG59O1xuXG5jb25zdCBEYXNoYm9hcmQgPSBSZWFjdC5tZW1vKFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCBbdXNlckRhc2hib2FyZHNdID0gUmVhY3QudXNlU3RhdGUoXG4gICAgICAgICFVdGlscy5pc051bGwoYXBwbGljYXRpb25NYW5hZ2VyLmdldERhc2hib2FyZFNldHRpbmdzKCkudXNlckRhc2hib2FyZHMpID8gYXBwbGljYXRpb25NYW5hZ2VyLmdldERhc2hib2FyZFNldHRpbmdzKCkudXNlckRhc2hib2FyZHMgOiBbXSk7XG4gICAgY29uc3QgW3NldHRpbmdzXSA9IFJlYWN0LnVzZVN0YXRlKGFwcGxpY2F0aW9uTWFuYWdlci5nZXREYXNoYm9hcmRTZXR0aW5ncygpKTtcbiAgICBjb25zdCBbdGFza1N1bW1hcnksIHNldFRhc2tTdW1tYXJ5XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFttZW51SXRlbXMsIHNldE1lbnVJdGVtc10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbY2FyZENvbHMsIHNldENhcmRDb2xzXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtjb2x1bW5IZWlnaHRzLCBzZXRDb2x1bW5IZWlnaHRzXSA9IFJlYWN0LnVzZVN0YXRlKFtdKTtcbiAgICBsZXQgbnVtQ29scyA9IDI7XG5cbiAgICBjb25zdCBhcGkgPSB7XG4gICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgIHJldHVybiAnX3N5c19kYXNoYm9hcmQnO1xuICAgICAgICB9LFxuICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFthbGVydEJhckhhbmRsZV07XG4gICAgICAgIH0sXG4gICAgICAgIGdldENoaWxkOiAoaWQpID0+IHtcbiAgICAgICAgICAgIGlmIChpZCA9PT0gJ2Rhc2hib2FyZEFsZXJ0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbGVydEJhckhhbmRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlID0ge1xuICAgICAgICAnYXBpJzogYXBpXG4gICAgfTtcblxuICAgIGNvbnN0IGdldERhc2hib2FyZE1lbnUgPSAocGF0aCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGxldCBzZXJ2aWNlID0ge1xuICAgICAgICAgICAgICAgIHVybDogJy91aS9hcGkvdjEvbWVudS9nZXQnLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtZXRlclR5cGU6ICdRVUVSWV9QQVJBTUVURVInXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd2ZXJzaW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAxLjAsXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1ldGVyVHlwZTogJ1FVRVJZX1BBUkFNRVRFUidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaW52b2tlUmVzdChzZXJ2aWNlLCB7XG4gICAgICAgICAgICAgICAgICAgIGFwaToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGFzaGJvYXJkLW1lbnVzJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sICdkYXNoYm9hcmQtbWVudXMnLCAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0Lm1lbnVzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICAgICAgfSwgbnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3luYyBmdW5jdGlvbiBsb2FkTWVudXMoKSB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwobWVudUl0ZW1zKSAmJiAhVXRpbHMuaXNOdWxsKHNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlcykpIHtcbiAgICAgICAgICAgIGxldCBkYXNoYm9hcmRNZW51aXRlbXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5tb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZHVsZSA9IHNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChtb2R1bGUuZGFzaGJvYXJkTWVudSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1lbnVzID0gYXdhaXQgZ2V0RGFzaGJvYXJkTWVudShtb2R1bGUuZGFzaGJvYXJkTWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZW51cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtZW51cy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtZW51ID0gbWVudXNbal07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lbnUuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG1lbnUuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZE1lbnVpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRNZW51SXRlbXMoZGFzaGJvYXJkTWVudWl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNldHVwQ2FyZENvbHMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRvdGFsSXRlbXMgPSB1c2VyRGFzaGJvYXJkcy5sZW5ndGg7XG5cbiAgICAgICAgLy8gU3BlY2lhbCBjYXNlOiAxIG9yIDIgY2FyZHMg4oCUIGZ1bGwgaGVpZ2h0XG4gICAgICAgIGlmICh0b3RhbEl0ZW1zIDw9IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHMgPSBBcnJheS5mcm9tKHtsZW5ndGg6IHRvdGFsSXRlbXN9LCAoXywgaSkgPT4gW3VzZXJEYXNoYm9hcmRzW2ldXSk7XG4gICAgICAgICAgICBzZXRDYXJkQ29scyhjb2xzKTtcbiAgICAgICAgICAgIHNldENvbHVtbkhlaWdodHMoQXJyYXkuZnJvbSh7bGVuZ3RoOiB0b3RhbEl0ZW1zfSwgKCkgPT4gJzEwMCUnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEaXN0cmlidXRlIHJvdW5kLXJvYmluIGludG8gY29sdW1uc1xuICAgICAgICBjb25zdCBjb2xzID0gQXJyYXkuZnJvbSh7bGVuZ3RoOiBudW1Db2xzfSwgKCkgPT4gW10pO1xuICAgICAgICB1c2VyRGFzaGJvYXJkcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29sc1tpbmRleCAlIG51bUNvbHNdLnB1c2goaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRDYXJkQ29scyhjb2xzKTtcblxuICAgICAgICAvLyBEZXRlcm1pbmUgbWF4IGNhcmQgY291bnQgYWNyb3NzIGFsbCBjb2x1bW5zXG4gICAgICAgIGNvbnN0IG1heEl0ZW1zID0gTWF0aC5tYXgoLi4uY29scy5tYXAoY29sID0+IGNvbC5sZW5ndGgpKTtcbiAgICAgICAgY29uc3QgYmFzZUhlaWdodFBlckNhcmQgPSA0MDsgLy8gaW4gdmhcbiAgICAgICAgY29uc3QgdG90YWxUYXJnZXRIZWlnaHQgPSBtYXhJdGVtcyAqIGJhc2VIZWlnaHRQZXJDYXJkOyAvLyB0b3RhbCBoZWlnaHQgcGVyIGNvbHVtbiBpbiB2aFxuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0YXJnZXQgaGVpZ2h0IHBlciBjYXJkIGluIGVhY2ggY29sdW1uXG4gICAgICAgIGNvbnN0IGhlaWdodHMgPSBjb2xzLm1hcChjb2wgPT5cbiAgICAgICAgICAgIGNvbC5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgPyBgJHsodG90YWxUYXJnZXRIZWlnaHQgLyBjb2wubGVuZ3RoKS50b0ZpeGVkKDIpfXZoYFxuICAgICAgICAgICAgICAgIDogJzB2aCdcbiAgICAgICAgKTtcblxuICAgICAgICBzZXRDb2x1bW5IZWlnaHRzKGhlaWdodHMpO1xuICAgIH1cblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbCh0YXNrU3VtbWFyeSkpIHtcbiAgICAgICAgICAgICAgICBzZW5kUmVxdWVzdChgJHtsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpfS9icG0vYXBpL3YxL3N1bW1hcnlgLCAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGFza1N1bW1hcnkocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIDogU2hvdyBlcnJvciBtZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgIH0sIHRydWUsIHRydWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZW5kUmVxdWVzdChgJHtsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpfS9zeXN0ZW0vYXBpL3YxL3VzZXIvZGFzaGJvYXJkL2xpc3RgLCAoZGFzaGJvYXJkcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChkYXNoYm9hcmRzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkYXNoYm9hcmQgb2YgZGFzaGJvYXJkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXNoYm9hcmRzLnB1c2goZGFzaGJvYXJkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0dXBDYXJkQ29scygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIDogU2hvdyBlcnJvciBtZXNzYWdlXG4gICAgICAgICAgICAgICAgfSwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIGxvYWRNZW51cygpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc2V0dGluZ3MpICYmICFVdGlscy5pc051bGwodXNlckRhc2hib2FyZHMpICYmIFV0aWxzLmlzTnVsbChjYXJkQ29scykpIHtcbiAgICAgICAgICAgICAgICBzZXR1cENhcmRDb2xzKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5zZXREYXNoYm9hcmRWaWV3KHtoYW5kbGU6IGhhbmRsZX0pO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBrZXlDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXJEYXNoYm9hcmRWaWV3cygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgY29uc3QgYWRkRGFzaGJvYXJkQ2FyZCA9IChpdGVtKSA9PiB7XG4gICAgICAgIGxldCBwYXRoID0gaXRlbS5ldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnNbMF0uYWN0aW9uc1swXS5wYXRoO1xuICAgICAgICBsZXQgc2V0dGluZ3MgPSB7fTtcbiAgICAgICAgc2V0dGluZ3MucGF0aCA9IHBhdGg7XG4gICAgICAgIHNldHRpbmdzLnBhcmFtZXRlcnMgPSB7fTtcblxuICAgICAgICB1c2VyRGFzaGJvYXJkcy5wdXNoKHNldHRpbmdzKTtcbiAgICAgICAgc2V0dXBDYXJkQ29scygpO1xuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHJlZj17cmVmfSBzdHlsZT17e2hlaWdodDogJzMwMHB4J319PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoc2V0dGluZ3MpICYmXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5EYXNoYm9hcmQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVuY29udHJvbGxlZERyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duVG9nZ2xlIGNvbG9yPVwiZGVmYXVsdFwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBuYXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b24gYXJpYS1jb250cm9scz1cIm1lbnUtbGlzdC1ncm93XCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydBREQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93blRvZ2dsZT57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwobWVudUl0ZW1zKSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudSBjbGFzc05hbWU9XCJkcm9wZG93bi1uYXZiYXJcIiBlbmQgdGFnPVwidWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51SXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZMaW5rIHRhZz1cImxpXCIga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGREYXNoYm9hcmRDYXJkKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uYXR0cmlidXRlcy5sYWJlbH17JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duSXRlbT57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTmF2TGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1VuY29udHJvbGxlZERyb3Bkb3duPnsnICd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3ttYXhIZWlnaHQ6ICdjYWxjKDEwMGR2aCAtIDMycHggLSB2YXIoLS1oZWFkZXItaCkpJywgb3ZlcmZsb3dZOiAnYXV0byd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1k6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzAgNHB4IDAgMCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbGVydEJhciBjb25maWc9e3tpZDogJ2Rhc2hib2FyZEFsZXJ0J319IGhhbmRsZT17YWxlcnRCYXJIYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17J19zeXNfZGFzaGJvYXJkJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbCh0YXNrU3VtbWFyeSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfSBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6ICcxNjBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8V29ya0Zsb3dDYXJkIG1hcmdpbj17JzAgMCA4cHggOHB4J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9eydBc3NpZ25lZCB0byBNZSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Db3VudD17dGFza1N1bW1hcnkucGVyc29uYWxXb3JrSXRlbUNvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXsnL3dvcmtmbG93L3ZpZXdzL3BlcnNvbmFsLXdvcmstaXRlbXMuanNvbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdvcmtGbG93Q2FyZCBtYXJnaW49eycwIDAgOHB4IDhweCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXsnQXZhaWxhYmxlJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUNvdW50PXt0YXNrU3VtbWFyeS5ncm91cFdvcmtJdGVtQ291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9eycvd29ya2Zsb3cvdmlld3MvZ3JvdXAtd29yay1pdGVtcy5qc29uJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8V29ya0Zsb3dDYXJkIG1hcmdpbj17JzAgMCA4cHggOHB4J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9eydEdWUgVG9kYXknfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtQ291bnQ9e3Rhc2tTdW1tYXJ5LmR1ZVRvZGF5SXRlbUNvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXsnL3dvcmtmbG93L3ZpZXdzL2R1ZS10b2RheS13b3JrLWl0ZW1zLmpzb24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1g6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDBkdmggLSAxNThweCAtIDY0cHggLSB2YXIoLS1oZWFkZXItaCkpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogJ2NhbGMoMTAwZHZoIC0gMTU4cHggLSA2NHB4IC0gdmFyKC0taGVhZGVyLWgpKSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZENvbHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB1c2VyRGFzaGJvYXJkcy5sZW5ndGggPD0gMiA/ICcxMDAlJyA6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYXJkQ29scy5tYXAoKGNvbCwgY29sSW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2NvbEluZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXg6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA6ICcxMnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1MCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBjb2xJbmRleCAlIG51bUNvbHMgPyAnNHB4JyA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAoY2FyZENvbHMubGVuZ3RoID4gMSAmJiAhKGNvbEluZGV4ICUgbnVtQ29scykpID8gJzRweCcgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29sLm1hcCgoZGFzaGJvYXJkLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNvbHVtbkhlaWdodHNbY29sSW5kZXhdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkQ2FyZCBzZXR0aW5ncz17ZGFzaGJvYXJkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2NvbEluZGV4ICsgaW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25EZWxldGU9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGFzaGJvYXJkcy5zcGxpY2UodXNlckRhc2hib2FyZHMuaW5kZXhPZihkYXNoYm9hcmQpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR1cENhcmRDb2xzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn0pKTtcblxuZXhwb3J0IGRlZmF1bHQgRGFzaGJvYXJkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxtQkFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFB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
|
|
606
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0c3RyYXAiLCJfSWNvbiIsIl9JY29uQnV0dG9uIiwiX1BhcGVyIiwiX0J1dHRvbiIsIl9SZXN0VXRpbHMiLCJfUm91dGVBY3Rpb25IYW5kbGVyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9FdmVudCIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsIl9BbGVydEJhciIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX1ZpZXciLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJ0ZXh0IiwicmVzcG9uc2UiLCJrZXlDb3VudGVyIiwiYWxlcnRCYXJIYW5kbGUiLCJEYXNoYm9hcmRDYXJkIiwicHJvcHMiLCJwYXRoIiwic2V0UGF0aCIsIlJlYWN0IiwidXNlU3RhdGUiLCJuYW1lIiwic2V0TmFtZSIsImRpc3BsYXlUeXBlIiwic2V0RGlzcGxheVR5cGUiLCJ2aWV3Iiwic2V0dmlldyIsInNldHRpbmdzIiwiaWQiLCJzZXRJZCIsImNvbnRlbnQiLCJzZXRDb250ZW50IiwicmVmIiwiY3JlYXRlUmVmIiwidXNlRWZmZWN0IiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwiaGFuZGxlIiwiYXBpIiwibG9hZGVkIiwic2VuZFJlcXVlc3QiLCJkYXRhIiwiZGFzaGJvYXJkVmlldyIsImNvbmZpZyIsInBhcmVudCIsInBvcFVwIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiYWRkRGFzaGJvYXJkVmlldyIsImVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiVmlldyIsImtleSIsInBhcmFtZXRlcnMiLCJmZXRjaENvbmZpZyIsIm1ldGhvZCIsImhlYWRlcnMiLCJ0cmFja1Byb21pc2UiLCJmZXRjaCIsImVuY29kZVVSSSIsInRoZW4iLCJjb25zb2xlIiwibG9nIiwiY2F0Y2giLCJhbGVydCIsIm1lc3NhZ2UiLCJlcnJvciIsImxvYWQiLCJ1cmwiLCJnZXRDb250ZXh0Um9vdCIsImdldFVJQ29uZmlnUGF0aCIsImRlZmF1bHREaXNwbGF5VHlwZSIsIlV0aWxzIiwiaXNOdWxsIiwiZGVmYXVsdE5hbWUiLCJkYXNoYm9hcmROYW1lIiwiZGVmYXVsdERhc2hib2FyZE5hbWUiLCJjb250ZW50UGF0aCIsImNvbmNhdCIsInRvTG93ZXJDYXNlIiwic2F2ZURhc2hib2FyZCIsInBvc3REYXRhIiwiZGlzcGxheUFsZXJ0IiwiU1lTVEVNX0VSUk9SX01FU1NBR0UiLCJtZXNzYWdlVHlwZSIsIm1lc3NhZ2VUZXh0IiwiZXZlbnQiLCJFdmVudCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsImRlbGV0ZURhc2hib2FyZCIsIm9wZW5Db25maXJtRGlhbG9nIiwicmVzdWx0Iiwib25EZWxldGUiLCJzdHlsZSIsIm1pbldpZHRoIiwib3ZlcmZsb3ciLCJjbGFzc05hbWUiLCJoZWlnaHQiLCJVbmNvbnRyb2xsZWREcm9wZG93biIsIkRyb3Bkb3duVG9nZ2xlIiwiY29sb3IiLCJ3aWR0aCIsIm1hcmdpbiIsIm5hdiIsInBhZGRpbmciLCJEcm9wZG93bk1lbnUiLCJ0YWciLCJOYXZMaW5rIiwiRHJvcGRvd25JdGVtIiwib25DbGljayIsImRpc2FibGVkIiwiZm9udFNpemUiLCJ0eXBlIiwiV29ya0Zsb3dDYXJkIiwic3AiLCJzZXRTcCIsIm1pblciLCJzZXRNaW5XIiwicm91dGVBY3Rpb24iLCJpbm5lcldpZHRoIiwidGl0bGUiLCJpdGVtQ291bnQiLCJtYXJnaW5Ub3AiLCJ2YXJpYW50Iiwic2l6ZSIsInBhcnNlRmxvYXQiLCJSb3V0ZUFjdGlvbkhhbmRsZXIiLCJleGVjdXRlIiwidmlld1JlZiIsIkRhc2hib2FyZCIsIm1lbW8iLCJmb3J3YXJkUmVmIiwidXNlckRhc2hib2FyZHMiLCJnZXREYXNoYm9hcmRTZXR0aW5ncyIsInRhc2tTdW1tYXJ5Iiwic2V0VGFza1N1bW1hcnkiLCJtZW51SXRlbXMiLCJzZXRNZW51SXRlbXMiLCJjYXJkQ29scyIsInNldENhcmRDb2xzIiwiY29sdW1uSGVpZ2h0cyIsInNldENvbHVtbkhlaWdodHMiLCJudW1Db2xzIiwiZ2V0Q2hpbGRyZW4iLCJnZXRDaGlsZCIsImdldERhc2hib2FyZE1lbnUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNlcnZpY2UiLCJ2YWx1ZSIsImh0dHBQYXJhbWV0ZXJUeXBlIiwiY29udGVudFR5cGUiLCJpbnZva2VSZXN0IiwibWVudXMiLCJsb2FkTWVudXMiLCJzeXN0ZW1Qcm9maWxlRHRvIiwibW9kdWxlcyIsImRhc2hib2FyZE1lbnVpdGVtcyIsImxlbmd0aCIsIm1vZHVsZSIsImRhc2hib2FyZE1lbnUiLCJqIiwibWVudSIsIml0ZW1zIiwiaXRlbSIsInB1c2giLCJzZXR1cENhcmRDb2xzIiwidG90YWxJdGVtcyIsImNvbHMiLCJBcnJheSIsImZyb20iLCJfIiwiZm9yRWFjaCIsImluZGV4IiwibWF4SXRlbXMiLCJNYXRoIiwibWF4IiwibWFwIiwiY29sIiwiYmFzZUhlaWdodFBlckNhcmQiLCJ0b3RhbFRhcmdldEhlaWdodCIsImhlaWdodHMiLCJ0b0ZpeGVkIiwiZGFzaGJvYXJkcyIsImRhc2hib2FyZCIsInNldERhc2hib2FyZFZpZXciLCJjbGVhckRhc2hib2FyZFZpZXdzIiwiYWRkRGFzaGJvYXJkQ2FyZCIsImV2ZW50SGFuZGxpbmdDb25maWciLCJzdWJzY3JpcHRpb25zIiwiYWN0aW9ucyIsIkZyYWdtZW50IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImdhcCIsImVuZCIsImF0dHJpYnV0ZXMiLCJsYWJlbCIsIm1heEhlaWdodCIsIm92ZXJmbG93WSIsIm92ZXJmbG93WCIsInZpZXdJZCIsInBhZGRpbmdSaWdodCIsIm1pbkhlaWdodCIsInBlcnNvbmFsV29ya0l0ZW1Db3VudCIsImdyb3VwV29ya0l0ZW1Db3VudCIsImR1ZVRvZGF5SXRlbUNvdW50IiwiY29sSW5kZXgiLCJmbGV4IiwiYm94U2l6aW5nIiwiZmxleERpcmVjdGlvbiIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImJvcmRlclJhZGl1cyIsInNwbGljZSIsImluZGV4T2YiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3ZpZXcvRGFzaGJvYXJkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QsIHt1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQge0Ryb3Bkb3duSXRlbSwgRHJvcGRvd25NZW51LCBEcm9wZG93blRvZ2dsZSwgTmF2TGluaywgVW5jb250cm9sbGVkRHJvcGRvd259IGZyb20gJ3JlYWN0c3RyYXAnO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vY29tcG9uZW50cy9JY29uJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9QYXBlcic7XG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQnV0dG9uJztcbmltcG9ydCB7aW52b2tlUmVzdCwgcG9zdERhdGEsIHNlbmRSZXF1ZXN0fSBmcm9tICcuLi9SZXN0VXRpbHMnO1xuaW1wb3J0IFJvdXRlQWN0aW9uSGFuZGxlciBmcm9tICcuLi9ldmVudC9Sb3V0ZUFjdGlvbkhhbmRsZXInO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQgQWxlcnRCYXIgZnJvbSAnLi4vY29tcG9uZW50cy9BbGVydEJhcic7XG5pbXBvcnQge3RyYWNrUHJvbWlzZX0gZnJvbSBcInJlYWN0LXByb21pc2UtdHJhY2tlclwiO1xuaW1wb3J0IHtWaWV3fSBmcm9tIFwiLi4vY29tcG9uZW50cy9sYXlvdXQvVmlld1wiO1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5jb25zdCB0ZXh0ID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmxldCBrZXlDb3VudGVyID0gMDtcblxuY29uc3QgYWxlcnRCYXJIYW5kbGUgPSB7fTtcbmNvbnN0IERhc2hib2FyZENhcmQgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBbcGF0aCwgc2V0UGF0aF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbbmFtZSwgc2V0TmFtZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbZGlzcGxheVR5cGUsIHNldERpc3BsYXlUeXBlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFt2aWV3LCBzZXR2aWV3XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IHtzZXR0aW5nc30gPSBwcm9wcztcbiAgICBjb25zdCBbaWQsIHNldElkXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLnNldHRpbmdzLmlkKTtcbiAgICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbcmVmXSA9IFJlYWN0LnVzZVN0YXRlKFJlYWN0LmNyZWF0ZVJlZigpKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhY2Nlc3NUb2tlbicpO1xuICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2lkVG9rZW4nKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IHtcbiAgICAgICAgICAgICAgICBhcGk6IHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkYXNoYm9hcmQtbWVudXMnO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBsb2FkZWQoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChwYXRoICYmIGRpc3BsYXlUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRpc3BsYXlUeXBlID09PSAnVklFVycpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VuZFJlcXVlc3QocGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VuZFJlcXVlc3QgYXV0by1kZWNvZGVzIHRoZSB7X2NkdWlfen0gd2lyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyYXAgZm9yIC91aS9hcGkvdiovIFVSTHMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5pZCA9IGRhdGEuaWQgKyBcIl9cIiArIGtleUNvdW50ZXIrKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGFzaGJvYXJkVmlldyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZFZpZXcuY29uZmlnID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRWaWV3LnBhcmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZFZpZXcucG9wVXAgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRWaWV3LndpbmRvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZFZpZXcuY29uZmlnLndpbmRvdyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZFZpZXcuaGFuZGxlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkRGFzaGJvYXJkVmlldyhkYXNoYm9hcmRWaWV3LCBwYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IDxWaWV3IGtleT17ZGF0YS5pZCArIFwiX1wiICsga2V5Q291bnRlcn0gY29uZmlnPXtkYXRhfSBwYXJhbWV0ZXJzPXtbXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2Rhc2hib2FyZFZpZXcuaGFuZGxlfS8+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHZpZXcoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAndGV4dC9odG1sJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ3RleHQvaHRtbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW5cblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoKGVuY29kZVVSSShwYXRoKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4odGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNPTlRFTlQgOiBcIiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnRlbnQoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoZS5tZXNzYWdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbcGF0aCwgZGlzcGxheVR5cGVdKTtcblxuICAgIGZ1bmN0aW9uIGxvYWQoKSB7XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgLy8gVE9ETzogTWFrZSB0aGUgYmFzZSBVUkwgZHluYW1pY1xuICAgICAgICAgICAgbGV0IHVybCA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KClcbiAgICAgICAgICAgICAgICArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVSUNvbmZpZ1BhdGgoKSArICcvZGFzaGJvYXJkL2dldD92ZXJzaW9uPTEuMCZpZD0nICsgc2V0dGluZ3MucGF0aDtcbiAgICAgICAgICAgIHNlbmRSZXF1ZXN0KHVybCxcbiAgICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBzZW5kUmVxdWVzdCBhdXRvLWRlY29kZXMgdGhlIHtfY2R1aV96fSB3aXJlIHdyYXAuXG4gICAgICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0RGlzcGxheVR5cGUgPSAhVXRpbHMuaXNOdWxsKHNldHRpbmdzLnBhcmFtZXRlcnMuZGlzcGxheVR5cGUpID8gc2V0dGluZ3MucGFyYW1ldGVycy5kaXNwbGF5VHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBkYXRhLmRlZmF1bHREaXNwbGF5VHlwZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGRlZmF1bHREaXNwbGF5VHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCBkZXRlcm1pbmUgZGlzcGxheSB0eXBlIGZvciBkYXNoYm9hcmQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlUeXBlKGRlZmF1bHREaXNwbGF5VHlwZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGRlZmF1bHROYW1lID0gIVV0aWxzLmlzTnVsbChzZXR0aW5ncy5wYXJhbWV0ZXJzLmRhc2hib2FyZE5hbWUpID8gc2V0dGluZ3MucGFyYW1ldGVycy5kYXNoYm9hcmROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGRhdGEuZGVmYXVsdERhc2hib2FyZE5hbWU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChkZWZhdWx0RGlzcGxheVR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgZGV0ZXJtaW5lIGEgZGVmYXVsdCBuYW1lIGZvciBkYXNoYm9hcmQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldE5hbWUoZGVmYXVsdE5hbWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzVG9rZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2lkVG9rZW4nKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdERpc3BsYXlUeXBlID09PSAnVklFVycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVJQ29uZmlnUGF0aCgpICsgJy92aWV3L2dldD92ZXJzaW9uPTEuMCZpZD0nICsgZGF0YS5jb250ZW50UGF0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhdGgodXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldERpc3BsYXlUeXBlKGRlZmF1bHREaXNwbGF5VHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRQYXRoKGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVSUNvbmZpZ1BhdGgoKSArICcvaHRtbC9nZXQ/dmVyc2lvbj0xLjAmaWQ9J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGF0YS5jb250ZW50UGF0aCArIGAtJHtkZWZhdWx0RGlzcGxheVR5cGUudG9Mb3dlckNhc2UoKX0uaHRtbCZhY2Nlc3NfdG9rZW49JHthY2Nlc3NUb2tlbn0maWRUb2tlbj0ke2lkVG9rZW59YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBsb2FkKCk7XG4gICAgICAgIH0sIFtdXG4gICAgKTtcblxuICAgIGNvbnN0IHNhdmVEYXNoYm9hcmQgPSAoKSA9PiB7XG4gICAgICAgIHNldHRpbmdzLnBhcmFtZXRlcnMuZGlzcGxheVR5cGUgPSBkaXNwbGF5VHlwZTtcbiAgICAgICAgc2V0dGluZ3MucGFyYW1ldGVycy5kYXNoYm9hcmROYW1lID0gbmFtZTtcblxuICAgICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBzZXR0aW5ncy5pZCxcbiAgICAgICAgICAgIHBhdGg6IHNldHRpbmdzLnBhdGgsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBzZXR0aW5ncy5wYXJhbWV0ZXJzXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHVybCA9IGAke2xvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L3N5c3RlbS9hcGkvdjEvdXNlci9kYXNoYm9hcmQvc2F2ZWA7XG4gICAgICAgIHBvc3REYXRhKHVybCwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBzZXR0aW5ncy5pZCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgc2V0SWQocmVzcG9uc2UpO1xuICAgICAgICAgICAgZGlzcGxheUFsZXJ0KCdTVUNDRVNTJywgJ0Rhc2hib2FyZCBzYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICAgICAgZGlzcGxheUFsZXJ0KCdFUlJPUicsIFV0aWxzLlNZU1RFTV9FUlJPUl9NRVNTQUdFKVxuICAgICAgICB9LCB0cnVlLCBkYXRhKTtcbiAgICB9O1xuXG4gICAgY29uc3QgZGlzcGxheUFsZXJ0ID0gKG1lc3NhZ2VUeXBlLCBtZXNzYWdlVGV4dCkgPT4ge1xuICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgIG1lc3NhZ2VUeXBlOiBtZXNzYWdlVHlwZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2VUZXh0XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGFwcGxpY2F0aW9uTWFuYWdlciwgJ19zeXNfZGFzaGJvYXJkJywgbWVzc2FnZSk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZURhc2hib2FyZCA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc2V0dGluZ3MpICYmICFVdGlscy5pc051bGwoc2V0dGluZ3MuaWQpKSB7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIub3BlbkNvbmZpcm1EaWFsb2coJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBkYXNoYm9hcmQ/JywgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IGAke2xvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L3N5c3RlbS9hcGkvdjEvdXNlci9kYXNoYm9hcmQvZGVsZXRlLyR7c2V0dGluZ3MuaWR9YDtcbiAgICAgICAgICAgICAgICAgICAgc2VuZFJlcXVlc3QodXJsLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vbkRlbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQYXBlciBzdHlsZT17e1xuICAgICAgICAgICAgbWluV2lkdGg6ICcyMDBweCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgICAgICAgfX1cbiAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2NvbCd9IHJlZj17cmVmfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30gc3R5bGU9e3toZWlnaHQ6ICc2NHB4J319PlxuICAgICAgICAgICAgICAgICAgICA8VW5jb250cm9sbGVkRHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25Ub2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMzJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzMycHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46ICc4cHggOHB4IDAgMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzMycHgnLCBoZWlnaHQ6ICczMnB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYSBmYS1lbGxpcHNpcy12IGZhLXhzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgc3R5bGU9e3twYWRkaW5nOiAnM3B4J319Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duVG9nZ2xlPnsnICd9XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudSBjbGFzc05hbWU9XCJkcm9wZG93bi1uYXZiYXJcIiB0YWc9XCJ1bFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKkRpc2FibGUgdGhpcyBidXR0b24gaWYgaWQgaXMgYWxyZWFkeSBzYXZlZC4gQWZ0ZXIgY3JlYXRpbmcgZGFzaGJvYXJkIHByb3BlcnRpZXMgc3VjaCBhcyBmaWx0ZXJzLCB0aGlzIGJ1dHRvbiBtdXN0IHJlbWFpbiBlbmFibGVkIGF0IGFsbCB0aW1lcyovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TmF2TGluayB0YWc9XCJsaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW0gY2xhc3NOYW1lPVwibmF2LWl0ZW1cIiBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXNoYm9hcmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSBkaXNhYmxlZD17IVV0aWxzLmlzTnVsbChpZCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J1NBVkUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9OYXZMaW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZMaW5rIHRhZz1cImxpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duSXRlbSBjbGFzc05hbWU9XCJuYXYtaXRlbVwiIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlRGFzaGJvYXJkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gZGlzYWJsZWQ9e1V0aWxzLmlzTnVsbChpZCl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J0RFTEVURSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bkl0ZW0+eycgJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTmF2TGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L1VuY29udHJvbGxlZERyb3Bkb3duPnsnICd9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30gc3R5bGU9e3twYWRkaW5nOiAnMTRweCAwIDAgMTJweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9e3tmb250U2l6ZTogJzI0cHgnfX0+e25hbWV9PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3Jvdyd9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICdjYWxjKDEwMCUgLSA2NHB4KScsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogJzhweCAwIDMycHggMzJweCdcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwYXRoKSAmJiAhVXRpbHMuaXNOdWxsKGRpc3BsYXlUeXBlKSAmJiBkaXNwbGF5VHlwZSAhPT0gJ1ZJRVcnICYmXG4gICAgICAgICAgICAgICAgICAgIDxvYmplY3QgZGF0YT17cGF0aH0gdHlwZT1cInRleHQvaHRtbFwiIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgfX0vPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwocGF0aCkgJiYgZGlzcGxheVR5cGUgIT09ICdWSUVXJyAmJlxuICAgICAgICAgICAgICAgICAgICA8cD5Mb2FkaW5nLi4uPC9wPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlUeXBlID09PSAnVklFVycgJiYgIVV0aWxzLmlzTnVsbCh2aWV3KSAmJlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7d2lkdGg6ICcxMDAlJywgaGVpZ2h0OiBcIjEwMCVcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUGFwZXI+XG4gICAgKTtcbn07XG5cbmNvbnN0IFdvcmtGbG93Q2FyZCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtzcCwgc2V0U3BdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW21pblcsIHNldE1pblddID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgcm91dGVBY3Rpb24gPSB7XG4gICAgICAgICdhY3Rpb25UeXBlJzogJ3JvdXRlJyxcbiAgICAgICAgJ3BhcmVudCc6IHRydWVcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA0MDApIHtcbiAgICAgICAgICAgICAgICBzZXRTcCgxNik7XG4gICAgICAgICAgICAgICAgc2V0TWluVygyODApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRTcCg0OCk7XG4gICAgICAgICAgICAgICAgc2V0TWluVygzMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICBVdGlscy5pc051bGwoc3ApIHx8IFV0aWxzLmlzTnVsbChtaW5XKSA/XG4gICAgICAgICAgICBudWxsIDpcbiAgICAgICAgICAgIDxQYXBlciBzdHlsZT17e1xuICAgICAgICAgICAgICAgIG1pbldpZHRoOiBgJHttaW5XfXB4YCxcbiAgICAgICAgICAgICAgICBtYXJnaW46IHByb3BzLm1hcmdpbixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxNTJweCdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnY29sJ30+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30gc3R5bGU9e3t3aWR0aDogJzcwJSd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBgMTZweCAke3NwfXB4IDE2cHggJHtzcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjU0KSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JrIEl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBgMTZweCAke3NwfXB4IDQ4cHggJHtzcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcyMHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogYDAgJHtzcH1weCAxNnB4ICR7c3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wcy5pdGVtQ291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9IHN0eWxlPXt7bWFyZ2luVG9wOiAnNTBweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXsnY29udGFpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17J3ByaW1hcnknfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3BhcnNlRmxvYXQocHJvcHMuaXRlbUNvdW50KSA9PT0gMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlQWN0aW9uLnBhdGggPSBwcm9wcy5wYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb3V0ZUFjdGlvbkhhbmRsZXIuZXhlY3V0ZShyb3V0ZUFjdGlvbiwgbnVsbCwgcHJvcHMudmlld1JlZiwgJ19zeXNfZGFzaGJvYXJkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L1BhcGVyPlxuICAgICk7XG59O1xuXG5jb25zdCBEYXNoYm9hcmQgPSBSZWFjdC5tZW1vKFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCBbdXNlckRhc2hib2FyZHNdID0gUmVhY3QudXNlU3RhdGUoXG4gICAgICAgICFVdGlscy5pc051bGwoYXBwbGljYXRpb25NYW5hZ2VyLmdldERhc2hib2FyZFNldHRpbmdzKCkudXNlckRhc2hib2FyZHMpID8gYXBwbGljYXRpb25NYW5hZ2VyLmdldERhc2hib2FyZFNldHRpbmdzKCkudXNlckRhc2hib2FyZHMgOiBbXSk7XG4gICAgY29uc3QgW3NldHRpbmdzXSA9IFJlYWN0LnVzZVN0YXRlKGFwcGxpY2F0aW9uTWFuYWdlci5nZXREYXNoYm9hcmRTZXR0aW5ncygpKTtcbiAgICBjb25zdCBbdGFza1N1bW1hcnksIHNldFRhc2tTdW1tYXJ5XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFttZW51SXRlbXMsIHNldE1lbnVJdGVtc10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbY2FyZENvbHMsIHNldENhcmRDb2xzXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtjb2x1bW5IZWlnaHRzLCBzZXRDb2x1bW5IZWlnaHRzXSA9IFJlYWN0LnVzZVN0YXRlKFtdKTtcbiAgICBsZXQgbnVtQ29scyA9IDI7XG5cbiAgICBjb25zdCBhcGkgPSB7XG4gICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgIHJldHVybiAnX3N5c19kYXNoYm9hcmQnO1xuICAgICAgICB9LFxuICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFthbGVydEJhckhhbmRsZV07XG4gICAgICAgIH0sXG4gICAgICAgIGdldENoaWxkOiAoaWQpID0+IHtcbiAgICAgICAgICAgIGlmIChpZCA9PT0gJ2Rhc2hib2FyZEFsZXJ0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbGVydEJhckhhbmRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlID0ge1xuICAgICAgICAnYXBpJzogYXBpXG4gICAgfTtcblxuICAgIGNvbnN0IGdldERhc2hib2FyZE1lbnUgPSAocGF0aCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGxldCBzZXJ2aWNlID0ge1xuICAgICAgICAgICAgICAgIHVybDogJy91aS9hcGkvdjEvbWVudS9nZXQnLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtZXRlclR5cGU6ICdRVUVSWV9QQVJBTUVURVInXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd2ZXJzaW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAxLjAsXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1ldGVyVHlwZTogJ1FVRVJZX1BBUkFNRVRFUidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaW52b2tlUmVzdChzZXJ2aWNlLCB7XG4gICAgICAgICAgICAgICAgICAgIGFwaToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGFzaGJvYXJkLW1lbnVzJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sICdkYXNoYm9hcmQtbWVudXMnLCAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0Lm1lbnVzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICAgICAgfSwgbnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBhc3luYyBmdW5jdGlvbiBsb2FkTWVudXMoKSB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwobWVudUl0ZW1zKSAmJiAhVXRpbHMuaXNOdWxsKHNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlcykpIHtcbiAgICAgICAgICAgIGxldCBkYXNoYm9hcmRNZW51aXRlbXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5tb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZHVsZSA9IHNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChtb2R1bGUuZGFzaGJvYXJkTWVudSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1lbnVzID0gYXdhaXQgZ2V0RGFzaGJvYXJkTWVudShtb2R1bGUuZGFzaGJvYXJkTWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZW51cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtZW51cy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtZW51ID0gbWVudXNbal07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lbnUuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG1lbnUuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZE1lbnVpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRNZW51SXRlbXMoZGFzaGJvYXJkTWVudWl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNldHVwQ2FyZENvbHMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRvdGFsSXRlbXMgPSB1c2VyRGFzaGJvYXJkcy5sZW5ndGg7XG5cbiAgICAgICAgLy8gU3BlY2lhbCBjYXNlOiAxIG9yIDIgY2FyZHMg4oCUIGZ1bGwgaGVpZ2h0XG4gICAgICAgIGlmICh0b3RhbEl0ZW1zIDw9IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHMgPSBBcnJheS5mcm9tKHtsZW5ndGg6IHRvdGFsSXRlbXN9LCAoXywgaSkgPT4gW3VzZXJEYXNoYm9hcmRzW2ldXSk7XG4gICAgICAgICAgICBzZXRDYXJkQ29scyhjb2xzKTtcbiAgICAgICAgICAgIHNldENvbHVtbkhlaWdodHMoQXJyYXkuZnJvbSh7bGVuZ3RoOiB0b3RhbEl0ZW1zfSwgKCkgPT4gJzEwMCUnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEaXN0cmlidXRlIHJvdW5kLXJvYmluIGludG8gY29sdW1uc1xuICAgICAgICBjb25zdCBjb2xzID0gQXJyYXkuZnJvbSh7bGVuZ3RoOiBudW1Db2xzfSwgKCkgPT4gW10pO1xuICAgICAgICB1c2VyRGFzaGJvYXJkcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29sc1tpbmRleCAlIG51bUNvbHNdLnB1c2goaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRDYXJkQ29scyhjb2xzKTtcblxuICAgICAgICAvLyBEZXRlcm1pbmUgbWF4IGNhcmQgY291bnQgYWNyb3NzIGFsbCBjb2x1bW5zXG4gICAgICAgIGNvbnN0IG1heEl0ZW1zID0gTWF0aC5tYXgoLi4uY29scy5tYXAoY29sID0+IGNvbC5sZW5ndGgpKTtcbiAgICAgICAgY29uc3QgYmFzZUhlaWdodFBlckNhcmQgPSA0MDsgLy8gaW4gdmhcbiAgICAgICAgY29uc3QgdG90YWxUYXJnZXRIZWlnaHQgPSBtYXhJdGVtcyAqIGJhc2VIZWlnaHRQZXJDYXJkOyAvLyB0b3RhbCBoZWlnaHQgcGVyIGNvbHVtbiBpbiB2aFxuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0YXJnZXQgaGVpZ2h0IHBlciBjYXJkIGluIGVhY2ggY29sdW1uXG4gICAgICAgIGNvbnN0IGhlaWdodHMgPSBjb2xzLm1hcChjb2wgPT5cbiAgICAgICAgICAgIGNvbC5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgPyBgJHsodG90YWxUYXJnZXRIZWlnaHQgLyBjb2wubGVuZ3RoKS50b0ZpeGVkKDIpfXZoYFxuICAgICAgICAgICAgICAgIDogJzB2aCdcbiAgICAgICAgKTtcblxuICAgICAgICBzZXRDb2x1bW5IZWlnaHRzKGhlaWdodHMpO1xuICAgIH1cblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbCh0YXNrU3VtbWFyeSkpIHtcbiAgICAgICAgICAgICAgICBzZW5kUmVxdWVzdChgJHtsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpfS9icG0vYXBpL3YxL3N1bW1hcnlgLCAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGFza1N1bW1hcnkocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIDogU2hvdyBlcnJvciBtZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgIH0sIHRydWUsIHRydWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZW5kUmVxdWVzdChgJHtsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpfS9zeXN0ZW0vYXBpL3YxL3VzZXIvZGFzaGJvYXJkL2xpc3RgLCAoZGFzaGJvYXJkcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChkYXNoYm9hcmRzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkYXNoYm9hcmQgb2YgZGFzaGJvYXJkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJEYXNoYm9hcmRzLnB1c2goZGFzaGJvYXJkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0dXBDYXJkQ29scygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIDogU2hvdyBlcnJvciBtZXNzYWdlXG4gICAgICAgICAgICAgICAgfSwgdHJ1ZSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIGxvYWRNZW51cygpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc2V0dGluZ3MpICYmICFVdGlscy5pc051bGwodXNlckRhc2hib2FyZHMpICYmIFV0aWxzLmlzTnVsbChjYXJkQ29scykpIHtcbiAgICAgICAgICAgICAgICBzZXR1cENhcmRDb2xzKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5zZXREYXNoYm9hcmRWaWV3KHtoYW5kbGU6IGhhbmRsZX0pO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBrZXlDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXJEYXNoYm9hcmRWaWV3cygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgY29uc3QgYWRkRGFzaGJvYXJkQ2FyZCA9IChpdGVtKSA9PiB7XG4gICAgICAgIGxldCBwYXRoID0gaXRlbS5ldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnNbMF0uYWN0aW9uc1swXS5wYXRoO1xuICAgICAgICBsZXQgc2V0dGluZ3MgPSB7fTtcbiAgICAgICAgc2V0dGluZ3MucGF0aCA9IHBhdGg7XG4gICAgICAgIHNldHRpbmdzLnBhcmFtZXRlcnMgPSB7fTtcblxuICAgICAgICB1c2VyRGFzaGJvYXJkcy5wdXNoKHNldHRpbmdzKTtcbiAgICAgICAgc2V0dXBDYXJkQ29scygpO1xuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHJlZj17cmVmfSBzdHlsZT17e2hlaWdodDogJzMwMHB4J319PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoc2V0dGluZ3MpICYmXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5EYXNoYm9hcmQ8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVuY29udHJvbGxlZERyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duVG9nZ2xlIGNvbG9yPVwiZGVmYXVsdFwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBuYXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b24gYXJpYS1jb250cm9scz1cIm1lbnUtbGlzdC1ncm93XCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydBREQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93blRvZ2dsZT57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwobWVudUl0ZW1zKSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudSBjbGFzc05hbWU9XCJkcm9wZG93bi1uYXZiYXJcIiBlbmQgdGFnPVwidWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51SXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZMaW5rIHRhZz1cImxpXCIga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5hdi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGREYXNoYm9hcmRDYXJkKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uYXR0cmlidXRlcy5sYWJlbH17JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duSXRlbT57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTmF2TGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1VuY29udHJvbGxlZERyb3Bkb3duPnsnICd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3ttYXhIZWlnaHQ6ICdjYWxjKDEwMGR2aCAtIDMycHggLSB2YXIoLS1oZWFkZXItaCkpJywgb3ZlcmZsb3dZOiAnYXV0byd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd1k6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzAnXG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnRCYXIgY29uZmlnPXt7aWQ6ICdkYXNoYm9hcmRBbGVydCd9fSBoYW5kbGU9e2FsZXJ0QmFySGFuZGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9eydfc3lzX2Rhc2hib2FyZCd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwodGFza1N1bW1hcnkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdSaWdodDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluSGVpZ2h0OiAnMTYwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdvcmtGbG93Q2FyZCBtYXJnaW49eycwIDAgOHB4IDhweCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXsnQXNzaWduZWQgdG8gTWUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtQ291bnQ9e3Rhc2tTdW1tYXJ5LnBlcnNvbmFsV29ya0l0ZW1Db3VudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD17Jy93b3JrZmxvdy92aWV3cy9wZXJzb25hbC13b3JrLWl0ZW1zLmpzb24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxXb3JrRmxvd0NhcmQgbWFyZ2luPXsnMCAwIDhweCA4cHgnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17J0F2YWlsYWJsZSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Db3VudD17dGFza1N1bW1hcnkuZ3JvdXBXb3JrSXRlbUNvdW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXsnL3dvcmtmbG93L3ZpZXdzL2dyb3VwLXdvcmstaXRlbXMuanNvbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdvcmtGbG93Q2FyZCBtYXJnaW49eycwIDAgOHB4IDhweCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXsnRHVlIFRvZGF5J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUNvdW50PXt0YXNrU3VtbWFyeS5kdWVUb2RheUl0ZW1Db3VudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD17Jy93b3JrZmxvdy92aWV3cy9kdWUtdG9kYXktd29yay1pdGVtcy5qc29uJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dYOiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJ2NhbGMoMTAwZHZoIC0gMTU4cHggLSA2NHB4IC0gdmFyKC0taGVhZGVyLWgpKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6ICdjYWxjKDEwMGR2aCAtIDE1OHB4IC0gNjRweCAtIHZhcigtLWhlYWRlci1oKSknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmRDb2xzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogdXNlckRhc2hib2FyZHMubGVuZ3RoIDw9IDIgPyAnMTAwJScgOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FyZENvbHMubWFwKChjb2wsIGNvbEluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtjb2xJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNTAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogY29sSW5kZXggJSBudW1Db2xzID8gJzRweCcgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogKGNhcmRDb2xzLmxlbmd0aCA+IDEgJiYgIShjb2xJbmRleCAlIG51bUNvbHMpKSA/ICc0cHgnIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NvbC5tYXAoKGRhc2hib2FyZCwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBjb2x1bW5IZWlnaHRzW2NvbEluZGV4XSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZENhcmQgc2V0dGluZ3M9e2Rhc2hib2FyZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtjb2xJbmRleCArIGluZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRGVsZXRlPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRhc2hib2FyZHMuc3BsaWNlKHVzZXJEYXNoYm9hcmRzLmluZGV4T2YoZGFzaGJvYXJkKSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dXBDYXJkQ29scygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KSk7XG5cbmV4cG9ydCBkZWZhdWx0IERhc2hib2FyZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsbUJBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLG1CQUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agilemotion/oui-react-js",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.19",
|
|
4
4
|
"description": "AgileMotion React UI Component Library - A comprehensive collection of dashboard components, forms, media controls, and more",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"linkifyjs": "^4.1.3",
|
|
88
88
|
"mammoth": "^1.8.0",
|
|
89
89
|
"material-ui": "^0.20.2",
|
|
90
|
-
"mediasoup-client": "
|
|
90
|
+
"mediasoup-client": "3.12.3",
|
|
91
91
|
"mobx": "^5.15.4",
|
|
92
92
|
"moment": "^2.30.1",
|
|
93
93
|
"perfect-scrollbar": "^1.5.0",
|