@agilemotion/oui-react-js 2.0.32 → 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.
|
@@ -37,9 +37,17 @@ const status = response => {
|
|
|
37
37
|
if (response.ok) {
|
|
38
38
|
return Promise.resolve(response);
|
|
39
39
|
} else {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
// Surface the server's friendly message (ErrorResponse.message) when present.
|
|
41
|
+
return response.text().then(text => {
|
|
42
|
+
let serverMessage = null;
|
|
43
|
+
try {
|
|
44
|
+
const body = text ? JSON.parse(text) : null;
|
|
45
|
+
serverMessage = body && body.message ? body.message : null;
|
|
46
|
+
} catch (ignored) {}
|
|
47
|
+
return Promise.reject({
|
|
48
|
+
code: response.status,
|
|
49
|
+
message: serverMessage
|
|
50
|
+
});
|
|
43
51
|
});
|
|
44
52
|
}
|
|
45
53
|
};
|
|
@@ -134,7 +142,7 @@ const ImageEditorComponent = exports.ImageEditorComponent = /*#__PURE__*/_react.
|
|
|
134
142
|
}
|
|
135
143
|
let message = {
|
|
136
144
|
messageType: 'ERROR',
|
|
137
|
-
message: 'An error has
|
|
145
|
+
message: e && e.message ? e.message : 'An error has occurred while uploading file'
|
|
138
146
|
};
|
|
139
147
|
let event = new _Event.default(_ApplicationManager.default, props.viewId, message);
|
|
140
148
|
_Observable.default.fireEvent(_EventType.default.MESSAGE_ARRIVED, event);
|
|
@@ -493,4 +501,4 @@ const ImageEditor = exports.ImageEditor = /*#__PURE__*/_react.default.memo(props
|
|
|
493
501
|
}, props)));
|
|
494
502
|
});
|
|
495
503
|
var _default = exports.default = ImageEditor;
|
|
496
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbiIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX0V2ZW50IiwiX09ic2VydmFibGUiLCJfRXZlbnRUeXBlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsInVzZVN0eWxlcyIsIm1ha2VTdHlsZXMiLCJ0aGVtZSIsImJ1dHRvbiIsIm1hcmdpbiIsInNwYWNpbmciLCJpbnB1dCIsImRpc3BsYXkiLCJlcnJvck1lc3NhZ2VEaXNwbGF5IiwiY29sb3IiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb2RlIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJqc29uIiwidGV4dCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkltYWdlRWRpdG9yQ29tcG9uZW50IiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJhbmdsZSIsInNldEFuZ2xlIiwiem9vbURlcHRoIiwic2V0Wm9vbURlcHRoIiwib3JpZ2luYWxJbWFnZVdpZHRoIiwic2V0T3JpZ2luYWxJbWFnZVdpZHRoIiwib3JpZ2luYWxJbWFnZUhlaWdodCIsInNldE9yaWdpbmFsSW1hZ2VIZWlnaHQiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibXVsdGlwbGUiLCJjbGFzc2VzIiwid2lkdGgiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJoZWlnaHQiLCJjYWNoZUlkIiwidXNlUmVmIiwiYmFzZSIsImRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiZ2V0RmV0Y2hDb25maWciLCJkYXRhIiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJnZXRSb3RhdGVBbmdsZSIsImFjdGlvbiIsInJvdGF0ZUFuZ2xlIiwiYmFzZTY0VG9GaWxlIiwiYjY0Iiwib3JpZ2luYWxGaWxlIiwibWltZSIsInVuZGVmaW5lZCIsImNsZWFuIiwic3RhcnRzV2l0aCIsInNwbGl0IiwiYmluIiwiYXRvYiIsImFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiZXh0IiwibmFtZSIsInJlcGxhY2UiLCJGaWxlIiwiY29uY2F0IiwidHlwZSIsImxhc3RNb2RpZmllZCIsIkRhdGUiLCJub3ciLCJ1cGxvYWQiLCJtZXRhZGF0YSIsImZpbGUiLCJwYXlsb2FkIiwidXBsb2FkVXJsIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0Q29udGV4dFJvb3QiLCJGb3JtRGF0YSIsImNvcnJlbGF0aW9uSWQiLCJ2aWV3SWQiLCJpZCIsImFwcGVuZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJwcm9jZXNzZWRGaWxlIiwiZmV0Y2hDb25maWciLCJ1cmwiLCJ0cmFja1Byb21pc2UiLCJmZXRjaCIsImVuY29kZVVSSSIsInRoZW4iLCJkb2N1bWVudFJlcG9zaXRvcnlJZCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiY2F0Y2giLCJjbGVhciIsImdldEFwcGxpY2F0aW9uSGlzdG9yeSIsIm1lc3NhZ2VUeXBlIiwiZXZlbnQiLCJFdmVudCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsInJlbW92ZSIsImdldEFjdGl2ZVRlbmFudCIsImhhbmRsZUNoYW5nZSIsInRhcmdldCIsImFsbEZpbGVzIiwicmVhZGVyIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJvbmxvYWQiLCJmaWxlSW5mbyIsInNpemUiLCJiYXNlNjQiLCJyZXN1bHQiLCJjb25zb2xlIiwibG9nIiwib25VcGxvYWRIYW5kbGVyIiwib25sb2FkZW5kIiwiZm9ybSIsInByb2Nlc3MiLCJoYW5kbGVsb2FkRW5kZWQiLCJhbGxGaWxlIiwiZmlsZU1ldGFEYXRhIiwiZG9tYWluIiwiY29udGFpbmVyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImltYWdlIiwicmF0aW8iLCJzdHlsZSIsImNhbGxiYWNrIiwiem9vbSIsImRpcmVjdGlvbiIsImRlcHRoIiwicm90YXRlIiwicm90YXRlTW9kZSIsInRyYW5zZm9ybSIsImNyZWF0ZUVsZW1lbnQiLCJtZXJnZVN0eWxlcyIsImNsYXNzTmFtZSIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImFjY2VwdCIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJjb21wb25lbnQiLCJ2YXJpYW50IiwiYm9yZGVyIiwiaGFzRXJyb3IiLCJzdGFydEljb24iLCJwYWRkaW5nIiwiZXJyb3JNZXNzYWdlIiwib25DbGljayIsIl9iYXNlJHZhbHVlIiwiaXNab29tZWQiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJib3JkZXJSYWRpdXMiLCJvdmVyZmxvdyIsImJveFNpemluZyIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsInNyYyIsImFsdCIsImRyYWdnYWJsZSIsInVzZXJTZWxlY3QiLCJtYXhXaWR0aCIsIm1heEhlaWdodCIsIm9iamVjdEZpdCIsIkltYWdlRWRpdG9yIiwic2V0RmlsZSIsImNsZWFyVHJpZ2dlciIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiaW5ib3VuZCIsInZhbHVlQ2hhbmdlQ2FsbGJhY2siLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0ltYWdlRWRpdG9yLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0J1dHRvbic7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQge21ha2VTdHlsZXN9IGZyb20gJ0BtdWkvc3R5bGVzJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IHt0cmFja1Byb21pc2V9IGZyb20gXCJyZWFjdC1wcm9taXNlLXRyYWNrZXJcIjtcbmltcG9ydCBFdmVudCBmcm9tICcuLi8uLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uLy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi8uLi9ldmVudC9FdmVudFR5cGUnO1xuXG5jb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKHRoZW1lID0+ICh7XG4gICAgYnV0dG9uOiB7XG4gICAgICAgIG1hcmdpbjogdGhlbWUuc3BhY2luZygxKSxcbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICB9LFxuICAgIGVycm9yTWVzc2FnZURpc3BsYXk6IHtcbiAgICAgICAgY29sb3I6ICdyZWQnXG4gICAgfVxufSkpO1xuXG5jb25zdCBzdGF0dXMgPSAocmVzcG9uc2UpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHtjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHR9KTtcbiAgICB9XG59O1xuXG5jb25zdCBqc29uID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuZXhwb3J0IGNvbnN0IEltYWdlRWRpdG9yQ29tcG9uZW50ID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbdmlld2VyRmlsZSwgc2V0Vmlld2VyRmlsZV0gPSBSZWFjdC51c2VTdGF0ZSghVXRpbHMuaXNOdWxsKHByb3BzLmluaXRpYWxGaWxlKSA/IHByb3BzLmluaXRpYWxGaWxlIDogbnVsbCk7XG4gICAgY29uc3QgW2FuZ2xlLCBzZXRBbmdsZV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbem9vbURlcHRoLCBzZXRab29tRGVwdGhdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW29yaWdpbmFsSW1hZ2VXaWR0aCwgc2V0T3JpZ2luYWxJbWFnZVdpZHRoXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtvcmlnaW5hbEltYWdlSGVpZ2h0LCBzZXRPcmlnaW5hbEltYWdlSGVpZ2h0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtwYXlsb2FkU3RvcmFnZU1vZGUsIHNldFBheWxvYWRTdG9yYWdlTW9kZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlIHx8ICdiYXNlNjQnKTtcbiAgICBjb25zdCBbZmlsZXMsIHNldEZpbGVzXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuaW5pdGlhbEZpbGUpID8gW3Byb3BzLmluaXRpYWxGaWxlXSA6IG51bGwpO1xuICAgIGNvbnN0IFttdWx0aXBsZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5tdWx0aXBsZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuICAgIGNvbnN0IHdpZHRoID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3dpZHRoJywgJzIwMHB4Jyk7XG4gICAgY29uc3QgaGVpZ2h0ID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2hlaWdodCcsICcyMDBweCcpO1xuICAgIGNvbnN0IGNhY2hlSWQgPSBSZWFjdC51c2VSZWYoIVV0aWxzLmlzTnVsbChwcm9wcy5iYXNlLnZhbHVlKSA/IHByb3BzLmJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA6IG51bGwpO1xuICAgIGNvbnN0IGJhc2UgPSBwcm9wcy5iYXNlO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmKGNhY2hlSWQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIC8vcmVtb3ZlKCkuY2F0Y2goKGUpID0+IHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRWaWV3ZXJGaWxlKHByb3BzLmluaXRpYWxGaWxlKTtcbiAgICB9LCBbcHJvcHMuaW5pdGlhbEZpbGVdKTtcblxuICAgIGZ1bmN0aW9uIGdldEZldGNoQ29uZmlnKGRhdGEpIHtcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIik7XG4gICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICdpZFRva2VuJzogaWRUb2tlblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRSb3RhdGVBbmdsZShhY3Rpb24pIHtcbiAgICAgICAgbGV0IHJvdGF0ZUFuZ2xlID0gbnVsbDtcblxuICAgICAgICBpZiAoXCJyb3RhdGVMZWZ0XCIgPT09IGFjdGlvbikge1xuICAgICAgICAgICAgcm90YXRlQW5nbGUgPSAtOTA7XG4gICAgICAgIH0gZWxzZSBpZiAoXCJyb3RhdGVSaWdodFwiID09PSBhY3Rpb24pIHtcbiAgICAgICAgICAgIHJvdGF0ZUFuZ2xlID0gOTA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcm90YXRlQW5nbGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYmFzZTY0VG9GaWxlKGI2NCwgb3JpZ2luYWxGaWxlLCBtaW1lID0gXCJpbWFnZS9wbmdcIikge1xuICAgICAgICBjb25zdCBjbGVhbiA9IGI2NC5zdGFydHNXaXRoKFwiZGF0YTpcIikgPyBiNjQuc3BsaXQoXCIsXCIpWzFdIDogYjY0O1xuICAgICAgICBjb25zdCBiaW4gPSBhdG9iKGNsZWFuKTtcbiAgICAgICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYmluLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmluLmxlbmd0aDsgaSsrKSBhcnJbaV0gPSBiaW4uY2hhckNvZGVBdChpKTtcbiAgICAgICAgY29uc3QgZXh0ID0gbWltZS5zcGxpdChcIi9cIilbMV0gfHwgXCJwbmdcIjtcbiAgICAgICAgY29uc3QgYmFzZSA9IG9yaWdpbmFsRmlsZS5uYW1lLnJlcGxhY2UoL1xcLlteLl0rJC8sIFwiXCIpO1xuICAgICAgICByZXR1cm4gbmV3IEZpbGUoW2Fycl0sIGAke2Jhc2V9LXByb2Nlc3NlZC4ke2V4dH1gLCB7IHR5cGU6IG1pbWUsIGxhc3RNb2RpZmllZDogRGF0ZS5ub3coKSB9KTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGxvYWQgPSAobWV0YWRhdGEsIGZpbGUsIHBheWxvYWQpID0+IHtcbiAgICAgICAgbGV0IHVwbG9hZFVybCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICd1cGxvYWRVcmwnLCBudWxsKTtcbiAgICAgICAgaWYodXBsb2FkVXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB1cGxvYWRVcmwgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3NhdmVcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXlsb2FkU3RvcmFnZU1vZGUgPSBwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlO1xuICAgICAgICBpZihwYXlsb2FkU3RvcmFnZU1vZGUgPT09ICdwb3N0Jyl7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBtZXRhZGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMudmlld0lkICsgXCIuXCIgKyBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICBkYXRhLmFwcGVuZChcIm1ldGFkYXRhXCIsIEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhKSk7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gYmFzZTY0VG9GaWxlKHBheWxvYWQsIGZpbGUsIFwiaW1hZ2UvcG5nXCIpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJmaWxlXCIsIHByb2Nlc3NlZEZpbGUpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSBnZXRGZXRjaENvbmZpZyhkYXRhKTtcbiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIHVwbG9hZFVybDtcbiAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUlkID0gIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSA/IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZTogJ0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQW4gZXJyb3IgaGFzIGFjY3VycmVkIHdoaWxlIHVwbG9hZGluZyBmaWxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGFwcGxpY2F0aW9uTWFuYWdlciwgcHJvcHMudmlld0lkLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWV0YWRhdGEucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCByZW1vdmUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvcmVtb3ZlLycgKyBjYWNoZUlkLmN1cnJlbnQ7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25IaXN0b3J5KCkucHVzaCgnL2xvZ2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKCkgPT4gZXZlbnQgPT4ge1xuICAgICAgICBsZXQgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgIHZhciBhbGxGaWxlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IGZpbGVzW2ldO1xuICAgICAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGVJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBiYXNlNjQ6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJcXG5cXG5cXG5cXG5GSUxFIDogXCIsIGZpbGUpO1xuICAgICAgICAgICAgICAgIGFsbEZpbGVzLnB1c2goZmlsZUluZm8pO1xuICAgICAgICAgICAgICAgIGlmIChhbGxGaWxlcy5sZW5ndGggPT09IGZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLm9uVXBsb2FkSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblVwbG9hZEhhbmRsZXIoYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMub25VcGxvYWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uVXBsb2FkSGFuZGxlcihhbGxGaWxlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzZXRGaWxlcyhhbGxGaWxlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5mb3JtKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2F1dG9SZW1vdmVCYWNrZ3JvdW5kJywgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsRmlsZXNbMF0uYmFzZTY0ID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWaWV3ZXJGaWxlKGFsbEZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVsb2FkRW5kZWQoYWxsRmlsZXMsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgYWxsRmlsZXNbMF0uYmFzZTY0LCAncmVtb3ZlQmFja2dyb3VuZCcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlbG9hZEVuZGVkKGFsbEZpbGUsIHJlYWRlci5wYXlsb2FkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZpZXdlckZpbGUoYWxsRmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZWxvYWRFbmRlZCA9IChhbGxGaWxlcywgcGF5bG9hZCkgPT4ge1xuICAgICAgICBsZXQgZmlsZU1ldGFEYXRhID0ge307XG4gICAgICAgIGZpbGVNZXRhRGF0YS5uYW1lID0gYWxsRmlsZXNbMF0ubmFtZTtcbiAgICAgICAgZmlsZU1ldGFEYXRhLnR5cGUgPSBhbGxGaWxlc1swXS50eXBlO1xuICAgICAgICBmaWxlTWV0YURhdGEuc2l6ZSA9IGFsbEZpbGVzWzBdLnNpemU7XG5cbiAgICAgICAgaWYgKGJhc2UudmFsdWUpIHtcbiAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5pZCA9IGJhc2UudmFsdWUuaWQ7XG4gICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPSBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdiYXNlNjQnID09PSBwYXlsb2FkU3RvcmFnZU1vZGUpIHtcbiAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5wYXlsb2FkID0gYWxsRmlsZXNbMF0uYmFzZTY0O1xuICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShmaWxlTWV0YURhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmNvcnJlbGF0aW9uSWQgPSBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9tYWluID0gcHJvcHMudmlld0lkO1xuXG4gICAgICAgICAgICBpZiAoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlSWQuY3VycmVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlTWV0YURhdGEsIGFsbEZpbGVzWzBdLmZpbGUsIHBheWxvYWQpO1xuICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVNZXRhRGF0YSwgYWxsRmlsZXNbMF0uZmlsZSwgcGF5bG9hZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJfX2ltYWdlX2NvbnRhaW5lclwiKTtcbiAgICAgICAgbGV0IGltYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJfX2ltYWdlXCIpO1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgICBsZXQgcmF0aW8gPSAoMTAgKiB6b29tRGVwdGgpIC8gMTAwO1xuXG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGUud2lkdGggPSBvcmlnaW5hbEltYWdlV2lkdGggKyAob3JpZ2luYWxJbWFnZVdpZHRoICogcmF0aW8pICsgXCJweFwiO1xuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLmhlaWdodCA9IG9yaWdpbmFsSW1hZ2VIZWlnaHQgKyAob3JpZ2luYWxJbWFnZUhlaWdodCAqIHJhdGlvKSArIFwicHhcIjtcblxuICAgICAgICAgICAgaW1hZ2Uuc3R5bGUud2lkdGggPSBjb250YWluZXIuc3R5bGUud2lkdGg7XG4gICAgICAgICAgICBpbWFnZS5zdHlsZS5oZWlnaHQgPSBjb250YWluZXIuc3R5bGUuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfSwgW3pvb21EZXB0aF0pO1xuXG4gICAgZnVuY3Rpb24gcHJvY2VzcyhjYWxsYmFjaywgZGF0YSwgYWN0aW9uKSB7XG4gICAgICAgIGxldCBmZXRjaENvbmZpZyA9IGdldEZldGNoQ29uZmlnKGRhdGEpO1xuICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKVxuICAgICAgICAgICAgKyBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAncHJvY2Vzc2luZ1VybCcsIG51bGwpXG4gICAgICAgICAgICArIFwiL1wiICsgYWN0aW9uICsgXCIvXCIgKyBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCBcIm1vZGVcIiwgXCJET0NcIik7XG4gICAgICAgIGxldCByb3RhdGVBbmdsZSA9IGdldFJvdGF0ZUFuZ2xlKGFjdGlvbik7XG4gICAgICAgIGlmIChyb3RhdGVBbmdsZSkge1xuICAgICAgICAgICAgdXJsICs9IFwiP2FuZ2xlPVwiICsgcm90YXRlQW5nbGU7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvbkhpc3RvcnkoKS5wdXNoKCcvbG9naW4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgem9vbSA9IChkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKG9yaWdpbmFsSW1hZ2VXaWR0aCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0T3JpZ2luYWxJbWFnZVdpZHRoKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiX19pbWFnZVwiKS53aWR0aCk7XG4gICAgICAgICAgICBzZXRPcmlnaW5hbEltYWdlSGVpZ2h0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiX19pbWFnZVwiKS5oZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRlcHRoID0gZGlyZWN0aW9uID09PSBcIkluXCIgPyB6b29tRGVwdGggKyAxIDogem9vbURlcHRoIC0gMTtcbiAgICAgICAgaWYgKGRlcHRoIDw9IDApIHtcbiAgICAgICAgICAgIGRlcHRoID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFpvb21EZXB0aChkZXB0aCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHJvdGF0ZSA9IChkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgbGV0IHJvdGF0ZU1vZGUgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCBcInJvdGF0ZU1vZGVcIiwgbnVsbCk7XG4gICAgICAgIGlmIChyb3RhdGVNb2RlID09PSBudWxsIHx8IHJvdGF0ZU1vZGUgPT09ICdTRVJWRVInKSB7XG4gICAgICAgICAgICBwcm9jZXNzKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgZmlsZXNbMF0uYmFzZTY0ID0gZGF0YTtcbiAgICAgICAgICAgICAgICBzZXRWaWV3ZXJGaWxlKHsuLi5maWxlc1swXSwgYmFzZTY0OiBkYXRhfSk7XG4gICAgICAgICAgICAgICAgaGFuZGxlbG9hZEVuZGVkKGZpbGVzLCBkYXRhKTtcbiAgICAgICAgICAgIH0sIGZpbGVzWzBdLmJhc2U2NCwgJ3JvdGF0ZScgKyBkaXJlY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJvdGF0ZUFuZ2xlID0gYW5nbGUgKyBnZXRSb3RhdGVBbmdsZShcInJvdGF0ZVwiICsgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiX19pbWFnZV9jb250YWluZXJcIikuc3R5bGUudHJhbnNmb3JtID0gXCJyb3RhdGUoXCIgKyByb3RhdGVBbmdsZSArIFwiZGVnKVwiO1xuICAgICAgICAgICAgc2V0QW5nbGUocm90YXRlQW5nbGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHt3aWR0aDogd2lkdGh9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcInJvd1wifSBzdHlsZT17e21hcmdpbkxlZnQ6ICcwJywgbWFyZ2luUmlnaHQ6ICcwJ319PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnbGFiZWwnLCAnJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcInJvd1wifSBzdHlsZT17e21hcmdpbkxlZnQ6ICcwJywgbWFyZ2luUmlnaHQ6ICcwJ319PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PXtcImltYWdlL2pwZWcsaW1hZ2UvZ2lmLGltYWdlL3BuZyxpbWFnZS94LWVwc1wifVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZT17bXVsdGlwbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17J2NvbnRhaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEyMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyBcIjFweCBzb2xpZCAjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBiYXNlLmhhc0Vycm9yID8gXCIjZjQ0MzM2XCIgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1VQTE9BRCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUExPQURcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e2NvbG9yOiBcIiNmNDQzMzZcIiwgcGFkZGluZzogXCI4cHggMFwifX0+e2Jhc2UuZXJyb3JNZXNzYWdlfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wiY29sLSotKlwifSBzdHlsZT17e21hcmdpbkxlZnQ6ICc0cHgnfX0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UudmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17J2NvbnRhaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7d2lkdGg6ICc0MHB4JywgaGVpZ2h0OiAnNDBweCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiByb3RhdGUoJ0xlZnQnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1JPVEFURV9MRUZUJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnNHB4J319PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9eydjb250YWluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAnNDBweCcsIGhlaWdodDogJzQwcHgnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcm90YXRlKCdSaWdodCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnUk9UQVRFX1JJR0hUJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnNHB4J319PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9eydjb250YWluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAnNDBweCcsIGhlaWdodDogJzQwcHgnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gem9vbSgnT3V0Jyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17PEljb24gaWQ9eydaT09NX09VVCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJjb2wtKi0qXCJ9IHN0eWxlPXt7bWFyZ2luTGVmdDogJzRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXsnY29udGFpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzQwcHgnLCBoZWlnaHQ6ICc0MHB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHpvb20oJ0luJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17PEljb24gaWQ9eydaT09NX0lOJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSB8fCAhVXRpbHMuaXNOdWxsKHZpZXdlckZpbGUpID9cbiAgICAgICAgICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR3byBkaXNwbGF5IG1vZGVzOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAtIGRlZmF1bHQgKG5vIHVzZXItZHJpdmVuIHpvb20pOiBpbWFnZSBmaXRzIHRoZSBib3gsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgb2JqZWN0LWZpdCBjb250YWluLCBwYXJlbnQgb3ZlcmZsb3cgaGlkZGVuIOKGkiBubyBzY3JvbGxiYXJzLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAtIHpvb21lZCAodXNlciBjbGlja2VkIFpvb20gSW4pOiBleHBsaWNpdCB3aWR0aC9oZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBhcHBsaWVkIGJ5IHRoZSB6b29tIHVzZUVmZmVjdCwgcGFyZW50IG92ZXJmbG93IGF1dG8gc29cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICB0aGUgdXNlciBjYW4gcGFuIGFyb3VuZCB0aGUgbGFyZ2VyLXRoYW4tYm94IGltYWdlLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNab29tZWQgPSB6b29tRGVwdGggIT09IG51bGwgJiYgem9vbURlcHRoID4gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wicm93XCJ9IHN0eWxlPXt7cGFkZGluZzogXCI4cHggMFwiLCBtYXJnaW5MZWZ0OiAnMCcsIG1hcmdpblJpZ2h0OiAnMCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cIl9faW1hZ2VfcGFyZW50XCIgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogJ25vLXJlcGVhdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogJ2NvdmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogYHVybCgke3JlcXVpcmUoJy4vdHJhbnNwYXJlbnQuanBlZycpfSlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlMWUxZTEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBpc1pvb21lZCA/ICdhdXRvJyA6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc2cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19IGNsYXNzTmFtZT1cImNvbC0qLSpcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9e1wiX19pbWFnZV9jb250YWluZXJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNab29tZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGlkPXtcIl9faW1hZ2VcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17dmlld2VyRmlsZT8uYmFzZTY0IHx8IGJhc2UudmFsdWU/LnVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17Jyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWm9vbWVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge2Rpc3BsYXk6ICdibG9jaycsIHVzZXJTZWxlY3Q6ICdub25lJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RGaXQ6ICdjb250YWluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyU2VsZWN0OiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KSgpXG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBjb25zdCBJbWFnZUVkaXRvciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2ZpbGUsIHNldEZpbGVdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY2xlYXJUcmlnZ2VyID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSB2YWx1ZUNoYW5nZUNhbGxiYWNrPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyLmN1cnJlbnQgPSAhY2xlYXJUcmlnZ2VyLmN1cnJlbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxJbWFnZUVkaXRvckNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsRmlsZT17ZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyPXtjbGVhclRyaWdnZXIuY3VycmVudH1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0ltYWdlRWRpdG9yQ29tcG9uZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlRWRpdG9yO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdB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
|
|
504
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbiIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX0V2ZW50IiwiX09ic2VydmFibGUiLCJfRXZlbnRUeXBlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsInVzZVN0eWxlcyIsIm1ha2VTdHlsZXMiLCJ0aGVtZSIsImJ1dHRvbiIsIm1hcmdpbiIsInNwYWNpbmciLCJpbnB1dCIsImRpc3BsYXkiLCJlcnJvck1lc3NhZ2VEaXNwbGF5IiwiY29sb3IiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0IiwidGhlbiIsInNlcnZlck1lc3NhZ2UiLCJib2R5IiwiSlNPTiIsInBhcnNlIiwibWVzc2FnZSIsImlnbm9yZWQiLCJyZWplY3QiLCJjb2RlIiwianNvbiIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkltYWdlRWRpdG9yQ29tcG9uZW50IiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJhbmdsZSIsInNldEFuZ2xlIiwiem9vbURlcHRoIiwic2V0Wm9vbURlcHRoIiwib3JpZ2luYWxJbWFnZVdpZHRoIiwic2V0T3JpZ2luYWxJbWFnZVdpZHRoIiwib3JpZ2luYWxJbWFnZUhlaWdodCIsInNldE9yaWdpbmFsSW1hZ2VIZWlnaHQiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibXVsdGlwbGUiLCJjbGFzc2VzIiwid2lkdGgiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJoZWlnaHQiLCJjYWNoZUlkIiwidXNlUmVmIiwiYmFzZSIsImRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiZ2V0RmV0Y2hDb25maWciLCJkYXRhIiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwibWV0aG9kIiwiaGVhZGVycyIsImdldFJvdGF0ZUFuZ2xlIiwiYWN0aW9uIiwicm90YXRlQW5nbGUiLCJiYXNlNjRUb0ZpbGUiLCJiNjQiLCJvcmlnaW5hbEZpbGUiLCJtaW1lIiwidW5kZWZpbmVkIiwiY2xlYW4iLCJzdGFydHNXaXRoIiwic3BsaXQiLCJiaW4iLCJhdG9iIiwiYXJyIiwiVWludDhBcnJheSIsImNoYXJDb2RlQXQiLCJleHQiLCJuYW1lIiwicmVwbGFjZSIsIkZpbGUiLCJjb25jYXQiLCJ0eXBlIiwibGFzdE1vZGlmaWVkIiwiRGF0ZSIsIm5vdyIsInVwbG9hZCIsIm1ldGFkYXRhIiwiZmlsZSIsInBheWxvYWQiLCJ1cGxvYWRVcmwiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsIkZvcm1EYXRhIiwiY29ycmVsYXRpb25JZCIsInZpZXdJZCIsImlkIiwiYXBwZW5kIiwic3RyaW5naWZ5IiwicHJvY2Vzc2VkRmlsZSIsImZldGNoQ29uZmlnIiwidXJsIiwidHJhY2tQcm9taXNlIiwiZmV0Y2giLCJlbmNvZGVVUkkiLCJkb2N1bWVudFJlcG9zaXRvcnlJZCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiY2F0Y2giLCJjbGVhciIsImdldEFwcGxpY2F0aW9uSGlzdG9yeSIsIm1lc3NhZ2VUeXBlIiwiZXZlbnQiLCJFdmVudCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsInJlbW92ZSIsImdldEFjdGl2ZVRlbmFudCIsImhhbmRsZUNoYW5nZSIsInRhcmdldCIsImFsbEZpbGVzIiwicmVhZGVyIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJvbmxvYWQiLCJmaWxlSW5mbyIsInNpemUiLCJiYXNlNjQiLCJyZXN1bHQiLCJjb25zb2xlIiwibG9nIiwib25VcGxvYWRIYW5kbGVyIiwib25sb2FkZW5kIiwiZm9ybSIsInByb2Nlc3MiLCJoYW5kbGVsb2FkRW5kZWQiLCJhbGxGaWxlIiwiZmlsZU1ldGFEYXRhIiwiZG9tYWluIiwiY29udGFpbmVyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImltYWdlIiwicmF0aW8iLCJzdHlsZSIsImNhbGxiYWNrIiwiem9vbSIsImRpcmVjdGlvbiIsImRlcHRoIiwicm90YXRlIiwicm90YXRlTW9kZSIsInRyYW5zZm9ybSIsImNyZWF0ZUVsZW1lbnQiLCJtZXJnZVN0eWxlcyIsImNsYXNzTmFtZSIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImFjY2VwdCIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJjb21wb25lbnQiLCJ2YXJpYW50IiwiYm9yZGVyIiwiaGFzRXJyb3IiLCJzdGFydEljb24iLCJwYWRkaW5nIiwiZXJyb3JNZXNzYWdlIiwib25DbGljayIsIl9iYXNlJHZhbHVlIiwiaXNab29tZWQiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJib3JkZXJSYWRpdXMiLCJvdmVyZmxvdyIsImJveFNpemluZyIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsInNyYyIsImFsdCIsImRyYWdnYWJsZSIsInVzZXJTZWxlY3QiLCJtYXhXaWR0aCIsIm1heEhlaWdodCIsIm9iamVjdEZpdCIsIkltYWdlRWRpdG9yIiwic2V0RmlsZSIsImNsZWFyVHJpZ2dlciIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiaW5ib3VuZCIsInZhbHVlQ2hhbmdlQ2FsbGJhY2siLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0ltYWdlRWRpdG9yLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0J1dHRvbic7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQge21ha2VTdHlsZXN9IGZyb20gJ0BtdWkvc3R5bGVzJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IHt0cmFja1Byb21pc2V9IGZyb20gXCJyZWFjdC1wcm9taXNlLXRyYWNrZXJcIjtcbmltcG9ydCBFdmVudCBmcm9tICcuLi8uLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uLy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi8uLi9ldmVudC9FdmVudFR5cGUnO1xuXG5jb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKHRoZW1lID0+ICh7XG4gICAgYnV0dG9uOiB7XG4gICAgICAgIG1hcmdpbjogdGhlbWUuc3BhY2luZygxKSxcbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICB9LFxuICAgIGVycm9yTWVzc2FnZURpc3BsYXk6IHtcbiAgICAgICAgY29sb3I6ICdyZWQnXG4gICAgfVxufSkpO1xuXG5jb25zdCBzdGF0dXMgPSAocmVzcG9uc2UpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU3VyZmFjZSB0aGUgc2VydmVyJ3MgZnJpZW5kbHkgbWVzc2FnZSAoRXJyb3JSZXNwb25zZS5tZXNzYWdlKSB3aGVuIHByZXNlbnQuXG4gICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbigodGV4dCkgPT4ge1xuICAgICAgICAgICAgbGV0IHNlcnZlck1lc3NhZ2UgPSBudWxsO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5ID0gdGV4dCA/IEpTT04ucGFyc2UodGV4dCkgOiBudWxsO1xuICAgICAgICAgICAgICAgIHNlcnZlck1lc3NhZ2UgPSBib2R5ICYmIGJvZHkubWVzc2FnZSA/IGJvZHkubWVzc2FnZSA6IG51bGw7XG4gICAgICAgICAgICB9IGNhdGNoIChpZ25vcmVkKSB7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe2NvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogc2VydmVyTWVzc2FnZX0pO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5jb25zdCBqc29uID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuZXhwb3J0IGNvbnN0IEltYWdlRWRpdG9yQ29tcG9uZW50ID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbdmlld2VyRmlsZSwgc2V0Vmlld2VyRmlsZV0gPSBSZWFjdC51c2VTdGF0ZSghVXRpbHMuaXNOdWxsKHByb3BzLmluaXRpYWxGaWxlKSA/IHByb3BzLmluaXRpYWxGaWxlIDogbnVsbCk7XG4gICAgY29uc3QgW2FuZ2xlLCBzZXRBbmdsZV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbem9vbURlcHRoLCBzZXRab29tRGVwdGhdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW29yaWdpbmFsSW1hZ2VXaWR0aCwgc2V0T3JpZ2luYWxJbWFnZVdpZHRoXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtvcmlnaW5hbEltYWdlSGVpZ2h0LCBzZXRPcmlnaW5hbEltYWdlSGVpZ2h0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtwYXlsb2FkU3RvcmFnZU1vZGUsIHNldFBheWxvYWRTdG9yYWdlTW9kZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlIHx8ICdiYXNlNjQnKTtcbiAgICBjb25zdCBbZmlsZXMsIHNldEZpbGVzXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuaW5pdGlhbEZpbGUpID8gW3Byb3BzLmluaXRpYWxGaWxlXSA6IG51bGwpO1xuICAgIGNvbnN0IFttdWx0aXBsZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5tdWx0aXBsZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuICAgIGNvbnN0IHdpZHRoID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3dpZHRoJywgJzIwMHB4Jyk7XG4gICAgY29uc3QgaGVpZ2h0ID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2hlaWdodCcsICcyMDBweCcpO1xuICAgIGNvbnN0IGNhY2hlSWQgPSBSZWFjdC51c2VSZWYoIVV0aWxzLmlzTnVsbChwcm9wcy5iYXNlLnZhbHVlKSA/IHByb3BzLmJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA6IG51bGwpO1xuICAgIGNvbnN0IGJhc2UgPSBwcm9wcy5iYXNlO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmKGNhY2hlSWQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIC8vcmVtb3ZlKCkuY2F0Y2goKGUpID0+IHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRWaWV3ZXJGaWxlKHByb3BzLmluaXRpYWxGaWxlKTtcbiAgICB9LCBbcHJvcHMuaW5pdGlhbEZpbGVdKTtcblxuICAgIGZ1bmN0aW9uIGdldEZldGNoQ29uZmlnKGRhdGEpIHtcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIik7XG4gICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICdpZFRva2VuJzogaWRUb2tlblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRSb3RhdGVBbmdsZShhY3Rpb24pIHtcbiAgICAgICAgbGV0IHJvdGF0ZUFuZ2xlID0gbnVsbDtcblxuICAgICAgICBpZiAoXCJyb3RhdGVMZWZ0XCIgPT09IGFjdGlvbikge1xuICAgICAgICAgICAgcm90YXRlQW5nbGUgPSAtOTA7XG4gICAgICAgIH0gZWxzZSBpZiAoXCJyb3RhdGVSaWdodFwiID09PSBhY3Rpb24pIHtcbiAgICAgICAgICAgIHJvdGF0ZUFuZ2xlID0gOTA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcm90YXRlQW5nbGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYmFzZTY0VG9GaWxlKGI2NCwgb3JpZ2luYWxGaWxlLCBtaW1lID0gXCJpbWFnZS9wbmdcIikge1xuICAgICAgICBjb25zdCBjbGVhbiA9IGI2NC5zdGFydHNXaXRoKFwiZGF0YTpcIikgPyBiNjQuc3BsaXQoXCIsXCIpWzFdIDogYjY0O1xuICAgICAgICBjb25zdCBiaW4gPSBhdG9iKGNsZWFuKTtcbiAgICAgICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYmluLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmluLmxlbmd0aDsgaSsrKSBhcnJbaV0gPSBiaW4uY2hhckNvZGVBdChpKTtcbiAgICAgICAgY29uc3QgZXh0ID0gbWltZS5zcGxpdChcIi9cIilbMV0gfHwgXCJwbmdcIjtcbiAgICAgICAgY29uc3QgYmFzZSA9IG9yaWdpbmFsRmlsZS5uYW1lLnJlcGxhY2UoL1xcLlteLl0rJC8sIFwiXCIpO1xuICAgICAgICByZXR1cm4gbmV3IEZpbGUoW2Fycl0sIGAke2Jhc2V9LXByb2Nlc3NlZC4ke2V4dH1gLCB7IHR5cGU6IG1pbWUsIGxhc3RNb2RpZmllZDogRGF0ZS5ub3coKSB9KTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGxvYWQgPSAobWV0YWRhdGEsIGZpbGUsIHBheWxvYWQpID0+IHtcbiAgICAgICAgbGV0IHVwbG9hZFVybCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICd1cGxvYWRVcmwnLCBudWxsKTtcbiAgICAgICAgaWYodXBsb2FkVXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB1cGxvYWRVcmwgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3NhdmVcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXlsb2FkU3RvcmFnZU1vZGUgPSBwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlO1xuICAgICAgICBpZihwYXlsb2FkU3RvcmFnZU1vZGUgPT09ICdwb3N0Jyl7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBtZXRhZGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMudmlld0lkICsgXCIuXCIgKyBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICBkYXRhLmFwcGVuZChcIm1ldGFkYXRhXCIsIEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhKSk7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gYmFzZTY0VG9GaWxlKHBheWxvYWQsIGZpbGUsIFwiaW1hZ2UvcG5nXCIpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJmaWxlXCIsIHByb2Nlc3NlZEZpbGUpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSBnZXRGZXRjaENvbmZpZyhkYXRhKTtcbiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIHVwbG9hZFVybDtcbiAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUlkID0gIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSA/IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZTogJ0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAoZSAmJiBlLm1lc3NhZ2UpID8gZS5tZXNzYWdlIDogJ0FuIGVycm9yIGhhcyBvY2N1cnJlZCB3aGlsZSB1cGxvYWRpbmcgZmlsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChhcHBsaWNhdGlvbk1hbmFnZXIsIHByb3BzLnZpZXdJZCwgbWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnBheWxvYWQgPSBwYXlsb2FkO1xuICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVtb3ZlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIik7XG4gICAgICAgICAgICBjb25zdCBpZFRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImlkVG9rZW5cIik7XG5cbiAgICAgICAgICAgIGxldCBmZXRjaENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ2lkVG9rZW4nOiBpZFRva2VuLFxuICAgICAgICAgICAgICAgICAgICAndGVuYW50JzogYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IHVybCA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyAnL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3JlbW92ZS8nICsgY2FjaGVJZC5jdXJyZW50O1xuICAgICAgICAgICAgdHJhY2tQcm9taXNlKFxuICAgICAgICAgICAgICAgIGZldGNoKGVuY29kZVVSSSh1cmwpLCBmZXRjaENvbmZpZylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9ICgpID0+IGV2ZW50ID0+IHtcbiAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgICAgICB2YXIgYWxsRmlsZXMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IGZpbGUgPSBmaWxlc1tpXTtcbiAgICAgICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWxlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgYmFzZTY0OiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBmaWxlOiBmaWxlXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiXFxuXFxuXFxuXFxuRklMRSA6IFwiLCBmaWxlKTtcbiAgICAgICAgICAgICAgICBhbGxGaWxlcy5wdXNoKGZpbGVJbmZvKTtcbiAgICAgICAgICAgICAgICBpZiAoYWxsRmlsZXMubGVuZ3RoID09PSBmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG11bHRpcGxlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5vblVwbG9hZEhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25VcGxvYWRIYW5kbGVyKGFsbEZpbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLm9uVXBsb2FkSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblVwbG9hZEhhbmRsZXIoYWxsRmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0RmlsZXMoYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdhdXRvUmVtb3ZlQmFja2dyb3VuZCcsIGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VzcygoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbEZpbGVzWzBdLmJhc2U2NCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Vmlld2VyRmlsZShhbGxGaWxlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlbG9hZEVuZGVkKGFsbEZpbGVzLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIGFsbEZpbGVzWzBdLmJhc2U2NCwgJ3JlbW92ZUJhY2tncm91bmQnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZWxvYWRFbmRlZChhbGxGaWxlLCByZWFkZXIucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRWaWV3ZXJGaWxlKGFsbEZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVsb2FkRW5kZWQgPSAoYWxsRmlsZXMsIHBheWxvYWQpID0+IHtcbiAgICAgICAgbGV0IGZpbGVNZXRhRGF0YSA9IHt9O1xuICAgICAgICBmaWxlTWV0YURhdGEubmFtZSA9IGFsbEZpbGVzWzBdLm5hbWU7XG4gICAgICAgIGZpbGVNZXRhRGF0YS50eXBlID0gYWxsRmlsZXNbMF0udHlwZTtcbiAgICAgICAgZmlsZU1ldGFEYXRhLnNpemUgPSBhbGxGaWxlc1swXS5zaXplO1xuXG4gICAgICAgIGlmIChiYXNlLnZhbHVlKSB7XG4gICAgICAgICAgICBmaWxlTWV0YURhdGEuaWQgPSBiYXNlLnZhbHVlLmlkO1xuICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmRvY3VtZW50UmVwb3NpdG9yeUlkID0gYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlJZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgnYmFzZTY0JyA9PT0gcGF5bG9hZFN0b3JhZ2VNb2RlKSB7XG4gICAgICAgICAgICBmaWxlTWV0YURhdGEucGF5bG9hZCA9IGFsbEZpbGVzWzBdLmJhc2U2NDtcbiAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UoZmlsZU1ldGFEYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmRvbWFpbiA9IHByb3BzLnZpZXdJZDtcblxuICAgICAgICAgICAgaWYgKGNhY2hlSWQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB1cGxvYWQoZmlsZU1ldGFEYXRhLCBhbGxGaWxlc1swXS5maWxlLCBwYXlsb2FkKTtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlTWV0YURhdGEsIGFsbEZpbGVzWzBdLmZpbGUsIHBheWxvYWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiX19pbWFnZV9jb250YWluZXJcIik7XG4gICAgICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiX19pbWFnZVwiKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgICAgbGV0IHJhdGlvID0gKDEwICogem9vbURlcHRoKSAvIDEwMDtcblxuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLndpZHRoID0gb3JpZ2luYWxJbWFnZVdpZHRoICsgKG9yaWdpbmFsSW1hZ2VXaWR0aCAqIHJhdGlvKSArIFwicHhcIjtcbiAgICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSBvcmlnaW5hbEltYWdlSGVpZ2h0ICsgKG9yaWdpbmFsSW1hZ2VIZWlnaHQgKiByYXRpbykgKyBcInB4XCI7XG5cbiAgICAgICAgICAgIGltYWdlLnN0eWxlLndpZHRoID0gY29udGFpbmVyLnN0eWxlLndpZHRoO1xuICAgICAgICAgICAgaW1hZ2Uuc3R5bGUuaGVpZ2h0ID0gY29udGFpbmVyLnN0eWxlLmhlaWdodDtcbiAgICAgICAgfVxuICAgIH0sIFt6b29tRGVwdGhdKTtcblxuICAgIGZ1bmN0aW9uIHByb2Nlc3MoY2FsbGJhY2ssIGRhdGEsIGFjdGlvbikge1xuICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSBnZXRGZXRjaENvbmZpZyhkYXRhKTtcbiAgICAgICAgbGV0IHVybCA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KClcbiAgICAgICAgICAgICsgVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3Byb2Nlc3NpbmdVcmwnLCBudWxsKVxuICAgICAgICAgICAgKyBcIi9cIiArIGFjdGlvbiArIFwiL1wiICsgVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgXCJtb2RlXCIsIFwiRE9DXCIpO1xuICAgICAgICBsZXQgcm90YXRlQW5nbGUgPSBnZXRSb3RhdGVBbmdsZShhY3Rpb24pO1xuICAgICAgICBpZiAocm90YXRlQW5nbGUpIHtcbiAgICAgICAgICAgIHVybCArPSBcIj9hbmdsZT1cIiArIHJvdGF0ZUFuZ2xlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJhY2tQcm9taXNlKFxuICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgICAgICAudGhlbihqc29uKVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25IaXN0b3J5KCkucHVzaCgnL2xvZ2luJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHpvb20gPSAoZGlyZWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChvcmlnaW5hbEltYWdlV2lkdGggPT09IG51bGwpIHtcbiAgICAgICAgICAgIHNldE9yaWdpbmFsSW1hZ2VXaWR0aChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIl9faW1hZ2VcIikud2lkdGgpO1xuICAgICAgICAgICAgc2V0T3JpZ2luYWxJbWFnZUhlaWdodChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIl9faW1hZ2VcIikuaGVpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBkZXB0aCA9IGRpcmVjdGlvbiA9PT0gXCJJblwiID8gem9vbURlcHRoICsgMSA6IHpvb21EZXB0aCAtIDE7XG4gICAgICAgIGlmIChkZXB0aCA8PSAwKSB7XG4gICAgICAgICAgICBkZXB0aCA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRab29tRGVwdGgoZGVwdGgpO1xuICAgIH07XG5cbiAgICBjb25zdCByb3RhdGUgPSAoZGlyZWN0aW9uKSA9PiB7XG4gICAgICAgIGxldCByb3RhdGVNb2RlID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgXCJyb3RhdGVNb2RlXCIsIG51bGwpO1xuICAgICAgICBpZiAocm90YXRlTW9kZSA9PT0gbnVsbCB8fCByb3RhdGVNb2RlID09PSAnU0VSVkVSJykge1xuICAgICAgICAgICAgcHJvY2VzcygoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGZpbGVzWzBdLmJhc2U2NCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgc2V0Vmlld2VyRmlsZSh7Li4uZmlsZXNbMF0sIGJhc2U2NDogZGF0YX0pO1xuICAgICAgICAgICAgICAgIGhhbmRsZWxvYWRFbmRlZChmaWxlcywgZGF0YSk7XG4gICAgICAgICAgICB9LCBmaWxlc1swXS5iYXNlNjQsICdyb3RhdGUnICsgZGlyZWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCByb3RhdGVBbmdsZSA9IGFuZ2xlICsgZ2V0Um90YXRlQW5nbGUoXCJyb3RhdGVcIiArIGRpcmVjdGlvbik7XG4gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIl9faW1hZ2VfY29udGFpbmVyXCIpLnN0eWxlLnRyYW5zZm9ybSA9IFwicm90YXRlKFwiICsgcm90YXRlQW5nbGUgKyBcImRlZylcIjtcbiAgICAgICAgICAgIHNldEFuZ2xlKHJvdGF0ZUFuZ2xlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7d2lkdGg6IHdpZHRofSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJyb3dcIn0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnMCcsIG1hcmdpblJpZ2h0OiAnMCd9fT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJjb2wtKi0qXCJ9PlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7VXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpfVxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJyb3dcIn0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnMCcsIG1hcmdpblJpZ2h0OiAnMCd9fT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJjb2wtKi0qXCJ9PlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdD17XCJpbWFnZS9qcGVnLGltYWdlL2dpZixpbWFnZS9wbmcsaW1hZ2UveC1lcHNcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU9e211bHRpcGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17YGNvbnRhaW5lZC1idXR0b24tZmlsZS0ke3Byb3BzLmNvbmZpZy5pZH1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9eydjb250YWluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMjBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBiYXNlLmhhc0Vycm9yID8gXCIxcHggc29saWQgI2Y0NDMzNlwiIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/IFwiI2Y0NDMzNlwiIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17PEljb24gaWQ9eydVUExPQUQnfS8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBMT0FEXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhc0Vycm9yID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tjb2xvcjogXCIjZjQ0MzM2XCIsIHBhZGRpbmc6IFwiOHB4IDBcIn19PntiYXNlLmVycm9yTWVzc2FnZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnNHB4J319PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9eydjb250YWluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAnNDBweCcsIGhlaWdodDogJzQwcHgnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcm90YXRlKCdMZWZ0Jyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17PEljb24gaWQ9eydST1RBVEVfTEVGVCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJjb2wtKi0qXCJ9IHN0eWxlPXt7bWFyZ2luTGVmdDogJzRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXsnY29udGFpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzQwcHgnLCBoZWlnaHQ6ICc0MHB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHJvdGF0ZSgnUmlnaHQnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1JPVEFURV9SSUdIVCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJjb2wtKi0qXCJ9IHN0eWxlPXt7bWFyZ2luTGVmdDogJzRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXsnY29udGFpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzQwcHgnLCBoZWlnaHQ6ICc0MHB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHpvb20oJ091dCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnWk9PTV9PVVQnfS8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wiY29sLSotKlwifSBzdHlsZT17e21hcmdpbkxlZnQ6ICc0cHgnfX0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UudmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17J2NvbnRhaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7d2lkdGg6ICc0MHB4JywgaGVpZ2h0OiAnNDBweCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB6b29tKCdJbicpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnWk9PTV9JTid9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgfHwgIVV0aWxzLmlzTnVsbCh2aWV3ZXJGaWxlKSA/XG4gICAgICAgICAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUd28gZGlzcGxheSBtb2RlczpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgLSBkZWZhdWx0IChubyB1c2VyLWRyaXZlbiB6b29tKTogaW1hZ2UgZml0cyB0aGUgYm94LFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIG9iamVjdC1maXQgY29udGFpbiwgcGFyZW50IG92ZXJmbG93IGhpZGRlbiDihpIgbm8gc2Nyb2xsYmFycy5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgLSB6b29tZWQgKHVzZXIgY2xpY2tlZCBab29tIEluKTogZXhwbGljaXQgd2lkdGgvaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgYXBwbGllZCBieSB0aGUgem9vbSB1c2VFZmZlY3QsIHBhcmVudCBvdmVyZmxvdyBhdXRvIHNvXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgdGhlIHVzZXIgY2FuIHBhbiBhcm91bmQgdGhlIGxhcmdlci10aGFuLWJveCBpbWFnZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzWm9vbWVkID0gem9vbURlcHRoICE9PSBudWxsICYmIHpvb21EZXB0aCA+IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcInJvd1wifSBzdHlsZT17e3BhZGRpbmc6IFwiOHB4IDBcIiwgbWFyZ2luTGVmdDogJzAnLCBtYXJnaW5SaWdodDogJzAnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJfX2ltYWdlX3BhcmVudFwiIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFNpemU6ICdjb3ZlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHtyZXF1aXJlKCcuL3RyYW5zcGFyZW50LmpwZWcnKX0pYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTFlMWUxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaXNab29tZWQgPyAnYXV0bycgOiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNnB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSBjbGFzc05hbWU9XCJjb2wtKi0qXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXtcIl9faW1hZ2VfY29udGFpbmVyXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWm9vbWVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7ZGlzcGxheTogJ2lubGluZS1ibG9jayd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBpZD17XCJfX2ltYWdlXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e3ZpZXdlckZpbGU/LmJhc2U2NCB8fCBiYXNlLnZhbHVlPy51cmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9eycnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1pvb21lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtkaXNwbGF5OiAnYmxvY2snLCB1c2VyU2VsZWN0OiAnbm9uZSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0Rml0OiAnY29udGFpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlclNlbGVjdDogJ25vbmUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSkoKVxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgSW1hZ2VFZGl0b3IgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWxlLCBzZXRGaWxlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNsZWFyVHJpZ2dlciA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9IHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfX0gdmFsdWVDaGFuZ2VDYWxsYmFjaz17KHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNsZWFyVHJpZ2dlci5jdXJyZW50ID0gIWNsZWFyVHJpZ2dlci5jdXJyZW50XG4gICAgICAgICAgICB9XG4gICAgICAgIH19PlxuICAgICAgICAgICAge2Jhc2UgPT5cbiAgICAgICAgICAgICAgICA8SW1hZ2VFZGl0b3JDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbEZpbGU9e2ZpbGV9XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVHJpZ2dlcj17Y2xlYXJUcmlnZ2VyLmN1cnJlbnR9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9JbWFnZUVkaXRvckNvbXBvbmVudD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUVkaXRvcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssbUJBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxXQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxVQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBOEMsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFXLENBQUEsSUFBQUQsQ0FBQSxPQUFBRSxjQUFBLENBQUFDLElBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLE1BQUFKLENBQUEsQ0FBQUksQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsYUFBQUosQ0FBQSxLQUFBSixRQUFBLENBQUFXLEtBQUEsT0FBQU4sU0FBQTtBQUFBLFNBQUFPLFFBQUFmLENBQUEsRUFBQVcsQ0FBQSxRQUFBRCxDQUFBLEdBQUFOLE1BQUEsQ0FBQVksSUFBQSxDQUFBaEIsQ0FBQSxPQUFBSSxNQUFBLENBQUFhLHFCQUFBLFFBQUFDLENBQUEsR0FBQWQsTUFBQSxDQUFBYSxxQkFBQSxDQUFBakIsQ0FBQSxHQUFBVyxDQUFBLEtBQUFPLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFSLENBQUEsV0FBQVAsTUFBQSxDQUFBZ0Isd0JBQUEsQ0FBQXBCLENBQUEsRUFBQVcsQ0FBQSxFQUFBVSxVQUFBLE9BQUFYLENBQUEsQ0FBQVksSUFBQSxDQUFBUixLQUFBLENBQUFKLENBQUEsRUFBQVEsQ0FBQSxZQUFBUixDQUFBO0FBQUEsU0FBQWEsY0FBQXZCLENBQUEsYUFBQVcsQ0FBQSxNQUFBQSxDQUFBLEdBQUFILFNBQUEsQ0FBQUMsTUFBQSxFQUFBRSxDQUFBLFVBQUFELENBQUEsV0FBQUYsU0FBQSxDQUFBRyxDQUFBLElBQUFILFNBQUEsQ0FBQUcsQ0FBQSxRQUFBQSxDQUFBLE9BQUFJLE9BQUEsQ0FBQVgsTUFBQSxDQUFBTSxDQUFBLE9BQUFjLE9BQUEsV0FBQWIsQ0FBQSxJQUFBYyxlQUFBLENBQUF6QixDQUFBLEVBQUFXLENBQUEsRUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFNBQUFQLE1BQUEsQ0FBQXNCLHlCQUFBLEdBQUF0QixNQUFBLENBQUF1QixnQkFBQSxDQUFBM0IsQ0FBQSxFQUFBSSxNQUFBLENBQUFzQix5QkFBQSxDQUFBaEIsQ0FBQSxLQUFBSyxPQUFBLENBQUFYLE1BQUEsQ0FBQU0sQ0FBQSxHQUFBYyxPQUFBLFdBQUFiLENBQUEsSUFBQVAsTUFBQSxDQUFBd0IsY0FBQSxDQUFBNUIsQ0FBQSxFQUFBVyxDQUFBLEVBQUFQLE1BQUEsQ0FBQWdCLHdCQUFBLENBQUFWLENBQUEsRUFBQUMsQ0FBQSxpQkFBQVgsQ0FBQTtBQUFBLFNBQUF5QixnQkFBQXpCLENBQUEsRUFBQVcsQ0FBQSxFQUFBRCxDQUFBLFlBQUFDLENBQUEsR0FBQWtCLGNBQUEsQ0FBQWxCLENBQUEsTUFBQVgsQ0FBQSxHQUFBSSxNQUFBLENBQUF3QixjQUFBLENBQUE1QixDQUFBLEVBQUFXLENBQUEsSUFBQW1CLEtBQUEsRUFBQXBCLENBQUEsRUFBQVcsVUFBQSxNQUFBVSxZQUFBLE1BQUFDLFFBQUEsVUFBQWhDLENBQUEsQ0FBQVcsQ0FBQSxJQUFBRCxDQUFBLEVBQUFWLENBQUE7QUFBQSxTQUFBNkIsZUFBQW5CLENBQUEsUUFBQXVCLENBQUEsR0FBQUMsWUFBQSxDQUFBeEIsQ0FBQSx1Q0FBQXVCLENBQUEsR0FBQUEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQUMsYUFBQXhCLENBQUEsRUFBQUMsQ0FBQSwyQkFBQUQsQ0FBQSxLQUFBQSxDQUFBLFNBQUFBLENBQUEsTUFBQVYsQ0FBQSxHQUFBVSxDQUFBLENBQUF5QixNQUFBLENBQUFDLFdBQUEsa0JBQUFwQyxDQUFBLFFBQUFpQyxDQUFBLEdBQUFqQyxDQUFBLENBQUFhLElBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLHVDQUFBc0IsQ0FBQSxTQUFBQSxDQUFBLFlBQUFJLFNBQUEseUVBQUExQixDQUFBLEdBQUEyQixNQUFBLEdBQUFDLE1BQUEsRUFBQTdCLENBQUE7QUFFOUMsTUFBTThCLFNBQVMsR0FBRyxJQUFBQyxrQkFBVSxFQUFDQyxLQUFLLEtBQUs7RUFDbkNDLE1BQU0sRUFBRTtJQUNKQyxNQUFNLEVBQUVGLEtBQUssQ0FBQ0csT0FBTyxDQUFDLENBQUM7RUFDM0IsQ0FBQztFQUNEQyxLQUFLLEVBQUU7SUFDSEMsT0FBTyxFQUFFO0VBQ2IsQ0FBQztFQUNEQyxtQkFBbUIsRUFBRTtJQUNqQkMsS0FBSyxFQUFFO0VBQ1g7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILE1BQU1DLE1BQU0sR0FBSUMsUUFBUSxJQUFLO0VBQ3pCLElBQUlBLFFBQVEsQ0FBQ0MsRUFBRSxFQUFFO0lBQ2IsT0FBT0MsT0FBTyxDQUFDQyxPQUFPLENBQUNILFFBQVEsQ0FBQztFQUNwQyxDQUFDLE1BQU07SUFDSDtJQUNBLE9BQU9BLFFBQVEsQ0FBQ0ksSUFBSSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFFRCxJQUFJLElBQUs7TUFDbEMsSUFBSUUsYUFBYSxHQUFHLElBQUk7TUFDeEIsSUFBSTtRQUNBLE1BQU1DLElBQUksR0FBR0gsSUFBSSxHQUFHSSxJQUFJLENBQUNDLEtBQUssQ0FBQ0wsSUFBSSxDQUFDLEdBQUcsSUFBSTtRQUMzQ0UsYUFBYSxHQUFHQyxJQUFJLElBQUlBLElBQUksQ0FBQ0csT0FBTyxHQUFHSCxJQUFJLENBQUNHLE9BQU8sR0FBRyxJQUFJO01BQzlELENBQUMsQ0FBQyxPQUFPQyxPQUFPLEVBQUUsQ0FDbEI7TUFDQSxPQUFPVCxPQUFPLENBQUNVLE1BQU0sQ0FBQztRQUFDQyxJQUFJLEVBQUViLFFBQVEsQ0FBQ0QsTUFBTTtRQUFFVyxPQUFPLEVBQUVKO01BQWEsQ0FBQyxDQUFDO0lBQzFFLENBQUMsQ0FBQztFQUNOO0FBQ0osQ0FBQztBQUVELE1BQU1RLElBQUksR0FBSWQsUUFBUSxJQUFLO0VBQ3ZCLE9BQU9BLFFBQVEsQ0FBQ0ksSUFBSSxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU1XLFFBQVEsR0FBR0MsTUFBTSxDQUFDRCxRQUFRLENBQUNFLFFBQVEsR0FBRyxJQUFJLEdBQUdELE1BQU0sQ0FBQ0QsUUFBUSxDQUFDRyxRQUFRO0FBQ3BFLE1BQU1DLG9CQUFvQixHQUFBQyxPQUFBLENBQUFELG9CQUFBLGdCQUFHRSxjQUFLLENBQUNDLElBQUksQ0FBRUMsS0FBSyxJQUFLO0VBQ3RELE1BQU0sQ0FBQ0MsVUFBVSxFQUFFQyxhQUFhLENBQUMsR0FBR0osY0FBSyxDQUFDSyxRQUFRLENBQUMsQ0FBQ0MsY0FBSyxDQUFDQyxNQUFNLENBQUNMLEtBQUssQ0FBQ00sV0FBVyxDQUFDLEdBQUdOLEtBQUssQ0FBQ00sV0FBVyxHQUFHLElBQUksQ0FBQztFQUMvRyxNQUFNLENBQUNDLEtBQUssRUFBRUMsUUFBUSxDQUFDLEdBQUdWLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLENBQUMsQ0FBQztFQUMzQyxNQUFNLENBQUNNLFNBQVMsRUFBRUMsWUFBWSxDQUFDLEdBQUdaLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLElBQUksQ0FBQztFQUN0RCxNQUFNLENBQUNRLGtCQUFrQixFQUFFQyxxQkFBcUIsQ0FBQyxHQUFHZCxjQUFLLENBQUNLLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDeEUsTUFBTSxDQUFDVSxtQkFBbUIsRUFBRUMsc0JBQXNCLENBQUMsR0FBR2hCLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLElBQUksQ0FBQztFQUMxRSxNQUFNLENBQUNZLGtCQUFrQixFQUFFQyxxQkFBcUIsQ0FBQyxHQUFHbEIsY0FBSyxDQUFDSyxRQUFRLENBQUNILEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQ0Ysa0JBQWtCLElBQUksUUFBUSxDQUFDO0VBQy9HLE1BQU0sQ0FBQ0csS0FBSyxFQUFFQyxRQUFRLENBQUMsR0FBR3JCLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLENBQUNDLGNBQUssQ0FBQ0MsTUFBTSxDQUFDTCxLQUFLLENBQUNNLFdBQVcsQ0FBQyxHQUFHLENBQUNOLEtBQUssQ0FBQ00sV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO0VBQ3ZHLE1BQU0sQ0FBQ2MsUUFBUSxDQUFDLEdBQUd0QixjQUFLLENBQUNLLFFBQVEsQ0FBQ0gsS0FBSyxDQUFDb0IsUUFBUSxLQUFLLElBQUksQ0FBQztFQUMxRCxNQUFNQyxPQUFPLEdBQUd2RCxTQUFTLENBQUMsQ0FBQztFQUMzQixNQUFNd0QsS0FBSyxHQUFHbEIsY0FBSyxDQUFDbUIscUJBQXFCLENBQUN2QixLQUFLLENBQUNpQixNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztFQUN6RSxNQUFNTyxNQUFNLEdBQUdwQixjQUFLLENBQUNtQixxQkFBcUIsQ0FBQ3ZCLEtBQUssQ0FBQ2lCLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDO0VBQzNFLE1BQU1RLE9BQU8sR0FBRzNCLGNBQUssQ0FBQzRCLE1BQU0sQ0FBQyxDQUFDdEIsY0FBSyxDQUFDQyxNQUFNLENBQUNMLEtBQUssQ0FBQzJCLElBQUksQ0FBQ3ZFLEtBQUssQ0FBQyxHQUFHNEMsS0FBSyxDQUFDMkIsSUFBSSxDQUFDdkUsS0FBSyxDQUFDd0UseUJBQXlCLEdBQUcsSUFBSSxDQUFDO0VBQ2pILE1BQU1ELElBQUksR0FBRzNCLEtBQUssQ0FBQzJCLElBQUk7RUFFdkI3QixjQUFLLENBQUMrQixTQUFTLENBQUMsTUFBTTtJQUNsQixPQUFPLE1BQU07TUFDVCxJQUFHSixPQUFPLENBQUNLLE9BQU8sRUFBRTtRQUNoQjtNQUFBO0lBRVIsQ0FBQztFQUNMLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTmhDLGNBQUssQ0FBQytCLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCM0IsYUFBYSxDQUFDRixLQUFLLENBQUNNLFdBQVcsQ0FBQztFQUNwQyxDQUFDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTSxXQUFXLENBQUMsQ0FBQztFQUV2QixTQUFTeUIsY0FBY0EsQ0FBQ0MsSUFBSSxFQUFFO0lBQzFCLE1BQU1DLFdBQVcsR0FBR0MsY0FBYyxDQUFDQyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQ3pELE1BQU1DLE9BQU8sR0FBR0YsY0FBYyxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRWpELE9BQU87TUFDSEUsTUFBTSxFQUFFLE1BQU07TUFDZEMsT0FBTyxFQUFFO1FBQ0wsUUFBUSxFQUFFLGtCQUFrQjtRQUM1QixlQUFlLEVBQUUsU0FBUyxHQUFHTCxXQUFXO1FBQ3hDLFNBQVMsRUFBRUc7TUFDZixDQUFDO01BQ0RwRCxJQUFJLEVBQUVnRDtJQUNWLENBQUM7RUFDTDtFQUVBLFNBQVNPLGNBQWNBLENBQUNDLE1BQU0sRUFBRTtJQUM1QixJQUFJQyxXQUFXLEdBQUcsSUFBSTtJQUV0QixJQUFJLFlBQVksS0FBS0QsTUFBTSxFQUFFO01BQ3pCQyxXQUFXLEdBQUcsQ0FBQyxFQUFFO0lBQ3JCLENBQUMsTUFBTSxJQUFJLGFBQWEsS0FBS0QsTUFBTSxFQUFFO01BQ2pDQyxXQUFXLEdBQUcsRUFBRTtJQUNwQjtJQUVBLE9BQU9BLFdBQVc7RUFDdEI7RUFFQSxTQUFTQyxZQUFZQSxDQUFDQyxHQUFHLEVBQUVDLFlBQVksRUFBc0I7SUFBQSxJQUFwQkMsSUFBSSxHQUFBL0csU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQWdILFNBQUEsR0FBQWhILFNBQUEsTUFBRyxXQUFXO0lBQ3ZELE1BQU1pSCxLQUFLLEdBQUdKLEdBQUcsQ0FBQ0ssVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHTCxHQUFHLENBQUNNLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBR04sR0FBRztJQUMvRCxNQUFNTyxHQUFHLEdBQUdDLElBQUksQ0FBQ0osS0FBSyxDQUFDO0lBQ3ZCLE1BQU1LLEdBQUcsR0FBRyxJQUFJQyxVQUFVLENBQUNILEdBQUcsQ0FBQ25ILE1BQU0sQ0FBQztJQUN0QyxLQUFLLElBQUl3QixDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUcyRixHQUFHLENBQUNuSCxNQUFNLEVBQUV3QixDQUFDLEVBQUUsRUFBRTZGLEdBQUcsQ0FBQzdGLENBQUMsQ0FBQyxHQUFHMkYsR0FBRyxDQUFDSSxVQUFVLENBQUMvRixDQUFDLENBQUM7SUFDL0QsTUFBTWdHLEdBQUcsR0FBR1YsSUFBSSxDQUFDSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSztJQUN2QyxNQUFNdEIsSUFBSSxHQUFHaUIsWUFBWSxDQUFDWSxJQUFJLENBQUNDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQ3RELE9BQU8sSUFBSUMsSUFBSSxDQUFDLENBQUNOLEdBQUcsQ0FBQyxLQUFBTyxNQUFBLENBQUtoQyxJQUFJLGlCQUFBZ0MsTUFBQSxDQUFjSixHQUFHLEdBQUk7TUFBRUssSUFBSSxFQUFFZixJQUFJO01BQUVnQixZQUFZLEVBQUVDLElBQUksQ0FBQ0MsR0FBRyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQ2hHO0VBRUEsTUFBTUMsTUFBTSxHQUFHQSxDQUFDQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsT0FBTyxLQUFLO0lBQ3hDLElBQUlDLFNBQVMsR0FBR2hFLGNBQUssQ0FBQ21CLHFCQUFxQixDQUFDdkIsS0FBSyxDQUFDaUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUM7SUFDNUUsSUFBR21ELFNBQVMsS0FBSyxJQUFJLEVBQUU7TUFDbkJBLFNBQVMsR0FBR0MsMkJBQWtCLENBQUNDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsa0NBQWtDO0lBQ3hGO0lBRUEsSUFBSXZELGtCQUFrQixHQUFHZixLQUFLLENBQUNpQixNQUFNLENBQUNGLGtCQUFrQjtJQUN4RCxJQUFHQSxrQkFBa0IsS0FBSyxNQUFNLEVBQUM7TUFDN0IsTUFBTWtCLFdBQVcsR0FBR0MsY0FBYyxDQUFDQyxPQUFPLENBQUMsYUFBYSxDQUFDO01BQ3pELE1BQU1DLE9BQU8sR0FBR0YsY0FBYyxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDO01BQ2pELElBQUlILElBQUksR0FBRyxJQUFJdUMsUUFBUSxDQUFDLENBQUM7TUFDekJOLFFBQVEsQ0FBQ08sYUFBYSxHQUFHeEUsS0FBSyxDQUFDeUUsTUFBTSxHQUFHLEdBQUcsR0FBR3pFLEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQ3lELEVBQUU7TUFDN0QxQyxJQUFJLENBQUMyQyxNQUFNLENBQUMsVUFBVSxFQUFFMUYsSUFBSSxDQUFDMkYsU0FBUyxDQUFDWCxRQUFRLENBQUMsQ0FBQztNQUNqRCxNQUFNWSxhQUFhLEdBQUduQyxZQUFZLENBQUN5QixPQUFPLEVBQUVELElBQUksRUFBRSxXQUFXLENBQUM7TUFDOURsQyxJQUFJLENBQUMyQyxNQUFNLENBQUMsTUFBTSxFQUFFRSxhQUFhLENBQUM7TUFFbEMsSUFBSUMsV0FBVyxHQUFHL0MsY0FBYyxDQUFDQyxJQUFJLENBQUM7TUFDdEMsSUFBSStDLEdBQUcsR0FBR3ZGLFFBQVEsR0FBRzRFLFNBQVM7TUFDOUIsSUFBQVksaUNBQVksRUFDUkMsS0FBSyxDQUFDQyxTQUFTLENBQUNILEdBQUcsQ0FBQyxFQUFFRCxXQUFXLENBQUMsQ0FDN0JoRyxJQUFJLENBQUNOLE1BQU0sQ0FBQyxDQUNaTSxJQUFJLENBQUNTLElBQUksQ0FBQyxDQUNWVCxJQUFJLENBQUVrRCxJQUFJLElBQUs7UUFDWmlDLFFBQVEsQ0FBQ2tCLG9CQUFvQixHQUFHLENBQUMvRSxjQUFLLENBQUNDLE1BQU0sQ0FBQ3NCLElBQUksQ0FBQ3ZFLEtBQUssQ0FBQyxHQUFHdUUsSUFBSSxDQUFDdkUsS0FBSyxDQUFDK0gsb0JBQW9CLEdBQUcsSUFBSTtRQUNsR2xCLFFBQVEsQ0FBQ3JDLHlCQUF5QixHQUFHSSxJQUFJO1FBQ3pDUCxPQUFPLENBQUNLLE9BQU8sR0FBR0UsSUFBSTtRQUN0QkwsSUFBSSxDQUFDeUQsaUJBQWlCLENBQUNuQixRQUFRLENBQUM7TUFDcEMsQ0FBQyxDQUFDLENBQUNvQixLQUFLLENBQ1AvSixDQUFDLElBQUs7UUFDSCxJQUFJQSxDQUFDLENBQUNnRSxJQUFJLEtBQUssR0FBRyxFQUFFO1VBQ2hCK0UsMkJBQWtCLENBQUNpQixLQUFLLENBQUMsQ0FBQztVQUMxQmpCLDJCQUFrQixDQUFDa0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDM0ksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3RDtRQUVBLElBQUl1QyxPQUFPLEdBQUc7VUFDVnFHLFdBQVcsRUFBRSxPQUFPO1VBQ3BCckcsT0FBTyxFQUFHN0QsQ0FBQyxJQUFJQSxDQUFDLENBQUM2RCxPQUFPLEdBQUk3RCxDQUFDLENBQUM2RCxPQUFPLEdBQUc7UUFDNUMsQ0FBQztRQUVELElBQUlzRyxLQUFLLEdBQUcsSUFBSUMsY0FBSyxDQUFDckIsMkJBQWtCLEVBQUVyRSxLQUFLLENBQUN5RSxNQUFNLEVBQUV0RixPQUFPLENBQUM7UUFDaEV3RyxtQkFBWSxDQUFDQyxTQUFTLENBQUNDLGtCQUFTLENBQUNDLGVBQWUsRUFBRUwsS0FBSyxDQUFDO01BQzVELENBQUMsQ0FDVCxDQUFDO0lBQ0wsQ0FBQyxNQUFNO01BQ0h4QixRQUFRLENBQUNFLE9BQU8sR0FBR0EsT0FBTztNQUMxQnhDLElBQUksQ0FBQ3lELGlCQUFpQixDQUFDbkIsUUFBUSxDQUFDO0lBQ3BDO0VBQ0osQ0FBQztFQUVELE1BQU04QixNQUFNLEdBQUdBLENBQUEsS0FBTTtJQUNqQixPQUFPLElBQUlwSCxPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFUyxNQUFNLEtBQUs7TUFDcEMsTUFBTTRDLFdBQVcsR0FBR0MsY0FBYyxDQUFDQyxPQUFPLENBQUMsYUFBYSxDQUFDO01BQ3pELE1BQU1DLE9BQU8sR0FBR0YsY0FBYyxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDO01BRWpELElBQUkyQyxXQUFXLEdBQUc7UUFDZHpDLE1BQU0sRUFBRSxLQUFLO1FBQ2JDLE9BQU8sRUFBRTtVQUNMLFFBQVEsRUFBRSxrQkFBa0I7VUFDNUIsZUFBZSxFQUFFLFNBQVMsR0FBR0wsV0FBVztVQUN4QyxTQUFTLEVBQUVHLE9BQU87VUFDbEIsUUFBUSxFQUFFaUMsMkJBQWtCLENBQUMyQixlQUFlLENBQUM7UUFDakQ7TUFDSixDQUFDO01BRUQsSUFBSWpCLEdBQUcsR0FBR3ZGLFFBQVEsR0FBRzZFLDJCQUFrQixDQUFDQyxjQUFjLENBQUMsQ0FBQyxHQUFHLHFDQUFxQyxHQUFHN0MsT0FBTyxDQUFDSyxPQUFPO01BQ2xILElBQUFrRCxpQ0FBWSxFQUNSQyxLQUFLLENBQUNDLFNBQVMsQ0FBQ0gsR0FBRyxDQUFDLEVBQUVELFdBQVcsQ0FBQyxDQUM3QmhHLElBQUksQ0FBQ04sTUFBTSxDQUFDLENBQ1pNLElBQUksQ0FBQyxNQUFNO1FBQ1JGLE9BQU8sQ0FBQyxDQUFDO01BQ2IsQ0FBQyxDQUFDLENBQUN5RyxLQUFLLENBQ1AvSixDQUFDLElBQUs7UUFDSCxJQUFJQSxDQUFDLENBQUNnRSxJQUFJLEtBQUssR0FBRyxFQUFFO1VBQ2hCK0UsMkJBQWtCLENBQUNpQixLQUFLLENBQUMsQ0FBQztVQUMxQmpCLDJCQUFrQixDQUFDa0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDM0ksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3RCxDQUFDLE1BQU07VUFDSHlDLE1BQU0sQ0FBQy9ELENBQUMsQ0FBQztRQUNiO01BQ0osQ0FBQyxDQUNULENBQUM7SUFDTCxDQUFDLENBQUM7RUFDTixDQUFDO0VBRUQsTUFBTTJLLFlBQVksR0FBR0EsQ0FBQSxLQUFNUixLQUFLLElBQUk7SUFDaEMsSUFBSXZFLEtBQUssR0FBR3VFLEtBQUssQ0FBQ1MsTUFBTSxDQUFDaEYsS0FBSztJQUM5QixJQUFJaUYsUUFBUSxHQUFHLEVBQUU7SUFDakIsS0FBSyxJQUFJNUksQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHMkQsS0FBSyxDQUFDbkYsTUFBTSxFQUFFd0IsQ0FBQyxFQUFFLEVBQUU7TUFDbkMsSUFBSTJHLElBQUksR0FBR2hELEtBQUssQ0FBQzNELENBQUMsQ0FBQztNQUNuQixJQUFJNkksTUFBTSxHQUFHLElBQUlDLFVBQVUsQ0FBQyxDQUFDO01BQzdCRCxNQUFNLENBQUNFLGFBQWEsQ0FBQ3BDLElBQUksQ0FBQztNQUMxQmtDLE1BQU0sQ0FBQ0csTUFBTSxHQUFHLE1BQU07UUFDbEIsSUFBSUMsUUFBUSxHQUFHO1VBQ1hoRCxJQUFJLEVBQUVVLElBQUksQ0FBQ1YsSUFBSTtVQUNmSSxJQUFJLEVBQUVNLElBQUksQ0FBQ04sSUFBSTtVQUNmNkMsSUFBSSxFQUFFdkMsSUFBSSxDQUFDdUMsSUFBSTtVQUNmQyxNQUFNLEVBQUVOLE1BQU0sQ0FBQ08sTUFBTTtVQUNyQnpDLElBQUksRUFBRUE7UUFDVixDQUFDO1FBRUQwQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRTNDLElBQUksQ0FBQztRQUNwQ2lDLFFBQVEsQ0FBQ3ZKLElBQUksQ0FBQzRKLFFBQVEsQ0FBQztRQUN2QixJQUFJTCxRQUFRLENBQUNwSyxNQUFNLEtBQUttRixLQUFLLENBQUNuRixNQUFNLEVBQUU7VUFDbEMsSUFBSXFGLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxDQUFDaEIsY0FBSyxDQUFDQyxNQUFNLENBQUNMLEtBQUssQ0FBQzhHLGVBQWUsQ0FBQyxFQUFFO2NBQ3RDOUcsS0FBSyxDQUFDOEcsZUFBZSxDQUFDWCxRQUFRLENBQUM7WUFDbkM7VUFDSixDQUFDLE1BQU07WUFDSCxJQUFJLENBQUMvRixjQUFLLENBQUNDLE1BQU0sQ0FBQ0wsS0FBSyxDQUFDOEcsZUFBZSxDQUFDLEVBQUU7Y0FDdEM5RyxLQUFLLENBQUM4RyxlQUFlLENBQUNYLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QztVQUNKO1VBRUFoRixRQUFRLENBQUNnRixRQUFRLENBQUM7UUFDdEI7TUFDSixDQUFDO01BRURDLE1BQU0sQ0FBQ1csU0FBUyxHQUFHLE1BQU07UUFDckIsSUFBSSxDQUFDM0csY0FBSyxDQUFDQyxNQUFNLENBQUNMLEtBQUssQ0FBQ2dILElBQUksQ0FBQyxFQUFFO1VBQzNCLElBQUk1RyxjQUFLLENBQUNtQixxQkFBcUIsQ0FBQ3ZCLEtBQUssQ0FBQ2lCLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUMxRWdHLE9BQU8sQ0FBRWpGLElBQUksSUFBSztjQUNkbUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDTyxNQUFNLEdBQUcxRSxJQUFJO2NBQ3pCOUIsYUFBYSxDQUFDaUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2NBQzFCZSxlQUFlLENBQUNmLFFBQVEsRUFBRW5FLElBQUksQ0FBQztZQUNuQyxDQUFDLEVBQUVtRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUNPLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQztVQUM5QyxDQUFDLE1BQU07WUFDSFEsZUFBZSxDQUFDQyxPQUFPLEVBQUVmLE1BQU0sQ0FBQ2pDLE9BQU8sQ0FBQztZQUN4Q2pFLGFBQWEsQ0FBQ2lHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUM5QjtRQUNKO01BQ0osQ0FBQztJQUNMO0VBQ0osQ0FBQztFQUVELE1BQU1lLGVBQWUsR0FBR0EsQ0FBQ2YsUUFBUSxFQUFFaEMsT0FBTyxLQUFLO0lBQzNDLElBQUlpRCxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCQSxZQUFZLENBQUM1RCxJQUFJLEdBQUcyQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMzQyxJQUFJO0lBQ3BDNEQsWUFBWSxDQUFDeEQsSUFBSSxHQUFHdUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDdkMsSUFBSTtJQUNwQ3dELFlBQVksQ0FBQ1gsSUFBSSxHQUFHTixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUNNLElBQUk7SUFFcEMsSUFBSTlFLElBQUksQ0FBQ3ZFLEtBQUssRUFBRTtNQUNaZ0ssWUFBWSxDQUFDMUMsRUFBRSxHQUFHL0MsSUFBSSxDQUFDdkUsS0FBSyxDQUFDc0gsRUFBRTtNQUMvQjBDLFlBQVksQ0FBQ2pDLG9CQUFvQixHQUFHeEQsSUFBSSxDQUFDdkUsS0FBSyxDQUFDK0gsb0JBQW9CO0lBQ3ZFO0lBRUEsSUFBSSxRQUFRLEtBQUtwRSxrQkFBa0IsRUFBRTtNQUNqQ3FHLFlBQVksQ0FBQ2pELE9BQU8sR0FBR2dDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ08sTUFBTTtNQUN6Qy9FLElBQUksQ0FBQ3lELGlCQUFpQixDQUFDZ0MsWUFBWSxDQUFDO0lBQ3hDLENBQUMsTUFBTTtNQUNIQSxZQUFZLENBQUM1QyxhQUFhLEdBQUd4RSxLQUFLLENBQUNpQixNQUFNLENBQUN5RCxFQUFFO01BQzVDMEMsWUFBWSxDQUFDQyxNQUFNLEdBQUdySCxLQUFLLENBQUN5RSxNQUFNO01BRWxDLElBQUloRCxPQUFPLENBQUNLLE9BQU8sRUFBRTtRQUNqQmlFLE1BQU0sQ0FBQyxDQUFDLENBQUNqSCxJQUFJLENBQUMsTUFBTTtVQUNoQjJDLE9BQU8sQ0FBQ0ssT0FBTyxHQUFHLElBQUk7VUFDdEJrQyxNQUFNLENBQUNvRCxZQUFZLEVBQUVqQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUNqQyxJQUFJLEVBQUVDLE9BQU8sQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQ2tCLEtBQUssQ0FBRS9KLENBQUMsSUFBSyxDQUNoQixDQUFDLENBQUM7TUFDTixDQUFDLE1BQU07UUFDSDBJLE1BQU0sQ0FBQ29ELFlBQVksRUFBRWpCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ2pDLElBQUksRUFBRUMsT0FBTyxDQUFDO01BQ25EO0lBQ0o7RUFDSixDQUFDO0VBRURyRSxjQUFLLENBQUMrQixTQUFTLENBQUMsTUFBTTtJQUNsQixJQUFJeUYsU0FBUyxHQUFHQyxRQUFRLENBQUNDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQztJQUM1RCxJQUFJQyxLQUFLLEdBQUdGLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLFNBQVMsQ0FBQztJQUM5QyxJQUFJRixTQUFTLEVBQUU7TUFDWCxJQUFJSSxLQUFLLEdBQUksRUFBRSxHQUFHakgsU0FBUyxHQUFJLEdBQUc7TUFFbEM2RyxTQUFTLENBQUNLLEtBQUssQ0FBQ3JHLEtBQUssR0FBR1gsa0JBQWtCLEdBQUlBLGtCQUFrQixHQUFHK0csS0FBTSxHQUFHLElBQUk7TUFDaEZKLFNBQVMsQ0FBQ0ssS0FBSyxDQUFDbkcsTUFBTSxHQUFHWCxtQkFBbUIsR0FBSUEsbUJBQW1CLEdBQUc2RyxLQUFNLEdBQUcsSUFBSTtNQUVuRkQsS0FBSyxDQUFDRSxLQUFLLENBQUNyRyxLQUFLLEdBQUdnRyxTQUFTLENBQUNLLEtBQUssQ0FBQ3JHLEtBQUs7TUFDekNtRyxLQUFLLENBQUNFLEtBQUssQ0FBQ25HLE1BQU0sR0FBRzhGLFNBQVMsQ0FBQ0ssS0FBSyxDQUFDbkcsTUFBTTtJQUMvQztFQUNKLENBQUMsRUFBRSxDQUFDZixTQUFTLENBQUMsQ0FBQztFQUVmLFNBQVN3RyxPQUFPQSxDQUFDVyxRQUFRLEVBQUU1RixJQUFJLEVBQUVRLE1BQU0sRUFBRTtJQUNyQyxJQUFJc0MsV0FBVyxHQUFHL0MsY0FBYyxDQUFDQyxJQUFJLENBQUM7SUFDdEMsSUFBSStDLEdBQUcsR0FBR3ZGLFFBQVEsR0FBRzZFLDJCQUFrQixDQUFDQyxjQUFjLENBQUMsQ0FBQyxHQUNsRGxFLGNBQUssQ0FBQ21CLHFCQUFxQixDQUFDdkIsS0FBSyxDQUFDaUIsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsR0FDaEUsR0FBRyxHQUFHdUIsTUFBTSxHQUFHLEdBQUcsR0FBR3BDLGNBQUssQ0FBQ21CLHFCQUFxQixDQUFDdkIsS0FBSyxDQUFDaUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7SUFDbkYsSUFBSXdCLFdBQVcsR0FBR0YsY0FBYyxDQUFDQyxNQUFNLENBQUM7SUFDeEMsSUFBSUMsV0FBVyxFQUFFO01BQ2JzQyxHQUFHLElBQUksU0FBUyxHQUFHdEMsV0FBVztJQUNsQztJQUVBLElBQUF1QyxpQ0FBWSxFQUNSQyxLQUFLLENBQUNDLFNBQVMsQ0FBQ0gsR0FBRyxDQUFDLEVBQUVELFdBQVcsQ0FBQyxDQUM3QmhHLElBQUksQ0FBQ04sTUFBTSxDQUFDLENBQ1pNLElBQUksQ0FBQ1MsSUFBSSxDQUFDLENBQ1ZULElBQUksQ0FBRWtELElBQUksSUFBSztNQUNaNEYsUUFBUSxDQUFDNUYsSUFBSSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDcUQsS0FBSyxDQUNQL0osQ0FBQyxJQUFLO01BQ0gsSUFBSUEsQ0FBQyxDQUFDZ0UsSUFBSSxLQUFLLEdBQUcsRUFBRTtRQUNoQitFLDJCQUFrQixDQUFDaUIsS0FBSyxDQUFDLENBQUM7UUFDMUJqQiwyQkFBa0IsQ0FBQ2tCLHFCQUFxQixDQUFDLENBQUMsQ0FBQzNJLElBQUksQ0FBQyxRQUFRLENBQUM7TUFDN0Q7SUFDSixDQUFDLENBQ1QsQ0FBQztFQUNMO0VBRUEsTUFBTWlMLElBQUksR0FBSUMsU0FBUyxJQUFLO0lBQ3hCLElBQUluSCxrQkFBa0IsS0FBSyxJQUFJLEVBQUU7TUFDN0JDLHFCQUFxQixDQUFDMkcsUUFBUSxDQUFDQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUNsRyxLQUFLLENBQUM7TUFDL0RSLHNCQUFzQixDQUFDeUcsUUFBUSxDQUFDQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUNoRyxNQUFNLENBQUM7SUFDckU7SUFFQSxJQUFJdUcsS0FBSyxHQUFHRCxTQUFTLEtBQUssSUFBSSxHQUFHckgsU0FBUyxHQUFHLENBQUMsR0FBR0EsU0FBUyxHQUFHLENBQUM7SUFDOUQsSUFBSXNILEtBQUssSUFBSSxDQUFDLEVBQUU7TUFDWkEsS0FBSyxHQUFHLENBQUM7SUFDYjtJQUVBckgsWUFBWSxDQUFDcUgsS0FBSyxDQUFDO0VBQ3ZCLENBQUM7RUFFRCxNQUFNQyxNQUFNLEdBQUlGLFNBQVMsSUFBSztJQUMxQixJQUFJRyxVQUFVLEdBQUc3SCxjQUFLLENBQUNtQixxQkFBcUIsQ0FBQ3ZCLEtBQUssQ0FBQ2lCLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDO0lBQzlFLElBQUlnSCxVQUFVLEtBQUssSUFBSSxJQUFJQSxVQUFVLEtBQUssUUFBUSxFQUFFO01BQ2hEaEIsT0FBTyxDQUFFakYsSUFBSSxJQUFLO1FBQ2RkLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQ3dGLE1BQU0sR0FBRzFFLElBQUk7UUFDdEI5QixhQUFhLENBQUFyRCxhQUFBLENBQUFBLGFBQUEsS0FBS3FFLEtBQUssQ0FBQyxDQUFDLENBQUM7VUFBRXdGLE1BQU0sRUFBRTFFO1FBQUksRUFBQyxDQUFDO1FBQzFDa0YsZUFBZSxDQUFDaEcsS0FBSyxFQUFFYyxJQUFJLENBQUM7TUFDaEMsQ0FBQyxFQUFFZCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUN3RixNQUFNLEVBQUUsUUFBUSxHQUFHb0IsU0FBUyxDQUFDO0lBQzdDLENBQUMsTUFBTTtNQUNILElBQUlyRixXQUFXLEdBQUdsQyxLQUFLLEdBQUdnQyxjQUFjLENBQUMsUUFBUSxHQUFHdUYsU0FBUyxDQUFDO01BQzlEUCxRQUFRLENBQUNDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDRyxLQUFLLENBQUNPLFNBQVMsR0FBRyxTQUFTLEdBQUd6RixXQUFXLEdBQUcsTUFBTTtNQUMvRmpDLFFBQVEsQ0FBQ2lDLFdBQVcsQ0FBQztJQUN6QjtFQUNKLENBQUM7RUFFRCxvQkFDSWhJLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQTtJQUFLUixLQUFLLEVBQUV2SCxjQUFLLENBQUNnSSxXQUFXLENBQUM7TUFBQzlHLEtBQUssRUFBRUE7SUFBSyxDQUFDLEVBQUV0QixLQUFLLENBQUNpQixNQUFNO0VBQUUsZ0JBQ3hEeEcsTUFBQSxDQUFBZSxPQUFBLENBQUEyTSxhQUFBO0lBQUtFLFNBQVMsRUFBRSxLQUFNO0lBQUNWLEtBQUssRUFBRTtNQUFDVyxVQUFVLEVBQUUsR0FBRztNQUFFQyxXQUFXLEVBQUU7SUFBRztFQUFFLGdCQUM5RDlOLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQTtJQUFLRSxTQUFTLEVBQUU7RUFBVSxnQkFDdEI1TixNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUEsZ0JBQ0svSCxjQUFLLENBQUNtQixxQkFBcUIsQ0FBQ3ZCLEtBQUssQ0FBQ2lCLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUNuRCxDQUNOLENBQ0osQ0FBQyxlQUNOeEcsTUFBQSxDQUFBZSxPQUFBLENBQUEyTSxhQUFBO0lBQUtFLFNBQVMsRUFBRSxLQUFNO0lBQUNWLEtBQUssRUFBRTtNQUFDVyxVQUFVLEVBQUUsR0FBRztNQUFFQyxXQUFXLEVBQUU7SUFBRztFQUFFLGdCQUM5RDlOLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQTtJQUFLRSxTQUFTLEVBQUU7RUFBVSxnQkFDdEI1TixNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUE7SUFDSUssTUFBTSxFQUFFLDRDQUE2QztJQUNyREgsU0FBUyxFQUFFaEgsT0FBTyxDQUFDakQsS0FBTTtJQUN6QnNHLEVBQUUsMkJBQUFmLE1BQUEsQ0FBMkIzRCxLQUFLLENBQUNpQixNQUFNLENBQUN5RCxFQUFFLENBQUc7SUFDL0MrRCxRQUFRLEVBQUU5RyxJQUFJLENBQUM4RyxRQUFTO0lBQ3hCQyxRQUFRLEVBQUUvRyxJQUFJLENBQUMrRyxRQUFTO0lBQ3hCdEgsUUFBUSxFQUFFQSxRQUFTO0lBQ25CdUgsUUFBUSxFQUFFMUMsWUFBWSxDQUFDLENBQUU7SUFDekJyQyxJQUFJLEVBQUM7RUFBTSxDQUNkLENBQUMsZUFDRm5KLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQTtJQUFPUyxPQUFPLDJCQUFBakYsTUFBQSxDQUEyQjNELEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQ3lELEVBQUU7RUFBRyxnQkFDdkRqSyxNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUEsMkJBQ0kxTixNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUEsQ0FBQ3ZOLE9BQUEsQ0FBQVksT0FBTTtJQUFDcU4sU0FBUyxFQUFDLE1BQU07SUFDaEJDLE9BQU8sRUFBRSxXQUFZO0lBQ3JCckMsSUFBSSxFQUFDLE9BQU87SUFDWmtCLEtBQUssRUFBRTtNQUNIckcsS0FBSyxFQUFFLE9BQU87TUFDZEUsTUFBTSxFQUFFLE1BQU07TUFDZHVILE1BQU0sRUFBRXBILElBQUksQ0FBQ3FILFFBQVEsR0FBRyxtQkFBbUIsR0FBRyxJQUFJO01BQ2xEekssS0FBSyxFQUFFb0QsSUFBSSxDQUFDcUgsUUFBUSxHQUFHLFNBQVMsR0FBRztJQUN2QyxDQUFFO0lBQ0ZDLFNBQVMsZUFBRXhPLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQSxDQUFDbE4sS0FBQSxDQUFBTyxPQUFJO01BQUNrSixFQUFFLEVBQUU7SUFBUyxDQUFDO0VBQUUsR0FDeEMsUUFFTyxDQUNQLENBQUMsRUFFRi9DLElBQUksQ0FBQ3FILFFBQVEsZ0JBQ1R2TyxNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUEsMkJBQ0kxTixNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUE7SUFBS1IsS0FBSyxFQUFFO01BQUNwSixLQUFLLEVBQUUsU0FBUztNQUFFMkssT0FBTyxFQUFFO0lBQU87RUFBRSxHQUFFdkgsSUFBSSxDQUFDd0gsWUFBa0IsQ0FDekUsQ0FBQyxHQUVOLElBRUwsQ0FDTixDQUFDLGVBQ04xTyxNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUE7SUFBS0UsU0FBUyxFQUFFLFNBQVU7SUFBQ1YsS0FBSyxFQUFFO01BQUNXLFVBQVUsRUFBRTtJQUFLO0VBQUUsR0FFOUMzRyxJQUFJLENBQUN2RSxLQUFLLGdCQUNOM0MsTUFBQSxDQUFBZSxPQUFBLENBQUEyTSxhQUFBLENBQUN2TixPQUFBLENBQUFZLE9BQU07SUFDSHNOLE9BQU8sRUFBRSxXQUFZO0lBQ3JCckMsSUFBSSxFQUFDLE9BQU87SUFDWmtCLEtBQUssRUFBRTtNQUFDckcsS0FBSyxFQUFFLE1BQU07TUFBRUUsTUFBTSxFQUFFO0lBQU0sQ0FBRTtJQUN2QzRILE9BQU8sRUFBRUEsQ0FBQSxLQUFNcEIsTUFBTSxDQUFDLE1BQU0sQ0FBRTtJQUM5QmlCLFNBQVMsZUFBRXhPLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQSxDQUFDbE4sS0FBQSxDQUFBTyxPQUFJO01BQUNrSixFQUFFLEVBQUU7SUFBYyxDQUFDO0VBQUUsQ0FFbEMsQ0FBQyxHQUVULElBRVAsQ0FBQyxlQUNOakssTUFBQSxDQUFBZSxPQUFBLENBQUEyTSxhQUFBO0lBQUtFLFNBQVMsRUFBRSxTQUFVO0lBQUNWLEtBQUssRUFBRTtNQUFDVyxVQUFVLEVBQUU7SUFBSztFQUFFLEdBRTlDM0csSUFBSSxDQUFDdkUsS0FBSyxnQkFDTjNDLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQSxDQUFDdk4sT0FBQSxDQUFBWSxPQUFNO0lBQ0hzTixPQUFPLEVBQUUsV0FBWTtJQUNyQnJDLElBQUksRUFBQyxPQUFPO0lBQ1prQixLQUFLLEVBQUU7TUFBQ3JHLEtBQUssRUFBRSxNQUFNO01BQUVFLE1BQU0sRUFBRTtJQUFNLENBQUU7SUFDdkM0SCxPQUFPLEVBQUVBLENBQUEsS0FBTXBCLE1BQU0sQ0FBQyxPQUFPLENBQUU7SUFDL0JpQixTQUFTLGVBQUV4TyxNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUEsQ0FBQ2xOLEtBQUEsQ0FBQU8sT0FBSTtNQUFDa0osRUFBRSxFQUFFO0lBQWUsQ0FBQztFQUFFLENBRW5DLENBQUMsR0FFVCxJQUVQLENBQUMsZUFDTmpLLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQTtJQUFLRSxTQUFTLEVBQUUsU0FBVTtJQUFDVixLQUFLLEVBQUU7TUFBQ1csVUFBVSxFQUFFO0lBQUs7RUFBRSxHQUU5QzNHLElBQUksQ0FBQ3ZFLEtBQUssZ0JBQ04zQyxNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUEsQ0FBQ3ZOLE9BQUEsQ0FBQVksT0FBTTtJQUNIc04sT0FBTyxFQUFFLFdBQVk7SUFDckJyQyxJQUFJLEVBQUMsT0FBTztJQUNaa0IsS0FBSyxFQUFFO01BQUNyRyxLQUFLLEVBQUUsTUFBTTtNQUFFRSxNQUFNLEVBQUU7SUFBTSxDQUFFO0lBQ3ZDNEgsT0FBTyxFQUFFQSxDQUFBLEtBQU12QixJQUFJLENBQUMsS0FBSyxDQUFFO0lBQzNCb0IsU0FBUyxlQUFFeE8sTUFBQSxDQUFBZSxPQUFBLENBQUEyTSxhQUFBLENBQUNsTixLQUFBLENBQUFPLE9BQUk7TUFBQ2tKLEVBQUUsRUFBRTtJQUFXLENBQUM7RUFBRSxDQUUvQixDQUFDLEdBRVQsSUFFUCxDQUFDLGVBQ05qSyxNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUE7SUFBS0UsU0FBUyxFQUFFLFNBQVU7SUFBQ1YsS0FBSyxFQUFFO01BQUNXLFVBQVUsRUFBRTtJQUFLO0VBQUUsR0FFOUMzRyxJQUFJLENBQUN2RSxLQUFLLGdCQUNOM0MsTUFBQSxDQUFBZSxPQUFBLENBQUEyTSxhQUFBLENBQUN2TixPQUFBLENBQUFZLE9BQU07SUFDSHNOLE9BQU8sRUFBRSxXQUFZO0lBQ3JCckMsSUFBSSxFQUFDLE9BQU87SUFDWmtCLEtBQUssRUFBRTtNQUFDckcsS0FBSyxFQUFFLE1BQU07TUFBRUUsTUFBTSxFQUFFO0lBQU0sQ0FBRTtJQUN2QzRILE9BQU8sRUFBRUEsQ0FBQSxLQUFNdkIsSUFBSSxDQUFDLElBQUksQ0FBRTtJQUMxQm9CLFNBQVMsZUFBRXhPLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQSxDQUFDbE4sS0FBQSxDQUFBTyxPQUFJO01BQUNrSixFQUFFLEVBQUU7SUFBVSxDQUFDO0VBQUUsQ0FFOUIsQ0FBQyxHQUVULElBRVAsQ0FDSixDQUFDLEVBRUYsQ0FBQ3RFLGNBQUssQ0FBQ0MsTUFBTSxDQUFDc0IsSUFBSSxDQUFDdkUsS0FBSyxDQUFDLElBQUksQ0FBQ2dELGNBQUssQ0FBQ0MsTUFBTSxDQUFDSixVQUFVLENBQUMsR0FDbEQsQ0FBQ29KLFdBQUEsSUFBTTtJQUNIO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBLE1BQU1DLFFBQVEsR0FBRzdJLFNBQVMsS0FBSyxJQUFJLElBQUlBLFNBQVMsR0FBRyxDQUFDO0lBQ3BELG9CQUNJaEcsTUFBQSxDQUFBZSxPQUFBLENBQUEyTSxhQUFBO01BQUtFLFNBQVMsRUFBRSxLQUFNO01BQUNWLEtBQUssRUFBRTtRQUFDdUIsT0FBTyxFQUFFLE9BQU87UUFBRVosVUFBVSxFQUFFLEdBQUc7UUFBRUMsV0FBVyxFQUFFO01BQUc7SUFBRSxnQkFDaEY5TixNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUE7TUFBS3pELEVBQUUsRUFBQyxnQkFBZ0I7TUFBQ2lELEtBQUssRUFBRTtRQUM1QnJHLEtBQUssRUFBRSxNQUFNO1FBQ2JFLE1BQU0sRUFBRUEsTUFBTTtRQUNkK0gsZ0JBQWdCLEVBQUUsV0FBVztRQUM3QkMsY0FBYyxFQUFFLE9BQU87UUFDdkJDLGVBQWUsRUFBRSxhQUFhO1FBQzlCQyxlQUFlLFNBQUEvRixNQUFBLENBQVNoSixPQUFPLENBQUMsb0JBQW9CLENBQUMsTUFBRztRQUN4RG9PLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0JZLFlBQVksRUFBRSxLQUFLO1FBQ25CQyxRQUFRLEVBQUVOLFFBQVEsR0FBRyxNQUFNLEdBQUcsUUFBUTtRQUN0Q08sU0FBUyxFQUFFLFlBQVk7UUFDdkJ4TCxPQUFPLEVBQUUsTUFBTTtRQUNmeUwsY0FBYyxFQUFFLFFBQVE7UUFDeEJDLFVBQVUsRUFBRSxRQUFRO1FBQ3BCYixPQUFPLEVBQUU7TUFDYixDQUFFO01BQUNiLFNBQVMsRUFBQztJQUFTLGdCQUNsQjVOLE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQTtNQUFLekQsRUFBRSxFQUFFLG1CQUFvQjtNQUN4QmlELEtBQUssRUFDRDJCLFFBQVEsR0FDRjtRQUFDakwsT0FBTyxFQUFFO01BQWMsQ0FBQyxHQUN6QjtRQUNFaUQsS0FBSyxFQUFFLE1BQU07UUFDYkUsTUFBTSxFQUFFLE1BQU07UUFDZG5ELE9BQU8sRUFBRSxNQUFNO1FBQ2Z5TCxjQUFjLEVBQUUsUUFBUTtRQUN4QkMsVUFBVSxFQUFFO01BQ2hCO0lBQ1AsZ0JBQ0Z0UCxNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUE7TUFBS3pELEVBQUUsRUFBRSxTQUFVO01BQ2RzRixHQUFHLEVBQUUsQ0FBQS9KLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFeUcsTUFBTSxPQUFBMkMsV0FBQSxHQUFJMUgsSUFBSSxDQUFDdkUsS0FBSyxjQUFBaU0sV0FBQSx1QkFBVkEsV0FBQSxDQUFZdEUsR0FBRyxDQUFDO01BQzNDa0YsR0FBRyxFQUFFLEVBQUc7TUFDUkMsU0FBUyxFQUFFLEtBQU07TUFDakJ2QyxLQUFLLEVBQ0QyQixRQUFRLEdBQ0Y7UUFBQ2pMLE9BQU8sRUFBRSxPQUFPO1FBQUU4TCxVQUFVLEVBQUU7TUFBTSxDQUFDLEdBQ3RDO1FBQ0VDLFFBQVEsRUFBRSxNQUFNO1FBQ2hCQyxTQUFTLEVBQUUsTUFBTTtRQUNqQi9JLEtBQUssRUFBRSxNQUFNO1FBQ2JFLE1BQU0sRUFBRSxNQUFNO1FBQ2Q4SSxTQUFTLEVBQUUsU0FBUztRQUNwQmpNLE9BQU8sRUFBRSxPQUFPO1FBQ2hCOEwsVUFBVSxFQUFFO01BQ2hCO0lBQ1AsQ0FBQyxDQUNOLENBQ0osQ0FDSixDQUFDO0VBRWQsQ0FBQyxFQUFFLENBQUMsR0FFSixJQUVQLENBQUM7QUFFZCxDQUFDLENBQUM7QUFFSyxNQUFNSSxXQUFXLEdBQUExSyxPQUFBLENBQUEwSyxXQUFBLGdCQUFHekssY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUM3QyxNQUFNLENBQUNrRSxJQUFJLEVBQUVzRyxPQUFPLENBQUMsR0FBRzFLLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLElBQUksQ0FBQztFQUM1QyxNQUFNc0ssWUFBWSxHQUFHM0ssY0FBSyxDQUFDNEIsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUV4QyxvQkFDSWpILE1BQUEsQ0FBQWUsT0FBQSxDQUFBMk0sYUFBQSxDQUFDdE4sVUFBQSxDQUFBNlAsU0FBUyxFQUFBalAsUUFBQSxLQUFLdUUsS0FBSztJQUFFMkssTUFBTSxFQUFFM0ssS0FBSyxDQUFDMkssTUFBTztJQUFDQyxXQUFXLEVBQUVBLENBQUN4TixLQUFLLEVBQUV5TixPQUFPLEtBQUs7TUFDekUsT0FBT3pOLEtBQUs7SUFDaEIsQ0FBRTtJQUFDME4sbUJBQW1CLEVBQUcxTixLQUFLLElBQUs7TUFDL0IsSUFBSWdELGNBQUssQ0FBQ0MsTUFBTSxDQUFDakQsS0FBSyxDQUFDLEVBQUU7UUFDckJxTixZQUFZLENBQUMzSSxPQUFPLEdBQUcsQ0FBQzJJLFlBQVksQ0FBQzNJLE9BQU87TUFDaEQ7SUFDSjtFQUFFLElBQ0dILElBQUksaUJBQ0RsSCxNQUFBLENBQUFlLE9BQUEsQ0FBQTJNLGFBQUEsQ0FBQ3ZJLG9CQUFvQixFQUFBbkUsUUFBQTtJQUNqQmtHLElBQUksRUFBRUEsSUFBSztJQUNYckIsV0FBVyxFQUFFNEQsSUFBSztJQUNsQnVHLFlBQVksRUFBRUEsWUFBWSxDQUFDM0k7RUFBUSxHQUMvQjlCLEtBQUssQ0FFUyxDQUVuQixDQUFDO0FBRXBCLENBQUMsQ0FBQztBQUFDLElBQUErSyxRQUFBLEdBQUFsTCxPQUFBLENBQUFyRSxPQUFBLEdBRVkrTyxXQUFXIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -38,9 +38,18 @@ const status = response => {
|
|
|
38
38
|
if (response.ok) {
|
|
39
39
|
return Promise.resolve(response);
|
|
40
40
|
} else {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
// Surface the server's friendly message (ErrorResponse.message) when present.
|
|
42
|
+
return response.text().then(text => {
|
|
43
|
+
let serverMessage = null;
|
|
44
|
+
try {
|
|
45
|
+
const body = text ? JSON.parse(text) : null;
|
|
46
|
+
serverMessage = body && body.message ? body.message : null;
|
|
47
|
+
} catch (ignored) {}
|
|
48
|
+
let error = new Error(serverMessage || response.statusText);
|
|
49
|
+
error.code = response.status;
|
|
50
|
+
error.serverMessage = serverMessage;
|
|
51
|
+
return Promise.reject(error);
|
|
52
|
+
});
|
|
44
53
|
}
|
|
45
54
|
};
|
|
46
55
|
const json = response => {
|
|
@@ -155,7 +164,7 @@ const DocumentUpload = props => {
|
|
|
155
164
|
}
|
|
156
165
|
let message = {
|
|
157
166
|
messageType: 'ERROR',
|
|
158
|
-
message: 'An error has occurred while uploading file'
|
|
167
|
+
message: e && e.serverMessage ? e.serverMessage : 'An error has occurred while uploading file'
|
|
159
168
|
};
|
|
160
169
|
let event = new _Event.default(_ApplicationManager.default, props.viewId, message);
|
|
161
170
|
_Observable.default.fireEvent(_EventType.default.MESSAGE_ARRIVED, event);
|
|
@@ -296,4 +305,4 @@ const MultiFileUploadField = props => {
|
|
|
296
305
|
};
|
|
297
306
|
exports.MultiFileUploadField = MultiFileUploadField;
|
|
298
307
|
var _default = exports.default = MultiFileUploadField;
|
|
299
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9VdGlscyIsIl9JY29uIiwiX0ZpbGVUaHVtYiIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfcmVhY3RQcm9taXNlVHJhY2tlciIsIl9FdmVudCIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ1c2VTdHlsZXMiLCJtYWtlU3R5bGVzIiwidGhlbWUiLCJidXR0b24iLCJtYXJnaW4iLCJzcGFjaW5nIiwiaW5wdXQiLCJkaXNwbGF5IiwiZXJyb3JNZXNzYWdlRGlzcGxheSIsImNvbG9yIiwic3RhdHVzIiwicmVzcG9uc2UiLCJvayIsIlByb21pc2UiLCJyZXNvbHZlIiwiZXJyb3IiLCJFcnJvciIsInN0YXR1c1RleHQiLCJjb2RlIiwicmVqZWN0IiwianNvbiIsInRleHQiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJEb2N1bWVudFVwbG9hZCIsInByb3BzIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1IiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1MiIsImZpbGVzIiwic2V0RmlsZXMiLCJSZWFjdCIsInVzZVN0YXRlIiwibXVsdGlwbGUiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJjbGFzc2VzIiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiYmFzZSIsInVzZUVmZmVjdCIsInZhbCIsImZpbGUiLCJkb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkIiwicGF5bG9hZCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiZGVsZXRlRmlsZSIsImYiLCJuYW1lIiwicmVtb3ZlIiwiY2FjaGVJZCIsImFjY2Vzc1Rva2VuIiwic2Vzc2lvblN0b3JhZ2UiLCJnZXRJdGVtIiwiaWRUb2tlbiIsImZldGNoQ29uZmlnIiwibWV0aG9kIiwiaGVhZGVycyIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldEFjdGl2ZVRlbmFudCIsInVybCIsImdldENvbnRleHRSb290IiwidHJhY2tQcm9taXNlIiwiZmV0Y2giLCJlbmNvZGVVUkkiLCJ0aGVuIiwiY2F0Y2giLCJjbGVhciIsImdldEFwcGxpY2F0aW9uSGlzdG9yeSIsInVwbG9hZCIsIm1ldGFkYXRhIiwidXBsb2FkVXJsIiwiVXRpbHMiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJkYXRhIiwiRm9ybURhdGEiLCJjb3JyZWxhdGlvbklkIiwidmlld0lkIiwiaWQiLCJyb3dJZCIsImFwcGVuZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJib2R5IiwiZG9jdW1lbnRSZXBvc2l0b3J5SWQiLCJpc051bGwiLCJoYW5kbGVFcnJvciIsIm1lc3NhZ2UiLCJtZXNzYWdlVHlwZSIsImV2ZW50IiwiRXZlbnQiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJNRVNTQUdFX0FSUklWRUQiLCJoYW5kbGVDaGFuZ2UiLCJ1cGxvYWRlZEZpbGVzIiwidGFyZ2V0IiwiYWxsRmlsZXMiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzRGF0YVVSTCIsImZpbmQiLCJvbmxvYWQiLCJmaWxlSW5mbyIsInR5cGUiLCJzaXplIiwicmVzdWx0Iiwic3RvcmVGaWxlIiwiY29uc29sZSIsImxvZyIsIm9uVXBsb2FkSGFuZGxlciIsImNvbmNhdCIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIm1lcmdlU3R5bGVzIiwiYWNjZXB0IiwiYXR0cmlidXRlcyIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImhlaWdodCIsInNob3dUaHVtYkltYWdlcyIsImh0bWxGb3IiLCJjb21wb25lbnQiLCJib3JkZXIiLCJoYXNFcnJvciIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsIm1hcmdpbkJvdHRvbSIsIm1hcCIsImluZGV4IiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1MyIsIl9wcm9wcyRjb25maWckYXR0cmlidTQiLCJrZXkiLCJ3aWR0aCIsInNob3dJbWFnZSIsIm9uRGVsZXRlIiwiZXhwb3J0cyIsIk11bHRpRmlsZVVwbG9hZEZpZWxkIiwiY2xlYXJUcmlnZ2VyIiwidXNlUmVmIiwiQmFzZUZpZWxkIiwiaGFuZGxlIiwidmFsdWVQYXJzZXIiLCJpbmJvdW5kIiwidmFsdWVDaGFuZ2VDYWxsYmFjayIsImN1cnJlbnQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL011bHRpRmlsZVVwbG9hZEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0J1dHRvbic7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSAnLi9CYXNlRmllbGQnO1xuaW1wb3J0IHttYWtlU3R5bGVzfSBmcm9tICdAbXVpL3N0eWxlcyc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQgRmlsZVRodW1iIGZyb20gJy4uL0ZpbGVUaHVtYic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCB7dHJhY2tQcm9taXNlfSBmcm9tIFwicmVhY3QtcHJvbWlzZS10cmFja2VyXCI7XG5pbXBvcnQgRXZlbnQgZnJvbSBcIi4uLy4uL2V2ZW50L0V2ZW50XCI7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gXCIuLi8uLi9ldmVudC9PYnNlcnZhYmxlXCI7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gXCIuLi8uLi9ldmVudC9FdmVudFR5cGVcIjtcblxuY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcyh0aGVtZSA9PiAoe1xuICAgIGJ1dHRvbjoge1xuICAgICAgICBtYXJnaW46IHRoZW1lLnNwYWNpbmcoMSksXG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgfSxcbiAgICBlcnJvck1lc3NhZ2VEaXNwbGF5OiB7XG4gICAgICAgIGNvbG9yOiAncmVkJ1xuICAgIH1cbn0pKTtcblxuY29uc3Qgc3RhdHVzID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihyZXNwb25zZS5zdGF0dXNUZXh0KTtcbiAgICAgICAgZXJyb3IuY29kZSA9IHJlc3BvbnNlLnN0YXR1cztcblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH1cbn07XG5cbmNvbnN0IGpzb24gPSAocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xufTtcblxuY29uc3QgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VXBsb2FkID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2ZpbGVzLCBzZXRGaWxlc10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbbXVsdGlwbGVdID0gUmVhY3QudXNlU3RhdGUocHJvcHMubXVsdGlwbGUgPT09IHRydWUpO1xuICAgIGNvbnN0IFtwYXlsb2FkU3RvcmFnZU1vZGVdID0gUmVhY3QudXNlU3RhdGUocHJvcHMuY29uZmlnLnBheWxvYWRTdG9yYWdlTW9kZSB8fCAnYmFzZTY0Jyk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuICAgIGNvbnN0IFtlcnJvck1lc3NhZ2UsIHNldEVycm9yTWVzc2FnZV0gPSBSZWFjdC51c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZmlsZXMpIHtcbiAgICAgICAgICAgIGxldCB2YWwgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICAgICAgICAgIGlmIChwYXlsb2FkU3RvcmFnZU1vZGUgPT09ICdwb3N0JyAmJiBmaWxlLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsLnB1c2goey4uLmZpbGUsIHBheWxvYWQ6IG51bGx9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YWwucHVzaChmaWxlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UodmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobnVsbCk7XG4gICAgICAgIH1cbiAgICB9LCBbZmlsZXNdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZmlsZXMgJiYgYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgc2V0RmlsZXMoYmFzZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbYmFzZS52YWx1ZV0pO1xuXG4gICAgY29uc3QgZGVsZXRlRmlsZSA9IChmaWxlKSA9PiB7XG4gICAgICAgIHNldEZpbGVzKGZpbGVzLmZpbHRlcigoZikgPT4gZi5uYW1lICE9PSBmaWxlLm5hbWUpKTtcbiAgICAgICAgaWYgKGZpbGUuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCkge1xuICAgICAgICAgICAgcmVtb3ZlKGZpbGUuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVtb3ZlID0gKGNhY2hlSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpO1xuICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICdpZFRva2VuJzogaWRUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ3RlbmFudCc6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBY3RpdmVUZW5hbnQoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy9kb2NzL2FwaS92MS9tYW5hZ2VyL3VwbG9hZC9yZW1vdmUvJyArIGNhY2hlSWQ7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25IaXN0b3J5KCkucHVzaCgnL2xvZ2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9O1xuXG4gICAgY29uc3QgdXBsb2FkID0gKG1ldGFkYXRhLCBmaWxlKSA9PiB7XG4gICAgICAgIGxldCB1cGxvYWRVcmwgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAndXBsb2FkVXJsJywgbnVsbCk7XG4gICAgICAgIGlmICh1cGxvYWRVcmwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHVwbG9hZFVybCA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgXCIvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvc2F2ZVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBheWxvYWRTdG9yYWdlTW9kZSA9IHByb3BzLmNvbmZpZy5wYXlsb2FkU3RvcmFnZU1vZGU7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBpZiAocGF5bG9hZFN0b3JhZ2VNb2RlID09PSAncG9zdCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpZFRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImlkVG9rZW5cIik7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMudmlld0lkICsgXCIuXCIgKyBwcm9wcy5jb25maWcuaWQgKyAocHJvcHMuY29uZmlnLnJvd0lkID8gXCIuXCIgKyBwcm9wcy5jb25maWcucm93SWQgOiBcIlwiKSArIFwiLVwiICsgZmlsZS5uYW1lO1xuICAgICAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwibWV0YWRhdGFcIiwgSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEpKTtcbiAgICAgICAgICAgICAgICBkYXRhLmFwcGVuZChcImZpbGVcIiwgZmlsZSk7XG5cbiAgICAgICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICdpZFRva2VuJzogaWRUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYm9keTogZGF0YVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyB1cGxvYWRVcmw7XG4gICAgICAgICAgICAgICAgdHJhY2tQcm9taXNlKFxuICAgICAgICAgICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbihqc29uKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRSZXBvc2l0b3J5SWQ6ICFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgPyBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZDogZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVFcnJvcihlKSB7XG4gICAgICAgIGlmIChlLmNvZGUgPT09IDQwMSkge1xuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25IaXN0b3J5KCkucHVzaCgnL2xvZ2luJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgIG1lc3NhZ2VUeXBlOiAnRVJST1InLFxuICAgICAgICAgICAgbWVzc2FnZTogJ0FuIGVycm9yIGhhcyBvY2N1cnJlZCB3aGlsZSB1cGxvYWRpbmcgZmlsZSdcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQoYXBwbGljYXRpb25NYW5hZ2VyLCBwcm9wcy52aWV3SWQsIG1lc3NhZ2UpO1xuICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoKSA9PiBldmVudCA9PiB7XG4gICAgICAgIGxldCB1cGxvYWRlZEZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgICAgICB2YXIgYWxsRmlsZXMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cGxvYWRlZEZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IHVwbG9hZGVkRmlsZXNbaV07XG4gICAgICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICAgICAgbGV0IGZpbmQgPSBhbGxGaWxlcy5maW5kKChmKSA9PiBmLm5hbWUgPT09IGZpbGUubmFtZSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWxlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZDogcmVhZGVyLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgY29ycmVsYXRpb25JZDogcHJvcHMudmlld0lkICsgXCIuXCIgKyBwcm9wcy5jb25maWcuaWQgKyBcIi1cIiArIGZpbGUubmFtZVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAoJ2Jhc2U2NCcgPT09IHBheWxvYWRTdG9yYWdlTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICBzdG9yZUZpbGUoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmluZCAmJiBmaW5kLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZShmaW5kLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlSW5mbywgZmlsZSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA9IHJlc3VsdC5kb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZUZpbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIGNhY2hpbmcgZmlsZSA6IFwiLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJFcnJvciByZW1vdmluZyBmaWxlIGNhY2hlIDogXCIsIGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlSW5mbywgZmlsZSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUluZm8uZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA9IHJlc3VsdC5kb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlRmlsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIGNhY2hpbmcgZmlsZSA6IFwiLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdG9yZUZpbGUoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZmlsZXMgfHwgIWZpbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbEZpbGVzLnB1c2goZmlsZUluZm8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEZpbGVzLmxlbmd0aCA9PT0gdXBsb2FkZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMub25VcGxvYWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25VcGxvYWRIYW5kbGVyKGFsbEZpbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLm9uVXBsb2FkSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uVXBsb2FkSGFuZGxlcihhbGxGaWxlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRGaWxlcyhmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwID8gYWxsRmlsZXMuY29uY2F0KGZpbGVzKSA6IGFsbEZpbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe30sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgYWNjZXB0PXtwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWNjZXB0IHx8IFwiYXBwbGljYXRpb24vcGRmXCJ9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgICAgICAgICAgIGlkPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgbXVsdGlwbGU9e211bHRpcGxlfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2UoKX1cbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICFiYXNlLmRpc2FibGVkICYmXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnNob3dUaHVtYkltYWdlcyA/IG51bGwgOiAnNDhweCdcbiAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17YGNvbnRhaW5lZC1idXR0b24tZmlsZS0ke3Byb3BzLmNvbmZpZy5pZH1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyAnMXB4IHNvbGlkICNmNDQzMzYnIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/ICcjZjQ0MzM2JyA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17VXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2ljb24nLCAnVVBMT0FEJyl9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXNbJ2xhYmVsJ10gP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzWydsYWJlbCddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3Jvdyd9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICc4cHgnLFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206ICc4cHgnXG4gICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlcy5tYXAoKGZpbGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnNob3dUaHVtYkltYWdlcyA/IG51bGwgOiAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZVRodW1iIGtleT17ZmlsZS5uYW1lfSBmaWxlPXtmaWxlfSBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0ltYWdlPXtwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc2hvd1RodW1iSW1hZ2VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRlbGV0ZT17KGZpbGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUZpbGUoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Lz48L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBNdWx0aUZpbGVVcGxvYWRGaWVsZCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGNsZWFyVHJpZ2dlciA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9IHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfX0gdmFsdWVDaGFuZ2VDYWxsYmFjaz17KHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNsZWFyVHJpZ2dlci5jdXJyZW50ID0gIWNsZWFyVHJpZ2dlci5jdXJyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPERvY3VtZW50VXBsb2FkXG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVHJpZ2dlcj17Y2xlYXJUcmlnZ2VyLmN1cnJlbnR9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9Eb2N1bWVudFVwbG9hZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE11bHRpRmlsZVVwbG9hZEZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxtQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsb0JBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFVBQUEsR0FBQVosc0JBQUEsQ0FBQUMsT0FBQTtBQUE4QyxTQUFBRCx1QkFBQWEsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFNBQUEsV0FBQUEsUUFBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsR0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUFDLElBQUEsZUFBQUMsQ0FBQSxhQUFB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
|
|
308
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9VdGlscyIsIl9JY29uIiwiX0ZpbGVUaHVtYiIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfcmVhY3RQcm9taXNlVHJhY2tlciIsIl9FdmVudCIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ1c2VTdHlsZXMiLCJtYWtlU3R5bGVzIiwidGhlbWUiLCJidXR0b24iLCJtYXJnaW4iLCJzcGFjaW5nIiwiaW5wdXQiLCJkaXNwbGF5IiwiZXJyb3JNZXNzYWdlRGlzcGxheSIsImNvbG9yIiwic3RhdHVzIiwicmVzcG9uc2UiLCJvayIsIlByb21pc2UiLCJyZXNvbHZlIiwidGV4dCIsInRoZW4iLCJzZXJ2ZXJNZXNzYWdlIiwiYm9keSIsIkpTT04iLCJwYXJzZSIsIm1lc3NhZ2UiLCJpZ25vcmVkIiwiZXJyb3IiLCJFcnJvciIsInN0YXR1c1RleHQiLCJjb2RlIiwicmVqZWN0IiwianNvbiIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkRvY3VtZW50VXBsb2FkIiwicHJvcHMiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwiZmlsZXMiLCJzZXRGaWxlcyIsIlJlYWN0IiwidXNlU3RhdGUiLCJtdWx0aXBsZSIsInBheWxvYWRTdG9yYWdlTW9kZSIsImNvbmZpZyIsImNsYXNzZXMiLCJlcnJvck1lc3NhZ2UiLCJzZXRFcnJvck1lc3NhZ2UiLCJiYXNlIiwidXNlRWZmZWN0IiwidmFsIiwiZmlsZSIsImRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQiLCJwYXlsb2FkIiwiaGFuZGxlVmFsdWVDaGFuZ2UiLCJkZWxldGVGaWxlIiwiZiIsIm5hbWUiLCJyZW1vdmUiLCJjYWNoZUlkIiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwiZmV0Y2hDb25maWciLCJtZXRob2QiLCJoZWFkZXJzIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0QWN0aXZlVGVuYW50IiwidXJsIiwiZ2V0Q29udGV4dFJvb3QiLCJ0cmFja1Byb21pc2UiLCJmZXRjaCIsImVuY29kZVVSSSIsImNhdGNoIiwiY2xlYXIiLCJnZXRBcHBsaWNhdGlvbkhpc3RvcnkiLCJ1cGxvYWQiLCJtZXRhZGF0YSIsInVwbG9hZFVybCIsIlV0aWxzIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiZGF0YSIsIkZvcm1EYXRhIiwiY29ycmVsYXRpb25JZCIsInZpZXdJZCIsImlkIiwicm93SWQiLCJhcHBlbmQiLCJzdHJpbmdpZnkiLCJkb2N1bWVudFJlcG9zaXRvcnlJZCIsImlzTnVsbCIsImhhbmRsZUVycm9yIiwibWVzc2FnZVR5cGUiLCJldmVudCIsIkV2ZW50IiwiZXZlbnRNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiTUVTU0FHRV9BUlJJVkVEIiwiaGFuZGxlQ2hhbmdlIiwidXBsb2FkZWRGaWxlcyIsInRhcmdldCIsImFsbEZpbGVzIiwicmVhZGVyIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJmaW5kIiwib25sb2FkIiwiZmlsZUluZm8iLCJ0eXBlIiwic2l6ZSIsInJlc3VsdCIsInN0b3JlRmlsZSIsImNvbnNvbGUiLCJsb2ciLCJvblVwbG9hZEhhbmRsZXIiLCJjb25jYXQiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJtZXJnZVN0eWxlcyIsImFjY2VwdCIsImF0dHJpYnV0ZXMiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsInJlcXVpcmVkIiwib25DaGFuZ2UiLCJoZWlnaHQiLCJzaG93VGh1bWJJbWFnZXMiLCJodG1sRm9yIiwiY29tcG9uZW50IiwiYm9yZGVyIiwiaGFzRXJyb3IiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJtYXJnaW5Cb3R0b20iLCJtYXAiLCJpbmRleCIsIl9wcm9wcyRjb25maWckYXR0cmlidTMiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnU0Iiwia2V5Iiwid2lkdGgiLCJzaG93SW1hZ2UiLCJvbkRlbGV0ZSIsImV4cG9ydHMiLCJNdWx0aUZpbGVVcGxvYWRGaWVsZCIsImNsZWFyVHJpZ2dlciIsInVzZVJlZiIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiaW5ib3VuZCIsInZhbHVlQ2hhbmdlQ2FsbGJhY2siLCJjdXJyZW50IiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9NdWx0aUZpbGVVcGxvYWRGaWVsZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gJy4vQmFzZUZpZWxkJztcbmltcG9ydCB7bWFrZVN0eWxlc30gZnJvbSAnQG11aS9zdHlsZXMnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IEZpbGVUaHVtYiBmcm9tICcuLi9GaWxlVGh1bWInO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi4vLi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQge3RyYWNrUHJvbWlzZX0gZnJvbSBcInJlYWN0LXByb21pc2UtdHJhY2tlclwiO1xuaW1wb3J0IEV2ZW50IGZyb20gXCIuLi8uLi9ldmVudC9FdmVudFwiO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tIFwiLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZVwiO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tIFwiLi4vLi4vZXZlbnQvRXZlbnRUeXBlXCI7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXModGhlbWUgPT4gKHtcbiAgICBidXR0b246IHtcbiAgICAgICAgbWFyZ2luOiB0aGVtZS5zcGFjaW5nKDEpLFxuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gICAgZXJyb3JNZXNzYWdlRGlzcGxheToge1xuICAgICAgICBjb2xvcjogJ3JlZCdcbiAgICB9XG59KSk7XG5cbmNvbnN0IHN0YXR1cyA9IChyZXNwb25zZSkgPT4ge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTdXJmYWNlIHRoZSBzZXJ2ZXIncyBmcmllbmRseSBtZXNzYWdlIChFcnJvclJlc3BvbnNlLm1lc3NhZ2UpIHdoZW4gcHJlc2VudC5cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgICBsZXQgc2VydmVyTWVzc2FnZSA9IG51bGw7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkgPSB0ZXh0ID8gSlNPTi5wYXJzZSh0ZXh0KSA6IG51bGw7XG4gICAgICAgICAgICAgICAgc2VydmVyTWVzc2FnZSA9IGJvZHkgJiYgYm9keS5tZXNzYWdlID8gYm9keS5tZXNzYWdlIDogbnVsbDtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZWQpIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihzZXJ2ZXJNZXNzYWdlIHx8IHJlc3BvbnNlLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgZXJyb3IuY29kZSA9IHJlc3BvbnNlLnN0YXR1cztcbiAgICAgICAgICAgIGVycm9yLnNlcnZlck1lc3NhZ2UgPSBzZXJ2ZXJNZXNzYWdlO1xuXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5jb25zdCBqc29uID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFVwbG9hZCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWxlcywgc2V0RmlsZXNdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW211bHRpcGxlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLm11bHRpcGxlID09PSB0cnVlKTtcbiAgICBjb25zdCBbcGF5bG9hZFN0b3JhZ2VNb2RlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmNvbmZpZy5wYXlsb2FkU3RvcmFnZU1vZGUgfHwgJ2Jhc2U2NCcpO1xuICAgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTtcbiAgICBjb25zdCBbZXJyb3JNZXNzYWdlLCBzZXRFcnJvck1lc3NhZ2VdID0gUmVhY3QudXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IGJhc2UgPSBwcm9wcy5iYXNlO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGZpbGVzKSB7XG4gICAgICAgICAgICBsZXQgdmFsID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocGF5bG9hZFN0b3JhZ2VNb2RlID09PSAncG9zdCcgJiYgZmlsZS5kb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbC5wdXNoKHsuLi5maWxlLCBwYXlsb2FkOiBudWxsfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsLnB1c2goZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKHZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG51bGwpO1xuICAgICAgICB9XG4gICAgfSwgW2ZpbGVzXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWZpbGVzICYmIGJhc2UudmFsdWUpIHtcbiAgICAgICAgICAgIHNldEZpbGVzKGJhc2UudmFsdWUpO1xuICAgICAgICB9XG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIGNvbnN0IGRlbGV0ZUZpbGUgPSAoZmlsZSkgPT4ge1xuICAgICAgICBzZXRGaWxlcyhmaWxlcy5maWx0ZXIoKGYpID0+IGYubmFtZSAhPT0gZmlsZS5uYW1lKSk7XG4gICAgICAgIGlmIChmaWxlLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQpIHtcbiAgICAgICAgICAgIHJlbW92ZShmaWxlLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHJlbW92ZSA9IChjYWNoZUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvcmVtb3ZlLycgKyBjYWNoZUlkO1xuICAgICAgICAgICAgdHJhY2tQcm9taXNlKFxuICAgICAgICAgICAgICAgIGZldGNoKGVuY29kZVVSSSh1cmwpLCBmZXRjaENvbmZpZylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgfTtcblxuICAgIGNvbnN0IHVwbG9hZCA9IChtZXRhZGF0YSwgZmlsZSkgPT4ge1xuICAgICAgICBsZXQgdXBsb2FkVXJsID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3VwbG9hZFVybCcsIG51bGwpO1xuICAgICAgICBpZiAodXBsb2FkVXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB1cGxvYWRVcmwgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3NhdmVcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXlsb2FkU3RvcmFnZU1vZGUgPSBwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHBheWxvYWRTdG9yYWdlTW9kZSA9PT0gJ3Bvc3QnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIik7XG4gICAgICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpO1xuICAgICAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEuY29ycmVsYXRpb25JZCA9IHByb3BzLnZpZXdJZCArIFwiLlwiICsgcHJvcHMuY29uZmlnLmlkICsgKHByb3BzLmNvbmZpZy5yb3dJZCA/IFwiLlwiICsgcHJvcHMuY29uZmlnLnJvd0lkIDogXCJcIikgKyBcIi1cIiArIGZpbGUubmFtZTtcbiAgICAgICAgICAgICAgICBkYXRhLmFwcGVuZChcIm1ldGFkYXRhXCIsIEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhKSk7XG4gICAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAndGVuYW50JzogYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IGxvY2F0aW9uICsgdXBsb2FkVXJsO1xuICAgICAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50UmVwb3NpdG9yeUlkOiAhVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUpID8gYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlJZCA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQ6IGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gaGFuZGxlRXJyb3IoZSkge1xuICAgICAgICBpZiAoZS5jb2RlID09PSA0MDEpIHtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbGVhcigpO1xuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICBtZXNzYWdlVHlwZTogJ0VSUk9SJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IChlICYmIGUuc2VydmVyTWVzc2FnZSkgPyBlLnNlcnZlck1lc3NhZ2UgOiAnQW4gZXJyb3IgaGFzIG9jY3VycmVkIHdoaWxlIHVwbG9hZGluZyBmaWxlJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChhcHBsaWNhdGlvbk1hbmFnZXIsIHByb3BzLnZpZXdJZCwgbWVzc2FnZSk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9ICgpID0+IGV2ZW50ID0+IHtcbiAgICAgICAgbGV0IHVwbG9hZGVkRmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgIHZhciBhbGxGaWxlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVwbG9hZGVkRmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBmaWxlID0gdXBsb2FkZWRGaWxlc1tpXTtcbiAgICAgICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICBsZXQgZmluZCA9IGFsbEZpbGVzLmZpbmQoKGYpID0+IGYubmFtZSA9PT0gZmlsZS5uYW1lKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGVJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBjb3JyZWxhdGlvbklkOiBwcm9wcy52aWV3SWQgKyBcIi5cIiArIHByb3BzLmNvbmZpZy5pZCArIFwiLVwiICsgZmlsZS5uYW1lXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlmICgnYmFzZTY0JyA9PT0gcGF5bG9hZFN0b3JhZ2VNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JlRmlsZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaW5kICYmIGZpbmQuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKGZpbmQuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVJbmZvLCBmaWxlKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZC5kb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkID0gcmVzdWx0LmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlRmlsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3IgY2FjaGluZyBmaWxlIDogXCIsIGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIHJlbW92aW5nIGZpbGUgY2FjaGUgOiBcIiwgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVJbmZvLCBmaWxlKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlSW5mby5kb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkID0gcmVzdWx0LmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVGaWxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3IgY2FjaGluZyBmaWxlIDogXCIsIGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHN0b3JlRmlsZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlcyB8fCAhZmluZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxsRmlsZXMucHVzaChmaWxlSW5mbyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxsRmlsZXMubGVuZ3RoID09PSB1cGxvYWRlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtdWx0aXBsZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5vblVwbG9hZEhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblVwbG9hZEhhbmRsZXIoYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMub25VcGxvYWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25VcGxvYWRIYW5kbGVyKGFsbEZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZpbGVzKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDAgPyBhbGxGaWxlcy5jb25jYXQoZmlsZXMpIDogYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7fSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBhY2NlcHQ9e3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5hY2NlcHQgfHwgXCJhcHBsaWNhdGlvbi9wZGZcIn1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaW5wdXR9XG4gICAgICAgICAgICAgICAgaWQ9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICByZXF1aXJlZD17YmFzZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICBtdWx0aXBsZT17bXVsdGlwbGV9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZSgpfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgIWJhc2UuZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc2hvd1RodW1iSW1hZ2VzID8gbnVsbCA6ICc0OHB4J1xuICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gY29tcG9uZW50PVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5idXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYmFzZS5oYXNFcnJvciA/ICcxcHggc29saWQgI2Y0NDMzNicgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBiYXNlLmhhc0Vycm9yID8gJyNmNDQzMzYnIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXtVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnaWNvbicsICdVUExPQUQnKX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXNbJ2xhYmVsJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzhweCdcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzLm1hcCgoZmlsZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc2hvd1RodW1iSW1hZ2VzID8gbnVsbCA6ICcxMDAlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlVGh1bWIga2V5PXtmaWxlLm5hbWV9IGZpbGU9e2ZpbGV9IGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93SW1hZ2U9e3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zaG93VGh1bWJJbWFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRGVsZXRlPXsoZmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlRmlsZShmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0vPjwvZGl2PjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IE11bHRpRmlsZVVwbG9hZEZpZWxkID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgY2xlYXJUcmlnZ2VyID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSB2YWx1ZUNoYW5nZUNhbGxiYWNrPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyLmN1cnJlbnQgPSAhY2xlYXJUcmlnZ2VyLmN1cnJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH19PlxuICAgICAgICAgICAge2Jhc2UgPT5cbiAgICAgICAgICAgICAgICA8RG9jdW1lbnRVcGxvYWRcbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyPXtjbGVhclRyaWdnZXIuY3VycmVudH1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0RvY3VtZW50VXBsb2FkPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlGaWxlVXBsb2FkRmllbGQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FB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
|
|
@@ -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