@agilemotion/oui-react-js 2.0.31 → 2.0.33
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.
|
@@ -41,9 +41,17 @@ const status = response => {
|
|
|
41
41
|
if (response.ok) {
|
|
42
42
|
return Promise.resolve(response);
|
|
43
43
|
} else {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
// Surface the server's friendly message (ErrorResponse.message) when present.
|
|
45
|
+
return response.text().then(text => {
|
|
46
|
+
let serverMessage = null;
|
|
47
|
+
try {
|
|
48
|
+
const body = text ? JSON.parse(text) : null;
|
|
49
|
+
serverMessage = body && body.message ? body.message : null;
|
|
50
|
+
} catch (ignored) {}
|
|
51
|
+
return Promise.reject({
|
|
52
|
+
code: response.status,
|
|
53
|
+
message: serverMessage
|
|
54
|
+
});
|
|
47
55
|
});
|
|
48
56
|
}
|
|
49
57
|
};
|
|
@@ -122,7 +130,7 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
|
|
|
122
130
|
}
|
|
123
131
|
let message = {
|
|
124
132
|
messageType: 'ERROR',
|
|
125
|
-
message: 'An error has
|
|
133
|
+
message: e && e.message ? e.message : 'An error has occurred while uploading file'
|
|
126
134
|
};
|
|
127
135
|
let event = new _Event.default(_ApplicationManager.default, props.viewId, message);
|
|
128
136
|
_Observable.default.fireEvent(_EventType.default.MESSAGE_ARRIVED, event);
|
|
@@ -343,4 +351,4 @@ const UploadField = exports.UploadField = /*#__PURE__*/_react.default.memo(props
|
|
|
343
351
|
}, props)));
|
|
344
352
|
});
|
|
345
353
|
var _default = exports.default = UploadField;
|
|
346
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9Eb2N1bWVudFZpZXdlciIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbkJ1dHRvbiIsIl9JY29uIiwiX3JlYWN0UHJvbWlzZVRyYWNrZXIiLCJfRXZlbnQiLCJfT2JzZXJ2YWJsZSIsIl9FdmVudFR5cGUiLCJfbm9pbWFnZSIsIl9kb2N1bWVudERvd25sb2FkIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsInVzZVN0eWxlcyIsIm1ha2VTdHlsZXMiLCJ0aGVtZSIsImJ1dHRvbiIsIm1hcmdpbiIsInNwYWNpbmciLCJpbnB1dCIsImRpc3BsYXkiLCJlcnJvck1lc3NhZ2VEaXNwbGF5IiwiY29sb3IiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb2RlIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJqc29uIiwidGV4dCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkRvY3VtZW50VXBsb2FkIiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSNCIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibG9hZGluZyIsInNldExvYWRpbmciLCJudWxsYWJsZSIsInZhbGlkYXRvciIsIm11bHRpcGxlIiwic2hvdyIsInNldFNob3ciLCJjbGFzc2VzIiwiaGFzRXJyb3IiLCJzZXRIYXNFcnJvciIsIndpZHRoIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiaGVpZ2h0IiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiaW1hZ2VPYmplY3RVcmwiLCJzZXRJbWFnZU9iamVjdFVybCIsImNhY2hlSWQiLCJ1c2VSZWYiLCJiYXNlIiwiZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJoYW5kbGVWaWV3ZXJMb2FkIiwibnVtUGFnZXMiLCJ1cGxvYWQiLCJtZXRhZGF0YSIsImZpbGUiLCJyZWFkZXIiLCJ1cGxvYWRVcmwiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsImFjY2Vzc1Rva2VuIiwic2Vzc2lvblN0b3JhZ2UiLCJnZXRJdGVtIiwiaWRUb2tlbiIsImRhdGEiLCJGb3JtRGF0YSIsImNvcnJlbGF0aW9uSWQiLCJ2aWV3SWQiLCJpZCIsInJvd0lkIiwiYXBwZW5kIiwiSlNPTiIsInN0cmluZ2lmeSIsImZldGNoQ29uZmlnIiwibWV0aG9kIiwiaGVhZGVycyIsImdldEFjdGl2ZVRlbmFudCIsImJvZHkiLCJ1cmwiLCJ0cmFja1Byb21pc2UiLCJmZXRjaCIsImVuY29kZVVSSSIsInRoZW4iLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFIiLCJkb2N1bWVudFJlcG9zaXRvcnlJZCIsInJlcG9zaXRvcnlJZCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiZXZlbnQiLCJFdmVudCIsImhhbmRsZSIsInJlc3VsdCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIkRPQ1VNRU5UX0NBQ0hFRCIsImNhdGNoIiwiY2xlYXIiLCJnZXRBcHBsaWNhdGlvbkhpc3RvcnkiLCJtZXNzYWdlVHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsInBheWxvYWQiLCJyZW1vdmUiLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFIyIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSMyIsInN0eWxlIiwiYWN0aXZlIiwiY3JlYXRlZCIsImZldGNoRG9jdW1lbnRPYmplY3RVcmwiLCJvYmplY3RVcmwiLCJVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJoYW5kbGVDaGFuZ2UiLCJ0YXJnZXQiLCJhbGxGaWxlcyIsIkZpbGVSZWFkZXIiLCJyZWFkQXNEYXRhVVJMIiwib25sb2FkIiwiZmlsZUluZm8iLCJuYW1lIiwidHlwZSIsInNpemUiLCJiYXNlNjQiLCJvblVwbG9hZEhhbmRsZXIiLCJvbmxvYWRlbmQiLCJmb3JtIiwiZmlsZU1ldGFEYXRhIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSNSIsImRvbWFpbiIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiYWNjZXB0IiwiYXR0cmlidXRlcyIsImNsYXNzTmFtZSIsImNvbmNhdCIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJ2YXJpYW50IiwiY29tcG9uZW50IiwiYmFja2dyb3VuZFJlcGVhdCIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYmFja2dyb3VuZEltYWdlIiwiZGVmYXVsdEltYWdlIiwicGFkZGluZyIsInN0YXJ0SWNvbiIsImxhYmVsIiwiaHJlZiIsIm9uQ2xpY2siLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFI2IiwicHJldmVudERlZmF1bHQiLCJkb3dubG9hZERvY3VtZW50IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNob3dWaWV3ZXIiLCJvbkRvY3VtZW50TG9hZFN1Y2Nlc3MiLCJVcGxvYWRGaWVsZCIsInNldEZpbGUiLCJjbGVhclRyaWdnZXIiLCJCYXNlRmllbGQiLCJ2YWx1ZVBhcnNlciIsImluYm91bmQiLCJ2YWx1ZUNoYW5nZUNhbGxiYWNrIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9VcGxvYWRGaWVsZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IHttYWtlU3R5bGVzfSBmcm9tICdAbXVpL3N0eWxlcyc7XG5pbXBvcnQgRG9jdW1lbnRWaWV3ZXJDb21wb25lbnQgZnJvbSBcIi4uL0RvY3VtZW50Vmlld2VyXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi4vLi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQge3RyYWNrUHJvbWlzZX0gZnJvbSBcInJlYWN0LXByb21pc2UtdHJhY2tlclwiO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQgZGVmYXVsdEltYWdlIGZyb20gJy4vbm9pbWFnZS5wbmcnO1xuaW1wb3J0IHtkb3dubG9hZERvY3VtZW50LCBmZXRjaERvY3VtZW50T2JqZWN0VXJsfSBmcm9tICcuLi8uLi9kb2N1bWVudERvd25sb2FkJztcblxuY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcyh0aGVtZSA9PiAoe1xuICAgIGJ1dHRvbjoge1xuICAgICAgICBtYXJnaW46IHRoZW1lLnNwYWNpbmcoMSksXG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgfSxcbiAgICBlcnJvck1lc3NhZ2VEaXNwbGF5OiB7XG4gICAgICAgIGNvbG9yOiAncmVkJ1xuICAgIH1cbn0pKTtcblxuY29uc3Qgc3RhdHVzID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7Y29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0fSk7XG4gICAgfVxufTtcblxuY29uc3QganNvbiA9IChyZXNwb25zZSkgPT4ge1xuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59O1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFVwbG9hZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW3ZpZXdlckZpbGUsIHNldFZpZXdlckZpbGVdID0gUmVhY3QudXNlU3RhdGUoIVV0aWxzLmlzTnVsbChwcm9wcy5pbml0aWFsRmlsZSkgPyBwcm9wcy5pbml0aWFsRmlsZSA6IG51bGwpO1xuICAgIGNvbnN0IFtwYXlsb2FkU3RvcmFnZU1vZGUsIHNldFBheWxvYWRTdG9yYWdlTW9kZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlIHx8ICdiYXNlNjQnKTtcbiAgICBjb25zdCBbZmlsZXMsIHNldEZpbGVzXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuaW5pdGlhbEZpbGUpID8gW3Byb3BzLmluaXRpYWxGaWxlXSA6IG51bGwpO1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtudWxsYWJsZV0gPSBSZWFjdC51c2VTdGF0ZShVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnZhbGlkYXRvcikgfHwgcHJvcHMuY29uZmlnLnZhbGlkYXRvci5udWxsYWJsZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgW211bHRpcGxlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLm11bHRpcGxlID09PSB0cnVlKTtcbiAgICBjb25zdCBbc2hvdywgc2V0U2hvd10gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuICAgIGNvbnN0IFtoYXNFcnJvciwgc2V0SGFzRXJyb3JdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgd2lkdGggPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnd2lkdGgnLCAnMjAwcHgnKTtcbiAgICBjb25zdCBoZWlnaHQgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnaGVpZ2h0JywgJzIwMHB4Jyk7XG4gICAgY29uc3QgW2Vycm9yTWVzc2FnZSwgc2V0RXJyb3JNZXNzYWdlXSA9IFJlYWN0LnVzZVN0YXRlKFwiXCIpO1xuICAgIGNvbnN0IFtpbWFnZU9iamVjdFVybCwgc2V0SW1hZ2VPYmplY3RVcmxdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY2FjaGVJZCA9IFJlYWN0LnVzZVJlZighVXRpbHMuaXNOdWxsKHByb3BzLmJhc2UudmFsdWUpID8gcHJvcHMuYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkIDogbnVsbCk7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgLy9yZW1vdmUoKS5jYXRjaCgoZSkgPT4ge30pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldFZpZXdlckZpbGUocHJvcHMuaW5pdGlhbEZpbGUpO1xuICAgIH0sIFtwcm9wcy5pbml0aWFsRmlsZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlVmlld2VyTG9hZCA9IChudW1QYWdlcykgPT4ge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBsb2FkID0gKG1ldGFkYXRhLCBmaWxlLCByZWFkZXIpID0+IHtcbiAgICAgICAgbGV0IHVwbG9hZFVybCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICd1cGxvYWRVcmwnLCBudWxsKTtcbiAgICAgICAgaWYodXBsb2FkVXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB1cGxvYWRVcmwgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3NhdmVcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXlsb2FkU3RvcmFnZU1vZGUgPSBwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlO1xuICAgICAgICBpZihwYXlsb2FkU3RvcmFnZU1vZGUgPT09ICdwb3N0Jyl7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBtZXRhZGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMudmlld0lkICsgXCIuXCIgKyBwcm9wcy5jb25maWcuaWQgKyAocHJvcHMuY29uZmlnLnJvd0lkID8gXCIuXCIgKyBwcm9wcy5jb25maWcucm93SWQgOiBcIlwiKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwibWV0YWRhdGFcIiwgSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEpKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ2lkVG9rZW4nOiBpZFRva2VuLFxuICAgICAgICAgICAgICAgICAgICAndGVuYW50JzogYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyB1cGxvYWRVcmw7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5kb2N1bWVudFJlcG9zaXRvcnlJZCA9ICFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgPyBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkID8/IGJhc2UudmFsdWUucmVwb3NpdG9yeUlkIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJZC5jdXJyZW50ID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobWV0YWRhdGEpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm1ldGFkYXRhLCB1cmw6IHJlYWRlci5yZXN1bHR9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkRPQ1VNRU5UX0NBQ0hFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChcbiAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvbkhpc3RvcnkoKS5wdXNoKCcvbG9naW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVR5cGU6ICdFUlJPUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0FuIGVycm9yIGhhcyBhY2N1cnJlZCB3aGlsZSB1cGxvYWRpbmcgZmlsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChhcHBsaWNhdGlvbk1hbmFnZXIsIHByb3BzLnZpZXdJZCwgbWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnBheWxvYWQgPSByZWFkZXIucmVzdWx0O1xuICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVtb3ZlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIik7XG4gICAgICAgICAgICBjb25zdCBpZFRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImlkVG9rZW5cIik7XG5cbiAgICAgICAgICAgIGxldCBmZXRjaENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ2lkVG9rZW4nOiBpZFRva2VuLFxuICAgICAgICAgICAgICAgICAgICAndGVuYW50JzogYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IHVybCA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyAnL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3JlbW92ZS8nICsgY2FjaGVJZC5jdXJyZW50O1xuICAgICAgICAgICAgdHJhY2tQcm9taXNlKFxuICAgICAgICAgICAgICAgIGZldGNoKGVuY29kZVVSSSh1cmwpLCBmZXRjaENvbmZpZylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgfTtcblxuICAgIC8vIElNQUdFLXN0eWxlIHByZXZpZXc6IGZldGNoIHRoZSBzdG9yZWQgaW1hZ2UgKGhlYWRlciBhdXRoKSBhbmQgaG9sZCBpdCBhcyBhbiBvYmplY3QgVVJMLlxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5zdHlsZSAhPT0gJ0lNQUdFJyB8fCAhVXRpbHMuaXNOdWxsKHZpZXdlckZpbGUpXG4gICAgICAgICAgICB8fCBVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgfHwgVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQpKSB7XG4gICAgICAgICAgICBzZXRJbWFnZU9iamVjdFVybChudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGNyZWF0ZWQgPSBudWxsO1xuICAgICAgICBmZXRjaERvY3VtZW50T2JqZWN0VXJsKGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQpXG4gICAgICAgICAgICAudGhlbigob2JqZWN0VXJsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkID0gb2JqZWN0VXJsO1xuICAgICAgICAgICAgICAgICAgICBzZXRJbWFnZU9iamVjdFVybChvYmplY3RVcmwpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGNyZWF0ZWQpIHtcbiAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGNyZWF0ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtwcm9wcy5zdHlsZSwgdmlld2VyRmlsZSwgYmFzZS52YWx1ZSA/IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQgOiBudWxsXSk7XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoKSA9PiBldmVudCA9PiB7XG4gICAgICAgIGxldCBmaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcbiAgICAgICAgdmFyIGFsbEZpbGVzID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBmaWxlID0gZmlsZXNbaV07XG4gICAgICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgZmlsZUluZm8gPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgICAgICAgICAgICAgIGJhc2U2NDogcmVhZGVyLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBhbGxGaWxlcy5wdXNoKGZpbGVJbmZvKTtcbiAgICAgICAgICAgICAgICBpZiAoYWxsRmlsZXMubGVuZ3RoID09PSBmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG11bHRpcGxlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5vblVwbG9hZEhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25VcGxvYWRIYW5kbGVyKGFsbEZpbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLm9uVXBsb2FkSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblVwbG9hZEhhbmRsZXIoYWxsRmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Vmlld2VyRmlsZShhbGxGaWxlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzZXRGaWxlcyhhbGxGaWxlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5mb3JtKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZU1ldGFEYXRhID0ge307XG4gICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5uYW1lID0gYWxsRmlsZXNbMF0ubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLnR5cGUgPSBhbGxGaWxlc1swXS50eXBlO1xuICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuc2l6ZSA9IGFsbEZpbGVzWzBdLnNpemU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYoYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmlkID0gYmFzZS52YWx1ZS5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5kb2N1bWVudFJlcG9zaXRvcnlJZCA9IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoJ2Jhc2U2NCcgPT09IHBheWxvYWRTdG9yYWdlTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLnBheWxvYWQgPSBhbGxGaWxlc1swXS5iYXNlNjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKGZpbGVNZXRhRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuY29ycmVsYXRpb25JZCA9IHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5kb21haW4gPSBwcm9wcy52aWV3SWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWxlID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLmNvcnJlbGF0aW9uSWQgPSBmaWxlTWV0YURhdGEuY29ycmVsYXRpb25JZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuY29udGVudCA9IGFsbEZpbGVzWzBdLmZpbGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNhY2hlSWQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWQoZmlsZU1ldGFEYXRhLCBhbGxGaWxlc1swXS5maWxlLCByZWFkZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVNZXRhRGF0YSwgYWxsRmlsZXNbMF0uZmlsZSwgcmVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0PXtwcm9wcy5zdHlsZSA9PT0gJ0lNQUdFJyA/IFwiaW1hZ2UvanBlZyxpbWFnZS9naWYsaW1hZ2UvcG5nLGltYWdlL3gtZXBzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5hY2NlcHQgfHwgXCJhcHBsaWNhdGlvbi9wZGZcIil9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgaWQ9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZT17bXVsdGlwbGV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2UoKX1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5zdHlsZSA9PT0gJ0lNQUdFJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwiY29udGFpbmVkXCIgY29tcG9uZW50PVwic3BhblwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5idXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLCBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFNpemU6ICdjb3ZlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyBcIjFweCBzb2xpZCAjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJhc2UuaGFzRXJyb3IgPyBcIiNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbCh2aWV3ZXJGaWxlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cmwoJHt2aWV3ZXJGaWxlLmJhc2U2NH0pYCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoaW1hZ2VPYmplY3RVcmwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cmwoJHtpbWFnZU9iamVjdFVybH0pYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVybCgke2RlZmF1bHRJbWFnZX0pYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tjb2xvcjogXCIjZjQ0MzM2XCIsIHBhZGRpbmc6IFwiMCA4cHhcIn19PntiYXNlLmVycm9yTWVzc2FnZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Lyo8QnV0dG9uIHZhcmlhbnQ9e3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5jb2xvciA9PT0gJ3NlY29uZGFyeScgfHwgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yID09PSAncHJpbWFyeScgPyAnY29udGFpbmVkJyA6ICd0ZXh0J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9eyFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yKSA/cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5idXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyBcIjFweCBzb2xpZCAjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJhc2UuaGFzRXJyb3IgPyBcIiNmNDQzMzZcIiA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1VQTE9BRCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWwgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+Ki99XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInRleHRcIiBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5idXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyBcIjFweCBzb2xpZCAjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJhc2UuaGFzRXJyb3IgPyBcIiNmNDQzMzZcIiA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1VQTE9BRCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWwgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhc0Vycm9yID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7Y29sb3I6IFwiI2Y0NDMzNlwiLCBwYWRkaW5nOiBcIjAgOHB4XCJ9fT57YmFzZS5lcnJvck1lc3NhZ2V9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5pc051bGwoYmFzZS52YWx1ZS5pZCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPXsnIyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZERvY3VtZW50KGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQsIGJhc2UudmFsdWUubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UudmFsdWUubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhYmFzZS5kaXNhYmxlZCAmJiBudWxsYWJsZSAmJiBiYXNlLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cIm1lbnUtbGlzdC1ncm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWApLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNhY2hlSWQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZSgpLnRoZW4oKCkgPT4gY2FjaGVJZC5jdXJyZW50ID0gbnVsbCkuY2F0Y2goKGUpID0+IHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0RFTEVURSd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5zaG93Vmlld2VyICYmICFtdWx0aXBsZSB8fCBzaG93ID9cbiAgICAgICAgICAgICAgICAgICAgPERvY3VtZW50Vmlld2VyQ29tcG9uZW50IGZpbGU9e3ZpZXdlckZpbGV9IG9uRG9jdW1lbnRMb2FkU3VjY2Vzcz17aGFuZGxlVmlld2VyTG9hZH0vPlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoYXNFcnJvciA/XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3Nlcy5lcnJvck1lc3NhZ2VEaXNwbGF5fT57ZXJyb3JNZXNzYWdlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IFVwbG9hZEZpZWxkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZmlsZSwgc2V0RmlsZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjbGVhclRyaWdnZXI9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9IHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfX0gdmFsdWVDaGFuZ2VDYWxsYmFjaz17KHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNsZWFyVHJpZ2dlci5jdXJyZW50ID0gIWNsZWFyVHJpZ2dlci5jdXJyZW50XG4gICAgICAgICAgICB9XG4gICAgICAgIH19PlxuICAgICAgICAgICAge2Jhc2UgPT5cbiAgICAgICAgICAgICAgICA8RG9jdW1lbnRVcGxvYWRcbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbEZpbGU9e2ZpbGV9XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVHJpZ2dlcj17Y2xlYXJUcmlnZ2VyLmN1cnJlbnR9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9Eb2N1bWVudFVwbG9hZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBVcGxvYWRGaWVsZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sbUJBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLG9CQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxXQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxVQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxRQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYyxpQkFBQSxHQUFBZCxPQUFBO0FBQWdGLFNBQUFELHVCQUFBZ0IsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFNBQUEsV0FBQUEsUUFBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsR0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUFDLElBQUEsZUFBQUMsQ0FBQSxhQUFBUCxDQUFBLE1BQUFBLENB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
|
|
354
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9Eb2N1bWVudFZpZXdlciIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbkJ1dHRvbiIsIl9JY29uIiwiX3JlYWN0UHJvbWlzZVRyYWNrZXIiLCJfRXZlbnQiLCJfT2JzZXJ2YWJsZSIsIl9FdmVudFR5cGUiLCJfbm9pbWFnZSIsIl9kb2N1bWVudERvd25sb2FkIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsInVzZVN0eWxlcyIsIm1ha2VTdHlsZXMiLCJ0aGVtZSIsImJ1dHRvbiIsIm1hcmdpbiIsInNwYWNpbmciLCJpbnB1dCIsImRpc3BsYXkiLCJlcnJvck1lc3NhZ2VEaXNwbGF5IiwiY29sb3IiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0IiwidGhlbiIsInNlcnZlck1lc3NhZ2UiLCJib2R5IiwiSlNPTiIsInBhcnNlIiwibWVzc2FnZSIsImlnbm9yZWQiLCJyZWplY3QiLCJjb2RlIiwianNvbiIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkRvY3VtZW50VXBsb2FkIiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSNCIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibG9hZGluZyIsInNldExvYWRpbmciLCJudWxsYWJsZSIsInZhbGlkYXRvciIsIm11bHRpcGxlIiwic2hvdyIsInNldFNob3ciLCJjbGFzc2VzIiwiaGFzRXJyb3IiLCJzZXRIYXNFcnJvciIsIndpZHRoIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiaGVpZ2h0IiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiaW1hZ2VPYmplY3RVcmwiLCJzZXRJbWFnZU9iamVjdFVybCIsImNhY2hlSWQiLCJ1c2VSZWYiLCJiYXNlIiwiZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJoYW5kbGVWaWV3ZXJMb2FkIiwibnVtUGFnZXMiLCJ1cGxvYWQiLCJtZXRhZGF0YSIsImZpbGUiLCJyZWFkZXIiLCJ1cGxvYWRVcmwiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsImFjY2Vzc1Rva2VuIiwic2Vzc2lvblN0b3JhZ2UiLCJnZXRJdGVtIiwiaWRUb2tlbiIsImRhdGEiLCJGb3JtRGF0YSIsImNvcnJlbGF0aW9uSWQiLCJ2aWV3SWQiLCJpZCIsInJvd0lkIiwiYXBwZW5kIiwic3RyaW5naWZ5IiwiZmV0Y2hDb25maWciLCJtZXRob2QiLCJoZWFkZXJzIiwiZ2V0QWN0aXZlVGVuYW50IiwidXJsIiwidHJhY2tQcm9taXNlIiwiZmV0Y2giLCJlbmNvZGVVUkkiLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFIiLCJkb2N1bWVudFJlcG9zaXRvcnlJZCIsInJlcG9zaXRvcnlJZCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiZXZlbnQiLCJFdmVudCIsImhhbmRsZSIsInJlc3VsdCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIkRPQ1VNRU5UX0NBQ0hFRCIsImNhdGNoIiwiY2xlYXIiLCJnZXRBcHBsaWNhdGlvbkhpc3RvcnkiLCJtZXNzYWdlVHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsInBheWxvYWQiLCJyZW1vdmUiLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFIyIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSMyIsInN0eWxlIiwiYWN0aXZlIiwiY3JlYXRlZCIsImZldGNoRG9jdW1lbnRPYmplY3RVcmwiLCJvYmplY3RVcmwiLCJVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJoYW5kbGVDaGFuZ2UiLCJ0YXJnZXQiLCJhbGxGaWxlcyIsIkZpbGVSZWFkZXIiLCJyZWFkQXNEYXRhVVJMIiwib25sb2FkIiwiZmlsZUluZm8iLCJuYW1lIiwidHlwZSIsInNpemUiLCJiYXNlNjQiLCJvblVwbG9hZEhhbmRsZXIiLCJvbmxvYWRlbmQiLCJmb3JtIiwiZmlsZU1ldGFEYXRhIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSNSIsImRvbWFpbiIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiYWNjZXB0IiwiYXR0cmlidXRlcyIsImNsYXNzTmFtZSIsImNvbmNhdCIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJ2YXJpYW50IiwiY29tcG9uZW50IiwiYmFja2dyb3VuZFJlcGVhdCIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYmFja2dyb3VuZEltYWdlIiwiZGVmYXVsdEltYWdlIiwicGFkZGluZyIsInN0YXJ0SWNvbiIsImxhYmVsIiwiaHJlZiIsIm9uQ2xpY2siLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFI2IiwicHJldmVudERlZmF1bHQiLCJkb3dubG9hZERvY3VtZW50IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNob3dWaWV3ZXIiLCJvbkRvY3VtZW50TG9hZFN1Y2Nlc3MiLCJVcGxvYWRGaWVsZCIsInNldEZpbGUiLCJjbGVhclRyaWdnZXIiLCJCYXNlRmllbGQiLCJ2YWx1ZVBhcnNlciIsImluYm91bmQiLCJ2YWx1ZUNoYW5nZUNhbGxiYWNrIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9VcGxvYWRGaWVsZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IHttYWtlU3R5bGVzfSBmcm9tICdAbXVpL3N0eWxlcyc7XG5pbXBvcnQgRG9jdW1lbnRWaWV3ZXJDb21wb25lbnQgZnJvbSBcIi4uL0RvY3VtZW50Vmlld2VyXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi4vLi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQge3RyYWNrUHJvbWlzZX0gZnJvbSBcInJlYWN0LXByb21pc2UtdHJhY2tlclwiO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQgZGVmYXVsdEltYWdlIGZyb20gJy4vbm9pbWFnZS5wbmcnO1xuaW1wb3J0IHtkb3dubG9hZERvY3VtZW50LCBmZXRjaERvY3VtZW50T2JqZWN0VXJsfSBmcm9tICcuLi8uLi9kb2N1bWVudERvd25sb2FkJztcblxuY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcyh0aGVtZSA9PiAoe1xuICAgIGJ1dHRvbjoge1xuICAgICAgICBtYXJnaW46IHRoZW1lLnNwYWNpbmcoMSksXG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgfSxcbiAgICBlcnJvck1lc3NhZ2VEaXNwbGF5OiB7XG4gICAgICAgIGNvbG9yOiAncmVkJ1xuICAgIH1cbn0pKTtcblxuY29uc3Qgc3RhdHVzID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN1cmZhY2UgdGhlIHNlcnZlcidzIGZyaWVuZGx5IG1lc3NhZ2UgKEVycm9yUmVzcG9uc2UubWVzc2FnZSkgd2hlbiBwcmVzZW50LlxuICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oKHRleHQpID0+IHtcbiAgICAgICAgICAgIGxldCBzZXJ2ZXJNZXNzYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IHRleHQgPyBKU09OLnBhcnNlKHRleHQpIDogbnVsbDtcbiAgICAgICAgICAgICAgICBzZXJ2ZXJNZXNzYWdlID0gYm9keSAmJiBib2R5Lm1lc3NhZ2UgPyBib2R5Lm1lc3NhZ2UgOiBudWxsO1xuICAgICAgICAgICAgfSBjYXRjaCAoaWdub3JlZCkge1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHtjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHNlcnZlck1lc3NhZ2V9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxuY29uc3QganNvbiA9IChyZXNwb25zZSkgPT4ge1xuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59O1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFVwbG9hZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW3ZpZXdlckZpbGUsIHNldFZpZXdlckZpbGVdID0gUmVhY3QudXNlU3RhdGUoIVV0aWxzLmlzTnVsbChwcm9wcy5pbml0aWFsRmlsZSkgPyBwcm9wcy5pbml0aWFsRmlsZSA6IG51bGwpO1xuICAgIGNvbnN0IFtwYXlsb2FkU3RvcmFnZU1vZGUsIHNldFBheWxvYWRTdG9yYWdlTW9kZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlIHx8ICdiYXNlNjQnKTtcbiAgICBjb25zdCBbZmlsZXMsIHNldEZpbGVzXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuaW5pdGlhbEZpbGUpID8gW3Byb3BzLmluaXRpYWxGaWxlXSA6IG51bGwpO1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtudWxsYWJsZV0gPSBSZWFjdC51c2VTdGF0ZShVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnZhbGlkYXRvcikgfHwgcHJvcHMuY29uZmlnLnZhbGlkYXRvci5udWxsYWJsZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgW211bHRpcGxlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLm11bHRpcGxlID09PSB0cnVlKTtcbiAgICBjb25zdCBbc2hvdywgc2V0U2hvd10gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuICAgIGNvbnN0IFtoYXNFcnJvciwgc2V0SGFzRXJyb3JdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgd2lkdGggPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnd2lkdGgnLCAnMjAwcHgnKTtcbiAgICBjb25zdCBoZWlnaHQgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnaGVpZ2h0JywgJzIwMHB4Jyk7XG4gICAgY29uc3QgW2Vycm9yTWVzc2FnZSwgc2V0RXJyb3JNZXNzYWdlXSA9IFJlYWN0LnVzZVN0YXRlKFwiXCIpO1xuICAgIGNvbnN0IFtpbWFnZU9iamVjdFVybCwgc2V0SW1hZ2VPYmplY3RVcmxdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY2FjaGVJZCA9IFJlYWN0LnVzZVJlZighVXRpbHMuaXNOdWxsKHByb3BzLmJhc2UudmFsdWUpID8gcHJvcHMuYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkIDogbnVsbCk7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgLy9yZW1vdmUoKS5jYXRjaCgoZSkgPT4ge30pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldFZpZXdlckZpbGUocHJvcHMuaW5pdGlhbEZpbGUpO1xuICAgIH0sIFtwcm9wcy5pbml0aWFsRmlsZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlVmlld2VyTG9hZCA9IChudW1QYWdlcykgPT4ge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBsb2FkID0gKG1ldGFkYXRhLCBmaWxlLCByZWFkZXIpID0+IHtcbiAgICAgICAgbGV0IHVwbG9hZFVybCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICd1cGxvYWRVcmwnLCBudWxsKTtcbiAgICAgICAgaWYodXBsb2FkVXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB1cGxvYWRVcmwgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3NhdmVcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXlsb2FkU3RvcmFnZU1vZGUgPSBwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlO1xuICAgICAgICBpZihwYXlsb2FkU3RvcmFnZU1vZGUgPT09ICdwb3N0Jyl7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBtZXRhZGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMudmlld0lkICsgXCIuXCIgKyBwcm9wcy5jb25maWcuaWQgKyAocHJvcHMuY29uZmlnLnJvd0lkID8gXCIuXCIgKyBwcm9wcy5jb25maWcucm93SWQgOiBcIlwiKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwibWV0YWRhdGFcIiwgSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEpKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ2lkVG9rZW4nOiBpZFRva2VuLFxuICAgICAgICAgICAgICAgICAgICAndGVuYW50JzogYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyB1cGxvYWRVcmw7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5kb2N1bWVudFJlcG9zaXRvcnlJZCA9ICFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgPyBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkID8/IGJhc2UudmFsdWUucmVwb3NpdG9yeUlkIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJZC5jdXJyZW50ID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobWV0YWRhdGEpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm1ldGFkYXRhLCB1cmw6IHJlYWRlci5yZXN1bHR9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkRPQ1VNRU5UX0NBQ0hFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChcbiAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvbkhpc3RvcnkoKS5wdXNoKCcvbG9naW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVR5cGU6ICdFUlJPUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogKGUgJiYgZS5tZXNzYWdlKSA/IGUubWVzc2FnZSA6ICdBbiBlcnJvciBoYXMgb2NjdXJyZWQgd2hpbGUgdXBsb2FkaW5nIGZpbGUnXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQoYXBwbGljYXRpb25NYW5hZ2VyLCBwcm9wcy52aWV3SWQsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuTUVTU0FHRV9BUlJJVkVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXRhZGF0YS5wYXlsb2FkID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobWV0YWRhdGEpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHJlbW92ZSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpO1xuICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICdpZFRva2VuJzogaWRUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ3RlbmFudCc6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBY3RpdmVUZW5hbnQoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy9kb2NzL2FwaS92MS9tYW5hZ2VyL3VwbG9hZC9yZW1vdmUvJyArIGNhY2hlSWQuY3VycmVudDtcbiAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChcbiAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvbkhpc3RvcnkoKS5wdXNoKCcvbG9naW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuICAgIH07XG5cbiAgICAvLyBJTUFHRS1zdHlsZSBwcmV2aWV3OiBmZXRjaCB0aGUgc3RvcmVkIGltYWdlIChoZWFkZXIgYXV0aCkgYW5kIGhvbGQgaXQgYXMgYW4gb2JqZWN0IFVSTC5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAocHJvcHMuc3R5bGUgIT09ICdJTUFHRScgfHwgIVV0aWxzLmlzTnVsbCh2aWV3ZXJGaWxlKVxuICAgICAgICAgICAgfHwgVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUpIHx8IFV0aWxzLmlzTnVsbChiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkID8/IGJhc2UudmFsdWUucmVwb3NpdG9yeUlkKSkge1xuICAgICAgICAgICAgc2V0SW1hZ2VPYmplY3RVcmwobnVsbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGFjdGl2ZSA9IHRydWU7XG4gICAgICAgIGxldCBjcmVhdGVkID0gbnVsbDtcbiAgICAgICAgZmV0Y2hEb2N1bWVudE9iamVjdFVybChiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkID8/IGJhc2UudmFsdWUucmVwb3NpdG9yeUlkKVxuICAgICAgICAgICAgLnRoZW4oKG9iamVjdFVybCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZCA9IG9iamVjdFVybDtcbiAgICAgICAgICAgICAgICAgICAgc2V0SW1hZ2VPYmplY3RVcmwob2JqZWN0VXJsKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKG9iamVjdFVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBhY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChjcmVhdGVkKSB7XG4gICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChjcmVhdGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbcHJvcHMuc3R5bGUsIHZpZXdlckZpbGUsIGJhc2UudmFsdWUgPyBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkID8/IGJhc2UudmFsdWUucmVwb3NpdG9yeUlkIDogbnVsbF0pO1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKCkgPT4gZXZlbnQgPT4ge1xuICAgICAgICBsZXQgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgIHZhciBhbGxGaWxlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IGZpbGVzW2ldO1xuICAgICAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGVJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBiYXNlNjQ6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgYWxsRmlsZXMucHVzaChmaWxlSW5mbyk7XG4gICAgICAgICAgICAgICAgaWYgKGFsbEZpbGVzLmxlbmd0aCA9PT0gZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtdWx0aXBsZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMub25VcGxvYWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uVXBsb2FkSGFuZGxlcihhbGxGaWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5vblVwbG9hZEhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25VcGxvYWRIYW5kbGVyKGFsbEZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZpZXdlckZpbGUoYWxsRmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0RmlsZXMoYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGVNZXRhRGF0YSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEubmFtZSA9IGFsbEZpbGVzWzBdLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS50eXBlID0gYWxsRmlsZXNbMF0udHlwZTtcbiAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLnNpemUgPSBhbGxGaWxlc1swXS5zaXplO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmKGJhc2UudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5pZCA9IGJhc2UudmFsdWUuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPSBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkID8/IGJhc2UudmFsdWUucmVwb3NpdG9yeUlkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCdiYXNlNjQnID09PSBwYXlsb2FkU3RvcmFnZU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5wYXlsb2FkID0gYWxsRmlsZXNbMF0uYmFzZTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShmaWxlTWV0YURhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmNvcnJlbGF0aW9uSWQgPSBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9tYWluID0gcHJvcHMudmlld0lkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5jb3JyZWxhdGlvbklkID0gZmlsZU1ldGFEYXRhLmNvcnJlbGF0aW9uSWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLmNvbnRlbnQgPSBhbGxGaWxlc1swXS5maWxlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjYWNoZUlkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJZC5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVNZXRhRGF0YSwgYWxsRmlsZXNbMF0uZmlsZSwgcmVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlTWV0YURhdGEsIGFsbEZpbGVzWzBdLmZpbGUsIHJlYWRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdD17cHJvcHMuc3R5bGUgPT09ICdJTUFHRScgPyBcImltYWdlL2pwZWcsaW1hZ2UvZ2lmLGltYWdlL3BuZyxpbWFnZS94LWVwc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWNjZXB0IHx8IFwiYXBwbGljYXRpb24vcGRmXCIpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaW5wdXR9XG4gICAgICAgICAgICAgICAgICAgIGlkPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17YmFzZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU9e211bHRpcGxlfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuc3R5bGUgPT09ICdJTUFHRScgP1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17YGNvbnRhaW5lZC1idXR0b24tZmlsZS0ke3Byb3BzLmNvbmZpZy5pZH1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cImNvbnRhaW5lZFwiIGNvbXBvbmVudD1cInNwYW5cIiBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0OiAnbm8tcmVwZWF0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRTaXplOiAnY292ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBiYXNlLmhhc0Vycm9yID8gXCIxcHggc29saWQgI2Y0NDMzNlwiIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBiYXNlLmhhc0Vycm9yID8gXCIjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwodmlld2VyRmlsZSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXJsKCR7dmlld2VyRmlsZS5iYXNlNjR9KWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGltYWdlT2JqZWN0VXJsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXJsKCR7aW1hZ2VPYmplY3RVcmx9KWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cmwoJHtkZWZhdWx0SW1hZ2V9KWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhc0Vycm9yID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7Y29sb3I6IFwiI2Y0NDMzNlwiLCBwYWRkaW5nOiBcIjAgOHB4XCJ9fT57YmFzZS5lcnJvck1lc3NhZ2V9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gOlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17YGNvbnRhaW5lZC1idXR0b24tZmlsZS0ke3Byb3BzLmNvbmZpZy5pZH1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qPEJ1dHRvbiB2YXJpYW50PXtwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IgPT09ICdzZWNvbmRhcnknIHx8IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5jb2xvciA9PT0gJ3ByaW1hcnknID8gJ2NvbnRhaW5lZCcgOiAndGV4dCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXshVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5jb2xvcikgP3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5jb2xvciA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBiYXNlLmhhc0Vycm9yID8gXCIxcHggc29saWQgI2Y0NDMzNlwiIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBiYXNlLmhhc0Vycm9yID8gXCIjZjQ0MzM2XCIgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHByb3BzLmNvbmZpZyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17PEljb24gaWQ9eydVUExPQUQnfS8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmxhYmVsID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPiovfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJ0ZXh0XCIgY29tcG9uZW50PVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBiYXNlLmhhc0Vycm9yID8gXCIxcHggc29saWQgI2Y0NDMzNlwiIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBiYXNlLmhhc0Vycm9yID8gXCIjZjQ0MzM2XCIgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17PEljb24gaWQ9eydVUExPQUQnfS8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmxhYmVsID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYXNFcnJvciA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e2NvbG9yOiBcIiNmNDQzMzZcIiwgcGFkZGluZzogXCIwIDhweFwifX0+e2Jhc2UuZXJyb3JNZXNzYWdlfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUuaWQpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZS5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj17JyMnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWREb2N1bWVudChiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkID8/IGJhc2UudmFsdWUucmVwb3NpdG9yeUlkLCBiYXNlLnZhbHVlLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWJhc2UuZGlzYWJsZWQgJiYgbnVsbGFibGUgJiYgYmFzZS52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGNvbnRhaW5lZC1idXR0b24tZmlsZS0ke3Byb3BzLmNvbmZpZy5pZH1gKS52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjYWNoZUlkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmUoKS50aGVuKCgpID0+IGNhY2hlSWQuY3VycmVudCA9IG51bGwpLmNhdGNoKChlKSA9PiB7fSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydERUxFVEUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvcHMuc2hvd1ZpZXdlciAmJiAhbXVsdGlwbGUgfHwgc2hvdyA/XG4gICAgICAgICAgICAgICAgICAgIDxEb2N1bWVudFZpZXdlckNvbXBvbmVudCBmaWxlPXt2aWV3ZXJGaWxlfSBvbkRvY3VtZW50TG9hZFN1Y2Nlc3M9e2hhbmRsZVZpZXdlckxvYWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzZXMuZXJyb3JNZXNzYWdlRGlzcGxheX0+e2Vycm9yTWVzc2FnZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBjb25zdCBVcGxvYWRGaWVsZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2ZpbGUsIHNldEZpbGVdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY2xlYXJUcmlnZ2VyPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZCB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfSB2YWx1ZVBhcnNlcj17KHZhbHVlLCBpbmJvdW5kKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH19IHZhbHVlQ2hhbmdlQ2FsbGJhY2s9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRyaWdnZXIuY3VycmVudCA9ICFjbGVhclRyaWdnZXIuY3VycmVudFxuICAgICAgICAgICAgfVxuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPERvY3VtZW50VXBsb2FkXG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxGaWxlPXtmaWxlfVxuICAgICAgICAgICAgICAgICAgICBjbGVhclRyaWdnZXI9e2NsZWFyVHJpZ2dlci5jdXJyZW50fVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvRG9jdW1lbnRVcGxvYWQ+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVXBsb2FkRmllbGQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLG1CQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFB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
|
package/package.json
CHANGED