israeli-bank-scrapers 1.8.0 → 1.9.0
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.
|
@@ -103,7 +103,7 @@ async function pageEval(pageOrFrame, selector, defaultResult, callback, ...args)
|
|
|
103
103
|
result = await pageOrFrame.$eval(selector, callback, ...args);
|
|
104
104
|
} catch (e) {
|
|
105
105
|
// TODO temporary workaround to puppeteer@1.5.0 which breaks $$eval bevahvior until they will release a new version.
|
|
106
|
-
if (e.message.indexOf('Error: failed to find
|
|
106
|
+
if (e.message.indexOf('Error: failed to find element matching selector') !== 0) {
|
|
107
107
|
throw e;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -130,4 +130,4 @@ async function dropdownElements(page, selector) {
|
|
|
130
130
|
}, `${selector} > option`);
|
|
131
131
|
return options;
|
|
132
132
|
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucy50cyJdLCJuYW1lcyI6WyJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJwYWdlIiwiZWxlbWVudFNlbGVjdG9yIiwib25seVZpc2libGUiLCJ0aW1lb3V0Iiwid2FpdEZvclNlbGVjdG9yIiwidmlzaWJsZSIsIndhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIiLCJoaWRkZW4iLCJ3YWl0VW50aWxJZnJhbWVGb3VuZCIsImZyYW1lUHJlZGljYXRlIiwiZGVzY3JpcHRpb24iLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiZmlsbElucHV0IiwicGFnZU9yRnJhbWUiLCJpbnB1dFNlbGVjdG9yIiwiaW5wdXRWYWx1ZSIsIiRldmFsIiwiaW5wdXQiLCJpbnB1dEVsZW1lbnQiLCJ2YWx1ZSIsInR5cGUiLCJzZXRWYWx1ZSIsImNsaWNrQnV0dG9uIiwiYnV0dG9uU2VsZWN0b3IiLCJlbCIsImNsaWNrIiwiY2xpY2tMaW5rIiwiYVNlbGVjdG9yIiwicGFnZUV2YWxBbGwiLCJzZWxlY3RvciIsImRlZmF1bHRSZXN1bHQiLCJjYWxsYmFjayIsImFyZ3MiLCJyZXN1bHQiLCIkJGV2YWwiLCJlIiwibWVzc2FnZSIsImluZGV4T2YiLCJwYWdlRXZhbCIsImVsZW1lbnRQcmVzZW50T25QYWdlIiwiJCIsImRyb3Bkb3duU2VsZWN0Iiwic2VsZWN0U2VsZWN0b3IiLCJzZWxlY3QiLCJkcm9wZG93bkVsZW1lbnRzIiwib3B0aW9ucyIsImV2YWx1YXRlIiwib3B0aW9uU2VsZWN0b3IiLCJBcnJheSIsImZyb20iLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmaWx0ZXIiLCJvIiwibWFwIiwibmFtZSIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFFQSxlQUFlQSxxQkFBZixDQUFxQ0MsSUFBckMsRUFBeURDLGVB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akQsSUFBaEMsRUFBNENrQyxRQUE1QyxFQUE4RDtBQUM1RCxRQUFNZ0IsT0FBTyxHQUFHLE1BQU1sRCxJQUFJLENBQUNtRCxRQUFMLENBQWVDLGNBQUQsSUFBb0I7QUFDdEQsV0FBT0MsS0FBSyxDQUFDQyxJQUFOLENBQVdDLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEJKLGNBQTFCLENBQVgsRUFDSkssTUFESSxDQUNJQyxDQUFELElBQU9BLENBQUMsQ0FBQ2xDLEtBRFosRUFFSm1DLEdBRkksQ0FFQ0QsQ0FBRCxJQUFPO0FBQ1YsYUFBTztBQUNMRSxRQUFBQSxJQUFJLEVBQUVGLENBQUMsQ0FBQ0csSUFESDtBQUVMckMsUUFBQUEsS0FBSyxFQUFFa0MsQ0FBQyxDQUFDbEM7QUFGSixPQUFQO0FBSUQsS0FQSSxDQUFQO0FBUUQsR0FUcUIsRUFTbEIsR0FBRVUsUUFBUyxXQVRPLENBQXRCO0FBVUEsU0FBT2dCLE9BQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IHdhaXRVbnRpbCB9IGZyb20gJy4vd2FpdGluZyc7XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlOiBQYWdlIHwgRnJhbWUsIGVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nLFxuICBvbmx5VmlzaWJsZSA9IGZhbHNlLCB0aW1lb3V0ID0gMzAwMDApIHtcbiAgYXdhaXQgcGFnZS53YWl0Rm9yU2VsZWN0b3IoZWxlbWVudFNlbGVjdG9yLCB7IHZpc2libGU6IG9ubHlWaXNpYmxlLCB0aW1lb3V0IH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyKHBhZ2U6IFBhZ2UsIGVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nLCB0aW1lb3V0ID0gMzAwMDApIHtcbiAgYXdhaXQgcGFnZS53YWl0Rm9yU2VsZWN0b3IoZWxlbWVudFNlbGVjdG9yLCB7IGhpZGRlbjogdHJ1ZSwgdGltZW91dCB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdFVudGlsSWZyYW1lRm91bmQocGFnZTogUGFnZSwgZnJhbWVQcmVkaWNhdGU6IChmcmFtZTogRnJhbWUpID0+IGJvb2xlYW4sIGRlc2NyaXB0aW9uID0gJycsIHRpbWVvdXQgPSAzMDAwMCkge1xuICBsZXQgZnJhbWU6IEZyYW1lIHwgdW5kZWZpbmVkO1xuICBhd2FpdCB3YWl0VW50aWwoKCkgPT4ge1xuICAgIGZyYW1lID0gcGFnZVxuICAgICAgLmZyYW1lcygpXG4gICAgICAuZmluZChmcmFtZVByZWRpY2F0ZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSghIWZyYW1lKTtcbiAgfSwgZGVzY3JpcHRpb24sIHRpbWVvdXQsIDEwMDApO1xuXG4gIGlmICghZnJhbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBmaW5kIGlmcmFtZScpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaWxsSW5wdXQocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgaW5wdXRTZWxlY3Rvcjogc3RyaW5nLCBpbnB1dFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZU9yRnJhbWUuJGV2YWwoaW5wdXRTZWxlY3RvciwgKGlucHV0OiBFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXQ7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlucHV0RWxlbWVudC52YWx1ZSA9ICcnO1xuICB9KTtcbiAgYXdhaXQgcGFnZU9yRnJhbWUudHlwZShpbnB1dFNlbGVjdG9yLCBpbnB1dFZhbHVlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0VmFsdWUocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgaW5wdXRTZWxlY3Rvcjogc3RyaW5nLCBpbnB1dFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZU9yRnJhbWUuJGV2YWwoaW5wdXRTZWxlY3RvciwgKGlucHV0OiBFbGVtZW50LCBpbnB1dFZhbHVlKSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXQ7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGlucHV0VmFsdWU7XG4gIH0sIFtpbnB1dFZhbHVlXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNsaWNrQnV0dG9uKHBhZ2U6IFBhZ2UgfCBGcmFtZSwgYnV0dG9uU2VsZWN0b3I6IHN0cmluZykge1xuICBhd2FpdCBwYWdlLiRldmFsKGJ1dHRvblNlbGVjdG9yLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNsaWNrTGluayhwYWdlOiBQYWdlLCBhU2VsZWN0b3I6IHN0cmluZykge1xuICBhd2FpdCBwYWdlLiRldmFsKGFTZWxlY3RvciwgKGVsOiBhbnkpID0+IHtcbiAgICBpZiAoIWVsIHx8IHR5cGVvZiBlbC5jbGljayA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbC5jbGljaygpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFnZUV2YWxBbGw8Uj4ocGFnZTogUGFnZSB8IEZyYW1lLCBzZWxlY3Rvcjogc3RyaW5nLFxuICBkZWZhdWx0UmVzdWx0OiBhbnksIGNhbGxiYWNrOiAoZWxlbWVudHM6IEVsZW1lbnRbXSwgLi4uYXJnczogYW55KSA9PiBSLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj4ge1xuICBsZXQgcmVzdWx0ID0gZGVmYXVsdFJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBhd2FpdCBwYWdlLiQkZXZhbChzZWxlY3RvciwgY2FsbGJhY2ssIC4uLmFyZ3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVE9ETyB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0byBwdXBwZXRlZXJAMS41LjAgd2hpY2ggYnJlYWtzICQkZXZhbCBiZXZhaHZpb3IgdW50aWwgdGhleSB3aWxsIHJlbGVhc2UgYSBuZXcgdmVyc2lvbi5cbiAgICBpZiAoZS5tZXNzYWdlLmluZGV4T2YoJ0Vycm9yOiBmYWlsZWQgdG8gZmluZCBlbGVtZW50cyBtYXRjaGluZyBzZWxlY3RvcicpICE9PSAwKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhZ2VFdmFsPFI+KHBhZ2VPckZyYW1lOiBQYWdlIHwgRnJhbWUsIHNlbGVjdG9yOiBzdHJpbmcsXG4gIGRlZmF1bHRSZXN1bHQ6IGFueSwgY2FsbGJhY2s6IChlbGVtZW50czogRWxlbWVudCwgLi4uYXJnczogYW55KSA9PiBSLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj4ge1xuICBsZXQgcmVzdWx0ID0gZGVmYXVsdFJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBhd2FpdCBwYWdlT3JGcmFtZS4kZXZhbChzZWxlY3RvciwgY2FsbGJhY2ssIC4uLmFyZ3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVE9ETyB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0byBwdXBwZXRlZXJAMS41LjAgd2hpY2ggYnJlYWtzICQkZXZhbCBiZXZhaHZpb3IgdW50aWwgdGhleSB3aWxsIHJlbGVhc2UgYSBuZXcgdmVyc2lvbi5cbiAgICBpZiAoZS5tZXNzYWdlLmluZGV4T2YoJ0Vycm9yOiBmYWlsZWQgdG8gZmluZCBlbGVtZW50cyBtYXRjaGluZyBzZWxlY3RvcicpICE9PSAwKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2VPckZyYW1lOiBQYWdlIHwgRnJhbWUsIHNlbGVjdG9yOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGF3YWl0IHBhZ2VPckZyYW1lLiQoc2VsZWN0b3IpICE9PSBudWxsO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkcm9wZG93blNlbGVjdChwYWdlOiBQYWdlLCBzZWxlY3RTZWxlY3Rvcjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gIGF3YWl0IHBhZ2Uuc2VsZWN0KHNlbGVjdFNlbGVjdG9yLCB2YWx1ZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRyb3Bkb3duRWxlbWVudHMocGFnZTogUGFnZSwgc2VsZWN0b3I6IHN0cmluZykge1xuICBjb25zdCBvcHRpb25zID0gYXdhaXQgcGFnZS5ldmFsdWF0ZSgob3B0aW9uU2VsZWN0b3IpID0+IHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKG9wdGlvblNlbGVjdG9yKSlcbiAgICAgIC5maWx0ZXIoKG8pID0+IG8udmFsdWUpXG4gICAgICAubWFwKChvKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogby50ZXh0LFxuICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gIH0sIGAke3NlbGVjdG9yfSA+IG9wdGlvbmApO1xuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZXhwb3J0IHtcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyLFxuICB3YWl0VW50aWxJZnJhbWVGb3VuZCxcbiAgZmlsbElucHV0LFxuICBjbGlja0J1dHRvbixcbiAgY2xpY2tMaW5rLFxuICBkcm9wZG93blNlbGVjdCxcbiAgZHJvcGRvd25FbGVtZW50cyxcbiAgcGFnZUV2YWwsXG4gIHBhZ2VFdmFsQWxsLFxuICBlbGVtZW50UHJlc2VudE9uUGFnZSxcbiAgc2V0VmFsdWUsXG59O1xuIl19
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucy50cyJdLCJuYW1lcyI6WyJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJwYWdlIiwiZWxlbWVudFNlbGVjdG9yIiwib25seVZpc2libGUiLCJ0aW1lb3V0Iiwid2FpdEZvclNlbGVjdG9yIiwidmlzaWJsZSIsIndhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIiLCJoaWRkZW4iLCJ3YWl0VW50aWxJZnJhbWVGb3VuZCIsImZyYW1lUHJlZGljYXRlIiwiZGVzY3JpcHRpb24iLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiZmlsbElucHV0IiwicGFnZU9yRnJhbWUiLCJpbnB1dFNlbGVjdG9yIiwiaW5wdXRWYWx1ZSIsIiRldmFsIiwiaW5wdXQiLCJpbnB1dEVsZW1lbnQiLCJ2YWx1ZSIsInR5cGUiLCJzZXRWYWx1ZSIsImNsaWNrQnV0dG9uIiwiYnV0dG9uU2VsZWN0b3IiLCJlbCIsImNsaWNrIiwiY2xpY2tMaW5rIiwiYVNlbGVjdG9yIiwicGFnZUV2YWxBbGwiLCJzZWxlY3RvciIsImRlZmF1bHRSZXN1bHQiLCJjYWxsYmFjayIsImFyZ3MiLCJyZXN1bHQiLCIkJGV2YWwiLCJlIiwibWVzc2FnZSIsImluZGV4T2YiLCJwYWdlRXZhbCIsImVsZW1lbnRQcmVzZW50T25QYWdlIiwiJCIsImRyb3Bkb3duU2VsZWN0Iiwic2VsZWN0U2VsZWN0b3IiLCJzZWxlY3QiLCJkcm9wZG93bkVsZW1lbnRzIiwib3B0aW9ucyIsImV2YWx1YXRlIiwib3B0aW9uU2VsZWN0b3IiLCJBcnJheSIsImZyb20iLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmaWx0ZXIiLCJvIiwibWFwIiwibmFtZSIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFFQSxlQUFlQSxxQkFBZixDQUFxQ0MsSUFBckMsRUFBeURDLGVB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akQsSUFBaEMsRUFBNENrQyxRQUE1QyxFQUE4RDtBQUM1RCxRQUFNZ0IsT0FBTyxHQUFHLE1BQU1sRCxJQUFJLENBQUNtRCxRQUFMLENBQWVDLGNBQUQsSUFBb0I7QUFDdEQsV0FBT0MsS0FBSyxDQUFDQyxJQUFOLENBQVdDLFFBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEJKLGNBQTFCLENBQVgsRUFDSkssTUFESSxDQUNJQyxDQUFELElBQU9BLENBQUMsQ0FBQ2xDLEtBRFosRUFFSm1DLEdBRkksQ0FFQ0QsQ0FBRCxJQUFPO0FBQ1YsYUFBTztBQUNMRSxRQUFBQSxJQUFJLEVBQUVGLENBQUMsQ0FBQ0csSUFESDtBQUVMckMsUUFBQUEsS0FBSyxFQUFFa0MsQ0FBQyxDQUFDbEM7QUFGSixPQUFQO0FBSUQsS0FQSSxDQUFQO0FBUUQsR0FUcUIsRUFTbEIsR0FBRVUsUUFBUyxXQVRPLENBQXRCO0FBVUEsU0FBT2dCLE9BQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IHdhaXRVbnRpbCB9IGZyb20gJy4vd2FpdGluZyc7XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlOiBQYWdlIHwgRnJhbWUsIGVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nLFxuICBvbmx5VmlzaWJsZSA9IGZhbHNlLCB0aW1lb3V0ID0gMzAwMDApIHtcbiAgYXdhaXQgcGFnZS53YWl0Rm9yU2VsZWN0b3IoZWxlbWVudFNlbGVjdG9yLCB7IHZpc2libGU6IG9ubHlWaXNpYmxlLCB0aW1lb3V0IH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyKHBhZ2U6IFBhZ2UsIGVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nLCB0aW1lb3V0ID0gMzAwMDApIHtcbiAgYXdhaXQgcGFnZS53YWl0Rm9yU2VsZWN0b3IoZWxlbWVudFNlbGVjdG9yLCB7IGhpZGRlbjogdHJ1ZSwgdGltZW91dCB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdFVudGlsSWZyYW1lRm91bmQocGFnZTogUGFnZSwgZnJhbWVQcmVkaWNhdGU6IChmcmFtZTogRnJhbWUpID0+IGJvb2xlYW4sIGRlc2NyaXB0aW9uID0gJycsIHRpbWVvdXQgPSAzMDAwMCkge1xuICBsZXQgZnJhbWU6IEZyYW1lIHwgdW5kZWZpbmVkO1xuICBhd2FpdCB3YWl0VW50aWwoKCkgPT4ge1xuICAgIGZyYW1lID0gcGFnZVxuICAgICAgLmZyYW1lcygpXG4gICAgICAuZmluZChmcmFtZVByZWRpY2F0ZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSghIWZyYW1lKTtcbiAgfSwgZGVzY3JpcHRpb24sIHRpbWVvdXQsIDEwMDApO1xuXG4gIGlmICghZnJhbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBmaW5kIGlmcmFtZScpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmaWxsSW5wdXQocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgaW5wdXRTZWxlY3Rvcjogc3RyaW5nLCBpbnB1dFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZU9yRnJhbWUuJGV2YWwoaW5wdXRTZWxlY3RvciwgKGlucHV0OiBFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXQ7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlucHV0RWxlbWVudC52YWx1ZSA9ICcnO1xuICB9KTtcbiAgYXdhaXQgcGFnZU9yRnJhbWUudHlwZShpbnB1dFNlbGVjdG9yLCBpbnB1dFZhbHVlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0VmFsdWUocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgaW5wdXRTZWxlY3Rvcjogc3RyaW5nLCBpbnB1dFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZU9yRnJhbWUuJGV2YWwoaW5wdXRTZWxlY3RvciwgKGlucHV0OiBFbGVtZW50LCBpbnB1dFZhbHVlKSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXQ7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGlucHV0VmFsdWU7XG4gIH0sIFtpbnB1dFZhbHVlXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNsaWNrQnV0dG9uKHBhZ2U6IFBhZ2UgfCBGcmFtZSwgYnV0dG9uU2VsZWN0b3I6IHN0cmluZykge1xuICBhd2FpdCBwYWdlLiRldmFsKGJ1dHRvblNlbGVjdG9yLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNsaWNrTGluayhwYWdlOiBQYWdlLCBhU2VsZWN0b3I6IHN0cmluZykge1xuICBhd2FpdCBwYWdlLiRldmFsKGFTZWxlY3RvciwgKGVsOiBhbnkpID0+IHtcbiAgICBpZiAoIWVsIHx8IHR5cGVvZiBlbC5jbGljayA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbC5jbGljaygpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFnZUV2YWxBbGw8Uj4ocGFnZTogUGFnZSB8IEZyYW1lLCBzZWxlY3Rvcjogc3RyaW5nLFxuICBkZWZhdWx0UmVzdWx0OiBhbnksIGNhbGxiYWNrOiAoZWxlbWVudHM6IEVsZW1lbnRbXSwgLi4uYXJnczogYW55KSA9PiBSLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj4ge1xuICBsZXQgcmVzdWx0ID0gZGVmYXVsdFJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBhd2FpdCBwYWdlLiQkZXZhbChzZWxlY3RvciwgY2FsbGJhY2ssIC4uLmFyZ3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVE9ETyB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0byBwdXBwZXRlZXJAMS41LjAgd2hpY2ggYnJlYWtzICQkZXZhbCBiZXZhaHZpb3IgdW50aWwgdGhleSB3aWxsIHJlbGVhc2UgYSBuZXcgdmVyc2lvbi5cbiAgICBpZiAoZS5tZXNzYWdlLmluZGV4T2YoJ0Vycm9yOiBmYWlsZWQgdG8gZmluZCBlbGVtZW50cyBtYXRjaGluZyBzZWxlY3RvcicpICE9PSAwKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhZ2VFdmFsPFI+KHBhZ2VPckZyYW1lOiBQYWdlIHwgRnJhbWUsIHNlbGVjdG9yOiBzdHJpbmcsXG4gIGRlZmF1bHRSZXN1bHQ6IGFueSwgY2FsbGJhY2s6IChlbGVtZW50czogRWxlbWVudCwgLi4uYXJnczogYW55KSA9PiBSLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj4ge1xuICBsZXQgcmVzdWx0ID0gZGVmYXVsdFJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBhd2FpdCBwYWdlT3JGcmFtZS4kZXZhbChzZWxlY3RvciwgY2FsbGJhY2ssIC4uLmFyZ3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVE9ETyB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0byBwdXBwZXRlZXJAMS41LjAgd2hpY2ggYnJlYWtzICQkZXZhbCBiZXZhaHZpb3IgdW50aWwgdGhleSB3aWxsIHJlbGVhc2UgYSBuZXcgdmVyc2lvbi5cbiAgICBpZiAoZS5tZXNzYWdlLmluZGV4T2YoJ0Vycm9yOiBmYWlsZWQgdG8gZmluZCBlbGVtZW50IG1hdGNoaW5nIHNlbGVjdG9yJykgIT09IDApIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgc2VsZWN0b3I6IHN0cmluZykge1xuICByZXR1cm4gYXdhaXQgcGFnZU9yRnJhbWUuJChzZWxlY3RvcikgIT09IG51bGw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRyb3Bkb3duU2VsZWN0KHBhZ2U6IFBhZ2UsIHNlbGVjdFNlbGVjdG9yOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgYXdhaXQgcGFnZS5zZWxlY3Qoc2VsZWN0U2VsZWN0b3IsIHZhbHVlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZHJvcGRvd25FbGVtZW50cyhwYWdlOiBQYWdlLCBzZWxlY3Rvcjogc3RyaW5nKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKChvcHRpb25TZWxlY3RvcikgPT4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwob3B0aW9uU2VsZWN0b3IpKVxuICAgICAgLmZpbHRlcigobykgPT4gby52YWx1ZSlcbiAgICAgIC5tYXAoKG8pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBvLnRleHQsXG4gICAgICAgICAgdmFsdWU6IG8udmFsdWUsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfSwgYCR7c2VsZWN0b3J9ID4gb3B0aW9uYCk7XG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5leHBvcnQge1xuICB3YWl0VW50aWxFbGVtZW50Rm91bmQsXG4gIHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIsXG4gIHdhaXRVbnRpbElmcmFtZUZvdW5kLFxuICBmaWxsSW5wdXQsXG4gIGNsaWNrQnV0dG9uLFxuICBjbGlja0xpbmssXG4gIGRyb3Bkb3duU2VsZWN0LFxuICBkcm9wZG93bkVsZW1lbnRzLFxuICBwYWdlRXZhbCxcbiAgcGFnZUV2YWxBbGwsXG4gIGVsZW1lbnRQcmVzZW50T25QYWdlLFxuICBzZXRWYWx1ZSxcbn07XG4iXX0=
|
|
@@ -271,8 +271,8 @@ async function waitForPostLogin(page) {
|
|
|
271
271
|
async function fetchAccountData(page, startDate) {
|
|
272
272
|
await searchByDates(page, startDate);
|
|
273
273
|
const accountNumber = await getAccountNumber(page);
|
|
274
|
-
const txns = await getAccountTransactions(page);
|
|
275
274
|
const balance = await getCurrentBalance(page);
|
|
275
|
+
const txns = await getAccountTransactions(page);
|
|
276
276
|
return {
|
|
277
277
|
accountNumber,
|
|
278
278
|
txns,
|
|
@@ -327,4 +327,4 @@ class BeinleumiGroupBaseScraper extends _baseScraperWithBrowser.BaseScraperWithB
|
|
|
327
327
|
|
|
328
328
|
var _default = BeinleumiGroupBaseScraper;
|
|
329
329
|
exports.default = _default;
|
|
330
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWJlaW5sZXVtaS1ncm91cC50cyJdLCJuYW1lcyI6WyJEQVRFX0ZPUk1BVCIsIk5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVCIsIkRBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCIsIkRBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkciLCJERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEIiwiREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkciLCJSRUZFUkVOQ0VfQ09MVU1OX0NMQVNTIiwiREVCSVRfQ09MVU1OX0NMQVNTIiwiQ1JFRElUX0NPTFVNTl9DTEFTUyIsIkVSUk9SX01FU1NBR0VfQ0xBU1MiLCJBQ0NPVU5UU19OVU1CRVIiLCJDTE9TRV9TRUFSQ0hfQllfREFURVNfQlVUVE9OX0NMQVNTIiwiU0hPV19TRUFSQ0hfQllfREFURVNfQlVUVE9OX1ZBTFVFIiwiQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFIiwiTkVYVF9QQUdFX0xJTksiLCJDVVJSRU5UX0JBTEFOQ0UiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNvcHkiLCJyZXBsYWNlIiwicGFyc2VGbG9hdCIsImdldFR4bkFtb3VudCIsInR4biIsImNyZWRpdCIsImRlYml0IiwiTnVtYmVyIiwiaXNOYU4iLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsImNvbnZlcnRlZERhdGUiLCJkYXRlIiwidG9JU09TdHJpbmciLCJjb252ZXJ0ZWRBbW91bnQiLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJyZWZlcmVuY2UiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50Iiwic3RhdHVzIiwiZGVzY3JpcHRpb24iLCJtZW1vIiwiZ2V0VHJhbnNhY3Rpb25EYXRlIiwidGRzIiwidHJhbnNhY3Rpb25UeXBlIiwidHJhbnNhY3Rpb25zQ29sc1R5cGVzIiwidHJpbSIsImdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24iLCJnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSIsImdldFRyYW5zYWN0aW9uRGViaXQiLCJnZXRUcmFuc2FjdGlvbkNyZWRpdCIsImV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHMiLCJ0eG5Sb3ciLCJ0cmFuc2FjdGlvblN0YXR1cyIsImlubmVyVGRzIiwiaXRlbSIsImdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyIsInBhZ2UiLCJ0YWJsZUxvY2F0b3IiLCJyZXN1bHQiLCJ0eXBlQ2xhc3Nlc09ianMiLCJ0ZCIsImluZGV4IiwiY29sQ2xhc3MiLCJnZXRBdHRyaWJ1dGUiLCJ0eXBlQ2xhc3NPYmoiLCJleHRyYWN0VHJhbnNhY3Rpb24iLCJwdXNoIiwiZXh0cmFjdFRyYW5zYWN0aW9ucyIsInRyYW5zYWN0aW9uc1Jvd3MiLCJ0cnMiLCJ0ciIsIkFycmF5IiwiZnJvbSIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaW5uZXJUZXh0IiwiaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvciIsImhhc0Vycm9ySW5mb0VsZW1lbnQiLCJlcnJvclRleHQiLCIkZXZhbCIsImVycm9yRWxlbWVudCIsInNlYXJjaEJ5RGF0ZXMiLCJzdGFydERhdGUiLCJmb3JtYXQiLCJnZXRBY2NvdW50TnVtYmVyIiwic2VsZWN0ZWRTbmlmQWNjb3VudCIsIm9wdGlvbiIsImNoZWNrSWZIYXNOZXh0UGFnZSIsIm5hdmlnYXRlVG9OZXh0UGFnZSIsInNjcmFwZVRyYW5zYWN0aW9ucyIsIm5lZWRUb1BhZ2luYXRlIiwiaGFzTmV4dFBhZ2UiLCJjdXJyZW50UGFnZVR4bnMiLCJnZXRBY2NvdW50VHJhbnNhY3Rpb25zIiwiUHJvbWlzZSIsInJhY2UiLCJub1RyYW5zYWN0aW9uSW5SYW5nZUVycm9yIiwicGVuZGluZ1R4bnMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsImNvbXBsZXRlZFR4bnMiLCJDb21wbGV0ZWQiLCJnZXRDdXJyZW50QmFsYW5jZSIsImJhbGFuY2VTdHIiLCJ3YWl0Rm9yUG9zdExvZ2luIiwiZmV0Y2hBY2NvdW50RGF0YSIsImFjY291bnROdW1iZXIiLCJiYWxhbmNlIiwiZmV0Y2hBY2NvdW50cyIsImFjY291bnRzIiwiYWNjb3VudERhdGEiLCJCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiTE9HSU5fVVJMIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJvcHRpb25zIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwiVFJBTlNBQ1RJT05TX1VSTCIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBT0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUtBLE1BQU1BLFdBQVcsR0FBRyxZQUFwQjtBQUNBLE1BQU1DLGlDQUFpQyxHQUFHLDhCQUExQztBQUNBLE1BQU1DLDJCQUEyQixHQUFHLFlBQXBDO0FBQ0EsTUFBTUMseUJBQXlCLEdBQUcsWUFBbEM7QUFDQSxNQUFNQyxrQ0FBa0MsR0FBRyx1QkFBM0M7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LFNBQVUsRUFEdkI7QUFFTEMsTUFBQUEsTUFBTSxFQUFFakgsaUJBQWlCLENBQUNDLFdBQUQsQ0FGcEI7QUFHTGlILE1BQUFBLG9CQUFvQixFQUFFLGNBSGpCO0FBSUxDLE1BQUFBLFVBQVUsRUFBRSxZQUFZZCxnQkFBZ0IsQ0FBQyxLQUFLL0MsSUFBTixDQUpuQztBQUtMOEQsTUFBQUEsZUFBZSxFQUFFekgsdUJBQXVCO0FBTG5DLEtBQVA7QUFPRDs7QUFFRCxRQUFNMEgsU0FBTixHQUFrQjtBQUNoQixVQUFNQyxrQkFBa0IsR0FBRyx1QkFBU0MsUUFBVCxDQUFrQixDQUFsQixFQUFxQixPQUFyQixFQUE4QkMsR0FBOUIsQ0FBa0MsQ0FBbEMsRUFBcUMsS0FBckMsQ0FBM0I7QUFDQSxVQUFNekMsU0FBUyxHQUFHLEtBQUswQyxPQUFMLENBQWExQyxTQUFiLElBQTBCdUMsa0JBQWtCLENBQUNJLE1BQW5CLEVBQTVDOztBQUNBLFVBQU1DLFdBQVcsR0FBR0MsZ0JBQU9DLEdBQVAsQ0FBV1Asa0JBQVgsRUFBK0IscUJBQU92QyxTQUFQLENBQS9CLENBQXBCOztBQUVBLFVBQU0sS0FBSytDLFVBQUwsQ0FBZ0IsS0FBS0MsZ0JBQXJCLENBQU47QUFFQSxVQUFNckIsUUFBUSxHQUFHLE1BQU1ELGFBQWEsQ0FBQyxLQUFLbkQsSUFBTixFQUFZcUUsV0FBWixDQUFwQztBQUVBLFdBQU87QUFDTEssTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTHRCLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQTlCNEQ7O2VBaUNoREUseUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHtcbiAgZmlsbElucHV0LFxuICBjbGlja0J1dHRvbixcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICBwYWdlRXZhbEFsbCxcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjcmFwZXJDcmVkZW50aWFscyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5jb25zdCBOT19UUkFOU0FDVElPTl9JTl9EQVRFX1JBTkdFX1RFWFQgPSAn15zXkCDXoNee16bXkNeVINeg16rXldeg15nXnSDXkdeg15XXqdeQINeU157XkdeV16fXqSc7XG5jb25zdCBEQVRFX0NPTFVNTl9DTEFTU19DT01QTEVURUQgPSAnZGF0ZSBmaXJzdCc7XG5jb25zdCBEQVRFX0NPTFVNTl9DTEFTU19QRU5ESU5HID0gJ2ZpcnN0IGRhdGUnO1xuY29uc3QgREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCA9ICdyZWZlcmVuY2Ugd3JhcF9ub3JtYWwnO1xuY29uc3QgREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkcgPSAnZGV0YWlscyB3cmFwX25vcm1hbCc7XG5jb25zdCBSRUZFUkVOQ0VfQ09MVU1OX0NMQVNTID0gJ2RldGFpbHMnO1xuY29uc3QgREVCSVRfQ09MVU1OX0NMQVNTID0gJ2RlYml0JztcbmNvbnN0IENSRURJVF9DT0xVTU5fQ0xBU1MgPSAnY3JlZGl0JztcbmNvbnN0IEVSUk9SX01FU1NBR0VfQ0xBU1MgPSAnTk9fREFUQSc7XG5jb25zdCBBQ0NPVU5UU19OVU1CRVIgPSAnZGl2LmZpYmlfYWNjb3VudCBzcGFuLmFjY19udW0nO1xuY29uc3QgQ0xPU0VfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9DTEFTUyA9ICd1aS1kYXRlcGlja2VyLWNsb3NlJztcbmNvbnN0IFNIT1dfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9WQUxVRSA9ICfXlNem15InO1xuY29uc3QgQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSA9ICd0YWJsZSNkYXRhVGFibGUwNzcnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEUgPSAndGFibGUjZGF0YVRhYmxlMDIzJztcbmNvbnN0IE5FWFRfUEFHRV9MSU5LID0gJ2EjTnBhZ2UucGFnaW5nJztcbmNvbnN0IENVUlJFTlRfQkFMQU5DRSA9ICcubWFpbl9iYWxhbmNlJztcblxudHlwZSBUcmFuc2FjdGlvbnNDb2xzVHlwZXMgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xudHlwZSBUcmFuc2FjdGlvbnNUclRkcyA9IHN0cmluZ1tdO1xudHlwZSBUcmFuc2FjdGlvbnNUciA9IHsgaW5uZXJUZHM6IFRyYW5zYWN0aW9uc1RyVGRzIH07XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICByZWZlcmVuY2U6IHN0cmluZztcbiAgZGF0ZTogc3RyaW5nO1xuICBjcmVkaXQ6IHN0cmluZztcbiAgZGViaXQ6IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gWy9GaWJpTWVudVxcL09ubGluZS9dO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gWy9GaWJpTWVudVxcL01hcmtldGluZ1xcL1ByaXZhdGVcXC9Ib21lL107XG4gIHJldHVybiB1cmxzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdXNlcm5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ29weSA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICByZXR1cm4gcGFyc2VGbG9hdChhbW91bnRTdHJDb3B5KTtcbn1cblxuZnVuY3Rpb24gZ2V0VHhuQW1vdW50KHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKSB7XG4gIGNvbnN0IGNyZWRpdCA9IGdldEFtb3VudERhdGEodHhuLmNyZWRpdCk7XG4gIGNvbnN0IGRlYml0ID0gZ2V0QW1vdW50RGF0YSh0eG4uZGViaXQpO1xuICByZXR1cm4gKE51bWJlci5pc05hTihjcmVkaXQpID8gMCA6IGNyZWRpdCkgLSAoTnVtYmVyLmlzTmFOKGRlYml0KSA/IDAgOiBkZWJpdCk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pOiBUcmFuc2FjdGlvbiA9PiB7XG4gICAgY29uc3QgY29udmVydGVkRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgY29udmVydGVkQW1vdW50ID0gZ2V0VHhuQW1vdW50KHR4bik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgaWRlbnRpZmllcjogdHhuLnJlZmVyZW5jZSA/IHBhcnNlSW50KHR4bi5yZWZlcmVuY2UsIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IGNvbnZlcnRlZERhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBjb252ZXJ0ZWREYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGNvbnZlcnRlZEFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGNvbnZlcnRlZEFtb3VudCxcbiAgICAgIHN0YXR1czogdHhuLnN0YXR1cyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG4uZGVzY3JpcHRpb24sXG4gICAgICBtZW1vOiB0eG4ubWVtbyxcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EYXRlKHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uVHlwZTogc3RyaW5nLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICBpZiAodHJhbnNhY3Rpb25UeXBlID09PSAnY29tcGxldGVkJykge1xuICAgIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tEQVRFX0NPTFVNTl9DTEFTU19DT01QTEVURURdXSB8fCAnJykudHJpbSgpO1xuICB9XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tEQVRFX0NPTFVNTl9DTEFTU19QRU5ESU5HXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbih0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvblR5cGU6IHN0cmluZywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgaWYgKHRyYW5zYWN0aW9uVHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX0NPTVBMRVRFRF1dIHx8ICcnKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RFU0NSSVBUSU9OX0NPTFVNTl9DTEFTU19QRU5ESU5HXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25SZWZlcmVuY2UodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW1JFRkVSRU5DRV9DT0xVTU5fQ0xBU1NdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRlYml0KHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tERUJJVF9DT0xVTU5fQ0xBU1NdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkNyZWRpdCh0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbQ1JFRElUX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHModHhuUm93OiBUcmFuc2FjdGlvbnNUciwgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKTogU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgY29uc3QgdGRzID0gdHhuUm93LmlubmVyVGRzO1xuICBjb25zdCBpdGVtID0ge1xuICAgIHN0YXR1czogdHJhbnNhY3Rpb25TdGF0dXMsXG4gICAgZGF0ZTogZ2V0VHJhbnNhY3Rpb25EYXRlKHRkcywgdHJhbnNhY3Rpb25TdGF0dXMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gICAgZGVzY3JpcHRpb246IGdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24odGRzLCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICByZWZlcmVuY2U6IGdldFRyYW5zYWN0aW9uUmVmZXJlbmNlKHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBkZWJpdDogZ2V0VHJhbnNhY3Rpb25EZWJpdCh0ZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gICAgY3JlZGl0OiBnZXRUcmFuc2FjdGlvbkNyZWRpdCh0ZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gIH07XG5cbiAgcmV0dXJuIGl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyhwYWdlOiBQYWdlLCB0YWJsZUxvY2F0b3I6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQ29sc1R5cGVzPiB7XG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25zQ29sc1R5cGVzID0ge307XG4gIGNvbnN0IHR5cGVDbGFzc2VzT2JqcyA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsIGAke3RhYmxlTG9jYXRvcn0gdGJvZHkgdHI6Zmlyc3Qtb2YtdHlwZSB0ZGAsIG51bGwsICh0ZHMpID0+IHtcbiAgICByZXR1cm4gdGRzLm1hcCgodGQsIGluZGV4KSA9PiAoe1xuICAgICAgY29sQ2xhc3M6IHRkLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSxcbiAgICAgIGluZGV4LFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgZm9yIChjb25zdCB0eXBlQ2xhc3NPYmogb2YgdHlwZUNsYXNzZXNPYmpzKSB7XG4gICAgaWYgKHR5cGVDbGFzc09iai5jb2xDbGFzcykge1xuICAgICAgcmVzdWx0W3R5cGVDbGFzc09iai5jb2xDbGFzc10gPSB0eXBlQ2xhc3NPYmouaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbih0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMsIHR4blJvdzogVHJhbnNhY3Rpb25zVHIsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIGNvbnN0IHR4biA9IGV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHModHhuUm93LCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKTtcbiAgaWYgKHR4bi5kYXRlICE9PSAnJykge1xuICAgIHR4bnMucHVzaCh0eG4pO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgdGFibGVMb2NhdG9yOiBzdHJpbmcsIHRyYW5zYWN0aW9uU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKSB7XG4gIGNvbnN0IHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdID0gW107XG4gIGNvbnN0IHRyYW5zYWN0aW9uc0NvbHNUeXBlcyA9IGF3YWl0IGdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyhwYWdlLCB0YWJsZUxvY2F0b3IpO1xuXG4gIGNvbnN0IHRyYW5zYWN0aW9uc1Jvd3MgPSBhd2FpdCBwYWdlRXZhbEFsbDxUcmFuc2FjdGlvbnNUcltdPihwYWdlLCBgJHt0YWJsZUxvY2F0b3J9IHRib2R5IHRyYCwgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+ICh7XG4gICAgICBpbm5lclRkczogQXJyYXkuZnJvbSh0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGQnKSkubWFwKCh0ZCkgPT4gdGQuaW5uZXJUZXh0KSxcbiAgICB9KSk7XG4gIH0pO1xuXG4gIGZvciAoY29uc3QgdHhuUm93IG9mIHRyYW5zYWN0aW9uc1Jvd3MpIHtcbiAgICBleHRyYWN0VHJhbnNhY3Rpb24odHhucywgdHJhbnNhY3Rpb25TdGF0dXMsIHR4blJvdywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKTtcbiAgfVxuICByZXR1cm4gdHhucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvcihwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGhhc0Vycm9ySW5mb0VsZW1lbnQgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gKTtcbiAgaWYgKGhhc0Vycm9ySW5mb0VsZW1lbnQpIHtcbiAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCBwYWdlLiRldmFsKGAuJHtFUlJPUl9NRVNTQUdFX0NMQVNTfWAsIChlcnJvckVsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiAoZXJyb3JFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIGVycm9yVGV4dC50cmltKCkgPT09IE5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVDtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaEJ5RGF0ZXMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2EjdGFiSGVhZGVyNCcpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2RpdiNmaWJpX2RhdGVzJyk7XG4gIGF3YWl0IGZpbGxJbnB1dChcbiAgICBwYWdlLFxuICAgICdpbnB1dCNmcm9tRGF0ZScsXG4gICAgc3RhcnREYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICk7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIGBidXR0b25bY2xhc3MqPSR7Q0xPU0VfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9DTEFTU31dYCk7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIGBpbnB1dFt2YWx1ZT0ke1NIT1dfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9WQUxVRX1dYCk7XG4gIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHBhZ2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50TnVtYmVyKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3Qgc2VsZWN0ZWRTbmlmQWNjb3VudCA9IGF3YWl0IHBhZ2UuJGV2YWwoQUNDT1VOVFNfTlVNQkVSLCAob3B0aW9uKSA9PiB7XG4gICAgcmV0dXJuIChvcHRpb24gYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSk7XG5cbiAgcmV0dXJuIHNlbGVjdGVkU25pZkFjY291bnQucmVwbGFjZSgnLycsICdfJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrSWZIYXNOZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBORVhUX1BBR0VfTElOSyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlVG9OZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIE5FWFRfUEFHRV9MSU5LKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbi8qIENvdWxkbid0IHJlcHJvZHVjZSBzY2VuYXJpbyB3aXRoIG11bHRpcGxlIHBhZ2VzIG9mIHBlbmRpbmcgdHJhbnNhY3Rpb25zIC0gU2hvdWxkIHN1cHBvcnQgaWYgZXhpc3RzIHN1Y2ggY2FzZS5cbiAgIG5lZWRUb1BhZ2luYXRlIGlzIGZhbHNlIGlmIHNjcmFwaW5nIHBlbmRpbmcgdHJhbnNhY3Rpb25zICovXG5hc3luYyBmdW5jdGlvbiBzY3JhcGVUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgdGFibGVMb2NhdG9yOiBzdHJpbmcsIHRyYW5zYWN0aW9uU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLCBuZWVkVG9QYWdpbmF0ZTogYm9vbGVhbikge1xuICBjb25zdCB0eG5zID0gW107XG4gIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuXG4gIGRvIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZVR4bnMgPSBhd2FpdCBleHRyYWN0VHJhbnNhY3Rpb25zKHBhZ2UsIHRhYmxlTG9jYXRvciwgdHJhbnNhY3Rpb25TdGF0dXMpO1xuICAgIHR4bnMucHVzaCguLi5jdXJyZW50UGFnZVR4bnMpO1xuICAgIGlmIChuZWVkVG9QYWdpbmF0ZSkge1xuICAgICAgaGFzTmV4dFBhZ2UgPSBhd2FpdCBjaGVja0lmSGFzTmV4dFBhZ2UocGFnZSk7XG4gICAgICBpZiAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgYXdhaXQgbmF2aWdhdGVUb05leHRQYWdlKHBhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAoaGFzTmV4dFBhZ2UpO1xuXG4gIHJldHVybiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50VHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2RpdltpZCo9XFwnZGl2VGFibGVcXCddJywgZmFsc2UpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gLCBmYWxzZSksXG4gIF0pO1xuXG4gIGNvbnN0IG5vVHJhbnNhY3Rpb25JblJhbmdlRXJyb3IgPSBhd2FpdCBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2UpO1xuICBpZiAobm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIFBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFLFxuICAgIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZywgZmFsc2UpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIENPTVBMRVRFRF9UUkFOU0FDVElPTlNfVEFCTEUsXG4gICAgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsIHRydWUpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50QmFsYW5jZShwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGJhbGFuY2VTdHIgPSBhd2FpdCBwYWdlLiRldmFsKENVUlJFTlRfQkFMQU5DRSwgKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiAob3B0aW9uIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pO1xuICByZXR1cm4gZ2V0QW1vdW50RGF0YShiYWxhbmNlU3RyKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JQb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNtYXRhZkxvZ291dExpbmsnLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyN2YWxpZGF0aW9uTXNnJywgdHJ1ZSksXG4gIF0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnREYXRhKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50KSB7XG4gIGF3YWl0IHNlYXJjaEJ5RGF0ZXMocGFnZSwgc3RhcnREYXRlKTtcbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGF3YWl0IGdldEFjY291bnROdW1iZXIocGFnZSk7XG4gIGNvbnN0IHR4bnMgPSBhd2FpdCBnZXRBY2NvdW50VHJhbnNhY3Rpb25zKHBhZ2UpO1xuICBjb25zdCBiYWxhbmNlID0gYXdhaXQgZ2V0Q3VycmVudEJhbGFuY2UocGFnZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIHR4bnMsXG4gICAgYmFsYW5jZSxcbiAgfTtcbn1cblxuLy8gVE9ETzogQWRkIHN1cHBvcnQgb2YgbXVsdGlwbGUgYWNjb3VudHNcbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudHMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgY29uc3QgYWNjb3VudHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuICBjb25zdCBhY2NvdW50RGF0YSA9IGF3YWl0IGZldGNoQWNjb3VudERhdGEocGFnZSwgc3RhcnREYXRlKTtcbiAgYWNjb3VudHMucHVzaChhY2NvdW50RGF0YSk7XG4gIHJldHVybiBhY2NvdW50cztcbn1cblxuY2xhc3MgQmVpbmxldW1pR3JvdXBCYXNlU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBCQVNFX1VSTCA9ICcnO1xuXG4gIExPR0lOX1VSTCA9ICcnO1xuXG4gIFRSQU5TQUNUSU9OU19VUkwgPSAnJztcblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7dGhpcy5MT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcjY29udGludWVCdG4nLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8odGhpcy5UUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hBY2NvdW50cyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyO1xuIl19
|
|
330
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWJlaW5sZXVtaS1ncm91cC50cyJdLCJuYW1lcyI6WyJEQVRFX0ZPUk1BVCIsIk5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVCIsIkRBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCIsIkRBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkciLCJERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEIiwiREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkciLCJSRUZFUkVOQ0VfQ09MVU1OX0NMQVNTIiwiREVCSVRfQ09MVU1OX0NMQVNTIiwiQ1JFRElUX0NPTFVNTl9DTEFTUyIsIkVSUk9SX01FU1NBR0VfQ0xBU1MiLCJBQ0NPVU5UU19OVU1CRVIiLCJDTE9TRV9TRUFSQ0hfQllfREFURVNfQlVUVE9OX0NMQVNTIiwiU0hPV19TRUFSQ0hfQllfREFURVNfQlVUVE9OX1ZBTFVFIiwiQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFIiwiTkVYVF9QQUdFX0xJTksiLCJDVVJSRU5UX0JBTEFOQ0UiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNvcHkiLCJyZXBsYWNlIiwicGFyc2VGbG9hdCIsImdldFR4bkFtb3VudCIsInR4biIsImNyZWRpdCIsImRlYml0IiwiTnVtYmVyIiwiaXNOYU4iLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsImNvbnZlcnRlZERhdGUiLCJkYXRlIiwidG9JU09TdHJpbmciLCJjb252ZXJ0ZWRBbW91bnQiLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJyZWZlcmVuY2UiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50Iiwic3RhdHVzIiwiZGVzY3JpcHRpb24iLCJtZW1vIiwiZ2V0VHJhbnNhY3Rpb25EYXRlIiwidGRzIiwidHJhbnNhY3Rpb25UeXBlIiwidHJhbnNhY3Rpb25zQ29sc1R5cGVzIiwidHJpbSIsImdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24iLCJnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSIsImdldFRyYW5zYWN0aW9uRGViaXQiLCJnZXRUcmFuc2FjdGlvbkNyZWRpdCIsImV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHMiLCJ0eG5Sb3ciLCJ0cmFuc2FjdGlvblN0YXR1cyIsImlubmVyVGRzIiwiaXRlbSIsImdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyIsInBhZ2UiLCJ0YWJsZUxvY2F0b3IiLCJyZXN1bHQiLCJ0eXBlQ2xhc3Nlc09ianMiLCJ0ZCIsImluZGV4IiwiY29sQ2xhc3MiLCJnZXRBdHRyaWJ1dGUiLCJ0eXBlQ2xhc3NPYmoiLCJleHRyYWN0VHJhbnNhY3Rpb24iLCJwdXNoIiwiZXh0cmFjdFRyYW5zYWN0aW9ucyIsInRyYW5zYWN0aW9uc1Jvd3MiLCJ0cnMiLCJ0ciIsIkFycmF5IiwiZnJvbSIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaW5uZXJUZXh0IiwiaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvciIsImhhc0Vycm9ySW5mb0VsZW1lbnQiLCJlcnJvclRleHQiLCIkZXZhbCIsImVycm9yRWxlbWVudCIsInNlYXJjaEJ5RGF0ZXMiLCJzdGFydERhdGUiLCJmb3JtYXQiLCJnZXRBY2NvdW50TnVtYmVyIiwic2VsZWN0ZWRTbmlmQWNjb3VudCIsIm9wdGlvbiIsImNoZWNrSWZIYXNOZXh0UGFnZSIsIm5hdmlnYXRlVG9OZXh0UGFnZSIsInNjcmFwZVRyYW5zYWN0aW9ucyIsIm5lZWRUb1BhZ2luYXRlIiwiaGFzTmV4dFBhZ2UiLCJjdXJyZW50UGFnZVR4bnMiLCJnZXRBY2NvdW50VHJhbnNhY3Rpb25zIiwiUHJvbWlzZSIsInJhY2UiLCJub1RyYW5zYWN0aW9uSW5SYW5nZUVycm9yIiwicGVuZGluZ1R4bnMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsImNvbXBsZXRlZFR4bnMiLCJDb21wbGV0ZWQiLCJnZXRDdXJyZW50QmFsYW5jZSIsImJhbGFuY2VTdHIiLCJ3YWl0Rm9yUG9zdExvZ2luIiwiZmV0Y2hBY2NvdW50RGF0YSIsImFjY291bnROdW1iZXIiLCJiYWxhbmNlIiwiZmV0Y2hBY2NvdW50cyIsImFjY291bnRzIiwiYWNjb3VudERhdGEiLCJCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiTE9HSU5fVVJMIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJvcHRpb25zIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwiVFJBTlNBQ1RJT05TX1VSTCIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBT0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUtBLE1BQU1BLFdBQVcsR0FBRyxZQUFwQjtBQUNBLE1BQU1DLGlDQUFpQyxHQUFHLDhCQUExQztBQUNBLE1BQU1DLDJCQUEyQixHQUFHLFlBQXBDO0FBQ0EsTUFBTUMseUJBQXlCLEdBQUcsWUFBbEM7QUFDQSxNQUFNQyxrQ0FBa0MsR0FBRyx1QkFBM0M7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LFNBQVUsRUFEdkI7QUFFTEMsTUFBQUEsTUFBTSxFQUFFakgsaUJBQWlCLENBQUNDLFdBQUQsQ0FGcEI7QUFHTGlILE1BQUFBLG9CQUFvQixFQUFFLGNBSGpCO0FBSUxDLE1BQUFBLFVBQVUsRUFBRSxZQUFZZCxnQkFBZ0IsQ0FBQyxLQUFLL0MsSUFBTixDQUpuQztBQUtMOEQsTUFBQUEsZUFBZSxFQUFFekgsdUJBQXVCO0FBTG5DLEtBQVA7QUFPRDs7QUFFRCxRQUFNMEgsU0FBTixHQUFrQjtBQUNoQixVQUFNQyxrQkFBa0IsR0FBRyx1QkFBU0MsUUFBVCxDQUFrQixDQUFsQixFQUFxQixPQUFyQixFQUE4QkMsR0FBOUIsQ0FBa0MsQ0FBbEMsRUFBcUMsS0FBckMsQ0FBM0I7QUFDQSxVQUFNekMsU0FBUyxHQUFHLEtBQUswQyxPQUFMLENBQWExQyxTQUFiLElBQTBCdUMsa0JBQWtCLENBQUNJLE1BQW5CLEVBQTVDOztBQUNBLFVBQU1DLFdBQVcsR0FBR0MsZ0JBQU9DLEdBQVAsQ0FBV1Asa0JBQVgsRUFBK0IscUJBQU92QyxTQUFQLENBQS9CLENBQXBCOztBQUVBLFVBQU0sS0FBSytDLFVBQUwsQ0FBZ0IsS0FBS0MsZ0JBQXJCLENBQU47QUFFQSxVQUFNckIsUUFBUSxHQUFHLE1BQU1ELGFBQWEsQ0FBQyxLQUFLbkQsSUFBTixFQUFZcUUsV0FBWixDQUFwQztBQUVBLFdBQU87QUFDTEssTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTHRCLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQTlCNEQ7O2VBaUNoREUseUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHtcbiAgZmlsbElucHV0LFxuICBjbGlja0J1dHRvbixcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICBwYWdlRXZhbEFsbCxcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjcmFwZXJDcmVkZW50aWFscyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5jb25zdCBOT19UUkFOU0FDVElPTl9JTl9EQVRFX1JBTkdFX1RFWFQgPSAn15zXkCDXoNee16bXkNeVINeg16rXldeg15nXnSDXkdeg15XXqdeQINeU157XkdeV16fXqSc7XG5jb25zdCBEQVRFX0NPTFVNTl9DTEFTU19DT01QTEVURUQgPSAnZGF0ZSBmaXJzdCc7XG5jb25zdCBEQVRFX0NPTFVNTl9DTEFTU19QRU5ESU5HID0gJ2ZpcnN0IGRhdGUnO1xuY29uc3QgREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCA9ICdyZWZlcmVuY2Ugd3JhcF9ub3JtYWwnO1xuY29uc3QgREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkcgPSAnZGV0YWlscyB3cmFwX25vcm1hbCc7XG5jb25zdCBSRUZFUkVOQ0VfQ09MVU1OX0NMQVNTID0gJ2RldGFpbHMnO1xuY29uc3QgREVCSVRfQ09MVU1OX0NMQVNTID0gJ2RlYml0JztcbmNvbnN0IENSRURJVF9DT0xVTU5fQ0xBU1MgPSAnY3JlZGl0JztcbmNvbnN0IEVSUk9SX01FU1NBR0VfQ0xBU1MgPSAnTk9fREFUQSc7XG5jb25zdCBBQ0NPVU5UU19OVU1CRVIgPSAnZGl2LmZpYmlfYWNjb3VudCBzcGFuLmFjY19udW0nO1xuY29uc3QgQ0xPU0VfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9DTEFTUyA9ICd1aS1kYXRlcGlja2VyLWNsb3NlJztcbmNvbnN0IFNIT1dfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9WQUxVRSA9ICfXlNem15InO1xuY29uc3QgQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSA9ICd0YWJsZSNkYXRhVGFibGUwNzcnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEUgPSAndGFibGUjZGF0YVRhYmxlMDIzJztcbmNvbnN0IE5FWFRfUEFHRV9MSU5LID0gJ2EjTnBhZ2UucGFnaW5nJztcbmNvbnN0IENVUlJFTlRfQkFMQU5DRSA9ICcubWFpbl9iYWxhbmNlJztcblxudHlwZSBUcmFuc2FjdGlvbnNDb2xzVHlwZXMgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xudHlwZSBUcmFuc2FjdGlvbnNUclRkcyA9IHN0cmluZ1tdO1xudHlwZSBUcmFuc2FjdGlvbnNUciA9IHsgaW5uZXJUZHM6IFRyYW5zYWN0aW9uc1RyVGRzIH07XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICByZWZlcmVuY2U6IHN0cmluZztcbiAgZGF0ZTogc3RyaW5nO1xuICBjcmVkaXQ6IHN0cmluZztcbiAgZGViaXQ6IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gWy9GaWJpTWVudVxcL09ubGluZS9dO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gWy9GaWJpTWVudVxcL01hcmtldGluZ1xcL1ByaXZhdGVcXC9Ib21lL107XG4gIHJldHVybiB1cmxzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdXNlcm5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ29weSA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICByZXR1cm4gcGFyc2VGbG9hdChhbW91bnRTdHJDb3B5KTtcbn1cblxuZnVuY3Rpb24gZ2V0VHhuQW1vdW50KHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKSB7XG4gIGNvbnN0IGNyZWRpdCA9IGdldEFtb3VudERhdGEodHhuLmNyZWRpdCk7XG4gIGNvbnN0IGRlYml0ID0gZ2V0QW1vdW50RGF0YSh0eG4uZGViaXQpO1xuICByZXR1cm4gKE51bWJlci5pc05hTihjcmVkaXQpID8gMCA6IGNyZWRpdCkgLSAoTnVtYmVyLmlzTmFOKGRlYml0KSA/IDAgOiBkZWJpdCk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pOiBUcmFuc2FjdGlvbiA9PiB7XG4gICAgY29uc3QgY29udmVydGVkRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgY29udmVydGVkQW1vdW50ID0gZ2V0VHhuQW1vdW50KHR4bik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgaWRlbnRpZmllcjogdHhuLnJlZmVyZW5jZSA/IHBhcnNlSW50KHR4bi5yZWZlcmVuY2UsIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IGNvbnZlcnRlZERhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBjb252ZXJ0ZWREYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGNvbnZlcnRlZEFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGNvbnZlcnRlZEFtb3VudCxcbiAgICAgIHN0YXR1czogdHhuLnN0YXR1cyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG4uZGVzY3JpcHRpb24sXG4gICAgICBtZW1vOiB0eG4ubWVtbyxcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EYXRlKHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uVHlwZTogc3RyaW5nLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICBpZiAodHJhbnNhY3Rpb25UeXBlID09PSAnY29tcGxldGVkJykge1xuICAgIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tEQVRFX0NPTFVNTl9DTEFTU19DT01QTEVURURdXSB8fCAnJykudHJpbSgpO1xuICB9XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tEQVRFX0NPTFVNTl9DTEFTU19QRU5ESU5HXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbih0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvblR5cGU6IHN0cmluZywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgaWYgKHRyYW5zYWN0aW9uVHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX0NPTVBMRVRFRF1dIHx8ICcnKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RFU0NSSVBUSU9OX0NPTFVNTl9DTEFTU19QRU5ESU5HXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25SZWZlcmVuY2UodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW1JFRkVSRU5DRV9DT0xVTU5fQ0xBU1NdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRlYml0KHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tERUJJVF9DT0xVTU5fQ0xBU1NdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkNyZWRpdCh0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbQ1JFRElUX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHModHhuUm93OiBUcmFuc2FjdGlvbnNUciwgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKTogU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgY29uc3QgdGRzID0gdHhuUm93LmlubmVyVGRzO1xuICBjb25zdCBpdGVtID0ge1xuICAgIHN0YXR1czogdHJhbnNhY3Rpb25TdGF0dXMsXG4gICAgZGF0ZTogZ2V0VHJhbnNhY3Rpb25EYXRlKHRkcywgdHJhbnNhY3Rpb25TdGF0dXMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gICAgZGVzY3JpcHRpb246IGdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24odGRzLCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICByZWZlcmVuY2U6IGdldFRyYW5zYWN0aW9uUmVmZXJlbmNlKHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBkZWJpdDogZ2V0VHJhbnNhY3Rpb25EZWJpdCh0ZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gICAgY3JlZGl0OiBnZXRUcmFuc2FjdGlvbkNyZWRpdCh0ZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gIH07XG5cbiAgcmV0dXJuIGl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyhwYWdlOiBQYWdlLCB0YWJsZUxvY2F0b3I6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQ29sc1R5cGVzPiB7XG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25zQ29sc1R5cGVzID0ge307XG4gIGNvbnN0IHR5cGVDbGFzc2VzT2JqcyA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsIGAke3RhYmxlTG9jYXRvcn0gdGJvZHkgdHI6Zmlyc3Qtb2YtdHlwZSB0ZGAsIG51bGwsICh0ZHMpID0+IHtcbiAgICByZXR1cm4gdGRzLm1hcCgodGQsIGluZGV4KSA9PiAoe1xuICAgICAgY29sQ2xhc3M6IHRkLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSxcbiAgICAgIGluZGV4LFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgZm9yIChjb25zdCB0eXBlQ2xhc3NPYmogb2YgdHlwZUNsYXNzZXNPYmpzKSB7XG4gICAgaWYgKHR5cGVDbGFzc09iai5jb2xDbGFzcykge1xuICAgICAgcmVzdWx0W3R5cGVDbGFzc09iai5jb2xDbGFzc10gPSB0eXBlQ2xhc3NPYmouaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbih0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMsIHR4blJvdzogVHJhbnNhY3Rpb25zVHIsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIGNvbnN0IHR4biA9IGV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHModHhuUm93LCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKTtcbiAgaWYgKHR4bi5kYXRlICE9PSAnJykge1xuICAgIHR4bnMucHVzaCh0eG4pO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgdGFibGVMb2NhdG9yOiBzdHJpbmcsIHRyYW5zYWN0aW9uU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKSB7XG4gIGNvbnN0IHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdID0gW107XG4gIGNvbnN0IHRyYW5zYWN0aW9uc0NvbHNUeXBlcyA9IGF3YWl0IGdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyhwYWdlLCB0YWJsZUxvY2F0b3IpO1xuXG4gIGNvbnN0IHRyYW5zYWN0aW9uc1Jvd3MgPSBhd2FpdCBwYWdlRXZhbEFsbDxUcmFuc2FjdGlvbnNUcltdPihwYWdlLCBgJHt0YWJsZUxvY2F0b3J9IHRib2R5IHRyYCwgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+ICh7XG4gICAgICBpbm5lclRkczogQXJyYXkuZnJvbSh0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGQnKSkubWFwKCh0ZCkgPT4gdGQuaW5uZXJUZXh0KSxcbiAgICB9KSk7XG4gIH0pO1xuXG4gIGZvciAoY29uc3QgdHhuUm93IG9mIHRyYW5zYWN0aW9uc1Jvd3MpIHtcbiAgICBleHRyYWN0VHJhbnNhY3Rpb24odHhucywgdHJhbnNhY3Rpb25TdGF0dXMsIHR4blJvdywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKTtcbiAgfVxuICByZXR1cm4gdHhucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvcihwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGhhc0Vycm9ySW5mb0VsZW1lbnQgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gKTtcbiAgaWYgKGhhc0Vycm9ySW5mb0VsZW1lbnQpIHtcbiAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCBwYWdlLiRldmFsKGAuJHtFUlJPUl9NRVNTQUdFX0NMQVNTfWAsIChlcnJvckVsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiAoZXJyb3JFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIGVycm9yVGV4dC50cmltKCkgPT09IE5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVDtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaEJ5RGF0ZXMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2EjdGFiSGVhZGVyNCcpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2RpdiNmaWJpX2RhdGVzJyk7XG4gIGF3YWl0IGZpbGxJbnB1dChcbiAgICBwYWdlLFxuICAgICdpbnB1dCNmcm9tRGF0ZScsXG4gICAgc3RhcnREYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICk7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIGBidXR0b25bY2xhc3MqPSR7Q0xPU0VfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9DTEFTU31dYCk7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIGBpbnB1dFt2YWx1ZT0ke1NIT1dfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9WQUxVRX1dYCk7XG4gIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHBhZ2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50TnVtYmVyKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3Qgc2VsZWN0ZWRTbmlmQWNjb3VudCA9IGF3YWl0IHBhZ2UuJGV2YWwoQUNDT1VOVFNfTlVNQkVSLCAob3B0aW9uKSA9PiB7XG4gICAgcmV0dXJuIChvcHRpb24gYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSk7XG5cbiAgcmV0dXJuIHNlbGVjdGVkU25pZkFjY291bnQucmVwbGFjZSgnLycsICdfJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrSWZIYXNOZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBORVhUX1BBR0VfTElOSyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlVG9OZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIE5FWFRfUEFHRV9MSU5LKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbi8qIENvdWxkbid0IHJlcHJvZHVjZSBzY2VuYXJpbyB3aXRoIG11bHRpcGxlIHBhZ2VzIG9mIHBlbmRpbmcgdHJhbnNhY3Rpb25zIC0gU2hvdWxkIHN1cHBvcnQgaWYgZXhpc3RzIHN1Y2ggY2FzZS5cbiAgIG5lZWRUb1BhZ2luYXRlIGlzIGZhbHNlIGlmIHNjcmFwaW5nIHBlbmRpbmcgdHJhbnNhY3Rpb25zICovXG5hc3luYyBmdW5jdGlvbiBzY3JhcGVUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgdGFibGVMb2NhdG9yOiBzdHJpbmcsIHRyYW5zYWN0aW9uU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLCBuZWVkVG9QYWdpbmF0ZTogYm9vbGVhbikge1xuICBjb25zdCB0eG5zID0gW107XG4gIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuXG4gIGRvIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZVR4bnMgPSBhd2FpdCBleHRyYWN0VHJhbnNhY3Rpb25zKHBhZ2UsIHRhYmxlTG9jYXRvciwgdHJhbnNhY3Rpb25TdGF0dXMpO1xuICAgIHR4bnMucHVzaCguLi5jdXJyZW50UGFnZVR4bnMpO1xuICAgIGlmIChuZWVkVG9QYWdpbmF0ZSkge1xuICAgICAgaGFzTmV4dFBhZ2UgPSBhd2FpdCBjaGVja0lmSGFzTmV4dFBhZ2UocGFnZSk7XG4gICAgICBpZiAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgYXdhaXQgbmF2aWdhdGVUb05leHRQYWdlKHBhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAoaGFzTmV4dFBhZ2UpO1xuXG4gIHJldHVybiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50VHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2RpdltpZCo9XFwnZGl2VGFibGVcXCddJywgZmFsc2UpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gLCBmYWxzZSksXG4gIF0pO1xuXG4gIGNvbnN0IG5vVHJhbnNhY3Rpb25JblJhbmdlRXJyb3IgPSBhd2FpdCBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2UpO1xuICBpZiAobm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIFBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFLFxuICAgIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZywgZmFsc2UpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIENPTVBMRVRFRF9UUkFOU0FDVElPTlNfVEFCTEUsXG4gICAgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsIHRydWUpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50QmFsYW5jZShwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGJhbGFuY2VTdHIgPSBhd2FpdCBwYWdlLiRldmFsKENVUlJFTlRfQkFMQU5DRSwgKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiAob3B0aW9uIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pO1xuICByZXR1cm4gZ2V0QW1vdW50RGF0YShiYWxhbmNlU3RyKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JQb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNtYXRhZkxvZ291dExpbmsnLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyN2YWxpZGF0aW9uTXNnJywgdHJ1ZSksXG4gIF0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnREYXRhKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50KSB7XG4gIGF3YWl0IHNlYXJjaEJ5RGF0ZXMocGFnZSwgc3RhcnREYXRlKTtcbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGF3YWl0IGdldEFjY291bnROdW1iZXIocGFnZSk7XG4gIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBnZXRDdXJyZW50QmFsYW5jZShwYWdlKTtcbiAgY29uc3QgdHhucyA9IGF3YWl0IGdldEFjY291bnRUcmFuc2FjdGlvbnMocGFnZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIHR4bnMsXG4gICAgYmFsYW5jZSxcbiAgfTtcbn1cblxuLy8gVE9ETzogQWRkIHN1cHBvcnQgb2YgbXVsdGlwbGUgYWNjb3VudHNcbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudHMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgY29uc3QgYWNjb3VudHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuICBjb25zdCBhY2NvdW50RGF0YSA9IGF3YWl0IGZldGNoQWNjb3VudERhdGEocGFnZSwgc3RhcnREYXRlKTtcbiAgYWNjb3VudHMucHVzaChhY2NvdW50RGF0YSk7XG4gIHJldHVybiBhY2NvdW50cztcbn1cblxuY2xhc3MgQmVpbmxldW1pR3JvdXBCYXNlU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBCQVNFX1VSTCA9ICcnO1xuXG4gIExPR0lOX1VSTCA9ICcnO1xuXG4gIFRSQU5TQUNUSU9OU19VUkwgPSAnJztcblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7dGhpcy5MT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcjY29udGludWVCdG4nLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8odGhpcy5UUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hBY2NvdW50cyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyO1xuIl19
|
package/lib/scrapers/max.js
CHANGED
|
@@ -31,6 +31,8 @@ var _transactions = require("../helpers/transactions");
|
|
|
31
31
|
|
|
32
32
|
var _transactions2 = require("../transactions");
|
|
33
33
|
|
|
34
|
+
var _debug = require("../helpers/debug");
|
|
35
|
+
|
|
34
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
37
|
|
|
36
38
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -39,6 +41,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
39
41
|
|
|
40
42
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
41
43
|
|
|
44
|
+
const debug = (0, _debug.getDebug)('max');
|
|
42
45
|
const BASE_ACTIONS_URL = 'https://online.max.co.il';
|
|
43
46
|
const BASE_API_ACTIONS_URL = 'https://onlinelcapi.max.co.il';
|
|
44
47
|
const BASE_WELCOME_URL = 'https://www.max.co.il';
|
|
@@ -63,6 +66,7 @@ const ACCUMULATING_BASKET = 'סל מצטבר';
|
|
|
63
66
|
const POSTPONED_TRANSACTION_INSTALLMENTS = 'פריסת העסקה הדחויה';
|
|
64
67
|
const INVALID_DETAILS_SELECTOR = '#popupWrongDetails';
|
|
65
68
|
const LOGIN_ERROR_SELECTOR = '#popupCardHoldersLoginError';
|
|
69
|
+
const categories = new Map();
|
|
66
70
|
|
|
67
71
|
function redirectOrDialog(page) {
|
|
68
72
|
return Promise.race([(0, _navigation.waitForRedirect)(page, 20000, false, [BASE_WELCOME_URL, `${BASE_WELCOME_URL}/`]), (0, _elementsInteractions.waitUntilElementFound)(page, INVALID_DETAILS_SELECTOR, true), (0, _elementsInteractions.waitUntilElementFound)(page, LOGIN_ERROR_SELECTOR, true)]);
|
|
@@ -84,6 +88,21 @@ function getTransactionsUrl(monthMoment) {
|
|
|
84
88
|
});
|
|
85
89
|
}
|
|
86
90
|
|
|
91
|
+
async function loadCategories(page) {
|
|
92
|
+
debug('Loading categories');
|
|
93
|
+
const res = await (0, _fetch.fetchGetWithinPage)(page, `${BASE_API_ACTIONS_URL}/api/contents/getCategories`);
|
|
94
|
+
|
|
95
|
+
if (res && Array.isArray(res.result)) {
|
|
96
|
+
var _res$result;
|
|
97
|
+
|
|
98
|
+
debug(`${res.result.length} categories loaded`);
|
|
99
|
+
(_res$result = res.result) === null || _res$result === void 0 ? void 0 : _res$result.forEach(({
|
|
100
|
+
id,
|
|
101
|
+
name
|
|
102
|
+
}) => categories.set(id, name));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
87
106
|
function getTransactionType(txnTypeStr) {
|
|
88
107
|
const cleanedUpTxnTypeStr = txnTypeStr.replace('\t', ' ').trim();
|
|
89
108
|
|
|
@@ -143,6 +162,7 @@ function mapTransaction(rawTransaction) {
|
|
|
143
162
|
chargedAmount: -rawTransaction.actualPaymentAmount,
|
|
144
163
|
description: rawTransaction.merchantName.trim(),
|
|
145
164
|
memo: rawTransaction.comments,
|
|
165
|
+
category: categories.get(rawTransaction === null || rawTransaction === void 0 ? void 0 : rawTransaction.categoryId),
|
|
146
166
|
installments: getInstallmentsInfo(rawTransaction.comments) || undefined,
|
|
147
167
|
status
|
|
148
168
|
};
|
|
@@ -200,6 +220,7 @@ async function fetchTransactions(page, options) {
|
|
|
200
220
|
const startMoment = _moment.default.max(defaultStartMoment, (0, _moment.default)(startDate));
|
|
201
221
|
|
|
202
222
|
const allMonths = (0, _dates.default)(startMoment, futureMonthsToScrape);
|
|
223
|
+
await loadCategories(page);
|
|
203
224
|
let allResults = {};
|
|
204
225
|
|
|
205
226
|
for (let i = 0; i < allMonths.length; i += 1) {
|
|
@@ -280,4 +301,4 @@ class MaxScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
280
301
|
|
|
281
302
|
var _default = MaxScraper;
|
|
282
303
|
exports.default = _default;
|
|
283
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiQkFTRV9BQ1RJT05TX1VSTCIsIkJBU0VfQVBJX0FDVElPTlNfVVJMIiwiQkFTRV9XRUxDT01FX1VSTCIsIkxPR0lOX1VSTCIsIlBBU1NXT1JEX0VYUElSRURfVVJMIiwiU1VDQ0VTU19VUkwiLCJOT1JNQUxfVFlQRV9OQU1FIiwiQVRNX1RZUEVfTkFNRSIsIklOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRSIsIklOU1RBTExNRU5UU19UWVBFX05BTUUiLCJNT05USExZX0NIQVJHRV9UWVBFX05BTUUiLCJPTkVfTU9OVEhfUE9TVFBPTkVEX1RZUEVfTkFNRSIsIk1PTlRITFlfUE9TVFBPTkVEX1RZUEVfTkFNRSIsIk1PTlRITFlfUEFZTUVOVF9UWVBFX05BTUUiLCJGVVRVUkVfUFVSQ0hBU0VfRklOQU5DSU5HIiwiTU9OVEhMWV9QT1NUUE9ORURfSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIlRISVJUWV9EQVlTX1BMVVNfVFlQRV9OQU1FIiwiVFdPX01PTlRIU19QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUUiLCJDUkVESVRfVFlQRV9OQU1FIiwiQUNDVU1VTEFUSU5HX0JBU0tFVCIsIlBPU1RQT05FRF9UUkFOU0FDVElPTl9JTlNUQUxMTUVOVFMiLCJJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IiLCJMT0dJTl9FUlJPUl9TRUxFQ1RPUiIsInJlZGlyZWN0T3JEaWFsb2ciLCJwYWdlIiwiUHJvbWlzZSIsInJhY2UiLCJnZXRUcmFuc2FjdGlvbnNVcmwiLCJtb250aE1vbWVudCIsIm1vbnRoIiwieWVhciIsImRhdGUiLCJwYXRoIiwiZ2V0VHJhbnNhY3Rpb25UeXBlIiwidHhuVHlwZVN0ciIsImNsZWFuZWRVcFR4blR5cGVTdHIiLCJyZXBsYWNlIiwidHJpbSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJFcnJvciIsImdldEluc3RhbGxtZW50c0luZm8iLCJjb21tZW50cyIsIm1hdGNoZXMiLCJtYXRjaCIsImxlbmd0aCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJtYXBUcmFuc2FjdGlvbiIsInJhd1RyYW5zYWN0aW9uIiwiaXNQZW5kaW5nIiwicGF5bWVudERhdGUiLCJwcm9jZXNzZWREYXRlIiwicHVyY2hhc2VEYXRlIiwidG9JU09TdHJpbmciLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsIkNvbXBsZXRlZCIsInR5cGUiLCJwbGFuTmFtZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRBbW91bnQiLCJhY3R1YWxQYXltZW50QW1vdW50IiwiZGVzY3JpcHRpb24iLCJtZXJjaGFudE5hbWUiLCJtZW1vIiwiaW5zdGFsbG1lbnRzIiwidW5kZWZpbmVkIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aCIsInVybCIsImRhdGEiLCJ0cmFuc2FjdGlvbnNCeUFjY291bnQiLCJyZXN1bHQiLCJ0cmFuc2FjdGlvbnMiLCJmaWx0ZXIiLCJ0cmFuc2FjdGlvbiIsImZvckVhY2giLCJzaG9ydENhcmROdW1iZXIiLCJtYXBwZWRUcmFuc2FjdGlvbiIsInB1c2giLCJhZGRSZXN1bHQiLCJhbGxSZXN1bHRzIiwiY2xvbmVkUmVzdWx0cyIsIk9iamVjdCIsImtleXMiLCJhY2NvdW50TnVtYmVyIiwicHJlcGFyZVRyYW5zYWN0aW9ucyIsInR4bnMiLCJzdGFydE1vbWVudCIsImNvbWJpbmVJbnN0YWxsbWVudHMiLCJjbG9uZWRUeG5zIiwiQXJyYXkiLCJmcm9tIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJvcHRpb25zIiwiZnV0dXJlTW9udGhzVG9TY3JhcGUiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1vbWVudCIsIm1heCIsImFsbE1vbnRocyIsImkiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJJbnZhbGlkUGFzc3dvcmQiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJNYXhTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwcmVBY3Rpb24iLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJyZXN1bHRzIiwiYWNjb3VudHMiLCJtYXAiLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQWdCQSxNQUFNQSxnQkFBZ0IsR0FBRywwQkFBekI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRywrQkFBN0I7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyx1QkFBekI7QUFFQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsZ0JBQWlCLG1CQUF0QztBQUNBLE1BQU1FLG9CQUFvQixHQUFJLEdBQUVKLGdCQUFpQix1Q0FBakQ7QUFDQSxNQUFNSyxXQUFXLEdBQUksR0FBRUgsZ0JBQWlCLG9CQUF4QztBQUVBLE1BQU1JLGdCQUFnQixHQUFHLE9BQXpCO0FBQ0EsTUFBTUMsYUFBYSxHQUFHLGtCQUF0QjtBQUNBLE1BQU1DLDJCQUEyQixHQUFHLGNBQXBDO0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUcsU0FBL0I7QUFDQSxNQUFNQyx3QkFBd0IsR0FBRyxZQUFqQztBQUNBLE1BQU1DLDZCQUE2QixHQUFHLFdBQXRDO0FBQ0EsTUFBTUMsMkJBQTJCLEdBQUcsbUJBQXBDO0FBQ0EsTUFBTUMseUJBQXlC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QkQ7O0FBRUQsUUFBTTJHLFNBQU4sR0FBa0I7QUFDaEIsVUFBTUMsT0FBTyxHQUFHLE1BQU1uQyxpQkFBaUIsQ0FBQyxLQUFLekUsSUFBTixFQUFZLEtBQUswRSxPQUFqQixDQUF2QztBQUNBLFVBQU1tQyxRQUFRLEdBQUc5QyxNQUFNLENBQUNDLElBQVAsQ0FBWTRDLE9BQVosRUFBcUJFLEdBQXJCLENBQTBCN0MsYUFBRCxJQUFtQjtBQUMzRCxhQUFPO0FBQ0xBLFFBQUFBLGFBREs7QUFFTEUsUUFBQUEsSUFBSSxFQUFFeUMsT0FBTyxDQUFDM0MsYUFBRDtBQUZSLE9BQVA7QUFJRCxLQUxnQixDQUFqQjtBQU9BLFdBQU87QUFDTDhDLE1BQUFBLE9BQU8sRUFBRSxJQURKO0FBRUxGLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQXBDNkM7O2VBdUNqQ1osVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZFVybCBmcm9tICdidWlsZC11cmwnO1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBmZXRjaEdldFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgd2FpdEZvclJlZGlyZWN0IH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCwgZWxlbWVudFByZXNlbnRPblBhZ2UsIGNsaWNrQnV0dG9uIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IGdldEFsbE1vbnRoTW9tZW50cyBmcm9tICcuLi9oZWxwZXJzL2RhdGVzJztcbmltcG9ydCB7IGZpeEluc3RhbGxtZW50cywgc29ydFRyYW5zYWN0aW9uc0J5RGF0ZSwgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgU2NhcGVyT3B0aW9ucywgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuXG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBzaG9ydENhcmROdW1iZXI6IHN0cmluZztcbiAgcGF5bWVudERhdGU/OiBzdHJpbmc7XG4gIHB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICBhY3R1YWxQYXltZW50QW1vdW50OiBzdHJpbmc7XG4gIG9yaWdpbmFsQ3VycmVuY3k6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgY29tbWVudHM6IHN0cmluZztcbiAgbWVyY2hhbnROYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IEJBU0VfQUNUSU9OU19VUkwgPSAnaHR0cHM6Ly9vbmxpbmUubWF4LmNvLmlsJztcbmNvbnN0IEJBU0VfQVBJX0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vb25saW5lbGNhcGkubWF4LmNvLmlsJztcbmNvbnN0IEJBU0VfV0VMQ09NRV9VUkwgPSAnaHR0cHM6Ly93d3cubWF4LmNvLmlsJztcblxuY29uc3QgTE9HSU5fVVJMID0gYCR7QkFTRV9XRUxDT01FX1VSTH0vaG9tZXBhZ2Uvd2VsY29tZWA7XG5jb25zdCBQQVNTV09SRF9FWFBJUkVEX1VSTCA9IGAke0JBU0VfQUNUSU9OU19VUkx9L0Fub255bW91cy9Mb2dpbi9QYXNzd29yZEV4cGlyZWQuYXNweGA7XG5jb25zdCBTVUNDRVNTX1VSTCA9IGAke0JBU0VfV0VMQ09NRV9VUkx9L2hvbWVwYWdlL3BlcnNvbmFsYDtcblxuY29uc3QgTk9STUFMX1RZUEVfTkFNRSA9ICfXqNeS15nXnNeUJztcbmNvbnN0IEFUTV9UWVBFX05BTUUgPSAn15fXmdeV15Eg16LXoden15XXqiDXnteZ15nXk9eZJztcbmNvbnN0IElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRSA9ICfXkNeZ16DXmNeo16DXmC/Xl9eVXCLXnCc7XG5jb25zdCBJTlNUQUxMTUVOVFNfVFlQRV9OQU1FID0gJ9eq16nXnNeV157XmdedJztcbmNvbnN0IE1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSA9ICfXl9eZ15XXkSDXl9eV15PXqdeZJztcbmNvbnN0IE9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9epJztcbmNvbnN0IE1PTlRITFlfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXnNeX15nXldeRINeU15fXldeT16nXmSc7XG5jb25zdCBNT05USExZX1BBWU1FTlRfVFlQRV9OQU1FID0gJ9eq16nXnNeV150g15fXldeT16nXmSc7XG5jb25zdCBGVVRVUkVfUFVSQ0hBU0VfRklOQU5DSU5HID0gJ9ee15nXnteV158g15zXqNeb15nXqdeUINei16rXmdeT15nXqic7XG5jb25zdCBNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9epINeq16nXnNeV157XmdedJztcbmNvbnN0IFRISVJUWV9EQVlTX1BMVVNfVFlQRV9OQU1FID0gJ9ei16HXp9eqIDMwINek15zXldehJztcbmNvbnN0IFRXT19NT05USFNfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqdeZ15nXnSc7XG5jb25zdCBNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRSA9ICfXl9eV15PXqdeZICsg16jXmdeR15nXqic7XG5jb25zdCBDUkVESVRfVFlQRV9OQU1FID0gJ9en16jXk9eZ15gnO1xuY29uc3QgQUNDVU1VTEFUSU5HX0JBU0tFVCA9ICfXodecINee16bXmNeR16gnO1xuY29uc3QgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyA9ICfXpNeo15nXodeqINeU16LXoden15Qg15TXk9eX15XXmdeUJztcblxuY29uc3QgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SID0gJyNwb3B1cFdyb25nRGV0YWlscyc7XG5jb25zdCBMT0dJTl9FUlJPUl9TRUxFQ1RPUiA9ICcjcG9wdXBDYXJkSG9sZGVyc0xvZ2luRXJyb3InO1xuXG5mdW5jdGlvbiByZWRpcmVjdE9yRGlhbG9nKHBhZ2U6IFBhZ2UpIHtcbiAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgd2FpdEZvclJlZGlyZWN0KHBhZ2UsIDIwMDAwLCBmYWxzZSwgW0JBU0VfV0VMQ09NRV9VUkwsIGAke0JBU0VfV0VMQ09NRV9VUkx9L2BdKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgTE9HSU5fRVJST1JfU0VMRUNUT1IsIHRydWUpLFxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zVXJsKG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgbW9udGggPSBtb250aE1vbWVudC5tb250aCgpICsgMTtcbiAgY29uc3QgeWVhciA9IG1vbnRoTW9tZW50LnllYXIoKTtcbiAgY29uc3QgZGF0ZSA9IGAke3llYXJ9LSR7bW9udGh9LTAxYDtcblxuICAvKipcbiAgICAgKiB1cmwgZXhwbGFuYXRpb246XG4gICAgICogdXNlckluZGV4OiAtMSBmb3IgYWxsIGFjY291bnQgb3duZXJzXG4gICAgICogY2FyZEluZGV4OiAtMSBmb3IgYWxsIGNhcmRzIHVuZGVyIHRoZSBhY2NvdW50XG4gICAgICogYWxsIG90aGVyIHF1ZXJ5IHBhcmFtcyBhcmUgc3RhdGljLCBiZXNpZGUgdGhlIGRhdGUgd2hpY2ggY2hhbmdlcyBmb3IgcmVxdWVzdCBwZXIgbW9udGhcbiAgICAgKi9cbiAgcmV0dXJuIGJ1aWxkVXJsKEJBU0VfQVBJX0FDVElPTlNfVVJMLCB7XG4gICAgcGF0aDogYC9hcGkvcmVnaXN0ZXJlZC90cmFuc2FjdGlvbkRldGFpbHMvZ2V0VHJhbnNhY3Rpb25zQW5kR3JhcGhzP2ZpbHRlckRhdGE9e1widXNlckluZGV4XCI6LTEsXCJjYXJkSW5kZXhcIjotMSxcIm1vbnRoVmlld1wiOnRydWUsXCJkYXRlXCI6XCIke2RhdGV9XCIsXCJkYXRlc1wiOntcInN0YXJ0RGF0ZVwiOlwiMFwiLFwiZW5kRGF0ZVwiOlwiMFwifSxcImJhbmtBY2NvdW50XCI6e1wiYmFua0FjY291bnRJbmRleFwiOi0xLFwiY2FyZHNcIjpudWxsfX0mZmlyc3RDYWxsQ2FyZEluZGV4PS0xJnY9VjMuNjktSEYtQ2FyTG9hbkxldmlNb2RlbC4yLjU3YCxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uVHlwZSh0eG5UeXBlU3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgY2xlYW5lZFVwVHhuVHlwZVN0ciA9IHR4blR5cGVTdHIucmVwbGFjZSgnXFx0JywgJyAnKS50cmltKCk7XG4gIHN3aXRjaCAoY2xlYW5lZFVwVHhuVHlwZVN0cikge1xuICAgIGNhc2UgQVRNX1RZUEVfTkFNRTpcbiAgICBjYXNlIE5PUk1BTF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX0NIQVJHRV9UWVBFX05BTUU6XG4gICAgY2FzZSBPTkVfTU9OVEhfUE9TVFBPTkVEX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfUE9TVFBPTkVEX1RZUEVfTkFNRTpcbiAgICBjYXNlIEZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkc6XG4gICAgY2FzZSBNT05USExZX1BBWU1FTlRfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9QT1NUUE9ORURfSU5TVEFMTE1FTlRTX1RZUEVfTkFNRTpcbiAgICBjYXNlIFRISVJUWV9EQVlTX1BMVVNfVFlQRV9OQU1FOlxuICAgIGNhc2UgVFdPX01PTlRIU19QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgQUNDVU1VTEFUSU5HX0JBU0tFVDpcbiAgICBjYXNlIElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FOlxuICAgIGNhc2UgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUzpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbDtcbiAgICBjYXNlIElOU1RBTExNRU5UU19UWVBFX05BTUU6XG4gICAgY2FzZSBDUkVESVRfVFlQRV9OQU1FOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHJhbnNhY3Rpb24gdHlwZSAke2NsZWFuZWRVcFR4blR5cGVTdHJ9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW5zdGFsbG1lbnRzSW5mbyhjb21tZW50czogc3RyaW5nKSB7XG4gIGlmICghY29tbWVudHMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gY29tbWVudHMubWF0Y2goL1xcZCsvZyk7XG4gIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbnVtYmVyOiBwYXJzZUludChtYXRjaGVzWzBdLCAxMCksXG4gICAgdG90YWw6IHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG1hcFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBTY3JhcGVkVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IGlzUGVuZGluZyA9IHJhd1RyYW5zYWN0aW9uLnBheW1lbnREYXRlID09PSBudWxsO1xuICBjb25zdCBwcm9jZXNzZWREYXRlID0gbW9tZW50KGlzUGVuZGluZyA/XG4gICAgcmF3VHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlIDpcbiAgICByYXdUcmFuc2FjdGlvbi5wYXltZW50RGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgY29uc3Qgc3RhdHVzID0gaXNQZW5kaW5nID8gVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nIDogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBnZXRUcmFuc2FjdGlvblR5cGUocmF3VHJhbnNhY3Rpb24ucGxhbk5hbWUpLFxuICAgIGRhdGU6IG1vbWVudChyYXdUcmFuc2FjdGlvbi5wdXJjaGFzZURhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgcHJvY2Vzc2VkRGF0ZSxcbiAgICBvcmlnaW5hbEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQW1vdW50LFxuICAgIG9yaWdpbmFsQ3VycmVuY3k6IHJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQ3VycmVuY3ksXG4gICAgY2hhcmdlZEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLmFjdHVhbFBheW1lbnRBbW91bnQsXG4gICAgZGVzY3JpcHRpb246IHJhd1RyYW5zYWN0aW9uLm1lcmNoYW50TmFtZS50cmltKCksXG4gICAgbWVtbzogcmF3VHJhbnNhY3Rpb24uY29tbWVudHMsXG4gICAgaW5zdGFsbG1lbnRzOiBnZXRJbnN0YWxsbWVudHNJbmZvKHJhd1RyYW5zYWN0aW9uLmNvbW1lbnRzKSB8fCB1bmRlZmluZWQsXG4gICAgc3RhdHVzLFxuICB9O1xufVxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHR7XG4gIHJlc3VsdD86IHtcbiAgICB0cmFuc2FjdGlvbnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoKHBhZ2U6IFBhZ2UsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgdXJsID0gZ2V0VHJhbnNhY3Rpb25zVXJsKG1vbnRoTW9tZW50KTtcblxuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQ+KHBhZ2UsIHVybCk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uc0J5QWNjb3VudDogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcblxuICBpZiAoIWRhdGEgfHwgIWRhdGEucmVzdWx0KSByZXR1cm4gdHJhbnNhY3Rpb25zQnlBY2NvdW50O1xuXG4gIGRhdGEucmVzdWx0LnRyYW5zYWN0aW9uc1xuICAgIC8vIEZpbHRlciBvdXQgbm9uLXRyYW5zYWN0aW9ucyB3aXRob3V0IGEgcGxhbiB0eXBlLCBlLmcuIHN1bW1hcnkgcm93c1xuICAgIC5maWx0ZXIoKHRyYW5zYWN0aW9uKSA9PiAhIXRyYW5zYWN0aW9uLnBsYW5OYW1lKVxuICAgIC5mb3JFYWNoKCh0cmFuc2FjdGlvbjogU2NyYXBlZFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICBpZiAoIXRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdKSB7XG4gICAgICAgIHRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdID0gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1hcHBlZFRyYW5zYWN0aW9uID0gbWFwVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgICAgdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0ucHVzaChtYXBwZWRUcmFuc2FjdGlvbik7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zYWN0aW9uc0J5QWNjb3VudDtcbn1cblxuZnVuY3Rpb24gYWRkUmVzdWx0KGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+LCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+KSB7XG4gIGNvbnN0IGNsb25lZFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0geyAuLi5hbGxSZXN1bHRzIH07XG4gIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIGlmICghY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXSkge1xuICAgICAgY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IFtdO1xuICAgIH1cbiAgICBjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdLnB1c2goLi4ucmVzdWx0W2FjY291bnROdW1iZXJdKTtcbiAgfSk7XG4gIHJldHVybiBjbG9uZWRSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlVHJhbnNhY3Rpb25zKHR4bnM6IFRyYW5zYWN0aW9uW10sIHN0YXJ0TW9tZW50OiBtb21lbnQuTW9tZW50LCBjb21iaW5lSW5zdGFsbG1lbnRzOiBib29sZWFuKSB7XG4gIGxldCBjbG9uZWRUeG5zID0gQXJyYXkuZnJvbSh0eG5zKTtcbiAgaWYgKCFjb21iaW5lSW5zdGFsbG1lbnRzKSB7XG4gICAgY2xvbmVkVHhucyA9IGZpeEluc3RhbGxtZW50cyhjbG9uZWRUeG5zKTtcbiAgfVxuICBjbG9uZWRUeG5zID0gc29ydFRyYW5zYWN0aW9uc0J5RGF0ZShjbG9uZWRUeG5zKTtcbiAgY2xvbmVkVHhucyA9IGZpbHRlck9sZFRyYW5zYWN0aW9ucyhjbG9uZWRUeG5zLCBzdGFydE1vbWVudCwgY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG4gIHJldHVybiBjbG9uZWRUeG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBTY2FwZXJPcHRpb25zKSB7XG4gIGNvbnN0IGZ1dHVyZU1vbnRoc1RvU2NyYXBlID0gb3B0aW9ucy5mdXR1cmVNb250aHNUb1NjcmFwZSA/PyAxO1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG4gIGNvbnN0IGFsbE1vbnRocyA9IGdldEFsbE1vbnRoTW9tZW50cyhzdGFydE1vbWVudCwgZnV0dXJlTW9udGhzVG9TY3JhcGUpO1xuXG4gIGxldCBhbGxSZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbE1vbnRocy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zRm9yTW9udGgocGFnZSwgYWxsTW9udGhzW2ldKTtcbiAgICBhbGxSZXN1bHRzID0gYWRkUmVzdWx0KGFsbFJlc3VsdHMsIHJlc3VsdCk7XG4gIH1cblxuICBPYmplY3Qua2V5cyhhbGxSZXN1bHRzKS5mb3JFYWNoKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgbGV0IHR4bnMgPSBhbGxSZXN1bHRzW2FjY291bnROdW1iZXJdO1xuICAgIHR4bnMgPSBwcmVwYXJlVHJhbnNhY3Rpb25zKHR4bnMsIHN0YXJ0TW9tZW50LCBvcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpO1xuICAgIGFsbFJlc3VsdHNbYWNjb3VudE51bWJlcl0gPSB0eG5zO1xuICB9KTtcblxuICByZXR1cm4gYWxsUmVzdWx0cztcbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMocGFnZTogUGFnZSk6IFBvc3NpYmxlTG9naW5SZXN1bHRzIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbU1VDQ0VTU19VUkxdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF0gPSBbUEFTU1dPUkRfRVhQSVJFRF9VUkxdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gW2FzeW5jICgpID0+IHtcbiAgICByZXR1cm4gZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SKTtcbiAgfV07XG4gIHVybHNbTG9naW5SZXN1bHRzLlVua25vd25FcnJvcl0gPSBbYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBMT0dJTl9FUlJPUl9TRUxFQ1RPUik7XG4gIH1dO1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdXNlci1uYW1lJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJyNwYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5jbGFzcyBNYXhTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnI2xvZ2luLXBhc3N3b3JkICNzZW5kLWNvZGUnLFxuICAgICAgcHJlQWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZSh0aGlzLnBhZ2UsICcjY2xvc2VQb3B1cCcpKSB7XG4gICAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2Nsb3NlUG9wdXAnKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcucGVyc29uYWwtYXJlYSA+IGEuZ28tdG8tcGVyc29uYWwtYXJlYScpO1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2xvZ2luLXBhc3N3b3JkLWxpbmsnLCB0cnVlKTtcbiAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2xvZ2luLXBhc3N3b3JkLWxpbmsnKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC50YWItcGFuZS5hY3RpdmUgYXBwLXVzZXItbG9naW4tZm9ybScsIHRydWUpO1xuICAgICAgfSxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcucGVyc29uYWwtYXJlYSA+IGEuZ28tdG8tcGVyc29uYWwtYXJlYScsIHRydWUpO1xuICAgICAgfSxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHJlZGlyZWN0T3JEaWFsb2codGhpcy5wYWdlKSxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHModGhpcy5wYWdlKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHRoaXMub3B0aW9ucyk7XG4gICAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhyZXN1bHRzKS5tYXAoKGFjY291bnROdW1iZXIpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFjY291bnROdW1iZXIsXG4gICAgICAgIHR4bnM6IHJlc3VsdHNbYWNjb3VudE51bWJlcl0sXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBhY2NvdW50cyxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1heFNjcmFwZXI7XG4iXX0=
|
|
304
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiZGVidWciLCJCQVNFX0FDVElPTlNfVVJMIiwiQkFTRV9BUElfQUNUSU9OU19VUkwiLCJCQVNFX1dFTENPTUVfVVJMIiwiTE9HSU5fVVJMIiwiUEFTU1dPUkRfRVhQSVJFRF9VUkwiLCJTVUNDRVNTX1VSTCIsIk5PUk1BTF9UWVBFX05BTUUiLCJBVE1fVFlQRV9OQU1FIiwiSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FIiwiSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIk1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSIsIk9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSIsIkZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkciLCJNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FIiwiVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUiLCJNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRSIsIkNSRURJVF9UWVBFX05BTUUiLCJBQ0NVTVVMQVRJTkdfQkFTS0VUIiwiUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyIsIklOVkFMSURfREVUQUlMU19TRUxFQ1RPUiIsIkxPR0lOX0VSUk9SX1NFTEVDVE9SIiwiY2F0ZWdvcmllcyIsIk1hcCIsInJlZGlyZWN0T3JEaWFsb2ciLCJwYWdlIiwiUHJvbWlzZSIsInJhY2UiLCJnZXRUcmFuc2FjdGlvbnNVcmwiLCJtb250aE1vbWVudCIsIm1vbnRoIiwieWVhciIsImRhdGUiLCJwYXRoIiwibG9hZENhdGVnb3JpZXMiLCJyZXMiLCJBcnJheSIsImlzQXJyYXkiLCJyZXN1bHQiLCJsZW5ndGgiLCJmb3JFYWNoIiwiaWQiLCJuYW1lIiwic2V0IiwiZ2V0VHJhbnNhY3Rpb25UeXBlIiwidHhuVHlwZVN0ciIsImNsZWFuZWRVcFR4blR5cGVTdHIiLCJyZXBsYWNlIiwidHJpbSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJFcnJvciIsImdldEluc3RhbGxtZW50c0luZm8iLCJjb21tZW50cyIsIm1hdGNoZXMiLCJtYXRjaCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJtYXBUcmFuc2FjdGlvbiIsInJhd1RyYW5zYWN0aW9uIiwiaXNQZW5kaW5nIiwicGF5bWVudERhdGUiLCJwcm9jZXNzZWREYXRlIiwicHVyY2hhc2VEYXRlIiwidG9JU09TdHJpbmciLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsIkNvbXBsZXRlZCIsInR5cGUiLCJwbGFuTmFtZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRBbW91bnQiLCJhY3R1YWxQYXltZW50QW1vdW50IiwiZGVzY3JpcHRpb24iLCJtZXJjaGFudE5hbWUiLCJtZW1vIiwiY2F0ZWdvcnkiLCJnZXQiLCJjYXRlZ29yeUlkIiwiaW5zdGFsbG1lbnRzIiwidW5kZWZpbmVkIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aCIsInVybCIsImRhdGEiLCJ0cmFuc2FjdGlvbnNCeUFjY291bnQiLCJ0cmFuc2FjdGlvbnMiLCJmaWx0ZXIiLCJ0cmFuc2FjdGlvbiIsInNob3J0Q2FyZE51bWJlciIsIm1hcHBlZFRyYW5zYWN0aW9uIiwicHVzaCIsImFkZFJlc3VsdCIsImFsbFJlc3VsdHMiLCJjbG9uZWRSZXN1bHRzIiwiT2JqZWN0Iiwia2V5cyIsImFjY291bnROdW1iZXIiLCJwcmVwYXJlVHJhbnNhY3Rpb25zIiwidHhucyIsInN0YXJ0TW9tZW50IiwiY29tYmluZUluc3RhbGxtZW50cyIsImNsb25lZFR4bnMiLCJmcm9tIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJvcHRpb25zIiwiZnV0dXJlTW9udGhzVG9TY3JhcGUiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1vbWVudCIsIm1heCIsImFsbE1vbnRocyIsImkiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJJbnZhbGlkUGFzc3dvcmQiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJNYXhTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwcmVBY3Rpb24iLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJyZXN1bHRzIiwiYWNjb3VudHMiLCJtYXAiLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7OztBQUVBLE1BQU1BLEtBQUssR0FBRyxxQkFBUyxLQUFULENBQWQ7QUFlQSxNQUFNQyxnQkFBZ0IsR0FBRywwQkFBekI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRywrQkFBN0I7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyx1QkFBekI7QUFFQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsZ0JBQWlCLG1CQUF0QztBQUNBLE1BQU1FLG9CQUFvQixHQUFJLEdBQUVKLGdCQUFpQix1Q0FBakQ7QUFDQSxNQUFNSyxXQUFXLEdBQUksR0FBRUgsZ0JBQWlCLG9CQUF4QztBQUVBLE1BQU1JLGdCQUFnQixHQUFHLE9BQXpCO0FBQ0EsTUFBTUMsYUFBYSxHQUFHLGtCQUF0QjtBQUNBLE1BQU1DLDJC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QU1tQyxRQUFRLEdBQUc3QyxNQUFNLENBQUNDLElBQVAsQ0FBWTJDLE9BQVosRUFBcUJFLEdBQXJCLENBQTBCNUMsYUFBRCxJQUFtQjtBQUMzRCxhQUFPO0FBQ0xBLFFBQUFBLGFBREs7QUFFTEUsUUFBQUEsSUFBSSxFQUFFd0MsT0FBTyxDQUFDMUMsYUFBRDtBQUZSLE9BQVA7QUFJRCxLQUxnQixDQUFqQjtBQU9BLFdBQU87QUFDTDZDLE1BQUFBLE9BQU8sRUFBRSxJQURKO0FBRUxGLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQXBDNkM7O2VBdUNqQ1osVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZFVybCBmcm9tICdidWlsZC11cmwnO1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBmZXRjaEdldFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgd2FpdEZvclJlZGlyZWN0IH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCwgZWxlbWVudFByZXNlbnRPblBhZ2UsIGNsaWNrQnV0dG9uIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IGdldEFsbE1vbnRoTW9tZW50cyBmcm9tICcuLi9oZWxwZXJzL2RhdGVzJztcbmltcG9ydCB7IGZpeEluc3RhbGxtZW50cywgc29ydFRyYW5zYWN0aW9uc0J5RGF0ZSwgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgU2NhcGVyT3B0aW9ucywgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnbWF4Jyk7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBzaG9ydENhcmROdW1iZXI6IHN0cmluZztcbiAgcGF5bWVudERhdGU/OiBzdHJpbmc7XG4gIHB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICBhY3R1YWxQYXltZW50QW1vdW50OiBzdHJpbmc7XG4gIG9yaWdpbmFsQ3VycmVuY3k6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgY29tbWVudHM6IHN0cmluZztcbiAgbWVyY2hhbnROYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3J5SWQ6IG51bWJlcjtcbn1cblxuY29uc3QgQkFTRV9BQ1RJT05TX1VSTCA9ICdodHRwczovL29ubGluZS5tYXguY28uaWwnO1xuY29uc3QgQkFTRV9BUElfQUNUSU9OU19VUkwgPSAnaHR0cHM6Ly9vbmxpbmVsY2FwaS5tYXguY28uaWwnO1xuY29uc3QgQkFTRV9XRUxDT01FX1VSTCA9ICdodHRwczovL3d3dy5tYXguY28uaWwnO1xuXG5jb25zdCBMT0dJTl9VUkwgPSBgJHtCQVNFX1dFTENPTUVfVVJMfS9ob21lcGFnZS93ZWxjb21lYDtcbmNvbnN0IFBBU1NXT1JEX0VYUElSRURfVVJMID0gYCR7QkFTRV9BQ1RJT05TX1VSTH0vQW5vbnltb3VzL0xvZ2luL1Bhc3N3b3JkRXhwaXJlZC5hc3B4YDtcbmNvbnN0IFNVQ0NFU1NfVVJMID0gYCR7QkFTRV9XRUxDT01FX1VSTH0vaG9tZXBhZ2UvcGVyc29uYWxgO1xuXG5jb25zdCBOT1JNQUxfVFlQRV9OQU1FID0gJ9eo15LXmdec15QnO1xuY29uc3QgQVRNX1RZUEVfTkFNRSA9ICfXl9eZ15XXkSDXoteh16fXldeqINee15nXmdeT15knO1xuY29uc3QgSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FID0gJ9eQ15nXoNeY16jXoNeYL9eX15VcItecJztcbmNvbnN0IElOU1RBTExNRU5UU19UWVBFX05BTUUgPSAn16rXqdec15XXnteZ150nO1xuY29uc3QgTU9OVEhMWV9DSEFSR0VfVFlQRV9OQU1FID0gJ9eX15nXldeRINeX15XXk9ep15knO1xuY29uc3QgT05FX01PTlRIX1BPU1RQT05FRF9UWVBFX05BTUUgPSAn15PXl9eV15kg15fXldeT16knO1xuY29uc3QgTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FID0gJ9eT15fXldeZINec15fXmdeV15Eg15TXl9eV15PXqdeZJztcbmNvbnN0IE1PTlRITFlfUEFZTUVOVF9UWVBFX05BTUUgPSAn16rXqdec15XXnSDXl9eV15PXqdeZJztcbmNvbnN0IEZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkcgPSAn157Xmdee15XXnyDXnNeo15vXmdep15Qg16LXqteZ15PXmdeqJztcbmNvbnN0IE1PTlRITFlfUE9TVFBPTkVEX0lOU1RBTExNRU5UU19UWVBFX05BTUUgPSAn15PXl9eV15kg15fXldeT16kg16rXqdec15XXnteZ150nO1xuY29uc3QgVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUgPSAn16LXoden16ogMzAg16TXnNeV16EnO1xuY29uc3QgVFdPX01PTlRIU19QT1NUUE9ORURfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9ep15nXmdedJztcbmNvbnN0IE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FID0gJ9eX15XXk9ep15kgKyDXqNeZ15HXmdeqJztcbmNvbnN0IENSRURJVF9UWVBFX05BTUUgPSAn16fXqNeT15nXmCc7XG5jb25zdCBBQ0NVTVVMQVRJTkdfQkFTS0VUID0gJ9eh15wg157XpteY15HXqCc7XG5jb25zdCBQT1NUUE9ORURfVFJBTlNBQ1RJT05fSU5TVEFMTE1FTlRTID0gJ9ek16jXmdeh16og15TXoteh16fXlCDXlNeT15fXldeZ15QnO1xuXG5jb25zdCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IgPSAnI3BvcHVwV3JvbmdEZXRhaWxzJztcbmNvbnN0IExPR0lOX0VSUk9SX1NFTEVDVE9SID0gJyNwb3B1cENhcmRIb2xkZXJzTG9naW5FcnJvcic7XG5cbmNvbnN0IGNhdGVnb3JpZXMgPSBuZXcgTWFwPG51bWJlciwgc3RyaW5nPigpO1xuXG5mdW5jdGlvbiByZWRpcmVjdE9yRGlhbG9nKHBhZ2U6IFBhZ2UpIHtcbiAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgd2FpdEZvclJlZGlyZWN0KHBhZ2UsIDIwMDAwLCBmYWxzZSwgW0JBU0VfV0VMQ09NRV9VUkwsIGAke0JBU0VfV0VMQ09NRV9VUkx9L2BdKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgTE9HSU5fRVJST1JfU0VMRUNUT1IsIHRydWUpLFxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zVXJsKG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgbW9udGggPSBtb250aE1vbWVudC5tb250aCgpICsgMTtcbiAgY29uc3QgeWVhciA9IG1vbnRoTW9tZW50LnllYXIoKTtcbiAgY29uc3QgZGF0ZSA9IGAke3llYXJ9LSR7bW9udGh9LTAxYDtcblxuICAvKipcbiAgICAgKiB1cmwgZXhwbGFuYXRpb246XG4gICAgICogdXNlckluZGV4OiAtMSBmb3IgYWxsIGFjY291bnQgb3duZXJzXG4gICAgICogY2FyZEluZGV4OiAtMSBmb3IgYWxsIGNhcmRzIHVuZGVyIHRoZSBhY2NvdW50XG4gICAgICogYWxsIG90aGVyIHF1ZXJ5IHBhcmFtcyBhcmUgc3RhdGljLCBiZXNpZGUgdGhlIGRhdGUgd2hpY2ggY2hhbmdlcyBmb3IgcmVxdWVzdCBwZXIgbW9udGhcbiAgICAgKi9cbiAgcmV0dXJuIGJ1aWxkVXJsKEJBU0VfQVBJX0FDVElPTlNfVVJMLCB7XG4gICAgcGF0aDogYC9hcGkvcmVnaXN0ZXJlZC90cmFuc2FjdGlvbkRldGFpbHMvZ2V0VHJhbnNhY3Rpb25zQW5kR3JhcGhzP2ZpbHRlckRhdGE9e1widXNlckluZGV4XCI6LTEsXCJjYXJkSW5kZXhcIjotMSxcIm1vbnRoVmlld1wiOnRydWUsXCJkYXRlXCI6XCIke2RhdGV9XCIsXCJkYXRlc1wiOntcInN0YXJ0RGF0ZVwiOlwiMFwiLFwiZW5kRGF0ZVwiOlwiMFwifSxcImJhbmtBY2NvdW50XCI6e1wiYmFua0FjY291bnRJbmRleFwiOi0xLFwiY2FyZHNcIjpudWxsfX0mZmlyc3RDYWxsQ2FyZEluZGV4PS0xJnY9VjMuNjktSEYtQ2FyTG9hbkxldmlNb2RlbC4yLjU3YCxcbiAgfSk7XG59XG5cbmludGVyZmFjZSBGZXRjaENhdGVnb3J5UmVzdWx0IHtcbiAgcmVzdWx0PyA6IEFycmF5PHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfT47XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRDYXRlZ29yaWVzKHBhZ2U6IFBhZ2UpIHtcbiAgZGVidWcoJ0xvYWRpbmcgY2F0ZWdvcmllcycpO1xuICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8RmV0Y2hDYXRlZ29yeVJlc3VsdD4ocGFnZSwgYCR7QkFTRV9BUElfQUNUSU9OU19VUkx9L2FwaS9jb250ZW50cy9nZXRDYXRlZ29yaWVzYCk7XG4gIGlmIChyZXMgJiYgQXJyYXkuaXNBcnJheShyZXMucmVzdWx0KSkge1xuICAgIGRlYnVnKGAke3Jlcy5yZXN1bHQubGVuZ3RofSBjYXRlZ29yaWVzIGxvYWRlZGApO1xuICAgICAgcmVzLnJlc3VsdD8uZm9yRWFjaCgoeyBpZCwgbmFtZSB9KSA9PiBjYXRlZ29yaWVzLnNldChpZCwgbmFtZSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uVHlwZSh0eG5UeXBlU3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgY2xlYW5lZFVwVHhuVHlwZVN0ciA9IHR4blR5cGVTdHIucmVwbGFjZSgnXFx0JywgJyAnKS50cmltKCk7XG4gIHN3aXRjaCAoY2xlYW5lZFVwVHhuVHlwZVN0cikge1xuICAgIGNhc2UgQVRNX1RZUEVfTkFNRTpcbiAgICBjYXNlIE5PUk1BTF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX0NIQVJHRV9UWVBFX05BTUU6XG4gICAgY2FzZSBPTkVfTU9OVEhfUE9TVFBPTkVEX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfUE9TVFBPTkVEX1RZUEVfTkFNRTpcbiAgICBjYXNlIEZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkc6XG4gICAgY2FzZSBNT05USExZX1BBWU1FTlRfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9QT1NUUE9ORURfSU5TVEFMTE1FTlRTX1RZUEVfTkFNRTpcbiAgICBjYXNlIFRISVJUWV9EQVlTX1BMVVNfVFlQRV9OQU1FOlxuICAgIGNhc2UgVFdPX01PTlRIU19QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgQUNDVU1VTEFUSU5HX0JBU0tFVDpcbiAgICBjYXNlIElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FOlxuICAgIGNhc2UgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUzpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbDtcbiAgICBjYXNlIElOU1RBTExNRU5UU19UWVBFX05BTUU6XG4gICAgY2FzZSBDUkVESVRfVFlQRV9OQU1FOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHJhbnNhY3Rpb24gdHlwZSAke2NsZWFuZWRVcFR4blR5cGVTdHJ9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW5zdGFsbG1lbnRzSW5mbyhjb21tZW50czogc3RyaW5nKSB7XG4gIGlmICghY29tbWVudHMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gY29tbWVudHMubWF0Y2goL1xcZCsvZyk7XG4gIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbnVtYmVyOiBwYXJzZUludChtYXRjaGVzWzBdLCAxMCksXG4gICAgdG90YWw6IHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG1hcFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBTY3JhcGVkVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IGlzUGVuZGluZyA9IHJhd1RyYW5zYWN0aW9uLnBheW1lbnREYXRlID09PSBudWxsO1xuICBjb25zdCBwcm9jZXNzZWREYXRlID0gbW9tZW50KGlzUGVuZGluZyA/XG4gICAgcmF3VHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlIDpcbiAgICByYXdUcmFuc2FjdGlvbi5wYXltZW50RGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgY29uc3Qgc3RhdHVzID0gaXNQZW5kaW5nID8gVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nIDogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBnZXRUcmFuc2FjdGlvblR5cGUocmF3VHJhbnNhY3Rpb24ucGxhbk5hbWUpLFxuICAgIGRhdGU6IG1vbWVudChyYXdUcmFuc2FjdGlvbi5wdXJjaGFzZURhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgcHJvY2Vzc2VkRGF0ZSxcbiAgICBvcmlnaW5hbEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQW1vdW50LFxuICAgIG9yaWdpbmFsQ3VycmVuY3k6IHJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQ3VycmVuY3ksXG4gICAgY2hhcmdlZEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLmFjdHVhbFBheW1lbnRBbW91bnQsXG4gICAgZGVzY3JpcHRpb246IHJhd1RyYW5zYWN0aW9uLm1lcmNoYW50TmFtZS50cmltKCksXG4gICAgbWVtbzogcmF3VHJhbnNhY3Rpb24uY29tbWVudHMsXG4gICAgY2F0ZWdvcnk6IGNhdGVnb3JpZXMuZ2V0KHJhd1RyYW5zYWN0aW9uPy5jYXRlZ29yeUlkKSxcbiAgICBpbnN0YWxsbWVudHM6IGdldEluc3RhbGxtZW50c0luZm8ocmF3VHJhbnNhY3Rpb24uY29tbWVudHMpIHx8IHVuZGVmaW5lZCxcbiAgICBzdGF0dXMsXG4gIH07XG59XG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdHtcbiAgcmVzdWx0Pzoge1xuICAgIHRyYW5zYWN0aW9uczogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zRm9yTW9udGgocGFnZTogUGFnZSwgbW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCB1cmwgPSBnZXRUcmFuc2FjdGlvbnNVcmwobW9udGhNb21lbnQpO1xuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdD4ocGFnZSwgdXJsKTtcbiAgY29uc3QgdHJhbnNhY3Rpb25zQnlBY2NvdW50OiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiA9IHt9O1xuXG4gIGlmICghZGF0YSB8fCAhZGF0YS5yZXN1bHQpIHJldHVybiB0cmFuc2FjdGlvbnNCeUFjY291bnQ7XG5cbiAgZGF0YS5yZXN1bHQudHJhbnNhY3Rpb25zXG4gICAgLy8gRmlsdGVyIG91dCBub24tdHJhbnNhY3Rpb25zIHdpdGhvdXQgYSBwbGFuIHR5cGUsIGUuZy4gc3VtbWFyeSByb3dzXG4gICAgLmZpbHRlcigodHJhbnNhY3Rpb24pID0+ICEhdHJhbnNhY3Rpb24ucGxhbk5hbWUpXG4gICAgLmZvckVhY2goKHRyYW5zYWN0aW9uOiBTY3JhcGVkVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIGlmICghdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0pIHtcbiAgICAgICAgdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWFwcGVkVHJhbnNhY3Rpb24gPSBtYXBUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICB0cmFuc2FjdGlvbnNCeUFjY291bnRbdHJhbnNhY3Rpb24uc2hvcnRDYXJkTnVtYmVyXS5wdXNoKG1hcHBlZFRyYW5zYWN0aW9uKTtcbiAgICB9KTtcblxuICByZXR1cm4gdHJhbnNhY3Rpb25zQnlBY2NvdW50O1xufVxuXG5mdW5jdGlvbiBhZGRSZXN1bHQoYWxsUmVzdWx0czogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4sIHJlc3VsdDogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4pIHtcbiAgY29uc3QgY2xvbmVkUmVzdWx0czogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7IC4uLmFsbFJlc3VsdHMgfTtcbiAgT2JqZWN0LmtleXMocmVzdWx0KS5mb3JFYWNoKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgaWYgKCFjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdKSB7XG4gICAgICBjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdID0gW107XG4gICAgfVxuICAgIGNsb25lZFJlc3VsdHNbYWNjb3VudE51bWJlcl0ucHVzaCguLi5yZXN1bHRbYWNjb3VudE51bWJlcl0pO1xuICB9KTtcbiAgcmV0dXJuIGNsb25lZFJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVUcmFuc2FjdGlvbnModHhuczogVHJhbnNhY3Rpb25bXSwgc3RhcnRNb21lbnQ6IG1vbWVudC5Nb21lbnQsIGNvbWJpbmVJbnN0YWxsbWVudHM6IGJvb2xlYW4pIHtcbiAgbGV0IGNsb25lZFR4bnMgPSBBcnJheS5mcm9tKHR4bnMpO1xuICBpZiAoIWNvbWJpbmVJbnN0YWxsbWVudHMpIHtcbiAgICBjbG9uZWRUeG5zID0gZml4SW5zdGFsbG1lbnRzKGNsb25lZFR4bnMpO1xuICB9XG4gIGNsb25lZFR4bnMgPSBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlKGNsb25lZFR4bnMpO1xuICBjbG9uZWRUeG5zID0gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGNsb25lZFR4bnMsIHN0YXJ0TW9tZW50LCBjb21iaW5lSW5zdGFsbG1lbnRzIHx8IGZhbHNlKTtcbiAgcmV0dXJuIGNsb25lZFR4bnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IFNjYXBlck9wdGlvbnMpIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbiAgY29uc3QgYWxsTW9udGhzID0gZ2V0QWxsTW9udGhNb21lbnRzKHN0YXJ0TW9tZW50LCBmdXR1cmVNb250aHNUb1NjcmFwZSk7XG5cbiAgYXdhaXQgbG9hZENhdGVnb3JpZXMocGFnZSk7XG5cbiAgbGV0IGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsTW9udGhzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aChwYWdlLCBhbGxNb250aHNbaV0pO1xuICAgIGFsbFJlc3VsdHMgPSBhZGRSZXN1bHQoYWxsUmVzdWx0cywgcmVzdWx0KTtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKGFsbFJlc3VsdHMpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICBsZXQgdHhucyA9IGFsbFJlc3VsdHNbYWNjb3VudE51bWJlcl07XG4gICAgdHhucyA9IHByZXBhcmVUcmFuc2FjdGlvbnModHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG4gICAgYWxsUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IHR4bnM7XG4gIH0pO1xuXG4gIHJldHVybiBhbGxSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFtTVUNDRVNTX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXSA9IFtQQVNTV09SRF9FWFBJUkVEX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF0gPSBbYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IpO1xuICB9XTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yXSA9IFthc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIExPR0lOX0VSUk9SX1NFTEVDVE9SKTtcbiAgfV07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyN1c2VyLW5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmNsYXNzIE1heFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcjbG9naW4tcGFzc3dvcmQgI3NlbmQtY29kZScsXG4gICAgICBwcmVBY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHRoaXMucGFnZSwgJyNjbG9zZVBvcHVwJykpIHtcbiAgICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcjY2xvc2VQb3B1cCcpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJy5wZXJzb25hbC1hcmVhID4gYS5nby10by1wZXJzb25hbC1hcmVhJyk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQtbGluaycsIHRydWUpO1xuICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQtbGluaycpO1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2xvZ2luLXBhc3N3b3JkLnRhYi1wYW5lLmFjdGl2ZSBhcHAtdXNlci1sb2dpbi1mb3JtJywgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJy5wZXJzb25hbC1hcmVhID4gYS5nby10by1wZXJzb25hbC1hcmVhJywgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gcmVkaXJlY3RPckRpYWxvZyh0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgdGhpcy5vcHRpb25zKTtcbiAgICBjb25zdCBhY2NvdW50cyA9IE9iamVjdC5rZXlzKHJlc3VsdHMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgICAgdHhuczogcmVzdWx0c1thY2NvdW50TnVtYmVyXSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWF4U2NyYXBlcjtcbiJdfQ==
|
package/lib/scrapers/visa-cal.js
CHANGED
|
@@ -178,6 +178,7 @@ async function fetchTransactionsForAccount(page, startDate, accountNumber, scrap
|
|
|
178
178
|
const buttonSelector = '[id$="FormAreaNoBorder_FormArea_ctlSubmitRequest"]';
|
|
179
179
|
const nextPageSelector = '[id$="FormAreaNoBorder_FormArea_ctlGridPager_btnNext"]';
|
|
180
180
|
const billingLabelSelector = '[id$=FormAreaNoBorder_FormArea_ctlMainToolBar_lblCaption]';
|
|
181
|
+
const noDataSelector = '[id$=FormAreaNoBorder_FormArea_msgboxErrorMessages]';
|
|
181
182
|
debug('find the start date index in the dropbox');
|
|
182
183
|
const options = await (0, _elementsInteractions.pageEvalAll)(page, '[id$="FormAreaNoBorder_FormArea_clndrDebitDateScope_OptionList"] li', [], items => {
|
|
183
184
|
return items.map(el => el.innerText);
|
|
@@ -187,8 +188,6 @@ async function fetchTransactionsForAccount(page, startDate, accountNumber, scrap
|
|
|
187
188
|
const accountTransactions = [];
|
|
188
189
|
|
|
189
190
|
for (let currentDateIndex = startDateIndex; currentDateIndex < options.length; currentDateIndex += 1) {
|
|
190
|
-
var _$exec;
|
|
191
|
-
|
|
192
191
|
debug('wait for date selector to be found');
|
|
193
192
|
await (0, _elementsInteractions.waitUntilElementFound)(page, dateSelector, true);
|
|
194
193
|
debug(`set hidden value of the date selector to be the index ${currentDateIndex}`);
|
|
@@ -199,62 +198,74 @@ async function fetchTransactionsForAccount(page, startDate, accountNumber, scrap
|
|
|
199
198
|
await Promise.all([page.waitForNavigation({
|
|
200
199
|
waitUntil: 'domcontentloaded'
|
|
201
200
|
}), (0, _elementsInteractions.clickButton)(page, buttonSelector)]);
|
|
202
|
-
debug('
|
|
203
|
-
const
|
|
204
|
-
|
|
201
|
+
debug('check if month has no transactions');
|
|
202
|
+
const pageHasNoTransactions = await (0, _elementsInteractions.pageEval)(page, noDataSelector, false, element => {
|
|
203
|
+
const siteValue = (element.innerText || '').replace(/[^ א-ת]/g, '');
|
|
204
|
+
return siteValue === 'לא נמצאו נתונים';
|
|
205
205
|
});
|
|
206
|
-
const billingDate = (_$exec = /\d{1,2}[/]\d{2}[/]\d{2,4}/.exec(billingDateLabel)) === null || _$exec === void 0 ? void 0 : _$exec[0];
|
|
207
206
|
|
|
208
|
-
if (
|
|
209
|
-
|
|
210
|
-
}
|
|
207
|
+
if (pageHasNoTransactions) {
|
|
208
|
+
debug('page has no transactions');
|
|
209
|
+
} else {
|
|
210
|
+
var _$exec;
|
|
211
|
+
|
|
212
|
+
debug('find the billing date');
|
|
213
|
+
const billingDateLabel = await (0, _elementsInteractions.pageEval)(page, billingLabelSelector, '', element => {
|
|
214
|
+
return element.innerText;
|
|
215
|
+
});
|
|
216
|
+
const billingDate = (_$exec = /\d{1,2}[/]\d{2}[/]\d{2,4}/.exec(billingDateLabel)) === null || _$exec === void 0 ? void 0 : _$exec[0];
|
|
211
217
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
do {
|
|
216
|
-
debug('fetch raw transactions from page');
|
|
217
|
-
const rawTransactions = await (0, _elementsInteractions.pageEvalAll)(page, '#ctlMainGrid > tbody tr, #ctlSecondaryGrid > tbody tr', [], (items, billingDate) => {
|
|
218
|
-
return items.map(el => {
|
|
219
|
-
const columns = el.getElementsByTagName('td');
|
|
220
|
-
|
|
221
|
-
if (columns.length === 6) {
|
|
222
|
-
return {
|
|
223
|
-
processedDate: columns[0].innerText,
|
|
224
|
-
date: columns[1].innerText,
|
|
225
|
-
description: columns[2].innerText,
|
|
226
|
-
originalAmount: columns[3].innerText,
|
|
227
|
-
chargedAmount: columns[4].innerText,
|
|
228
|
-
memo: columns[5].innerText
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
if (columns.length === 5) {
|
|
233
|
-
return {
|
|
234
|
-
processedDate: billingDate,
|
|
235
|
-
date: columns[0].innerText,
|
|
236
|
-
description: columns[1].innerText,
|
|
237
|
-
originalAmount: columns[2].innerText,
|
|
238
|
-
chargedAmount: columns[3].innerText,
|
|
239
|
-
memo: columns[4].innerText
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
return null;
|
|
244
|
-
});
|
|
245
|
-
}, billingDate);
|
|
246
|
-
debug(`fetched ${rawTransactions.length} raw transactions from page`);
|
|
247
|
-
accountTransactions.push(...convertTransactions(rawTransactions.filter(item => !!item)));
|
|
248
|
-
debug('check for existance of another page');
|
|
249
|
-
hasNextPage = await (0, _elementsInteractions.elementPresentOnPage)(page, nextPageSelector);
|
|
250
|
-
|
|
251
|
-
if (hasNextPage) {
|
|
252
|
-
debug('has another page, click on button next and wait for page navigation');
|
|
253
|
-
await Promise.all([page.waitForNavigation({
|
|
254
|
-
waitUntil: 'domcontentloaded'
|
|
255
|
-
}), await (0, _elementsInteractions.clickButton)(page, '[id$=FormAreaNoBorder_FormArea_ctlGridPager_btnNext]')]);
|
|
218
|
+
if (!billingDate) {
|
|
219
|
+
throw new Error('failed to fetch process date');
|
|
256
220
|
}
|
|
257
|
-
|
|
221
|
+
|
|
222
|
+
debug(`found the billing date for that month ${billingDate}`);
|
|
223
|
+
let hasNextPage = false;
|
|
224
|
+
|
|
225
|
+
do {
|
|
226
|
+
debug('fetch raw transactions from page');
|
|
227
|
+
const rawTransactions = await (0, _elementsInteractions.pageEvalAll)(page, '#ctlMainGrid > tbody tr, #ctlSecondaryGrid > tbody tr', [], (items, billingDate) => {
|
|
228
|
+
return items.map(el => {
|
|
229
|
+
const columns = el.getElementsByTagName('td');
|
|
230
|
+
|
|
231
|
+
if (columns.length === 6) {
|
|
232
|
+
return {
|
|
233
|
+
processedDate: columns[0].innerText,
|
|
234
|
+
date: columns[1].innerText,
|
|
235
|
+
description: columns[2].innerText,
|
|
236
|
+
originalAmount: columns[3].innerText,
|
|
237
|
+
chargedAmount: columns[4].innerText,
|
|
238
|
+
memo: columns[5].innerText
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
if (columns.length === 5) {
|
|
243
|
+
return {
|
|
244
|
+
processedDate: billingDate,
|
|
245
|
+
date: columns[0].innerText,
|
|
246
|
+
description: columns[1].innerText,
|
|
247
|
+
originalAmount: columns[2].innerText,
|
|
248
|
+
chargedAmount: columns[3].innerText,
|
|
249
|
+
memo: columns[4].innerText
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return null;
|
|
254
|
+
});
|
|
255
|
+
}, billingDate);
|
|
256
|
+
debug(`fetched ${rawTransactions.length} raw transactions from page`);
|
|
257
|
+
accountTransactions.push(...convertTransactions(rawTransactions.filter(item => !!item)));
|
|
258
|
+
debug('check for existance of another page');
|
|
259
|
+
hasNextPage = await (0, _elementsInteractions.elementPresentOnPage)(page, nextPageSelector);
|
|
260
|
+
|
|
261
|
+
if (hasNextPage) {
|
|
262
|
+
debug('has another page, click on button next and wait for page navigation');
|
|
263
|
+
await Promise.all([page.waitForNavigation({
|
|
264
|
+
waitUntil: 'domcontentloaded'
|
|
265
|
+
}), await (0, _elementsInteractions.clickButton)(page, '[id$=FormAreaNoBorder_FormArea_ctlGridPager_btnNext]')]);
|
|
266
|
+
}
|
|
267
|
+
} while (hasNextPage);
|
|
268
|
+
}
|
|
258
269
|
}
|
|
259
270
|
|
|
260
271
|
debug('filer out old transactions');
|
|
@@ -355,4 +366,4 @@ class VisaCalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
355
366
|
|
|
356
367
|
var _default = VisaCalScraper;
|
|
357
368
|
exports.default = _default;
|
|
358
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy92aXNhLWNhbC50cyJdLCJuYW1lcyI6WyJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfVVJMIiwiTE9OR19EQVRFX0ZPUk1BVCIsIkRBVEVfRk9STUFUIiwiSW52YWxpZFBhc3N3b3JkTWVzc2FnZSIsImRlYnVnIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZXJyb3JNZXNzYWdlIiwiaXRlbSIsImlubmVyVGV4dCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJnZXRUcmFuc2FjdGlvbkluc3RhbGxtZW50cyIsIm1lbW8iLCJwYXJzZWRNZW1vIiwiZXhlYyIsImxlbmd0aCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsInR4biIsIm9yaWdpbmFsQW1vdW50VHVwbGUiLCJvcmlnaW5hbEFtb3VudCIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJpbnN0YWxsbWVudHMiLCJ0eG5EYXRlIiwiZGF0ZSIsInByb2Nlc3NlZERhdGVGb3JtYXQiLCJwcm9jZXNzZWREYXRlIiwidHhuUHJvY2Vzc2VkRGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwiYWNjb3VudE51bWJlciIsInNjcmFwZXJPcHRpb25zIiwic3RhcnREYXRlVmFsdWUiLCJmb3JtYXQiLCJkYXRlU2VsZWN0b3IiLCJkYXRlSGlkZGVuRmllbGRTZWxlY3RvciIsImJ1dHRvblNlbGVjdG9yIiwibmV4dFBhZ2VTZWxlY3RvciIsImJpbGxpbmdMYWJlbFNlbGVjdG9yIiwiaXRlbXMiLCJlbCIsInN0YXJ0RGF0ZUluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiYWNjb3VudFRyYW5zYWN0aW9ucyIsImN1cnJlbnREYXRlSW5kZXgiLCJ3YWl0Rm9yIiwiYWxsIiwid2FpdEZvck5hdmlnYXRpb24iLCJ3YWl0VW50aWwiLCJiaWxsaW5nRGF0ZUxhYmVsIiwiZWxlbWVudCIsImJpbGxpbmdEYXRlIiwiaGFzTmV4dFBhZ2UiLCJyYXdUcmFuc2FjdGlvbnMiLCJjb2x1bW5zIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJwdXNoIiwiZmlsdGVyIiwiY29tYmluZUluc3RhbGxtZW50cyIsInN1YnN0cmluZyIsImdldEFjY291bnROdW1iZXJzIiwiZWxlbWVudHMiLCJlIiwidGV4dCIsInRoZW4iLCJyZXMiLCJ0cmltIiwic2V0QWNjb3VudCIsImFjY291bnQiLCJlbGVtIiwiYSIsImNsaWNrIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJhY2NvdW50TnVtYmVycyIsImFjY291bnRzIiwiVmlzYUNhbFNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3NpYmxlUmVzdWx0cyIsImNoZWNrUmVhZGluZXNzIiwicHJlQWN0aW9uIiwib3BlbkxvZ2luUG9wdXAiLCJ1c2VyQWdlbnQiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibW9tZW50IiwibWF4IiwibmF2aWdhdGVUbyIsInVuZGVmaW5lZCIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBR0E7O0FBUUE7O0FBR0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLFNBQVMsR0FBRywrQkFBbEI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyx1RkFBekI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxZQUF6QjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxVQUFwQjtBQUNBLE1BQU1DLHNCQUFzQixHQUFHLG1DQUEvQjtBQUVBLE1BQU1DLEtBQUssR0FBRyxxQkFBUyxVQUFULENBQWQ7O0FBV0EsZUFBZUMsYUFBZixDQUE2QkMsSUFBN0IsRUFBeUM7QUFDdkMsTUFBSUMsS0FBbUIsR0FBRyxJQUExQjtBQUNBSCxFQUFBQSxLQUFLLENBQUMsOEJBQUQsQ0FBTDtBQUNBLFFBQU0sd0JBQVUsTUFBTTtBQUNwQkcsSUFBQUEsS0FBSyxHQUFHRCxJQUFJLENBQ1RFLE1BREssR0FFTEMsSUFGSyxDQUVDQyxDQUFELElBQU9BLENBQUMsQ0FBQ0MsR0FBRixHQUFRQyxRQUFSLENBQWlCLG9CQUFqQixDQUZQLEtBRWtELElBRjFEO0FBR0EsV0FBT0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCLENBQUMsQ0FBQ1AsS0FBbEIsQ0FB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QUFDQWhGLElBQUFBLEtBQUssQ0FBRSwrQkFBOEI4SSxXQUFXLENBQUMxRCxNQUFaLEVBQXFCLEVBQXJELENBQUw7QUFFQXBGLElBQUFBLEtBQUssQ0FBQywrQkFBRCxDQUFMO0FBQ0EsVUFBTSxLQUFLaUosVUFBTCxDQUFnQnJKLGdCQUFoQixFQUFrQ3NKLFNBQWxDLEVBQTZDLEtBQTdDLENBQU47QUFFQWxKLElBQUFBLEtBQUssQ0FBQyw2QkFBRCxDQUFMO0FBQ0EsVUFBTThILFFBQVEsR0FBRyxNQUFNRixpQkFBaUIsQ0FBQyxLQUFLMUgsSUFBTixFQUFZNEksV0FBWixFQUF5QixLQUFLeEgsT0FBOUIsQ0FBeEM7QUFDQXRCLElBQUFBLEtBQUssQ0FBQyw2QkFBRCxDQUFMO0FBQ0EsV0FBTztBQUNMbUosTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTHJCLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQTlDaUQ7O2VBaURyQ0MsYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luT3B0aW9ucywgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgcGFnZUV2YWwsIHBhZ2VFdmFsQWxsLCBzZXRWYWx1ZSwgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMsXG4gIFRyYW5zYWN0aW9uc0FjY291bnQsXG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsXG4gIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY2FwZXJPcHRpb25zLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHtcbiAgRE9MTEFSX0NVUlJFTkNZLCBET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCBFVVJPX0NVUlJFTkNZLCBFVVJPX0NVUlJFTkNZX1NZTUJPTCwgU0hFS0VMX0NVUlJFTkNZLCBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5cbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5jYWwtb25saW5lLmNvLmlsLyc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vc2VydmljZXMuY2FsLW9ubGluZS5jby5pbC9DYXJkLUhvbGRlcnMvU2NyZWVucy9UcmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25zLmFzcHgnO1xuY29uc3QgTE9OR19EQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZJztcbmNvbnN0IEludmFsaWRQYXNzd29yZE1lc3NhZ2UgPSAn16nXnSDXlNee16nXqtee16kg15DXlSDXlNeh15nXodee15Qg16nXlNeV15bXoNeVINep15LXldeZ15nXnSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ3Zpc2EtY2FsJyk7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkYXRlOiBzdHJpbmc7XG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IHN0cmluZztcbiAgY2hhcmdlZEFtb3VudDogc3RyaW5nO1xuICBtZW1vOiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldExvZ2luRnJhbWUocGFnZTogUGFnZSkge1xuICBsZXQgZnJhbWU6IEZyYW1lIHwgbnVsbCA9IG51bGw7XG4gIGRlYnVnKCd3YWl0IHVudGlsIGxvZ2luIGZyYW1lIGZvdW5kJyk7XG4gIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiB7XG4gICAgZnJhbWUgPSBwYWdlXG4gICAgICAuZnJhbWVzKClcbiAgICAgIC5maW5kKChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKCdjb25uZWN0LmNhbC1vbmxpbmUnKSkgfHwgbnVsbDtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCEhZnJhbWUpO1xuICB9LCAnd2FpdCBmb3IgaWZyYW1lIHdpdGggbG9naW4gZm9ybScsIDEwMDAwLCAxMDAwKTtcblxuICBpZiAoIWZyYW1lKSB7XG4gICAgZGVidWcoJ2ZhaWxlZCB0byBmaW5kIGxvZ2luIGZyYW1lIGZvciAxMCBzZWNvbmRzJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdmYWlsZWQgdG8gZXh0cmFjdCBsb2dpbiBpZnJhbWUnKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IocGFnZTogUGFnZSkge1xuICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUocGFnZSk7XG4gIGNvbnN0IGVycm9yRm91bmQgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2Jyk7XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yRm91bmQgPyBhd2FpdCBwYWdlRXZhbChmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2JywgJycsIChpdGVtKSA9PiB7XG4gICAgcmV0dXJuIChpdGVtIGFzIEhUTUxEaXZFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pIDogJyc7XG4gIHJldHVybiBlcnJvck1lc3NhZ2UgPT09IEludmFsaWRQYXNzd29yZE1lc3NhZ2U7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCkge1xuICBkZWJ1ZygncmV0dXJuIHBvc3NpYmxlIGxvZ2luIHJlc3VsdHMnKTtcbiAgY29uc3QgdXJsczogTG9naW5PcHRpb25zWydwb3NzaWJsZVJlc3VsdHMnXSA9IHtcbiAgICBbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdOiBbL0FjY291bnRNYW5hZ2VtZW50L2ldLFxuICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogW2FzeW5jIChvcHRpb25zPzogeyBwYWdlPzogUGFnZX0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlKTtcbiAgICB9XSxcbiAgICAvLyBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICAgIC8vIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbXSwgLy8gVE9ETyBhZGQgd2hlbiByZWFjaGluZyB0aGlzIHNjZW5hcmlvXG4gIH07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIGRlYnVnKCdjcmVhdGUgbG9naW4gZmllbGRzIGZvciB1c2VybmFtZSBhbmQgcGFzc3dvcmQnKTtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInVzZXJOYW1lXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJ1tmb3JtY29udHJvbG5hbWU9XCJwYXNzd29yZFwiXScsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ2xuID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIGxldCBjdXJyZW5jeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCBhbW91bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IFNIRUtFTF9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRE9MTEFSX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhFVVJPX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShFVVJPX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IEVVUk9fQ1VSUkVOQ1k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFydHMgPSBhbW91bnRTdHJDbG4uc3BsaXQoJyAnKTtcbiAgICBbY3VycmVuY3ldID0gcGFydHM7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQocGFydHNbMV0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhbW91bnQsXG4gICAgY3VycmVuY3ksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzKG1lbW86IHN0cmluZyk6IFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzIHwgbnVsbCB7XG4gIGNvbnN0IHBhcnNlZE1lbW8gPSAoL9eq16nXnNeV150gKFxcZCspINee16rXldeaIChcXGQrKS8pLmV4ZWMobWVtbyB8fCAnJyk7XG5cbiAgaWYgKCFwYXJzZWRNZW1vIHx8IHBhcnNlZE1lbW8ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG51bWJlcjogcGFyc2VJbnQocGFyc2VkTWVtb1sxXSwgMTApLFxuICAgIHRvdGFsOiBwYXJzZUludChwYXJzZWRNZW1vWzJdLCAxMCksXG4gIH07XG59XG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGRlYnVnKGBjb252ZXJ0ICR7dHhucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgdG8gb2ZmaWNpYWwgVHJhbnNhY3Rpb24gc3RydWN0dXJlYCk7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxBbW91bnRUdXBsZSA9IGdldEFtb3VudERhdGEodHhuLm9yaWdpbmFsQW1vdW50IHx8ICcnKTtcbiAgICBjb25zdCBjaGFyZ2VkQW1vdW50VHVwbGUgPSBnZXRBbW91bnREYXRhKHR4bi5jaGFyZ2VkQW1vdW50IHx8ICcnKTtcblxuICAgIGNvbnN0IGluc3RhbGxtZW50cyA9IGdldFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzKHR4bi5tZW1vKTtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCk7XG4gICAgY29uc3QgcHJvY2Vzc2VkRGF0ZUZvcm1hdCA9XG4gICAgICB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDggP1xuICAgICAgICBEQVRFX0ZPUk1BVCA6XG4gICAgICAgIHR4bi5wcm9jZXNzZWREYXRlLmxlbmd0aCA9PT0gOSB8fCB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDEwID9cbiAgICAgICAgICBMT05HX0RBVEVfRk9STUFUIDpcbiAgICAgICAgICBudWxsO1xuICAgIGlmICghcHJvY2Vzc2VkRGF0ZUZvcm1hdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHByb2Nlc3NlZCBkYXRlJyk7XG4gICAgfVxuICAgIGNvbnN0IHR4blByb2Nlc3NlZERhdGUgPSBtb21lbnQodHhuLnByb2Nlc3NlZERhdGUsIHByb2Nlc3NlZERhdGVGb3JtYXQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IGluc3RhbGxtZW50cyA/IFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzIDogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgZGF0ZTogaW5zdGFsbG1lbnRzID8gdHhuRGF0ZS5hZGQoaW5zdGFsbG1lbnRzLm51bWJlciAtIDEsICdtb250aCcpLnRvSVNPU3RyaW5nKCkgOiB0eG5EYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5Qcm9jZXNzZWREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudDogb3JpZ2luYWxBbW91bnRUdXBsZS5hbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBvcmlnaW5hbEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgY2hhcmdlZEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIG1lbW86IHR4bi5tZW1vIHx8ICcnLFxuICAgIH07XG5cbiAgICBpZiAoaW5zdGFsbG1lbnRzKSB7XG4gICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIGFjY291bnROdW1iZXI6IHN0cmluZywgc2NyYXBlck9wdGlvbnM6IFNjYXBlck9wdGlvbnMpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnQ+IHtcbiAgY29uc3Qgc3RhcnREYXRlVmFsdWUgPSBzdGFydERhdGUuZm9ybWF0KCdNTS9ZWVlZJyk7XG4gIGNvbnN0IGRhdGVTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX1RleHRCb3hcIl0nO1xuICBjb25zdCBkYXRlSGlkZGVuRmllbGRTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX0hpZGRlbkZpZWxkXCJdJztcbiAgY29uc3QgYnV0dG9uU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsU3VibWl0UmVxdWVzdFwiXSc7XG4gIGNvbnN0IG5leHRQYWdlU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRcIl0nO1xuICBjb25zdCBiaWxsaW5nTGFiZWxTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsTWFpblRvb2xCYXJfbGJsQ2FwdGlvbl0nO1xuXG4gIGRlYnVnKCdmaW5kIHRoZSBzdGFydCBkYXRlIGluZGV4IGluIHRoZSBkcm9wYm94Jyk7XG4gIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBwYWdlRXZhbEFsbChwYWdlLCAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY2xuZHJEZWJpdERhdGVTY29wZV9PcHRpb25MaXN0XCJdIGxpJywgW10sIChpdGVtcykgPT4ge1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGVsOiBhbnkpID0+IGVsLmlubmVyVGV4dCk7XG4gIH0pO1xuICBjb25zdCBzdGFydERhdGVJbmRleCA9IG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbiA9PT0gc3RhcnREYXRlVmFsdWUpO1xuXG4gIGRlYnVnKGBzY3JhcGUgJHtvcHRpb25zLmxlbmd0aCAtIHN0YXJ0RGF0ZUluZGV4fSBiaWxsaW5nIGN5Y2xlc2ApO1xuICBjb25zdCBhY2NvdW50VHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gW107XG4gIGZvciAobGV0IGN1cnJlbnREYXRlSW5kZXggPSBzdGFydERhdGVJbmRleDsgY3VycmVudERhdGVJbmRleCA8IG9wdGlvbnMubGVuZ3RoOyBjdXJyZW50RGF0ZUluZGV4ICs9IDEpIHtcbiAgICBkZWJ1Zygnd2FpdCBmb3IgZGF0ZSBzZWxlY3RvciB0byBiZSBmb3VuZCcpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBkYXRlU2VsZWN0b3IsIHRydWUpO1xuICAgIGRlYnVnKGBzZXQgaGlkZGVuIHZhbHVlIG9mIHRoZSBkYXRlIHNlbGVjdG9yIHRvIGJlIHRoZSBpbmRleCAke2N1cnJlbnREYXRlSW5kZXh9YCk7XG4gICAgYXdhaXQgc2V0VmFsdWUocGFnZSwgZGF0ZUhpZGRlbkZpZWxkU2VsZWN0b3IsIGAke2N1cnJlbnREYXRlSW5kZXh9YCk7XG4gICAgZGVidWcoJ3dhaXQgYSBzZWNvbmQgdG8gd29ya2Fyb3VuZCBuYXZpZ2F0aW9uIGlzc3VlIGluIGhlYWRsZXNzIGJyb3dzZXIgbW9kZScpO1xuICAgIGF3YWl0IHBhZ2Uud2FpdEZvcigxMDAwKTtcbiAgICBkZWJ1ZygnY2xpY2sgb24gdGhlIGZpbHRlciBzdWJtaXQgYnV0dG9uIGFuZCB3YWl0IGZvciBuYXZpZ2F0aW9uJyk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgcGFnZS53YWl0Rm9yTmF2aWdhdGlvbih7IHdhaXRVbnRpbDogJ2RvbWNvbnRlbnRsb2FkZWQnIH0pLFxuICAgICAgY2xpY2tCdXR0b24ocGFnZSwgYnV0dG9uU2VsZWN0b3IpLFxuICAgIF0pO1xuICAgIGRlYnVnKCdmaW5kIHRoZSBiaWxsaW5nIGRhdGUnKTtcbiAgICBjb25zdCBiaWxsaW5nRGF0ZUxhYmVsID0gYXdhaXQgcGFnZUV2YWwocGFnZSwgYmlsbGluZ0xhYmVsU2VsZWN0b3IsICcnLCAoKGVsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiAoZWxlbWVudCBhcyBIVE1MU3BhbkVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICB9KSk7XG5cbiAgICBjb25zdCBiaWxsaW5nRGF0ZSA9IC9cXGR7MSwyfVsvXVxcZHsyfVsvXVxcZHsyLDR9Ly5leGVjKGJpbGxpbmdEYXRlTGFiZWwpPy5bMF07XG5cbiAgICBpZiAoIWJpbGxpbmdEYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBmZXRjaCBwcm9jZXNzIGRhdGUnKTtcbiAgICB9XG5cbiAgICBkZWJ1ZyhgZm91bmQgdGhlIGJpbGxpbmcgZGF0ZSBmb3IgdGhhdCBtb250aCAke2JpbGxpbmdEYXRlfWApO1xuICAgIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuICAgIGRvIHtcbiAgICAgIGRlYnVnKCdmZXRjaCByYXcgdHJhbnNhY3Rpb25zIGZyb20gcGFnZScpO1xuICAgICAgY29uc3QgcmF3VHJhbnNhY3Rpb25zID0gYXdhaXQgcGFnZUV2YWxBbGw8KFNjcmFwZWRUcmFuc2FjdGlvbiB8IG51bGwpW10+KHBhZ2UsICcjY3RsTWFpbkdyaWQgPiB0Ym9keSB0ciwgI2N0bFNlY29uZGFyeUdyaWQgPiB0Ym9keSB0cicsIFtdLCAoaXRlbXMsIGJpbGxpbmdEYXRlKSA9PiB7XG4gICAgICAgIHJldHVybiAoaXRlbXMpLm1hcCgoZWwpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2x1bW5zID0gZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RkJyk7XG4gICAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSA2KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBwcm9jZXNzZWREYXRlOiBjb2x1bW5zWzBdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgZGF0ZTogY29sdW1uc1sxXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5zWzJdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgb3JpZ2luYWxBbW91bnQ6IGNvbHVtbnNbM10uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICBjaGFyZ2VkQW1vdW50OiBjb2x1bW5zWzRdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgbWVtbzogY29sdW1uc1s1XS5pbm5lclRleHQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gaWYgKGNvbHVtbnMubGVuZ3RoID09PSA1KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBwcm9jZXNzZWREYXRlOiBiaWxsaW5nRGF0ZSxcbiAgICAgICAgICAgICAgZGF0ZTogY29sdW1uc1swXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgb3JpZ2luYWxBbW91bnQ6IGNvbHVtbnNbMl0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICBjaGFyZ2VkQW1vdW50OiBjb2x1bW5zWzNdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgbWVtbzogY29sdW1uc1s0XS5pbm5lclRleHQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9LCBiaWxsaW5nRGF0ZSk7XG4gICAgICBkZWJ1ZyhgZmV0Y2hlZCAke3Jhd1RyYW5zYWN0aW9ucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlYCk7XG4gICAgICBhY2NvdW50VHJhbnNhY3Rpb25zLnB1c2goLi4uY29udmVydFRyYW5zYWN0aW9ucygocmF3VHJhbnNhY3Rpb25zIGFzIFNjcmFwZWRUcmFuc2FjdGlvbltdKVxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pKSk7XG5cbiAgICAgIGRlYnVnKCdjaGVjayBmb3IgZXhpc3RhbmNlIG9mIGFub3RoZXIgcGFnZScpO1xuICAgICAgaGFzTmV4dFBhZ2UgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBuZXh0UGFnZVNlbGVjdG9yKTtcbiAgICAgIGlmIChoYXNOZXh0UGFnZSkge1xuICAgICAgICBkZWJ1ZygnaGFzIGFub3RoZXIgcGFnZSwgY2xpY2sgb24gYnV0dG9uIG5leHQgYW5kIHdhaXQgZm9yIHBhZ2UgbmF2aWdhdGlvbicpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgcGFnZS53YWl0Rm9yTmF2aWdhdGlvbih7IHdhaXRVbnRpbDogJ2RvbWNvbnRlbnRsb2FkZWQnIH0pLFxuICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRdJyksXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgIH0gd2hpbGUgKGhhc05leHRQYWdlKTtcbiAgfVxuXG4gIGRlYnVnKCdmaWxlciBvdXQgb2xkIHRyYW5zYWN0aW9ucycpO1xuICBjb25zdCB0eG5zID0gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFjY291bnRUcmFuc2FjdGlvbnMsIHN0YXJ0RGF0ZSwgc2NyYXBlck9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG4gIGRlYnVnKGBmb3VuZCAke3R4bnMubGVuZ3RofSB2YWxpZCB0cmFuc2FjdGlvbnMgb3V0IG9mICR7YWNjb3VudFRyYW5zYWN0aW9ucy5sZW5ndGh9IHRyYW5zYWN0aW9ucyBmb3IgYWNjb3VudCBlbmRpbmcgd2l0aCAke2FjY291bnROdW1iZXIuc3Vic3RyaW5nKGFjY291bnROdW1iZXIubGVuZ3RoIC0gMil9YCk7XG4gIHJldHVybiB7XG4gICAgYWNjb3VudE51bWJlcixcbiAgICB0eG5zLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50TnVtYmVycyhwYWdlOiBQYWdlKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICByZXR1cm4gcGFnZUV2YWxBbGwocGFnZSwgJ1tpZCQ9bG5rSXRlbV0nLCBbXSwgKGVsZW1lbnRzKSA9PiBlbGVtZW50cy5tYXAoKGUpID0+IChlIGFzIEhUTUxBbmNob3JFbGVtZW50KS50ZXh0KSkudGhlbigocmVzKSA9PiByZXMubWFwKCh0ZXh0KSA9PiAvXFxkKyQvLmV4ZWModGV4dC50cmltKCkpPy5bMF0gPz8gJycpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0QWNjb3VudChwYWdlOiBQYWdlLCBhY2NvdW50OiBzdHJpbmcpIHtcbiAgYXdhaXQgcGFnZUV2YWxBbGwoXG4gICAgcGFnZSxcbiAgICAnW2lkJD1sbmtJdGVtXScsXG4gICAgbnVsbCxcbiAgICAoZWxlbWVudHMsIGFjY291bnQpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZWxlbSBvZiBlbGVtZW50cykge1xuICAgICAgICBjb25zdCBhID0gZWxlbSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgICAgICAgaWYgKGEudGV4dC5pbmNsdWRlcyhhY2NvdW50KSkge1xuICAgICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWNjb3VudCxcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIHNjcmFwZXJPcHRpb25zOiBTY2FwZXJPcHRpb25zKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNBY2NvdW50W10+IHtcbiAgY29uc3QgYWNjb3VudE51bWJlcnM6IHN0cmluZ1tdID0gYXdhaXQgZ2V0QWNjb3VudE51bWJlcnMocGFnZSk7XG4gIGNvbnN0IGFjY291bnRzOiBUcmFuc2FjdGlvbnNBY2NvdW50W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGFjY291bnQgb2YgYWNjb3VudE51bWJlcnMpIHtcbiAgICBkZWJ1Zyhgc2V0dGluZyBhY2NvdW50OiAke2FjY291bnR9YCk7XG4gICAgYXdhaXQgc2V0QWNjb3VudChwYWdlLCBhY2NvdW50KTtcbiAgICBhd2FpdCBwYWdlLndhaXRGb3IoMTAwMCk7XG4gICAgYWNjb3VudHMucHVzaChcbiAgICAgIGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zRm9yQWNjb3VudChcbiAgICAgICAgcGFnZSxcbiAgICAgICAgc3RhcnREYXRlLFxuICAgICAgICBhY2NvdW50LFxuICAgICAgICBzY3JhcGVyT3B0aW9ucyxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBhY2NvdW50cztcbn1cblxuXG5jbGFzcyBWaXNhQ2FsU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBvcGVuTG9naW5Qb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICBkZWJ1Zygnb3BlbiBsb2dpbiBwb3B1cCwgd2FpdCB1bnRpbCBsb2dpbiBidXR0b24gYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicsIHRydWUpO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgbG9naW4gYnV0dG9uJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyk7XG4gICAgZGVidWcoJ2dldCB0aGUgZnJhbWUgdGhhdCBob2xkcyB0aGUgbG9naW4nKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUodGhpcy5wYWdlKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGhlYWRlciBpcyBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0aGUgcGFzc3dvcmQgbG9naW4gdGFiJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24oZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaXMgYWN0aXZlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAncmVndWxhci1sb2dpbicpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9O1xuXG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7TE9HSU5fVVJMfWAsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0nLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjY2NMb2dpbkRlc2t0b3BCdG4nKSxcbiAgICAgIHByZUFjdGlvbjogdGhpcy5vcGVuTG9naW5Qb3B1cCxcbiAgICAgIHVzZXJBZ2VudDogJ01vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzc4LjAuMzkwNC4xMDggU2FmYXJpLzUzNy4zNicsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG4gICAgZGVidWcoYGZldGNoIHRyYW5zYWN0aW9ucyBzdGFydGluZyAke3N0YXJ0TW9tZW50LmZvcm1hdCgpfWApO1xuXG4gICAgZGVidWcoJ25hdmlnYXRlIHRvIHRyYW5zYWN0aW9ucyBwYWdlJyk7XG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKFRSQU5TQUNUSU9OU19VUkwsIHVuZGVmaW5lZCwgNjAwMDApO1xuXG4gICAgZGVidWcoJ2ZldGNoIGFjY291bnRzIHRyYW5zYWN0aW9ucycpO1xuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCBzdGFydE1vbWVudCwgdGhpcy5vcHRpb25zKTtcbiAgICBkZWJ1ZygncmV0dXJuIHRoZSBzY3JhcGVkIGFjY291bnRzJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBhY2NvdW50cyxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpc2FDYWxTY3JhcGVyO1xuIl19
|
|
369
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy92aXNhLWNhbC50cyJdLCJuYW1lcyI6WyJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfVVJMIiwiTE9OR19EQVRFX0ZPUk1BVCIsIkRBVEVfRk9STUFUIiwiSW52YWxpZFBhc3N3b3JkTWVzc2FnZSIsImRlYnVnIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZXJyb3JNZXNzYWdlIiwiaXRlbSIsImlubmVyVGV4dCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJnZXRUcmFuc2FjdGlvbkluc3RhbGxtZW50cyIsIm1lbW8iLCJwYXJzZWRNZW1vIiwiZXhlYyIsImxlbmd0aCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsInR4biIsIm9yaWdpbmFsQW1vdW50VHVwbGUiLCJvcmlnaW5hbEFtb3VudCIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJpbnN0YWxsbWVudHMiLCJ0eG5EYXRlIiwiZGF0ZSIsInByb2Nlc3NlZERhdGVGb3JtYXQiLCJwcm9jZXNzZWREYXRlIiwidHhuUHJvY2Vzc2VkRGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwiYWNjb3VudE51bWJlciIsInNjcmFwZXJPcHRpb25zIiwic3RhcnREYXRlVmFsdWUiLCJmb3JtYXQiLCJkYXRlU2VsZWN0b3IiLCJkYXRlSGlkZGVuRmllbGRTZWxlY3RvciIsImJ1dHRvblNlbGVjdG9yIiwibmV4dFBhZ2VTZWxlY3RvciIsImJpbGxpbmdMYWJlbFNlbGVjdG9yIiwibm9EYXRhU2VsZWN0b3IiLCJpdGVtcyIsImVsIiwic3RhcnREYXRlSW5kZXgiLCJmaW5kSW5kZXgiLCJvcHRpb24iLCJhY2NvdW50VHJhbnNhY3Rpb25zIiwiY3VycmVudERhdGVJbmRleCIsIndhaXRGb3IiLCJhbGwiLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsIndhaXRVbnRpbCIsInBhZ2VIYXNOb1RyYW5zYWN0aW9ucyIsImVsZW1lbnQiLCJzaXRlVmFsdWUiLCJiaWxsaW5nRGF0ZUxhYmVsIiwiYmlsbGluZ0RhdGUiLCJoYXNOZXh0UGFnZSIsInJhd1RyYW5zYWN0aW9ucyIsImNvbHVtbnMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInB1c2giLCJmaWx0ZXIiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwic3Vic3RyaW5nIiwiZ2V0QWNjb3VudE51bWJlcnMiLCJlbGVtZW50cyIsImUiLCJ0ZXh0IiwidGhlbiIsInJlcyIsInRyaW0iLCJzZXRBY2NvdW50IiwiYWNjb3VudCIsImVsZW0iLCJhIiwiY2xpY2siLCJmZXRjaFRyYW5zYWN0aW9ucyIsImFjY291bnROdW1iZXJzIiwiYWNjb3VudHMiLCJWaXNhQ2FsU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zc2libGVSZXN1bHRzIiwiY2hlY2tSZWFkaW5lc3MiLCJwcmVBY3Rpb24iLCJvcGVuTG9naW5Qb3B1cCIsInVzZXJBZ2VudCIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwidW5kZWZpbmVkIiwic3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFHQTs7QUFRQTs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsTUFBTUEsU0FBUyxHQUFHLCtCQUFsQjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHVGQUF6QjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLFlBQXpCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLFVBQXBCO0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUcsbUNBQS9CO0FBRUEsTUFBTUMsS0FBSyxHQUFHLHFCQUFTLFVBQVQsQ0FBZDs7QUFXQSxlQUFlQyxhQUFmLENBQTZCQyxJQUE3QixFQUF5QztBQUN2QyxNQUFJQyxLQUFtQixHQUFHLElBQTFCO0FBQ0FILEVBQUFBLEtBQUssQ0FBQyw4QkFBRCxDQUFMO0FBQ0EsUUFBTSx3QkFBVSxNQUFNO0FBQ3BCRyxJQUFBQSxLQUFLLEdBQUdELElBQUksQ0FDVEUsTUFESyxHQUVMQyxJQUZLLENBRUNDLENBQUQsSUFBT0EsQ0FBQyxDQUFDQyxHQUFGLEdBQVFDLFFBQVIsQ0FBaUIsb0JBQWpCLENBRlAsS0FFa0QsSUFGMUQ7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ZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luT3B0aW9ucywgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgcGFnZUV2YWwsIHBhZ2VFdmFsQWxsLCBzZXRWYWx1ZSwgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMsXG4gIFRyYW5zYWN0aW9uc0FjY291bnQsXG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsXG4gIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY2FwZXJPcHRpb25zLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHtcbiAgRE9MTEFSX0NVUlJFTkNZLCBET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCBFVVJPX0NVUlJFTkNZLCBFVVJPX0NVUlJFTkNZX1NZTUJPTCwgU0hFS0VMX0NVUlJFTkNZLCBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5cbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5jYWwtb25saW5lLmNvLmlsLyc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vc2VydmljZXMuY2FsLW9ubGluZS5jby5pbC9DYXJkLUhvbGRlcnMvU2NyZWVucy9UcmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25zLmFzcHgnO1xuY29uc3QgTE9OR19EQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZJztcbmNvbnN0IEludmFsaWRQYXNzd29yZE1lc3NhZ2UgPSAn16nXnSDXlNee16nXqtee16kg15DXlSDXlNeh15nXodee15Qg16nXlNeV15bXoNeVINep15LXldeZ15nXnSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ3Zpc2EtY2FsJyk7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkYXRlOiBzdHJpbmc7XG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IHN0cmluZztcbiAgY2hhcmdlZEFtb3VudDogc3RyaW5nO1xuICBtZW1vOiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldExvZ2luRnJhbWUocGFnZTogUGFnZSkge1xuICBsZXQgZnJhbWU6IEZyYW1lIHwgbnVsbCA9IG51bGw7XG4gIGRlYnVnKCd3YWl0IHVudGlsIGxvZ2luIGZyYW1lIGZvdW5kJyk7XG4gIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiB7XG4gICAgZnJhbWUgPSBwYWdlXG4gICAgICAuZnJhbWVzKClcbiAgICAgIC5maW5kKChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKCdjb25uZWN0LmNhbC1vbmxpbmUnKSkgfHwgbnVsbDtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCEhZnJhbWUpO1xuICB9LCAnd2FpdCBmb3IgaWZyYW1lIHdpdGggbG9naW4gZm9ybScsIDEwMDAwLCAxMDAwKTtcblxuICBpZiAoIWZyYW1lKSB7XG4gICAgZGVidWcoJ2ZhaWxlZCB0byBmaW5kIGxvZ2luIGZyYW1lIGZvciAxMCBzZWNvbmRzJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdmYWlsZWQgdG8gZXh0cmFjdCBsb2dpbiBpZnJhbWUnKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IocGFnZTogUGFnZSkge1xuICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUocGFnZSk7XG4gIGNvbnN0IGVycm9yRm91bmQgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2Jyk7XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yRm91bmQgPyBhd2FpdCBwYWdlRXZhbChmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2JywgJycsIChpdGVtKSA9PiB7XG4gICAgcmV0dXJuIChpdGVtIGFzIEhUTUxEaXZFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pIDogJyc7XG4gIHJldHVybiBlcnJvck1lc3NhZ2UgPT09IEludmFsaWRQYXNzd29yZE1lc3NhZ2U7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCkge1xuICBkZWJ1ZygncmV0dXJuIHBvc3NpYmxlIGxvZ2luIHJlc3VsdHMnKTtcbiAgY29uc3QgdXJsczogTG9naW5PcHRpb25zWydwb3NzaWJsZVJlc3VsdHMnXSA9IHtcbiAgICBbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdOiBbL0FjY291bnRNYW5hZ2VtZW50L2ldLFxuICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogW2FzeW5jIChvcHRpb25zPzogeyBwYWdlPzogUGFnZX0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlKTtcbiAgICB9XSxcbiAgICAvLyBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICAgIC8vIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbXSwgLy8gVE9ETyBhZGQgd2hlbiByZWFjaGluZyB0aGlzIHNjZW5hcmlvXG4gIH07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIGRlYnVnKCdjcmVhdGUgbG9naW4gZmllbGRzIGZvciB1c2VybmFtZSBhbmQgcGFzc3dvcmQnKTtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInVzZXJOYW1lXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJ1tmb3JtY29udHJvbG5hbWU9XCJwYXNzd29yZFwiXScsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ2xuID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIGxldCBjdXJyZW5jeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCBhbW91bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IFNIRUtFTF9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRE9MTEFSX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhFVVJPX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShFVVJPX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IEVVUk9fQ1VSUkVOQ1k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFydHMgPSBhbW91bnRTdHJDbG4uc3BsaXQoJyAnKTtcbiAgICBbY3VycmVuY3ldID0gcGFydHM7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQocGFydHNbMV0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhbW91bnQsXG4gICAgY3VycmVuY3ksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzKG1lbW86IHN0cmluZyk6IFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzIHwgbnVsbCB7XG4gIGNvbnN0IHBhcnNlZE1lbW8gPSAoL9eq16nXnNeV150gKFxcZCspINee16rXldeaIChcXGQrKS8pLmV4ZWMobWVtbyB8fCAnJyk7XG5cbiAgaWYgKCFwYXJzZWRNZW1vIHx8IHBhcnNlZE1lbW8ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG51bWJlcjogcGFyc2VJbnQocGFyc2VkTWVtb1sxXSwgMTApLFxuICAgIHRvdGFsOiBwYXJzZUludChwYXJzZWRNZW1vWzJdLCAxMCksXG4gIH07XG59XG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGRlYnVnKGBjb252ZXJ0ICR7dHhucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgdG8gb2ZmaWNpYWwgVHJhbnNhY3Rpb24gc3RydWN0dXJlYCk7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxBbW91bnRUdXBsZSA9IGdldEFtb3VudERhdGEodHhuLm9yaWdpbmFsQW1vdW50IHx8ICcnKTtcbiAgICBjb25zdCBjaGFyZ2VkQW1vdW50VHVwbGUgPSBnZXRBbW91bnREYXRhKHR4bi5jaGFyZ2VkQW1vdW50IHx8ICcnKTtcblxuICAgIGNvbnN0IGluc3RhbGxtZW50cyA9IGdldFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzKHR4bi5tZW1vKTtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCk7XG4gICAgY29uc3QgcHJvY2Vzc2VkRGF0ZUZvcm1hdCA9XG4gICAgICB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDggP1xuICAgICAgICBEQVRFX0ZPUk1BVCA6XG4gICAgICAgIHR4bi5wcm9jZXNzZWREYXRlLmxlbmd0aCA9PT0gOSB8fCB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDEwID9cbiAgICAgICAgICBMT05HX0RBVEVfRk9STUFUIDpcbiAgICAgICAgICBudWxsO1xuICAgIGlmICghcHJvY2Vzc2VkRGF0ZUZvcm1hdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHByb2Nlc3NlZCBkYXRlJyk7XG4gICAgfVxuICAgIGNvbnN0IHR4blByb2Nlc3NlZERhdGUgPSBtb21lbnQodHhuLnByb2Nlc3NlZERhdGUsIHByb2Nlc3NlZERhdGVGb3JtYXQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IGluc3RhbGxtZW50cyA/IFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzIDogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgZGF0ZTogaW5zdGFsbG1lbnRzID8gdHhuRGF0ZS5hZGQoaW5zdGFsbG1lbnRzLm51bWJlciAtIDEsICdtb250aCcpLnRvSVNPU3RyaW5nKCkgOiB0eG5EYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5Qcm9jZXNzZWREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudDogb3JpZ2luYWxBbW91bnRUdXBsZS5hbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBvcmlnaW5hbEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgY2hhcmdlZEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIG1lbW86IHR4bi5tZW1vIHx8ICcnLFxuICAgIH07XG5cbiAgICBpZiAoaW5zdGFsbG1lbnRzKSB7XG4gICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIGFjY291bnROdW1iZXI6IHN0cmluZywgc2NyYXBlck9wdGlvbnM6IFNjYXBlck9wdGlvbnMpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnQ+IHtcbiAgY29uc3Qgc3RhcnREYXRlVmFsdWUgPSBzdGFydERhdGUuZm9ybWF0KCdNTS9ZWVlZJyk7XG4gIGNvbnN0IGRhdGVTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX1RleHRCb3hcIl0nO1xuICBjb25zdCBkYXRlSGlkZGVuRmllbGRTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX0hpZGRlbkZpZWxkXCJdJztcbiAgY29uc3QgYnV0dG9uU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsU3VibWl0UmVxdWVzdFwiXSc7XG4gIGNvbnN0IG5leHRQYWdlU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRcIl0nO1xuICBjb25zdCBiaWxsaW5nTGFiZWxTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsTWFpblRvb2xCYXJfbGJsQ2FwdGlvbl0nO1xuICBjb25zdCBub0RhdGFTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfbXNnYm94RXJyb3JNZXNzYWdlc10nO1xuXG4gIGRlYnVnKCdmaW5kIHRoZSBzdGFydCBkYXRlIGluZGV4IGluIHRoZSBkcm9wYm94Jyk7XG4gIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBwYWdlRXZhbEFsbChwYWdlLCAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY2xuZHJEZWJpdERhdGVTY29wZV9PcHRpb25MaXN0XCJdIGxpJywgW10sIChpdGVtcykgPT4ge1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGVsOiBhbnkpID0+IGVsLmlubmVyVGV4dCk7XG4gIH0pO1xuICBjb25zdCBzdGFydERhdGVJbmRleCA9IG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbiA9PT0gc3RhcnREYXRlVmFsdWUpO1xuXG4gIGRlYnVnKGBzY3JhcGUgJHtvcHRpb25zLmxlbmd0aCAtIHN0YXJ0RGF0ZUluZGV4fSBiaWxsaW5nIGN5Y2xlc2ApO1xuICBjb25zdCBhY2NvdW50VHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gW107XG4gIGZvciAobGV0IGN1cnJlbnREYXRlSW5kZXggPSBzdGFydERhdGVJbmRleDsgY3VycmVudERhdGVJbmRleCA8IG9wdGlvbnMubGVuZ3RoOyBjdXJyZW50RGF0ZUluZGV4ICs9IDEpIHtcbiAgICBkZWJ1Zygnd2FpdCBmb3IgZGF0ZSBzZWxlY3RvciB0byBiZSBmb3VuZCcpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBkYXRlU2VsZWN0b3IsIHRydWUpO1xuICAgIGRlYnVnKGBzZXQgaGlkZGVuIHZhbHVlIG9mIHRoZSBkYXRlIHNlbGVjdG9yIHRvIGJlIHRoZSBpbmRleCAke2N1cnJlbnREYXRlSW5kZXh9YCk7XG4gICAgYXdhaXQgc2V0VmFsdWUocGFnZSwgZGF0ZUhpZGRlbkZpZWxkU2VsZWN0b3IsIGAke2N1cnJlbnREYXRlSW5kZXh9YCk7XG4gICAgZGVidWcoJ3dhaXQgYSBzZWNvbmQgdG8gd29ya2Fyb3VuZCBuYXZpZ2F0aW9uIGlzc3VlIGluIGhlYWRsZXNzIGJyb3dzZXIgbW9kZScpO1xuICAgIGF3YWl0IHBhZ2Uud2FpdEZvcigxMDAwKTtcbiAgICBkZWJ1ZygnY2xpY2sgb24gdGhlIGZpbHRlciBzdWJtaXQgYnV0dG9uIGFuZCB3YWl0IGZvciBuYXZpZ2F0aW9uJyk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgcGFnZS53YWl0Rm9yTmF2aWdhdGlvbih7IHdhaXRVbnRpbDogJ2RvbWNvbnRlbnRsb2FkZWQnIH0pLFxuICAgICAgY2xpY2tCdXR0b24ocGFnZSwgYnV0dG9uU2VsZWN0b3IpLFxuICAgIF0pO1xuICAgIGRlYnVnKCdjaGVjayBpZiBtb250aCBoYXMgbm8gdHJhbnNhY3Rpb25zJyk7XG4gICAgY29uc3QgcGFnZUhhc05vVHJhbnNhY3Rpb25zID0gYXdhaXQgcGFnZUV2YWwocGFnZSwgbm9EYXRhU2VsZWN0b3IsIGZhbHNlLCAoKGVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHNpdGVWYWx1ZSA9ICgoZWxlbWVudCBhcyBIVE1MU3BhbkVsZW1lbnQpLmlubmVyVGV4dCB8fCAnJykucmVwbGFjZSgvW14g15At16pdL2csICcnKTtcbiAgICAgIHJldHVybiBzaXRlVmFsdWUgPT09ICfXnNeQINeg157XpteQ15Ug16DXqteV16DXmdedJztcbiAgICB9KSk7XG5cbiAgICBpZiAocGFnZUhhc05vVHJhbnNhY3Rpb25zKSB7XG4gICAgICBkZWJ1ZygncGFnZSBoYXMgbm8gdHJhbnNhY3Rpb25zJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdmaW5kIHRoZSBiaWxsaW5nIGRhdGUnKTtcbiAgICAgIGNvbnN0IGJpbGxpbmdEYXRlTGFiZWwgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCBiaWxsaW5nTGFiZWxTZWxlY3RvciwgJycsICgoZWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gKGVsZW1lbnQgYXMgSFRNTFNwYW5FbGVtZW50KS5pbm5lclRleHQ7XG4gICAgICB9KSk7XG5cbiAgICAgIGNvbnN0IGJpbGxpbmdEYXRlID0gL1xcZHsxLDJ9Wy9dXFxkezJ9Wy9dXFxkezIsNH0vLmV4ZWMoYmlsbGluZ0RhdGVMYWJlbCk/LlswXTtcblxuICAgICAgaWYgKCFiaWxsaW5nRGF0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBmZXRjaCBwcm9jZXNzIGRhdGUnKTtcbiAgICAgIH1cblxuICAgICAgZGVidWcoYGZvdW5kIHRoZSBiaWxsaW5nIGRhdGUgZm9yIHRoYXQgbW9udGggJHtiaWxsaW5nRGF0ZX1gKTtcbiAgICAgIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgZG8ge1xuICAgICAgICBkZWJ1ZygnZmV0Y2ggcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2UnKTtcbiAgICAgICAgY29uc3QgcmF3VHJhbnNhY3Rpb25zID0gYXdhaXQgcGFnZUV2YWxBbGw8KFNjcmFwZWRUcmFuc2FjdGlvbiB8IG51bGwpW10+KHBhZ2UsICcjY3RsTWFpbkdyaWQgPiB0Ym9keSB0ciwgI2N0bFNlY29uZGFyeUdyaWQgPiB0Ym9keSB0cicsIFtdLCAoaXRlbXMsIGJpbGxpbmdEYXRlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChpdGVtcykubWFwKChlbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IGVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpO1xuICAgICAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSA2KSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzc2VkRGF0ZTogY29sdW1uc1swXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgZGF0ZTogY29sdW1uc1sxXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbHVtbnNbMl0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsQW1vdW50OiBjb2x1bW5zWzNdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBjaGFyZ2VkQW1vdW50OiBjb2x1bW5zWzRdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBtZW1vOiBjb2x1bW5zWzVdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gNSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZERhdGU6IGJpbGxpbmdEYXRlLFxuICAgICAgICAgICAgICAgIGRhdGU6IGNvbHVtbnNbMF0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEFtb3VudDogY29sdW1uc1syXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgY2hhcmdlZEFtb3VudDogY29sdW1uc1szXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgbWVtbzogY29sdW1uc1s0XS5pbm5lclRleHQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSwgYmlsbGluZ0RhdGUpO1xuICAgICAgICBkZWJ1ZyhgZmV0Y2hlZCAke3Jhd1RyYW5zYWN0aW9ucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlYCk7XG4gICAgICAgIGFjY291bnRUcmFuc2FjdGlvbnMucHVzaCguLi5jb252ZXJ0VHJhbnNhY3Rpb25zKChyYXdUcmFuc2FjdGlvbnMgYXMgU2NyYXBlZFRyYW5zYWN0aW9uW10pXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gISFpdGVtKSkpO1xuXG4gICAgICAgIGRlYnVnKCdjaGVjayBmb3IgZXhpc3RhbmNlIG9mIGFub3RoZXIgcGFnZScpO1xuICAgICAgICBoYXNOZXh0UGFnZSA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIG5leHRQYWdlU2VsZWN0b3IpO1xuICAgICAgICBpZiAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgICBkZWJ1ZygnaGFzIGFub3RoZXIgcGFnZSwgY2xpY2sgb24gYnV0dG9uIG5leHQgYW5kIHdhaXQgZm9yIHBhZ2UgbmF2aWdhdGlvbicpO1xuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIHBhZ2Uud2FpdEZvck5hdmlnYXRpb24oeyB3YWl0VW50aWw6ICdkb21jb250ZW50bG9hZGVkJyB9KSxcbiAgICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRdJyksXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH0gd2hpbGUgKGhhc05leHRQYWdlKTtcbiAgICB9XG4gIH1cblxuICBkZWJ1ZygnZmlsZXIgb3V0IG9sZCB0cmFuc2FjdGlvbnMnKTtcbiAgY29uc3QgdHhucyA9IGZpbHRlck9sZFRyYW5zYWN0aW9ucyhhY2NvdW50VHJhbnNhY3Rpb25zLCBzdGFydERhdGUsIHNjcmFwZXJPcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpO1xuICBkZWJ1ZyhgZm91bmQgJHt0eG5zLmxlbmd0aH0gdmFsaWQgdHJhbnNhY3Rpb25zIG91dCBvZiAke2FjY291bnRUcmFuc2FjdGlvbnMubGVuZ3RofSB0cmFuc2FjdGlvbnMgZm9yIGFjY291bnQgZW5kaW5nIHdpdGggJHthY2NvdW50TnVtYmVyLnN1YnN0cmluZyhhY2NvdW50TnVtYmVyLmxlbmd0aCAtIDIpfWApO1xuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgdHhucyxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudE51bWJlcnMocGFnZTogUGFnZSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgcmV0dXJuIHBhZ2VFdmFsQWxsKHBhZ2UsICdbaWQkPWxua0l0ZW1dJywgW10sIChlbGVtZW50cykgPT4gZWxlbWVudHMubWFwKChlKSA9PiAoZSBhcyBIVE1MQW5jaG9yRWxlbWVudCkudGV4dCkpLnRoZW4oKHJlcykgPT4gcmVzLm1hcCgodGV4dCkgPT4gL1xcZCskLy5leGVjKHRleHQudHJpbSgpKT8uWzBdID8/ICcnKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNldEFjY291bnQocGFnZTogUGFnZSwgYWNjb3VudDogc3RyaW5nKSB7XG4gIGF3YWl0IHBhZ2VFdmFsQWxsKFxuICAgIHBhZ2UsXG4gICAgJ1tpZCQ9bG5rSXRlbV0nLFxuICAgIG51bGwsXG4gICAgKGVsZW1lbnRzLCBhY2NvdW50KSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGVsZW0gb2YgZWxlbWVudHMpIHtcbiAgICAgICAgY29uc3QgYSA9IGVsZW0gYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG4gICAgICAgIGlmIChhLnRleHQuaW5jbHVkZXMoYWNjb3VudCkpIHtcbiAgICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGFjY291bnQsXG4gICk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBzY3JhcGVyT3B0aW9uczogU2NhcGVyT3B0aW9ucyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudFtdPiB7XG4gIGNvbnN0IGFjY291bnROdW1iZXJzOiBzdHJpbmdbXSA9IGF3YWl0IGdldEFjY291bnROdW1iZXJzKHBhZ2UpO1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgZm9yIChjb25zdCBhY2NvdW50IG9mIGFjY291bnROdW1iZXJzKSB7XG4gICAgZGVidWcoYHNldHRpbmcgYWNjb3VudDogJHthY2NvdW50fWApO1xuICAgIGF3YWl0IHNldEFjY291bnQocGFnZSwgYWNjb3VudCk7XG4gICAgYXdhaXQgcGFnZS53YWl0Rm9yKDEwMDApO1xuICAgIGFjY291bnRzLnB1c2goXG4gICAgICBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQoXG4gICAgICAgIHBhZ2UsXG4gICAgICAgIHN0YXJ0RGF0ZSxcbiAgICAgICAgYWNjb3VudCxcbiAgICAgICAgc2NyYXBlck9wdGlvbnMsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cblxuY2xhc3MgVmlzYUNhbFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIHtcbiAgb3BlbkxvZ2luUG9wdXAgPSBhc3luYyAoKSA9PiB7XG4gICAgZGVidWcoJ29wZW4gbG9naW4gcG9wdXAsIHdhaXQgdW50aWwgbG9naW4gYnV0dG9uIGF2YWlsYWJsZScpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjY2NMb2dpbkRlc2t0b3BCdG4nLCB0cnVlKTtcbiAgICBkZWJ1ZygnY2xpY2sgb24gdGhlIGxvZ2luIGJ1dHRvbicpO1xuICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpO1xuICAgIGRlYnVnKCdnZXQgdGhlIGZyYW1lIHRoYXQgaG9sZHMgdGhlIGxvZ2luJyk7XG4gICAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHRoaXMucGFnZSk7XG4gICAgZGVidWcoJ3dhaXQgdW50aWwgdGhlIHBhc3N3b3JkIGxvZ2luIHRhYiBoZWFkZXIgaXMgYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAnI3JlZ3VsYXItbG9naW4nKTtcbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gdGhlIHBhc3N3b3JkIGxvZ2luIHRhYicpO1xuICAgIGF3YWl0IGNsaWNrQnV0dG9uKGZyYW1lLCAnI3JlZ3VsYXItbG9naW4nKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGlzIGFjdGl2ZScpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChmcmFtZSwgJ3JlZ3VsYXItbG9naW4nKTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfTtcblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0xPR0lOX1VSTH1gLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJ2J1dHRvblt0eXBlPVwic3VibWl0XCJdJyxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyksXG4gICAgICBwcmVBY3Rpb246IHRoaXMub3BlbkxvZ2luUG9wdXAsXG4gICAgICB1c2VyQWdlbnQ6ICdNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYnLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKTogUHJvbWlzZTxTY2FwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuICAgIGRlYnVnKGBmZXRjaCB0cmFuc2FjdGlvbnMgc3RhcnRpbmcgJHtzdGFydE1vbWVudC5mb3JtYXQoKX1gKTtcblxuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0cmFuc2FjdGlvbnMgcGFnZScpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhUUkFOU0FDVElPTlNfVVJMLCB1bmRlZmluZWQsIDYwMDAwKTtcblxuICAgIGRlYnVnKCdmZXRjaCBhY2NvdW50cyB0cmFuc2FjdGlvbnMnKTtcbiAgICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgc3RhcnRNb21lbnQsIHRoaXMub3B0aW9ucyk7XG4gICAgZGVidWcoJ3JldHVybiB0aGUgc2NyYXBlZCBhY2NvdW50cycpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaXNhQ2FsU2NyYXBlcjtcbiJdfQ==
|
package/lib/transactions.d.ts
CHANGED
package/lib/transactions.js
CHANGED
|
@@ -19,4 +19,4 @@ exports.TransactionStatuses = TransactionStatuses;
|
|
|
19
19
|
TransactionStatuses["Completed"] = "completed";
|
|
20
20
|
TransactionStatuses["Pending"] = "pending";
|
|
21
21
|
})(TransactionStatuses || (exports.TransactionStatuses = TransactionStatuses = {}));
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2FjdGlvbnMudHMiXSwibmFtZXMiOlsiVHJhbnNhY3Rpb25UeXBlcyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztJQU9ZQSxnQjs7O1dBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0dBQUFBLGdCLGdDQUFBQSxnQjs7SUFLQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtHQUFBQSxtQixtQ0FBQUEsbUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25zQWNjb3VudCB7XG4gIGFjY291bnROdW1iZXI6IHN0cmluZztcbiAgYmFsYW5jZT86IG51bWJlcjtcbiAgdHhuczogVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25UeXBlcyB7XG4gIE5vcm1hbCA9ICdub3JtYWwnLFxuICBJbnN0YWxsbWVudHMgPSAnaW5zdGFsbG1lbnRzJ1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblN0YXR1c2VzIHtcbiAgQ29tcGxldGVkID0gJ2NvbXBsZXRlZCcsXG4gIFBlbmRpbmcgPSAncGVuZGluZydcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB7XG4gIC8qKlxuICAgKiB0aGUgY3VycmVudCBpbnN0YWxsbWVudCBudW1iZXJcbiAgICovXG4gIG51bWJlcjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiB0aGUgdG90YWwgbnVtYmVyIG9mIGluc3RhbGxtZW50c1xuICAgKi9cbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbiB7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXM7XG4gIC8qKlxuICAgKiBzb21ldGltZXMgY2FsbGVkIEFzbWFjaHRhXG4gICAqL1xuICBpZGVudGlmaWVyPzogbnVtYmVyO1xuICAvKipcbiAgICogSVNPIGRhdGUgc3RyaW5nXG4gICAqL1xuICBkYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJU08gZGF0ZSBzdHJpbmdcbiAgICovXG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgb3JpZ2luYWxDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VkQW1vdW50OiBudW1iZXI7XG4gIGNoYXJnZWRDdXJyZW5jeT86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xuICBpbnN0YWxsbWVudHM/
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2FjdGlvbnMudHMiXSwibmFtZXMiOlsiVHJhbnNhY3Rpb25UeXBlcyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztJQU9ZQSxnQjs7O1dBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0dBQUFBLGdCLGdDQUFBQSxnQjs7SUFLQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtHQUFBQSxtQixtQ0FBQUEsbUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25zQWNjb3VudCB7XG4gIGFjY291bnROdW1iZXI6IHN0cmluZztcbiAgYmFsYW5jZT86IG51bWJlcjtcbiAgdHhuczogVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25UeXBlcyB7XG4gIE5vcm1hbCA9ICdub3JtYWwnLFxuICBJbnN0YWxsbWVudHMgPSAnaW5zdGFsbG1lbnRzJ1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblN0YXR1c2VzIHtcbiAgQ29tcGxldGVkID0gJ2NvbXBsZXRlZCcsXG4gIFBlbmRpbmcgPSAncGVuZGluZydcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB7XG4gIC8qKlxuICAgKiB0aGUgY3VycmVudCBpbnN0YWxsbWVudCBudW1iZXJcbiAgICovXG4gIG51bWJlcjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiB0aGUgdG90YWwgbnVtYmVyIG9mIGluc3RhbGxtZW50c1xuICAgKi9cbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbiB7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXM7XG4gIC8qKlxuICAgKiBzb21ldGltZXMgY2FsbGVkIEFzbWFjaHRhXG4gICAqL1xuICBpZGVudGlmaWVyPzogbnVtYmVyO1xuICAvKipcbiAgICogSVNPIGRhdGUgc3RyaW5nXG4gICAqL1xuICBkYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJU08gZGF0ZSBzdHJpbmdcbiAgICovXG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgb3JpZ2luYWxDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VkQW1vdW50OiBudW1iZXI7XG4gIGNoYXJnZWRDdXJyZW5jeT86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xuICBpbnN0YWxsbWVudHM/OiBUcmFuc2FjdGlvbkluc3RhbGxtZW50cztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG59XG4iXX0=
|