From 05f108cc9be7742ced14babbfb21a9dda8094383 Mon Sep 17 00:00:00 2001 From: ArthurBeaulieu Date: Thu, 9 Nov 2023 16:36:01 +0100 Subject: [PATCH] feat: adapt index to gh page --- assets/dist/MonDourdannais.bundle.js | 12 ++++++------ assets/html/index.html => index.html | 10 +++++----- src/js/MonDourdannais.js | 10 +++++----- src/js/Server.js | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) rename assets/html/index.html => index.html (78%) diff --git a/assets/dist/MonDourdannais.bundle.js b/assets/dist/MonDourdannais.bundle.js index 838d203..1c48845 100644 --- a/assets/dist/MonDourdannais.bundle.js +++ b/assets/dist/MonDourdannais.bundle.js @@ -592,7 +592,7 @@ var MonDourdannais = /*#__PURE__*/function () { value: function _fetchMarkers() { var _this2 = this; return new Promise(function (resolve) { - fetch("/assets/json/MapData.json").then(function (data) { + fetch("./assets/json/MapData.json").then(function (data) { data.json().then(function (jsonData) { _this2._data = jsonData; resolve(); @@ -665,14 +665,14 @@ var MonDourdannais = /*#__PURE__*/function () { address.innerHTML = opts.address; town.innerHTML = opts.town; phone.href = "tel:".concat(opts.phone); - phone.innerHTML = "".concat(opts.phone); + phone.innerHTML = "".concat(opts.phone); website.href = opts.website; - website.innerHTML = 'Consulter le site'; + website.innerHTML = 'Consulter le site'; website.setAttribute('rel', 'noopener noreferrer'); website.setAttribute('target', '_blank'); info.innerHTML = opts.info; openWith.href = "geo:".concat(opts.lat, ",").concat(opts.lng); - openWith.innerHTML = 'Ouvrir dans le GPS'; + openWith.innerHTML = 'Ouvrir dans le GPS'; dom.appendChild(title); dom.appendChild(address); dom.appendChild(town); @@ -850,7 +850,7 @@ var MonDourdannais = /*#__PURE__*/function () { key: "fetchModal", value: function fetchModal(url) { return new Promise(function (resolve) { - fetch("/assets/html/".concat(url, ".html")).then(function (data) { + fetch("./assets/html/".concat(url, ".html")).then(function (data) { data.text().then(function (html) { resolve(document.createRange().createContextualFragment(html)); }); @@ -882,4 +882,4 @@ var MonDourdannais = /*#__PURE__*/function () { window.MonDourdannais = __webpack_exports__["default"]; /******/ })() ; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEJDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEJDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNyQkMsU0FBUyxFQUFFLHFDQUFxQztJQUNoREMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQkMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFDdkIsQ0FBQyxDQUFDO0VBQ0ZLLEtBQUssRUFBRSxJQUFJbEUsTUFBTSxDQUFDQyxDQUFDLENBQUNxRCxJQUFJLENBQUM7SUFDdkJDLE9BQU8sRUFBRSw2QkFBNkI7SUFDdENDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEJDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEJDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNyQkMsU0FBUyxFQUFFLHFDQUFxQztJQUNoREMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQkMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFDdkIsQ0FBQyxDQUFDO0VBQ0ZNLE1BQU0sRUFBRSxJQUFJbkUsTUFBTSxDQUFDQyxDQUFDLENBQUNxRCxJQUFJLENBQUM7SUFDeEJDLE9BQU8sRUFBRSw2QkFBNkI7SUFDdENDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEJDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEJDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNyQkMsU0FBUyxFQUFFLHFDQUFxQztJQUNoREMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQkMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFDdkIsQ0FBQyxDQUFDO0VB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QW1CLElBQUksRUFBSTtVQUM3Q0EsSUFBSSxDQUFDb0YsSUFBSSxDQUFDLENBQUMsQ0FBQ3ZHLElBQUksQ0FBQyxVQUFBd0csSUFBSSxFQUFJO1lBQ3ZCakcsT0FBTyxDQUFDaUIsUUFBUSxDQUFDaUYsV0FBVyxDQUFDLENBQUMsQ0FBQ0Msd0JBQXdCLENBQUNGLElBQUksQ0FBQyxDQUFDO1VBQ2hFLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKO0VBQUM7SUFBQTFPLEdBQUE7SUFBQUMsS0FBQSxFQUdELFNBQUE0SixXQUFXZ0YsS0FBSyxFQUFFQyxLQUFLLEVBQUU7TUFDekIsSUFBSUEsS0FBSyxLQUFLLElBQUksSUFBSUQsS0FBSyxDQUFDRSxNQUFNLENBQUNDLEVBQUUsS0FBSyxlQUFlLElBQUlILEtBQUssQ0FBQ0UsTUFBTSxDQUFDQyxFQUFFLENBQUNDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNsR3ZGLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDeUUsS0FBSyxDQUFDRyxPQUFPLEdBQUcsQ0FBQztRQUMxREQsVUFBVSxDQUFDLFlBQU07VUFDZjVFLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDeUUsS0FBSyxDQUFDQyxPQUFPLEdBQUcsTUFBTTtVQUMvRDNFLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDcUIsU0FBUyxHQUFHLEVBQUU7UUFDekQsQ0FBQyxFQUFFLEdBQUcsQ0FBQztNQUNUO0lBQ0Y7RUFBQztJQUFBaEwsR0FBQTtJQUFBa1AsR0FBQSxFQUdELFNBQUFBLElBQUEsRUFBVztNQUNULE9BQU8sSUFBSSxDQUFDckgsS0FBSztJQUNuQjtFQUFDO0VBQUEsT0FBQUYsY0FBQTtBQUFBO0FBS0gsaUVBQWVBLGNBQWMsRSIsInNvdXJjZXMiOlsid2VicGFjazovL01vbkRvdXJkYW5uYWlzLy4vc3JjL2pzL3V0aWxzL01hcC5qcyIsIndlYnBhY2s6Ly9Nb25Eb3VyZGFubmFpcy8uL3NyYy9qcy91dGlscy9NYXJrZXJFbnVtLmpzIiwid2VicGFjazovL01vbkRvdXJkYW5uYWlzLy4vc3JjL2pzL3V0aWxzL1V0aWxzLmpzIiwid2VicGFjazovL01vbkRvdXJkYW5uYWlzLy4vc3JjL3Njc3MvTW9uRG91cmRhbm5haXMuc2NzcyIsIndlYnBhY2s6Ly9Nb25Eb3VyZGFubmFpcy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9Nb25Eb3VyZGFubmFpcy93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vTW9uRG91cmRhbm5haXMvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9Nb25Eb3VyZGFubmFpcy93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL01vbkRvdXJkYW5uYWlzLy4vc3JjL2pzL01vbkRvdXJkYW5uYWlzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXJrZXJzIGZyb20gJy4vTWFya2VyRW51bS5qcyc7XHJcbmltcG9ydCBVdGlscyBmcm9tICcuL1V0aWxzLmpzJztcclxuXHJcblxyXG5jbGFzcyBNYXAge1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xyXG4gICAgdGhpcy5faWQgPSBvcHRpb25zLnRhcmdldElkO1xyXG4gICAgdGhpcy5fbWFwID0gbnVsbDtcclxuICAgIHRoaXMuX21hcmtzID0ge307XHJcbiAgICB0aGlzLl9wb2x5Z29ucyA9IFtdO1xyXG4gICAgdGhpcy5fbGF5ZXJzID0ge1xyXG4gICAgICBDYXJ0ZTogbnVsbCxcclxuICAgICAgU2F0ZWxsaXRlOiBudWxsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuX2luaXQoKTtcclxuICAgIHRoaXMuX2V2ZW50cygpO1xyXG4gIH1cclxuXHJcblxyXG4gIF9pbml0KCkge1xyXG4gICAgLy8gVXNlIG1haW4gZGl2IHRvIGluamVjdCBPU00gaW50b1xyXG4gICAgdGhpcy5fbWFwID0gd2luZG93LkwubWFwKHRoaXMuX2lkLCB7XHJcbiAgICAgIHpvb21Db250cm9sOiBmYWxzZSxcclxuICAgIH0pLnNldFZpZXcoW1V0aWxzLkNDREhfQ0VOVEVSLkxBVCwgVXRpbHMuQ0NESF9DRU5URVIuTE5HXSwgMTIpO1xyXG4gICAgLy8gQWRkIG1ldGVyIGFuZCBmZWV0IHNjYWxlIG9uIG1hcFxyXG4gICAgd2luZG93LkwuY29udHJvbC5zY2FsZSgpLmFkZFRvKHRoaXMuX21hcCk7XHJcbiAgICAvLyBQcmV2ZW50IHBhbm5pbmcgb3V0c2lkZSBvZiB0aGUgbWFwIGJvdW5kcyBkZWZpbmluZWQgaW4gdXRpbHNcclxuICAgIHRoaXMuX21hcC5zZXRNYXhCb3VuZHMoVXRpbHMuTUFQX0JPVU5EUyk7XHJcbiAgICAvLyBBZGQgbGF5ZXIgZ3JvdXAgdG8gaW50ZXJmYWNlIGFuZCBzdGFydCBtYXAgd2l0aCBvc20gZGVmYXVsdFxyXG4gICAgdGhpcy5fbGF5ZXJzLkNhcnRlID0gVXRpbHMuT1NNX0xBWUVSO1xyXG4gICAgdGhpcy5fbGF5ZXJzLlNhdGVsbGl0ZSA9IFV0aWxzLkVTUklfTEFZRVI7XHJcbiAgICB0aGlzLl9sYXllcnMuQ2FydGUuYWRkVG8odGhpcy5fbWFwKTtcclxuICAgIC8vIEFkZCBsYXllciBzd2l0Y2ggcmFkaW8gb24gYm90dG9tIHJpZ2h0IG9mIHRoZSBtYXBcclxuICAgIHdpbmRvdy5MLmNvbnRyb2wubGF5ZXJzKHRoaXMuX2xheWVycywge30sIHsgcG9zaXRpb246ICdib3R0b21yaWdodCcgfSkuYWRkVG8odGhpcy5fbWFwKTtcclxuICB9XHJcblxyXG5cclxuICBfZXZlbnRzKCkge1xyXG4gICAgLy8gU3Vic2NyaWJlIHRvIGNsaWNrIGV2ZW50IG9uIG1hcCB0byByZWFjdFxyXG4gICAgdGhpcy5fbWFwLm9uKCdjbGljaycsIHRoaXMuX21hcENsaWNrZWQuYmluZCh0aGlzKSk7XHJcbiAgICAvLyBNYXAgaXMgZHJhZ2dlZCBieSB1c2VyIG1vdXNlL2ZpbmdlclxyXG4gICAgdGhpcy5fbWFwLm9uKCdkcmFnJywgKCkgPT4ge1xyXG4gICAgICAvLyBDb25zdHJhaW4gcGFuIHRvIHRoZSBtYXAgYm91bmRzXHJcbiAgICAgIHRoaXMuX21hcC5wYW5JbnNpZGVCb3VuZHMoVXRpbHMuTUFQX0JPVU5EUywgeyBhbmltYXRlOiB0cnVlIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX21hcENsaWNrZWQob3B0cykge1xyXG4gICAgY29uc29sZS5sb2cob3B0cy5sYXRsbmcsIEpTT04uc3RyaW5naWZ5KG9wdHMubGF0bG5nLmxhdCArICcsICcgKyBvcHRzLmxhdGxuZy5sbmcpKTtcclxuICB9XHJcblxyXG5cclxuICBkcmF3VXNlck1hcmtlcigpIHtcclxuICAgIGlmICghd2luZG93Lm1kLnVzZXIubWFya2VyKSB7XHJcbiAgICAgIHdpbmRvdy5tZC51c2VyLm1hcmtlciA9IHdpbmRvdy5MLm1hcmtlcihbd2luZG93Lm1kLnVzZXIubGF0LCB3aW5kb3cubWQudXNlci5sbmddLCB7XHJcbiAgICAgICAgaWNvbjogTWFya2Vycy51c2VyXHJcbiAgICAgIH0pO1xyXG4gICAgICB3aW5kb3cubWQudXNlci5tYXJrZXIuYWRkVG8odGhpcy5fbWFwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdpbmRvdy5tZC51c2VyLm1hcmtlci5zZXRMYXRMbmcod2luZG93Lm1kLnVzZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGFkZE1hcmsob3B0cywgY3JlYXRlUG9wdXApIHtcclxuICAgIGxldCB0eXBlcyA9IG9wdHMudHlwZS5zcGxpdCgnLycpO1xyXG4gICAgbGV0IHR5cGUgPSBvcHRzLnR5cGU7XHJcbiAgICBpZiAodHlwZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICB0eXBlID0gYCR7dHlwZXNbMF19JHt0eXBlc1sxXX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1hcmtlciA9IHdpbmRvdy5MLm1hcmtlcihbb3B0cy5sYXQsIG9wdHMubG5nXSwgeyBcclxuICAgICAgaWNvbjogTWFya2Vyc1t0eXBlXVxyXG4gICAgfSkub24oJ2NsaWNrJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLl9tYXAuZmx5VG8oW29wdHMubGF0LCBvcHRzLmxuZ10sIDE4KTtcclxuICAgIH0pO1xyXG5cclxuICAgIG1hcmtlci5iaW5kUG9wdXAoY3JlYXRlUG9wdXAob3B0cykpO1xyXG4gICAgbWFya2VyLmFkZFRvKHRoaXMuX21hcCk7XHJcbiAgICBpZiAodHlwZXMubGVuZ3RoID4gMSkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9tYXJrc1t0eXBlc1tpXV0pIHtcclxuICAgICAgICAgIHRoaXMuX21hcmtzW3R5cGVzW2ldXSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9tYXJrc1t0eXBlc1tpXV0ucHVzaChtYXJrZXIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXRoaXMuX21hcmtzW3R5cGVdKSB7XHJcbiAgICAgICAgdGhpcy5fbWFya3NbdHlwZV0gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9tYXJrc1t0eXBlXS5wdXNoKG1hcmtlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgYWRkUG9seWdvbihwb2x5Z29uKSB7XHJcbiAgICB0aGlzLl9wb2x5Z29ucy5wdXNoKHdpbmRvdy5MLnBvbHlnb24ocG9seWdvbikuYWRkVG8odGhpcy5fbWFwKSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBNYXA7XHJcbiIsImV4cG9ydCBkZWZhdWx0IE9iamVjdC5mcmVlemUoe1xyXG4gIHJlc3RhdXJhbnQ6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9yZXN0YXVyYW50LnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBiYXI6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9iYXIuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIHRvYmFjY286IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci90b2JhY2NvLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBjZWxsYXI6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9jZWxsYXIuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGdyb2Nlcnk6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9ncm9jZXJ5LnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBzcG9ydDogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL3Nwb3J0LnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBiYWtlcnk6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9icmVhZC5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgc3RvcmU6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9zdG9yZS5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgYm9vazogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2Jvb2suc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGxhbmRtYXJrOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbGFuZG1hcmsuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGNyYWZ0OiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvY3JhZnQuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGdhcmRlbjogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2dhcmRlbi5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgY2FyOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvY2FyLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBnYXM6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9nYXMuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGFuaW1hbDogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2FuaW1hbC5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgbWFpbDogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21haWwuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIHBhcms6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9wYXJrLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICByZWN5Y2xlOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvcmVjeWNsZS5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgYWRtaW5pc3RyYXRpb246IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9hZG1pbmlzdHJhdGlvbi5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgYmFuazogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2Jhbmsuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIG1lZGljYWw6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9tZWRpY2FsLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBkZWNvOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvZGVjby5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksICBcclxuICB1c2VyOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvdXNlci5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF1cclxuICB9KSxcclxuICBiYXJzdG9yZTogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21peGVkL2JhcnN0b3JlLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXVxyXG4gIH0pLFxyXG59KTtcclxuIiwiY29uc3QgZ2V0RGlzdGFuY2VCZXR3ZWVuQ29vcmRzID0gKGZyb20sIHRvKSA9PiB7XHJcbiAgLy8gUmV0dXJuIGRpc3RhbmNlIGluIG1ldGVyc1xyXG4gIGNvbnN0IGxvbjEgPSAoZnJvbVsxXSAqIE1hdGguUEkpIC8gMTgwLFxyXG4gICAgbGF0MSA9IChmcm9tWzBdICogTWF0aC5QSSkgLyAxODAsXHJcbiAgICBsb24yID0gKHRvWzFdICogTWF0aC5QSSkgLyAxODAsXHJcbiAgICBsYXQyID0gKHRvWzBdICogTWF0aC5QSSkgLyAxODA7XHJcblxyXG4gIGNvbnN0IGRlbHRhTGF0ID0gbGF0MiAtIGxhdDE7XHJcbiAgY29uc3QgZGVsdGFMb24gPSBsb24yIC0gbG9uMTtcclxuXHJcbiAgY29uc3QgYSA9IE1hdGgucG93KE1hdGguc2luKGRlbHRhTGF0IC8gMiksIDIpICsgTWF0aC5jb3MobGF0MSkgKiBNYXRoLmNvcyhsYXQyKSAqIE1hdGgucG93KE1hdGguc2luKGRlbHRhTG9uIC8gMiksIDIpO1xyXG4gIGNvbnN0IGMgPSAyICogTWF0aC5hc2luKE1hdGguc3FydChhKSk7XHJcbiAgcmV0dXJuIGMgKiA2MzcxICogMTAwMDtcclxufTtcclxuXHJcblxyXG5jb25zdCBjb252ZXJ0RGlzdGFuY2VUb1N0cmluZyA9IGRpc3RhbmNlID0+IHtcclxuICBpZiAoZGlzdGFuY2UgPiAxMDAwKSB7XHJcbiAgICBkaXN0YW5jZSA9IGAke3ByZWNpc2lvblJvdW5kKGRpc3RhbmNlIC8gMTAwMCwgMil9a21gO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBkaXN0YW5jZSA9IGAke3ByZWNpc2lvblJvdW5kKGRpc3RhbmNlLCAyKX1tYDtcclxuICB9XHJcbiAgcmV0dXJuIGRpc3RhbmNlO1xyXG59O1xyXG5cclxuXHJcbmNvbnN0IGJ1aWxkRGlzdGFuY2VFVEEgPSBkaXN0YW5jZSA9PiB7XHJcbiAgbGV0IGNhck1pbnV0ZXMgPSAwO1xyXG4gIGxldCBjYXJTZWNvbmRzID0gMDtcclxuXHJcbiAgaWYgKGRpc3RhbmNlID4gNTAwMDApIHtcclxuICAgIC8vIE92ZXIgNTBrbSwgd2UgdXNlIGF2ZXJhZ2Ugc3BlZWQgb2YgMTAwa21oXHJcbiAgICBjYXJNaW51dGVzID0gKGRpc3RhbmNlIC8gMTAwMDAwKSAqIDYwO1xyXG4gIH0gZWxzZSBpZiAoZGlzdGFuY2UgPiAxMDAwMCkge1xyXG4gICAgLy8gT3ZlciAxMGttLCB3ZSB1c2UgYXZlcmFnZSBzcGVlZCBvZiA2MGttL2hcclxuICAgIGNhck1pbnV0ZXMgPSAoZGlzdGFuY2UgLyA2MDAwMCkgKiA2MDtcclxuICB9IGVsc2Uge1xyXG4gICAgLy8gVW5kZXIgMTBrbSB3ZSB1c2VyIGF2ZXJhZ2Ugc3BlZWQgb2YgMzBrbS9oXHJcbiAgICBjYXJNaW51dGVzID0gKGRpc3RhbmNlIC8gMzAwMDApICogNjA7XHJcbiAgfVxyXG5cclxuICBjYXJTZWNvbmRzID0gY2FyTWludXRlcyAlIDE7IC8vIEtlZXAgZmxvYXRpbmcgdmFsdWUgZm9yIHNlY29uZHMgY29tcHV0aW5nXHJcbiAgY2FyTWludXRlcyA9IE1hdGguZmxvb3IoY2FyTWludXRlcyk7IC8vIFJlbW92ZSBmbG9hdGluZyB2YWx1ZVxyXG5cclxuICBpZiAoY2FyTWludXRlcyA+IDYwKSB7XHJcbiAgICBjYXJNaW51dGVzID0gYCR7TWF0aC5mbG9vcihjYXJNaW51dGVzIC8gNjApfWggJHtjYXJNaW51dGVzICUgNjB9bWA7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNhck1pbnV0ZXMgPSBgJHtjYXJNaW51dGVzfW1gO1xyXG4gIH1cclxuXHJcbiAgbGV0IHdhbGtNaW51dGVzID0gKGRpc3RhbmNlIC8gNTAwMCkgKiA2MDtcclxuICBsZXQgd2Fsa1NlY29uZHMgPSB3YWxrTWludXRlcyAlIDE7XHJcbiAgd2Fsa01pbnV0ZXMgPSBNYXRoLmZsb29yKHdhbGtNaW51dGVzKTsgLy8gUmVtb3ZlIGZsb2F0aW5nIHZhbHVlXHJcblxyXG4gIGlmICh3YWxrTWludXRlcyA+IDYwKSB7XHJcbiAgICB3YWxrTWludXRlcyA9IGAke01hdGguZmxvb3Iod2Fsa01pbnV0ZXMgLyA2MCl9aCAke3dhbGtNaW51dGVzICUgNjB9bWA7XHJcbiAgfSBlbHNlIHtcclxuICAgIHdhbGtNaW51dGVzID0gYCR7d2Fsa01pbnV0ZXN9bWA7XHJcbiAgfSAgXHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjYXI6IGAke2Nhck1pbnV0ZXN9ICR7TWF0aC5mbG9vcihwcmVjaXNpb25Sb3VuZCgoY2FyU2Vjb25kcyAvIDEwMCkgKiA2MCwgMikgKiAxMDApfXNgLFxyXG4gICAgd2FsazogYCR7d2Fsa01pbnV0ZXN9ICR7TWF0aC5mbG9vcihwcmVjaXNpb25Sb3VuZCgod2Fsa1NlY29uZHMgLyAxMDApICogNjAsIDIpICogMTAwKX1zYCxcclxuICB9O1xyXG59O1xyXG5cclxuXHJcbmNvbnN0IHByZWNpc2lvblJvdW5kID0gKHZhbHVlLCBwcmVjaXNpb24pID0+IHtcclxuICBjb25zdCBtdWx0aXBsaWVyID0gTWF0aC5wb3coMTAsIHByZWNpc2lvbiB8fCAwKTtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIG11bHRpcGxpZXIpIC8gbXVsdGlwbGllcjtcclxufTtcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgQ0NESF9DRU5URVI6IHtcclxuICAgIExBVDogNDguNTMxODM5MDY0NDE5NjIsXHJcbiAgICBMTkc6IDIuMDUzNzU2NzEzODY3MTg4XHJcbiAgfSxcclxuICBNQVBfQk9VTkRTOiB3aW5kb3cuTC5sYXRMbmdCb3VuZHMoXHJcbiAgICB3aW5kb3cuTC5sYXRMbmcoNDguNjc5NDAwNzE1OTYzODk0LCAxLjczOTA2MDY2ODk0NTMxMjcpLFxyXG4gICAgd2luZG93LkwubGF0TG5nKDQ4LjM4NDM5MDc0MTUxODY2LCAyLjM0MzM5NTk5NjA5Mzc1MClcclxuICApLFxyXG4gIE9TTV9MQVlFUjogd2luZG93LkwudGlsZUxheWVyKCdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsIHtcclxuICAgIGF0dHJpYnV0aW9uOiAnJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPicsXHJcbiAgICBtYXhab29tOiAxOSxcclxuICAgIG1pblpvb206IDEyXHJcbiAgfSksXHJcbiAgRVNSSV9MQVlFUjogd2luZG93LkwudGlsZUxheWVyKCdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL1dvcmxkX0ltYWdlcnkvTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nLCB7XHJcbiAgICBhdHRyaWJ1dGlvbjogJyZjb3B5OyA8YSBocmVmPVwiaHR0cHM6Ly93d3cuYXJjZ2lzLmNvbS9ob21lL2l0ZW0uaHRtbD9pZD0xMGRmMjI3OWY5Njg0ZTRhOWY2YTdmMDhmZWJhYzJhOVwiPkVzcmkgSW1hZ2VyeTwvYT4nLFxyXG4gICAgbWF4Wm9vbTogMTksXHJcbiAgICBtaW5ab29tOiAxMlxyXG4gIH0pLFxyXG4gIGdldERpc3RhbmNlQmV0d2VlbkNvb3JkczogZ2V0RGlzdGFuY2VCZXR3ZWVuQ29vcmRzLFxyXG4gIGNvbnZlcnREaXN0YW5jZVRvU3RyaW5nOiBjb252ZXJ0RGlzdGFuY2VUb1N0cmluZyxcclxuICBidWlsZERpc3RhbmNlRVRBOiBidWlsZERpc3RhbmNlRVRBLFxyXG4gIHByZWNpc2lvblJvdW5kOiBwcmVjaXNpb25Sb3VuZFxyXG59O1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImltcG9ydCAnLi4vc2Nzcy9Nb25Eb3VyZGFubmFpcy5zY3NzJztcclxuaW1wb3J0IE1hcCBmcm9tICcuL3V0aWxzL01hcC5qcyc7XHJcbmltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzL1V0aWxzLmpzJztcclxuXHJcblxyXG5jbGFzcyBNb25Eb3VyZGFubmFpcyB7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX21hcCA9IG51bGw7XHJcbiAgICB0aGlzLl9sYXllcnMgPSB7fTtcclxuICAgIHRoaXMuX2RhdGEgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuX3VzZXIgPSB7XHJcbiAgICAgIGxhdDogVXRpbHMuSE9NRV9MQVQsXHJcbiAgICAgIGxuZzogVXRpbHMuSE9NRV9MTkcsXHJcbiAgICAgIGFjY3VyYWN5OiAwLFxyXG4gICAgICBtYXJrZXI6IG51bGxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5faW5pdEdlb2xvY2F0aW9uKClcclxuICAgICAgLnRoZW4odGhpcy5fZmV0Y2hNYXJrZXJzLmJpbmQodGhpcykpXHJcbiAgICAgIC50aGVuKHRoaXMuX2luaXRNYXAuYmluZCh0aGlzKSlcclxuICAgICAgLnRoZW4odGhpcy5faW5pdEV2ZW50cy5iaW5kKHRoaXMpKVxyXG4gICAgICAudGhlbih0aGlzLl9idWlsZE1hcmtlcnMuYmluZCh0aGlzKSlcclxuICAgICAgLnRoZW4odGhpcy5fYnVpbGRQb2x5Z29ucy5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG5cclxuICBfaW5pdEdlb2xvY2F0aW9uKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG5cdFx0XHRpZiAoJ2dlb2xvY2F0aW9uJyBpbiBuYXZpZ2F0b3IpIHtcclxuXHRcdFx0XHRjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgICAgZW5hYmxlSGlnaEFjY3VyYWN5OiB0cnVlLCAvLyBNb3JlIGNvbnN1cHRpb24sIGJldHRlciBwb3NpdGlvblxyXG4gICAgICAgICAgbWF4aW11bUFnZTogMTAwMCwgLy8gQSBwb3NpdGlvbiB3aWxsIGxhc3QgMXMgbWF4aW11bVxyXG4gICAgICAgICAgdGltZW91dDogOTAwLCAvLyBBIHBvc2l0aW9uIGlzIHVwZGF0ZWQgaW4gMC45cyBtYXhpbXVtXHJcbiAgICAgICAgfTtcclxuXHRcdFx0XHR0aGlzLl93YXRjaElkID0gbmF2aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24ocG9zaXRpb24gPT4ge1xyXG5cdFx0XHRcdFx0Ly8gVXBkYXRlIHNhdmVkIHVzZXIgcG9zaXRpb25cclxuXHRcdFx0XHRcdHRoaXMuX3VzZXIubGF0ID0gcG9zaXRpb24uY29vcmRzLmxhdGl0dWRlO1xyXG5cdFx0XHRcdFx0dGhpcy5fdXNlci5sbmcgPSBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlO1xyXG5cdFx0XHRcdFx0dGhpcy5fdXNlci5hY2N1cmFjeSA9IHBvc2l0aW9uLmNvb3Jkcy5hY2N1cmFjeTtcclxuXHRcdFx0XHRcdC8vIE9ubHkgZHJhdyBtYXJrZXIgaWYgbWFwIGlzIGFscmVhZHkgY3JlYXRlZFxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuX21hcCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tYXAuZHJhd1VzZXJNYXJrZXIoKTtcclxuICAgICAgICAgIH1cclxuXHRcdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0XHR9LCByZXNvbHZlLCBvcHRpb25zKTtcclxuICAgICAgfSBlbHNlIHtcclxuXHRcdFx0XHRyZXNvbHZlKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIF9mZXRjaE1hcmtlcnMoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgIGZldGNoKGAvYXNzZXRzL2pzb24vTWFwRGF0YS5qc29uYCkudGhlbihkYXRhID0+IHtcclxuICAgICAgICBkYXRhLmpzb24oKS50aGVuKGpzb25EYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMuX2RhdGEgPSBqc29uRGF0YTtcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9KS5jYXRjaChyZXNvbHZlKTtcclxuICAgICAgfSkuY2F0Y2gocmVzb2x2ZSk7XHJcbiAgICB9KTtcclxuICB9ICBcclxuXHJcblxyXG4gIF9pbml0TWFwKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICB0aGlzLl9tYXAgPSBuZXcgTWFwKHtcclxuICAgICAgICB0YXJnZXRJZDogJ3Nhcm1hdGVzLWxhbmQnXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXNvbHZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBfaW5pdEV2ZW50cygpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgLy8gTGlzdGVuaW5nIHRvIG1vZGFsIGV2ZW50XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsb3NlTW9kYWwuYmluZCh0aGlzKSk7XHJcbiAgICAgIHJlc29sdmUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIF9idWlsZE1hcmtlcnMoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9kYXRhLm1hcmtlcnMpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuX2RhdGEubWFya2Vyc1trZXlzW2ldXS5sZW5ndGg7ICsraikge1xyXG4gICAgICAgICAgdGhpcy5fbWFwLmFkZE1hcmsodGhpcy5fZGF0YS5tYXJrZXJzW2tleXNbaV1dW2pdLCB0aGlzLl9jcmVhdGVNYXJrZXJQb3B1cC5iaW5kKHRoaXMpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX2J1aWxkUG9seWdvbnMoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9kYXRhLmNpdHlCb3VuZHMpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgICB0aGlzLl9tYXAuYWRkUG9seWdvbih0aGlzLl9kYXRhLmNpdHlCb3VuZHNba2V5c1tpXV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJlc29sdmUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qIE1hcCBVdGlscyAqL1xyXG5cclxuXHJcbiAgX2NyZWF0ZU1hcmtlclBvcHVwKG9wdHMpIHtcclxuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xyXG4gICAgY29uc3QgdGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdIMycpO1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0knKTtcclxuICAgIGNvbnN0IHRvd24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdJJyk7XHJcbiAgICBjb25zdCBwaG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0EnKTtcclxuICAgIGNvbnN0IHdlYnNpdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdBJyk7XHJcbiAgICBjb25zdCBpbmZvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnUCcpO1xyXG4gICAgY29uc3Qgb3BlbldpdGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdBJyk7XHJcblxyXG4gICAgZG9tLmNsYXNzTGlzdC5hZGQoJ21hcmtlci1wb3B1cCcpO1xyXG4gICAgdGl0bGUuaW5uZXJIVE1MID0gb3B0cy5uYW1lO1xyXG4gICAgYWRkcmVzcy5pbm5lckhUTUwgPSBvcHRzLmFkZHJlc3M7XHJcbiAgICB0b3duLmlubmVySFRNTCA9IG9wdHMudG93bjtcclxuICAgIHBob25lLmhyZWYgPSBgdGVsOiR7b3B0cy5waG9uZX1gO1xyXG4gICAgcGhvbmUuaW5uZXJIVE1MID0gYDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvaWNvbi9waG9uZS5zdmdcIj4ke29wdHMucGhvbmV9YDtcclxuICAgIHdlYnNpdGUuaHJlZiA9IG9wdHMud2Vic2l0ZTtcclxuICAgIHdlYnNpdGUuaW5uZXJIVE1MID0gJzxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvaWNvbi93ZWIuc3ZnXCI+Q29uc3VsdGVyIGxlIHNpdGUnO1xyXG4gICAgd2Vic2l0ZS5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdub29wZW5lciBub3JlZmVycmVyJyk7XHJcbiAgICB3ZWJzaXRlLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpO1xyXG4gICAgaW5mby5pbm5lckhUTUwgPSBvcHRzLmluZm87XHJcbiAgICBvcGVuV2l0aC5ocmVmID0gYGdlbzoke29wdHMubGF0fSwke29wdHMubG5nfWA7XHJcbiAgICBvcGVuV2l0aC5pbm5lckhUTUwgPSAnPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9pY29uL3Bpbi5zdmdcIj5PdXZyaXIgZGFucyBsZSBHUFMnO1xyXG5cclxuICAgIGRvbS5hcHBlbmRDaGlsZCh0aXRsZSk7XHJcbiAgICBkb20uYXBwZW5kQ2hpbGQoYWRkcmVzcyk7XHJcbiAgICBkb20uYXBwZW5kQ2hpbGQodG93bik7XHJcblxyXG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5fbWFya2VyT3BlbmVkU3RhdGUob3B0cy50aW1ldGFibGUpO1xyXG4gICAgZG9tLmFwcGVuZENoaWxkKGJ1dHRvbik7XHJcblxyXG4gICAgaWYgKG9wdHMudGltZXRhYmxlLmxlbmd0aCA+IDApIHtcclxuICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fdGltZXRiYWxlTW9kYWwuYmluZCh0aGlzLCBvcHRzKSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmIChvcHRzLmluZm8gIT09ICcnKSB7XHJcbiAgICAgIGRvbS5hcHBlbmRDaGlsZChpbmZvKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0cy5waG9uZSAhPT0gJycpIHtcclxuICAgICAgZG9tLmFwcGVuZENoaWxkKHBob25lKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0cy53ZWJzaXRlICE9PSAnJykge1xyXG4gICAgICBkb20uYXBwZW5kQ2hpbGQod2Vic2l0ZSk7XHJcbiAgICB9ICAgIFxyXG4gICAgXHJcbiAgICBkb20uYXBwZW5kQ2hpbGQob3BlbldpdGgpO1xyXG5cclxuICAgIHJldHVybiBkb207XHJcbiAgfVxyXG5cclxuXHJcbiAgX21hcmtlck9wZW5lZFN0YXRlKHRpbWV0YWJsZSkge1xyXG4gICAgY29uc3QgZG9tID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XHJcbiAgICBjb25zdCBzdGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0g1Jyk7XHJcbiAgICBjb25zdCBtb3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnSScpO1xyXG4gICAgZG9tLmNsYXNzTGlzdC5hZGQoJ21hcmtlci1vcGVuZWQnKTtcclxuICAgIGRvbS5hcHBlbmRDaGlsZChzdGF0ZSk7XHJcbiAgICBkb20uYXBwZW5kQ2hpbGQobW9yZSk7XHJcbiAgICBcclxuICAgIGlmICh0aW1ldGFibGUubGVuZ3RoKSB7XHJcbiAgICAgIG1vcmUuaW5uZXJIVE1MID0gJ1ZvaXIgbGVzIGhvcmFpcmVzJztcclxuICAgICAgdGhpcy5fY2hlY2tUaW1lKHRpbWV0YWJsZSwgZG9tKTtcclxuICAgICAgc2V0SW50ZXJ2YWwodGhpcy5fY2hlY2tUaW1lLmJpbmQodGhpcywgdGltZXRhYmxlLCBkb20pLCAzMDAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tYXJrZXJJc09wZW5lZChkb20sIHRydWUpO1xyXG4gICAgICBtb3JlLmlubmVySFRNTCA9ICdUb3Vqb3VycyBvdXZlcnQnOyAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkb207XHJcbiAgfVxyXG5cclxuXHJcbiAgX2NoZWNrVGltZSh0aW1ldGFibGUsIGRvbSkge1xyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGxldCBob3VyID0gbm93LmdldEhvdXJzKCk7XHJcbiAgICBsZXQgbWludXRlcyA9IG5vdy5nZXRNaW51dGVzKCk7XHJcbiAgICBpZiAobWludXRlcyA8IDEwKSB7XHJcbiAgICAgIG1pbnV0ZXMgPSBgMCR7bWludXRlc31gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRheU9mV2VlayA9IG5vdy5nZXREYXkoKSAtIDE7XHJcbiAgICBjb25zdCBvcGVuaW5nVGltZSA9IHBhcnNlSW50KGAke3RpbWV0YWJsZVtkYXlPZldlZWtdLm9wZW4uaH0ke3RpbWV0YWJsZVtkYXlPZldlZWtdLm9wZW4ubX1gKTtcclxuICAgIGNvbnN0IGNsb3NpbmdUaW1lID0gcGFyc2VJbnQoYCR7dGltZXRhYmxlW2RheU9mV2Vla10uY2xvc2UuaH0ke3RpbWV0YWJsZVtkYXlPZldlZWtdLmNsb3NlLm19YCk7XHJcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IHBhcnNlSW50KGAke2hvdXJ9JHttaW51dGVzfWApO1xyXG4gICAgLy8gV29uJ3Qgd29yayBpZiB0aW1ldGFibGUgb3Blbi9jbG9zZSBob3VycyBhcmVuJ3Qgb24gdGhlIHNhbWUgZGF5XHJcbiAgICBpZiAodGltZXRhYmxlW2RheU9mV2Vla10uaXNPcGVuICYmIGlzTmFOKG9wZW5pbmdUaW1lKSkgeyAvLyAyNC83IG9wZW5pbmdcclxuICAgICAgdGhpcy5fbWFya2VySXNPcGVuZWQoZG9tLCB0cnVlKTtcclxuICAgIH0gZWxzZSBpZiAodGltZXRhYmxlW2RheU9mV2Vla10uaXNPcGVuICYmIGN1cnJlbnRUaW1lID49IG9wZW5pbmdUaW1lICYmIGN1cnJlbnRUaW1lIDwgY2xvc2luZ1RpbWUpIHtcclxuICAgICAgaWYgKHRpbWV0YWJsZVtkYXlPZldlZWtdLmJyZWFrLmhhc0JyZWFrKSB7XHJcbiAgICAgICAgY29uc3QgYnJlYWtPcGVuaW5nVGltZSA9IHBhcnNlSW50KGAke3RpbWV0YWJsZVtkYXlPZldlZWtdLmJyZWFrLmVuZC5ofSR7dGltZXRhYmxlW2RheU9mV2Vla10uYnJlYWsuZW5kLm19YCk7XHJcbiAgICAgICAgY29uc3QgYnJlYWtDbG9zaW5nVGltZSA9IHBhcnNlSW50KGAke3RpbWV0YWJsZVtkYXlPZldlZWtdLmJyZWFrLnN0YXJ0Lmh9JHt0aW1ldGFibGVbZGF5T2ZXZWVrXS5icmVhay5zdGFydC5tfWApO1xyXG4gICAgICAgIGlmIChjdXJyZW50VGltZSA+PSBicmVha0Nsb3NpbmdUaW1lICYmIGN1cnJlbnRUaW1lIDwgYnJlYWtPcGVuaW5nVGltZSkge1xyXG4gICAgICAgICAgdGhpcy5fbWFya2VySXNDbG9zZWQoZG9tKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fbWFya2VySXNPcGVuZWQoZG9tKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fbWFya2VySXNPcGVuZWQoZG9tKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsgICAgICBcclxuICAgICAgdGhpcy5fbWFya2VySXNDbG9zZWQoZG9tKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBfbWFya2VySXNPcGVuZWQoZG9tLCBhbHdheXNPcGVuZWQpIHtcclxuICAgIGRvbS5maXJzdENoaWxkLmlubmVySFRNTCA9IGBPdXZlcnRgO1xyXG4gICAgaWYgKGFsd2F5c09wZW5lZCA9PT0gdHJ1ZSkge1xyXG4gICAgICBkb20ubGFzdENoaWxkLmlubmVySFRNTCA9IGAyNGgvMjRoIGV0IDdqLzdqYDtcclxuICAgIH1cclxuICAgIGRvbS5jbGFzc0xpc3QuYWRkKCdvcGVuZWQnKTtcclxuICB9XHJcblxyXG5cclxuICBfbWFya2VySXNDbG9zZWQoZG9tKSB7XHJcbiAgICBkb20uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSBgRmVybcOpYDtcclxuICAgIGRvbS5sYXN0Q2hpbGQuaW5uZXJIVE1MID0gYFZvaXIgbGVzIGhvcmFpcmVzYDtcclxuICAgIGRvbS5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuZWQnKTtcclxuICB9XHJcblxyXG5cclxuICBfdGltZXRiYWxlTW9kYWwob3B0cykge1xyXG4gICAgdGhpcy5mZXRjaE1vZGFsKCd0aW1ldGFibGVtb2RhbCcpLnRoZW4oZG9tID0+IHtcclxuICAgICAgLy8gVXBkYXRpbmcgbW9kYWwgaGVhZGVyIGFuZCBpbmZvXHJcbiAgICAgIGRvbS5xdWVyeVNlbGVjdG9yKCcjbWFyay1uYW1lJykuaW5uZXJIVE1MID0gb3B0cy5uYW1lO1xyXG4gICAgICBkb20ucXVlcnlTZWxlY3RvcignI21hcmstYWRkcmVzcycpLmlubmVySFRNTCA9IGAke29wdHMuYWRkcmVzc30sICR7b3B0cy50b3dufWA7XHJcbiAgICAgIGNvbnN0IGRpc3RhbmNlID0gVXRpbHMuZ2V0RGlzdGFuY2VCZXR3ZWVuQ29vcmRzKFtvcHRzLmxhdCwgb3B0cy5sbmddLCBbdGhpcy5fdXNlci5sYXQsIHRoaXMuX3VzZXIubG5nXSk7XHJcbiAgICAgIGRvbS5xdWVyeVNlbGVjdG9yKCcjbWFyay1kaXN0YW5jZScpLmlubmVySFRNTCA9IGBWb3VzIMOodGVzIMOgIGVudmlyb24gJHtVdGlscy5jb252ZXJ0RGlzdGFuY2VUb1N0cmluZyhkaXN0YW5jZSl9IGRlIDxiPiR7b3B0cy5uYW1lfTwvYj4gw6Agdm9sIGQnb2lzZWF1YDtcclxuICAgICAgY29uc3QgZXRhID0gVXRpbHMuYnVpbGREaXN0YW5jZUVUQShkaXN0YW5jZSk7XHJcbiAgICAgIGRvbS5xdWVyeVNlbGVjdG9yKCcjbWFyay1ldGEnKS5pbm5lckhUTUwgPSBgQ2UgcXVpIHJlcHLDqXNlbnRlIGVudmlyb24gJHtldGEuY2FyfSBlbiB2b2l0dXJlLCBvdSAke2V0YS53YWxrfSDDoCBwaWVkLmA7XHJcbiAgICAgIGRvbS5xdWVyeVNlbGVjdG9yKCcjbWFyay1zdGF0ZScpLmFwcGVuZENoaWxkKHRoaXMuX21hcmtlck9wZW5lZFN0YXRlKG9wdHMudGltZXRhYmxlKSk7XHJcbiAgICAgIC8vIE5vdyB1cGRhdGUgZGF5IGJ5IGRheVxyXG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBjb25zdCBkYXlPZldlZWsgPSBub3cuZ2V0RGF5KCkgLSAxO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMudGltZXRhYmxlLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgY29uc3QgZGF5RG9tID0gZG9tLnF1ZXJ5U2VsZWN0b3IoJyN0aW1ldGFibGUnKS5jaGlsZHJlbltpXTtcclxuICAgICAgICBpZiAob3B0cy50aW1ldGFibGVbaV0uaXNPcGVuID09PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb25zdCBtb3JuaW5nID0gZGF5RG9tLmxhc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQ7XHJcbiAgICAgICAgICBjb25zdCBhZnRlcm5vb24gPSBkYXlEb20ubGFzdEVsZW1lbnRDaGlsZC5sYXN0RWxlbWVudENoaWxkO1xyXG4gICAgICAgICAgaWYgKG9wdHMudGltZXRhYmxlW2ldLmJyZWFrICYmIG9wdHMudGltZXRhYmxlW2ldLmJyZWFrLmhhc0JyZWFrID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIG1vcm5pbmcuaW5uZXJIVE1MID0gYDxwPiR7b3B0cy50aW1ldGFibGVbaV0ub3Blbi5ofToke29wdHMudGltZXRhYmxlW2ldLm9wZW4ubX0g4oCSICR7b3B0cy50aW1ldGFibGVbaV0uYnJlYWsuc3RhcnQuaH06JHtvcHRzLnRpbWV0YWJsZVtpXS5icmVhay5zdGFydC5tfTwvcD5gO1xyXG4gICAgICAgICAgICBtb3JuaW5nLmNsYXNzTGlzdC5hZGQoJ2ZpbGxlZCcpOyAvLyBNb3JuaW5nXHJcbiAgICAgICAgICAgIG1vcm5pbmcuY2xhc3NMaXN0LmFkZCgnc3BsaXRlZCcpOyAvLyBNb3JuaW5nXHJcbiAgICAgICAgICAgIGFmdGVybm9vbi5pbm5lckhUTUwgPSBgPHA+JHtvcHRzLnRpbWV0YWJsZVtpXS5icmVhay5lbmQuaH06JHtvcHRzLnRpbWV0YWJsZVtpXS5icmVhay5lbmQubX0g4oCSICR7b3B0cy50aW1ldGFibGVbaV0uY2xvc2UuaH06JHtvcHRzLnRpbWV0YWJsZVtpXS5jbG9zZS5tfTwvcD5gO1xyXG4gICAgICAgICAgICBhZnRlcm5vb24uY2xhc3NMaXN0LmFkZCgnZmlsbGVkJyk7IC8vIEFmdGVybm9vblxyXG4gICAgICAgICAgICBhZnRlcm5vb24uY2xhc3NMaXN0LmFkZCgnc3BsaXRlZCcpOyAvLyBBZnRlcm5vb25cclxuICAgICAgICAgIH0gZWxzZSBpZiAob3B0cy50aW1ldGFibGVbaV0ub3Blbi5oICYmIG9wdHMudGltZXRhYmxlW2ldLmNsb3NlLmgpIHtcclxuICAgICAgICAgICAgbW9ybmluZy5pbm5lckhUTUwgPSBgPHA+JHtvcHRzLnRpbWV0YWJsZVtpXS5vcGVuLmh9OiR7b3B0cy50aW1ldGFibGVbaV0ub3Blbi5tfTwvcD5gO1xyXG4gICAgICAgICAgICBtb3JuaW5nLmNsYXNzTGlzdC5hZGQoJ2ZpbGxlZCcpOyAvLyBNb3JuaW5nXHJcbiAgICAgICAgICAgIGFmdGVybm9vbi5pbm5lckhUTUwgPSBgPHA+JHtvcHRzLnRpbWV0YWJsZVtpXS5jbG9zZS5ofToke29wdHMudGltZXRhYmxlW2ldLmNsb3NlLm19PC9wPmA7XHJcbiAgICAgICAgICAgIGFmdGVybm9vbi5jbGFzc0xpc3QuYWRkKCdmaWxsZWQnKTsgLy8gQWZ0ZXJub29uXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtb3JuaW5nLmlubmVySFRNTCA9IGA8cD4wMDowMDwvcD5gO1xyXG4gICAgICAgICAgICBtb3JuaW5nLmNsYXNzTGlzdC5hZGQoJ2ZpbGxlZCcpOyAvLyBNb3JuaW5nXHJcbiAgICAgICAgICAgIGFmdGVybm9vbi5pbm5lckhUTUwgPSBgPHA+MjQ6MDA8L3A+YDtcclxuICAgICAgICAgICAgYWZ0ZXJub29uLmNsYXNzTGlzdC5hZGQoJ2ZpbGxlZCcpOyAvLyBBZnRlcm5vb25cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGF5RG9tLmxhc3RFbGVtZW50Q2hpbGQuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9XCJjbG9zZWRcIj48cD5GZXJtw6k8L3A+PC9kaXY+YDsgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1hdGNoaW5nIHRvZGF5J3MgZGF5XHJcbiAgICAgICAgaWYgKGkgPT09IGRheU9mV2Vlaykge1xyXG4gICAgICAgICAgZGF5RG9tLmNsYXNzTGlzdC5hZGQoJ3RvZGF5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtb3ZlcmxheScpLmFwcGVuZENoaWxkKGRvbSk7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5Jykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtb3ZlcmxheScpLnN0eWxlLm9wYWNpdHkgPSAxLCA1MCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4vKiBTZWFyY2ggbW9kYWwgbWV0aG9kcyAqL1xyXG5cclxuLypcclxuICBfc2VhcmNoTW9kYWwoKSB7XHJcbiAgICB0aGlzLl9mZXRjaE1vZGFsKCdzZWFyY2htb2RhbCcpLnRoZW4oZG9tID0+IHtcclxuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuX21hcmtzKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgZG9tLmZpcnN0RWxlbWVudENoaWxkLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZU1hcmtDYXRlZ29yeVNlYXJjaEljb24oa2V5c1tpXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5JykuYXBwZW5kQ2hpbGQoZG9tKTtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXknKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5Jykuc3R5bGUub3BhY2l0eSA9IDEsIDUwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIF9jcmVhdGVNYXJrQ2F0ZWdvcnlTZWFyY2hJY29uKHR5cGUpIHtcclxuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xyXG4gICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnSU1HJyk7XHJcbiAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ1AnKTtcclxuICAgIGRvbS5jbGFzc0xpc3QuYWRkKCdmaWx0ZXJpbmctZWxlbWVudCcpO1xyXG4gICAgaW1nLnNyYyA9IGAvYXNzZXRzL2ltZy9tYXJrZXIvJHt0eXBlfS5zdmdgO1xyXG4gICAgbGFiZWwuaW5uZXJIVE1MID0gdHlwZTtcclxuICAgIGRvbS5hcHBlbmRDaGlsZChpbWcpO1xyXG4gICAgZG9tLmFwcGVuZENoaWxkKGxhYmVsKTtcclxuICAgIHJldHVybiBkb207XHJcbiAgfVxyXG4qL1xyXG5cclxuICAvKiBNb2RhbCBtZXRob2RzICovXHJcblxyXG4gIGZldGNoTW9kYWwodXJsKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgIGZldGNoKGAvYXNzZXRzL2h0bWwvJHt1cmx9Lmh0bWxgKS50aGVuKGRhdGEgPT4ge1xyXG4gICAgICAgIGRhdGEudGV4dCgpLnRoZW4oaHRtbCA9PiB7XHJcbiAgICAgICAgICByZXNvbHZlKGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGh0bWwpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBjbG9zZU1vZGFsKGV2ZW50LCBmb3JjZSkge1xyXG5cdFx0aWYgKGZvcmNlID09PSB0cnVlIHx8IGV2ZW50LnRhcmdldC5pZCA9PT0gJ21vZGFsLW92ZXJsYXknIHx8IGV2ZW50LnRhcmdldC5pZC5pbmRleE9mKCdjbG9zZScpICE9PSAtMSkge1xyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtb3ZlcmxheScpLnN0eWxlLm9wYWNpdHkgPSAwO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtb3ZlcmxheScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXknKS5pbm5lckhUTUwgPSAnJztcclxuICAgICAgfSwgMzAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBnZXQgdXNlcigpIHtcclxuICAgIHJldHVybiB0aGlzLl91c2VyO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBNb25Eb3VyZGFubmFpcztcclxuIl0sIm5hbWVzIjpbIk1hcmtlcnMiLCJVdGlscyIsIk1hcCIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfaWQiLCJ0YXJnZXRJZCIsIl9tYXAiLCJfbWFya3MiLCJfcG9seWdvbnMiLCJfbGF5ZXJzIiwiQ2FydGUiLCJTYXRlbGxpdGUiLCJfaW5pdCIsIl9ldmVudHMiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsIndpbmRvdyIsIkwiLCJtYXAiLCJ6b29tQ29udHJvbCIsInNldFZpZXciLCJDQ0RIX0NFTlRFUiIsIkxBVCIsIkxORyIsImNvbnRyb2wiLCJzY2FsZSIsImFkZFRvIiwic2V0TWF4Qm91bmRzIiwiTUFQX0JPVU5EUyIsIk9TTV9MQVlFUiIsIkVTUklfTEFZRVIiLCJsYXllcnMiLCJwb3NpdGlvbiIsIl90aGlzIiwib24iLCJfbWFwQ2xpY2tlZCIsImJpbmQiLCJwYW5JbnNpZGVCb3VuZHMiLCJhbmltYXRlIiwib3B0cyIsImNvbnNvbGUiLCJsb2ciLCJsYXRsbmciLCJKU09OIiwic3RyaW5naWZ5IiwibGF0IiwibG5nIiwiZHJhd1VzZXJNYXJrZXIiLCJtZCIsInVzZXIiLCJtYXJrZXIiLCJpY29uIiwic2V0TGF0TG5nIiwiYWRkTWFyayIsImNyZWF0ZVBvcHVwIiwiX3RoaXMyIiwidHlwZXMiLCJ0eXBlIiwic3BsaXQiLCJsZW5ndGgiLCJjb25jYXQiLCJmbHlUbyIsImJpbmRQb3B1cCIsImkiLCJwdXNoIiwiYWRkUG9seWdvbiIsInBvbHlnb24iLCJPYmplY3QiLCJmcmVlemUiLCJyZXN0YXVyYW50IiwiSWNvbiIsImljb25VcmwiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJwb3B1cEFuY2hvciIsInNoYWRvd1VybCIsInNoYWRvd1NpemUiLCJzaGFkb3dBbmNob3IiLCJiYXIiLCJ0b2JhY2NvIiwiY2VsbGFyIiwiZ3JvY2VyeSIsInNwb3J0IiwiYmFrZXJ5Iiwic3RvcmUiLCJib29rIiwibGFuZG1hcmsiLCJjcmFmdCIsImdhcmRlbiIsImNhciIsImdhcyIsImFuaW1hbCIsIm1haWwiLCJwYXJrIiwicmVjeWNsZSIsImFkbWluaXN0cmF0aW9uIiwiYmFuayIsIm1lZGljYWwiLCJkZWNvIiwiYmFyc3RvcmUiLCJnZXREaXN0YW5jZUJldHdlZW5Db29yZHMiLCJmcm9tIiwidG8iLCJsb24xIiwiTWF0aCIsIlBJIiwibGF0MSIsImxvbjIiLCJsYXQyIiwiZGVsdGFMYXQiLCJkZWx0YUxvbiIsImEiLCJwb3ciLCJzaW4iLCJjb3MiLCJjIiwiYXNpbiIsInNxcnQiLCJjb252ZXJ0RGlzdGFuY2VUb1N0cmluZyIsImRpc3RhbmNlIiwicHJlY2lzaW9uUm91bmQiLCJidWlsZERpc3RhbmNlRVRBIiwiY2FyTWludXRlcyIsImNhclNlY29uZHMiLCJmbG9vciIsIndhbGtNaW51dGVzIiwid2Fsa1NlY29uZHMiLCJ3YWxrIiwicHJlY2lzaW9uIiwibXVsdGlwbGllciIsInJvdW5kIiwibGF0TG5nQm91bmRzIiwibGF0TG5nIiwidGlsZUxheWVyIiwiYXR0cmlidXRpb24iLCJtYXhab29tIiwibWluWm9vbSIsIk1vbkRvdXJkYW5uYWlzIiwiX2RhdGEiLCJfdXNlciIsIkhPTUVfTEFUIiwiSE9NRV9MTkciLCJhY2N1cmFjeSIsIl9pbml0R2VvbG9jYXRpb24iLCJ0aGVuIiwiX2ZldGNoTWFya2VycyIsIl9pbml0TWFwIiwiX2luaXRFdmVudHMiLCJfYnVpbGRNYXJrZXJzIiwiX2J1aWxkUG9seWdvbnMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIm5hdmlnYXRvciIsImVuYWJsZUhpZ2hBY2N1cmFjeSIsIm1heGltdW1BZ2UiLCJ0aW1lb3V0IiwiX3dhdGNoSWQiLCJnZW9sb2NhdGlvbiIsIndhdGNoUG9zaXRpb24iLCJjb29yZHMiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsImZldGNoIiwiZGF0YSIsImpzb24iLCJqc29uRGF0YSIsIl90aGlzMyIsIl90aGlzNCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJhZGRFdmVudExpc3RlbmVyIiwiY2xvc2VNb2RhbCIsIl90aGlzNSIsImtleXMiLCJtYXJrZXJzIiwiaiIsIl9jcmVhdGVNYXJrZXJQb3B1cCIsIl90aGlzNiIsImNpdHlCb3VuZHMiLCJkb20iLCJjcmVhdGVFbGVtZW50IiwidGl0bGUiLCJhZGRyZXNzIiwidG93biIsInBob25lIiwid2Vic2l0ZSIsImluZm8iLCJvcGVuV2l0aCIsImNsYXNzTGlzdCIsImFkZCIsImlubmVySFRNTCIsIm5hbWUiLCJocmVmIiwic2V0QXR0cmlidXRlIiwiYXBwZW5kQ2hpbGQiLCJidXR0b24iLCJfbWFya2VyT3BlbmVkU3RhdGUiLCJ0aW1ldGFibGUiLCJfdGltZXRiYWxlTW9kYWwiLCJzdGF0ZSIsIm1vcmUiLCJfY2hlY2tUaW1lIiwic2V0SW50ZXJ2YWwiLCJfbWFya2VySXNPcGVuZWQiLCJub3ciLCJEYXRlIiwiaG91ciIsImdldEhvdXJzIiwibWludXRlcyIsImdldE1pbnV0ZXMiLCJkYXlPZldlZWsiLCJnZXREYXkiLCJvcGVuaW5nVGltZSIsInBhcnNlSW50Iiwib3BlbiIsImgiLCJtIiwiY2xvc2luZ1RpbWUiLCJjbG9zZSIsImN1cnJlbnRUaW1lIiwiaXNPcGVuIiwiaXNOYU4iLCJoYXNCcmVhayIsImJyZWFrT3BlbmluZ1RpbWUiLCJlbmQiLCJicmVha0Nsb3NpbmdUaW1lIiwic3RhcnQiLCJfbWFya2VySXNDbG9zZWQiLCJhbHdheXNPcGVuZWQiLCJmaXJzdENoaWxkIiwibGFzdENoaWxkIiwicmVtb3ZlIiwiX3RoaXM3IiwiZmV0Y2hNb2RhbCIsInF1ZXJ5U2VsZWN0b3IiLCJldGEiLCJkYXlEb20iLCJjaGlsZHJlbiIsIm1vcm5pbmciLCJsYXN0RWxlbWVudENoaWxkIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJhZnRlcm5vb24iLCJzdHlsZSIsImRpc3BsYXkiLCJzZXRUaW1lb3V0Iiwib3BhY2l0eSIsInVybCIsInRleHQiLCJodG1sIiwiY3JlYXRlUmFuZ2UiLCJjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQiLCJldmVudCIsImZvcmNlIiwidGFyZ2V0IiwiaWQiLCJpbmRleE9mIiwiZ2V0Il0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEJDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEJDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNyQkMsU0FBUyxFQUFFLHFDQUFxQztJQUNoREMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQkMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFDdkIsQ0FBQyxDQUFDO0VBQ0ZLLEtBQUssRUFBRSxJQUFJbEUsTUFBTSxDQUFDQyxDQUFDLENBQUNxRCxJQUFJLENBQUM7SUFDdkJDLE9BQU8sRUFBRSw2QkFBNkI7SUFDdENDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEJDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEJDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNyQkMsU0FBUyxFQUFFLHFDQUFxQztJQUNoREMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQkMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFDdkIsQ0FBQyxDQUFDO0VBQ0ZNLE1BQU0sRUFBRSxJQUFJbkUsTUFBTSxDQUFDQyxDQUFDLENBQUNxRCxJQUFJLENBQUM7SUFDeEJDLE9BQU8sRUFBRSw2QkFBNkI7SUFDdENDLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEJDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEJDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNyQkMsU0FBUyxFQUFFLHFDQUFxQztJQUNoREMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUNwQkMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7RUFDdkIsQ0FBQyxDQUFDO0VB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QW1CLElBQUksRUFBSTtVQUM5Q0EsSUFBSSxDQUFDb0YsSUFBSSxDQUFDLENBQUMsQ0FBQ3ZHLElBQUksQ0FBQyxVQUFBd0csSUFBSSxFQUFJO1lBQ3ZCakcsT0FBTyxDQUFDaUIsUUFBUSxDQUFDaUYsV0FBVyxDQUFDLENBQUMsQ0FBQ0Msd0JBQXdCLENBQUNGLElBQUksQ0FBQyxDQUFDO1VBQ2hFLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKO0VBQUM7SUFBQTFPLEdBQUE7SUFBQUMsS0FBQSxFQUdELFNBQUE0SixXQUFXZ0YsS0FBSyxFQUFFQyxLQUFLLEVBQUU7TUFDekIsSUFBSUEsS0FBSyxLQUFLLElBQUksSUFBSUQsS0FBSyxDQUFDRSxNQUFNLENBQUNDLEVBQUUsS0FBSyxlQUFlLElBQUlILEtBQUssQ0FBQ0UsTUFBTSxDQUFDQyxFQUFFLENBQUNDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNsR3ZGLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDeUUsS0FBSyxDQUFDRyxPQUFPLEdBQUcsQ0FBQztRQUMxREQsVUFBVSxDQUFDLFlBQU07VUFDZjVFLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDeUUsS0FBSyxDQUFDQyxPQUFPLEdBQUcsTUFBTTtVQUMvRDNFLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDcUIsU0FBUyxHQUFHLEVBQUU7UUFDekQsQ0FBQyxFQUFFLEdBQUcsQ0FBQztNQUNUO0lBQ0Y7RUFBQztJQUFBaEwsR0FBQTtJQUFBa1AsR0FBQSxFQUdELFNBQUFBLElBQUEsRUFBVztNQUNULE9BQU8sSUFBSSxDQUFDckgsS0FBSztJQUNuQjtFQUFDO0VBQUEsT0FBQUYsY0FBQTtBQUFBO0FBS0gsaUVBQWVBLGNBQWMsRSIsInNvdXJjZXMiOlsid2VicGFjazovL01vbkRvdXJkYW5uYWlzLy4vc3JjL2pzL3V0aWxzL01hcC5qcyIsIndlYnBhY2s6Ly9Nb25Eb3VyZGFubmFpcy8uL3NyYy9qcy91dGlscy9NYXJrZXJFbnVtLmpzIiwid2VicGFjazovL01vbkRvdXJkYW5uYWlzLy4vc3JjL2pzL3V0aWxzL1V0aWxzLmpzIiwid2VicGFjazovL01vbkRvdXJkYW5uYWlzLy4vc3JjL3Njc3MvTW9uRG91cmRhbm5haXMuc2Nzcz85MmNmIiwid2VicGFjazovL01vbkRvdXJkYW5uYWlzL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL01vbkRvdXJkYW5uYWlzL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9Nb25Eb3VyZGFubmFpcy93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL01vbkRvdXJkYW5uYWlzL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vTW9uRG91cmRhbm5haXMvLi9zcmMvanMvTW9uRG91cmRhbm5haXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcmtlcnMgZnJvbSAnLi9NYXJrZXJFbnVtLmpzJztcclxuaW1wb3J0IFV0aWxzIGZyb20gJy4vVXRpbHMuanMnO1xyXG5cclxuXHJcbmNsYXNzIE1hcCB7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICB0aGlzLl9pZCA9IG9wdGlvbnMudGFyZ2V0SWQ7XHJcbiAgICB0aGlzLl9tYXAgPSBudWxsO1xyXG4gICAgdGhpcy5fbWFya3MgPSB7fTtcclxuICAgIHRoaXMuX3BvbHlnb25zID0gW107XHJcbiAgICB0aGlzLl9sYXllcnMgPSB7XHJcbiAgICAgIENhcnRlOiBudWxsLFxyXG4gICAgICBTYXRlbGxpdGU6IG51bGxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5faW5pdCgpO1xyXG4gICAgdGhpcy5fZXZlbnRzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX2luaXQoKSB7XHJcbiAgICAvLyBVc2UgbWFpbiBkaXYgdG8gaW5qZWN0IE9TTSBpbnRvXHJcbiAgICB0aGlzLl9tYXAgPSB3aW5kb3cuTC5tYXAodGhpcy5faWQsIHtcclxuICAgICAgem9vbUNvbnRyb2w6IGZhbHNlLFxyXG4gICAgfSkuc2V0VmlldyhbVXRpbHMuQ0NESF9DRU5URVIuTEFULCBVdGlscy5DQ0RIX0NFTlRFUi5MTkddLCAxMik7XHJcbiAgICAvLyBBZGQgbWV0ZXIgYW5kIGZlZXQgc2NhbGUgb24gbWFwXHJcbiAgICB3aW5kb3cuTC5jb250cm9sLnNjYWxlKCkuYWRkVG8odGhpcy5fbWFwKTtcclxuICAgIC8vIFByZXZlbnQgcGFubmluZyBvdXRzaWRlIG9mIHRoZSBtYXAgYm91bmRzIGRlZmluaW5lZCBpbiB1dGlsc1xyXG4gICAgdGhpcy5fbWFwLnNldE1heEJvdW5kcyhVdGlscy5NQVBfQk9VTkRTKTtcclxuICAgIC8vIEFkZCBsYXllciBncm91cCB0byBpbnRlcmZhY2UgYW5kIHN0YXJ0IG1hcCB3aXRoIG9zbSBkZWZhdWx0XHJcbiAgICB0aGlzLl9sYXllcnMuQ2FydGUgPSBVdGlscy5PU01fTEFZRVI7XHJcbiAgICB0aGlzLl9sYXllcnMuU2F0ZWxsaXRlID0gVXRpbHMuRVNSSV9MQVlFUjtcclxuICAgIHRoaXMuX2xheWVycy5DYXJ0ZS5hZGRUbyh0aGlzLl9tYXApO1xyXG4gICAgLy8gQWRkIGxheWVyIHN3aXRjaCByYWRpbyBvbiBib3R0b20gcmlnaHQgb2YgdGhlIG1hcFxyXG4gICAgd2luZG93LkwuY29udHJvbC5sYXllcnModGhpcy5fbGF5ZXJzLCB7fSwgeyBwb3NpdGlvbjogJ2JvdHRvbXJpZ2h0JyB9KS5hZGRUbyh0aGlzLl9tYXApO1xyXG4gIH1cclxuXHJcblxyXG4gIF9ldmVudHMoKSB7XHJcbiAgICAvLyBTdWJzY3JpYmUgdG8gY2xpY2sgZXZlbnQgb24gbWFwIHRvIHJlYWN0XHJcbiAgICB0aGlzLl9tYXAub24oJ2NsaWNrJywgdGhpcy5fbWFwQ2xpY2tlZC5iaW5kKHRoaXMpKTtcclxuICAgIC8vIE1hcCBpcyBkcmFnZ2VkIGJ5IHVzZXIgbW91c2UvZmluZ2VyXHJcbiAgICB0aGlzLl9tYXAub24oJ2RyYWcnLCAoKSA9PiB7XHJcbiAgICAgIC8vIENvbnN0cmFpbiBwYW4gdG8gdGhlIG1hcCBib3VuZHNcclxuICAgICAgdGhpcy5fbWFwLnBhbkluc2lkZUJvdW5kcyhVdGlscy5NQVBfQk9VTkRTLCB7IGFuaW1hdGU6IHRydWUgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBfbWFwQ2xpY2tlZChvcHRzKSB7XHJcbiAgICBjb25zb2xlLmxvZyhvcHRzLmxhdGxuZywgSlNPTi5zdHJpbmdpZnkob3B0cy5sYXRsbmcubGF0ICsgJywgJyArIG9wdHMubGF0bG5nLmxuZykpO1xyXG4gIH1cclxuXHJcblxyXG4gIGRyYXdVc2VyTWFya2VyKCkge1xyXG4gICAgaWYgKCF3aW5kb3cubWQudXNlci5tYXJrZXIpIHtcclxuICAgICAgd2luZG93Lm1kLnVzZXIubWFya2VyID0gd2luZG93LkwubWFya2VyKFt3aW5kb3cubWQudXNlci5sYXQsIHdpbmRvdy5tZC51c2VyLmxuZ10sIHtcclxuICAgICAgICBpY29uOiBNYXJrZXJzLnVzZXJcclxuICAgICAgfSk7XHJcbiAgICAgIHdpbmRvdy5tZC51c2VyLm1hcmtlci5hZGRUbyh0aGlzLl9tYXApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2luZG93Lm1kLnVzZXIubWFya2VyLnNldExhdExuZyh3aW5kb3cubWQudXNlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgYWRkTWFyayhvcHRzLCBjcmVhdGVQb3B1cCkge1xyXG4gICAgbGV0IHR5cGVzID0gb3B0cy50eXBlLnNwbGl0KCcvJyk7XHJcbiAgICBsZXQgdHlwZSA9IG9wdHMudHlwZTtcclxuICAgIGlmICh0eXBlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHR5cGUgPSBgJHt0eXBlc1swXX0ke3R5cGVzWzFdfWA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWFya2VyID0gd2luZG93LkwubWFya2VyKFtvcHRzLmxhdCwgb3B0cy5sbmddLCB7IFxyXG4gICAgICBpY29uOiBNYXJrZXJzW3R5cGVdXHJcbiAgICB9KS5vbignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuX21hcC5mbHlUbyhbb3B0cy5sYXQsIG9wdHMubG5nXSwgMTgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbWFya2VyLmJpbmRQb3B1cChjcmVhdGVQb3B1cChvcHRzKSk7XHJcbiAgICBtYXJrZXIuYWRkVG8odGhpcy5fbWFwKTtcclxuICAgIGlmICh0eXBlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX21hcmtzW3R5cGVzW2ldXSkge1xyXG4gICAgICAgICAgdGhpcy5fbWFya3NbdHlwZXNbaV1dID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX21hcmtzW3R5cGVzW2ldXS5wdXNoKG1hcmtlcik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5fbWFya3NbdHlwZV0pIHtcclxuICAgICAgICB0aGlzLl9tYXJrc1t0eXBlXSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX21hcmtzW3R5cGVdLnB1c2gobWFya2VyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBhZGRQb2x5Z29uKHBvbHlnb24pIHtcclxuICAgIHRoaXMuX3BvbHlnb25zLnB1c2god2luZG93LkwucG9seWdvbihwb2x5Z29uKS5hZGRUbyh0aGlzLl9tYXApKTtcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1hcDtcclxuIiwiZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmZyZWV6ZSh7XHJcbiAgcmVzdGF1cmFudDogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL3Jlc3RhdXJhbnQuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGJhcjogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2Jhci5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgdG9iYWNjbzogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL3RvYmFjY28uc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGNlbGxhcjogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2NlbGxhci5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgZ3JvY2VyeTogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2dyb2Nlcnkuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIHNwb3J0OiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvc3BvcnQuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGJha2VyeTogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2JyZWFkLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBzdG9yZTogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL3N0b3JlLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBib29rOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvYm9vay5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgbGFuZG1hcms6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9sYW5kbWFyay5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgY3JhZnQ6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9jcmFmdC5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgZ2FyZGVuOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvZ2FyZGVuLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBjYXI6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9jYXIuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGdhczogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2dhcy5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgYW5pbWFsOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvYW5pbWFsLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBtYWlsOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFpbC5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgcGFyazogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL3Bhcmsuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIHJlY3ljbGU6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9yZWN5Y2xlLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBhZG1pbmlzdHJhdGlvbjogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL2FkbWluaXN0cmF0aW9uLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSxcclxuICBiYW5rOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvYmFuay5zdmcnLFxyXG4gICAgaWNvblNpemU6IFsyNiwgMjZdLFxyXG4gICAgaWNvbkFuY2hvcjogWzEzLCAxM10sXHJcbiAgICBwb3B1cEFuY2hvcjogWzAsIC0xM10sXHJcbiAgICBzaGFkb3dVcmw6ICdhc3NldHMvaW1nL21hcmtlci9tYXJrZXItc2hhZG93LnBuZycsXHJcbiAgICBzaGFkb3dTaXplOiBbNDIsIDQyXSxcclxuICAgIHNoYWRvd0FuY2hvcjogWzIwLCAyMF0sXHJcbiAgfSksXHJcbiAgbWVkaWNhbDogbmV3IHdpbmRvdy5MLkljb24oe1xyXG4gICAgaWNvblVybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21lZGljYWwuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdLFxyXG4gIH0pLFxyXG4gIGRlY286IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci9kZWNvLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXSxcclxuICB9KSwgIFxyXG4gIHVzZXI6IG5ldyB3aW5kb3cuTC5JY29uKHtcclxuICAgIGljb25Vcmw6ICdhc3NldHMvaW1nL21hcmtlci91c2VyLnN2ZycsXHJcbiAgICBpY29uU2l6ZTogWzI2LCAyNl0sXHJcbiAgICBpY29uQW5jaG9yOiBbMTMsIDEzXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLTEzXSxcclxuICAgIHNoYWRvd1VybDogJ2Fzc2V0cy9pbWcvbWFya2VyL21hcmtlci1zaGFkb3cucG5nJyxcclxuICAgIHNoYWRvd1NpemU6IFs0MiwgNDJdLFxyXG4gICAgc2hhZG93QW5jaG9yOiBbMjAsIDIwXVxyXG4gIH0pLFxyXG4gIGJhcnN0b3JlOiBuZXcgd2luZG93LkwuSWNvbih7XHJcbiAgICBpY29uVXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWl4ZWQvYmFyc3RvcmUuc3ZnJyxcclxuICAgIGljb25TaXplOiBbMjYsIDI2XSxcclxuICAgIGljb25BbmNob3I6IFsxMywgMTNdLFxyXG4gICAgcG9wdXBBbmNob3I6IFswLCAtMTNdLFxyXG4gICAgc2hhZG93VXJsOiAnYXNzZXRzL2ltZy9tYXJrZXIvbWFya2VyLXNoYWRvdy5wbmcnLFxyXG4gICAgc2hhZG93U2l6ZTogWzQyLCA0Ml0sXHJcbiAgICBzaGFkb3dBbmNob3I6IFsyMCwgMjBdXHJcbiAgfSksXHJcbn0pO1xyXG4iLCJjb25zdCBnZXREaXN0YW5jZUJldHdlZW5Db29yZHMgPSAoZnJvbSwgdG8pID0+IHtcclxuICAvLyBSZXR1cm4gZGlzdGFuY2UgaW4gbWV0ZXJzXHJcbiAgY29uc3QgbG9uMSA9IChmcm9tWzFdICogTWF0aC5QSSkgLyAxODAsXHJcbiAgICBsYXQxID0gKGZyb21bMF0gKiBNYXRoLlBJKSAvIDE4MCxcclxuICAgIGxvbjIgPSAodG9bMV0gKiBNYXRoLlBJKSAvIDE4MCxcclxuICAgIGxhdDIgPSAodG9bMF0gKiBNYXRoLlBJKSAvIDE4MDtcclxuXHJcbiAgY29uc3QgZGVsdGFMYXQgPSBsYXQyIC0gbGF0MTtcclxuICBjb25zdCBkZWx0YUxvbiA9IGxvbjIgLSBsb24xO1xyXG5cclxuICBjb25zdCBhID0gTWF0aC5wb3coTWF0aC5zaW4oZGVsdGFMYXQgLyAyKSwgMikgKyBNYXRoLmNvcyhsYXQxKSAqIE1hdGguY29zKGxhdDIpICogTWF0aC5wb3coTWF0aC5zaW4oZGVsdGFMb24gLyAyKSwgMik7XHJcbiAgY29uc3QgYyA9IDIgKiBNYXRoLmFzaW4oTWF0aC5zcXJ0KGEpKTtcclxuICByZXR1cm4gYyAqIDYzNzEgKiAxMDAwO1xyXG59O1xyXG5cclxuXHJcbmNvbnN0IGNvbnZlcnREaXN0YW5jZVRvU3RyaW5nID0gZGlzdGFuY2UgPT4ge1xyXG4gIGlmIChkaXN0YW5jZSA+IDEwMDApIHtcclxuICAgIGRpc3RhbmNlID0gYCR7cHJlY2lzaW9uUm91bmQoZGlzdGFuY2UgLyAxMDAwLCAyKX1rbWA7XHJcbiAgfSBlbHNlIHtcclxuICAgIGRpc3RhbmNlID0gYCR7cHJlY2lzaW9uUm91bmQoZGlzdGFuY2UsIDIpfW1gO1xyXG4gIH1cclxuICByZXR1cm4gZGlzdGFuY2U7XHJcbn07XHJcblxyXG5cclxuY29uc3QgYnVpbGREaXN0YW5jZUVUQSA9IGRpc3RhbmNlID0+IHtcclxuICBsZXQgY2FyTWludXRlcyA9IDA7XHJcbiAgbGV0IGNhclNlY29uZHMgPSAwO1xyXG5cclxuICBpZiAoZGlzdGFuY2UgPiA1MDAwMCkge1xyXG4gICAgLy8gT3ZlciA1MGttLCB3ZSB1c2UgYXZlcmFnZSBzcGVlZCBvZiAxMDBrbWhcclxuICAgIGNhck1pbnV0ZXMgPSAoZGlzdGFuY2UgLyAxMDAwMDApICogNjA7XHJcbiAgfSBlbHNlIGlmIChkaXN0YW5jZSA+IDEwMDAwKSB7XHJcbiAgICAvLyBPdmVyIDEwa20sIHdlIHVzZSBhdmVyYWdlIHNwZWVkIG9mIDYwa20vaFxyXG4gICAgY2FyTWludXRlcyA9IChkaXN0YW5jZSAvIDYwMDAwKSAqIDYwO1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyBVbmRlciAxMGttIHdlIHVzZXIgYXZlcmFnZSBzcGVlZCBvZiAzMGttL2hcclxuICAgIGNhck1pbnV0ZXMgPSAoZGlzdGFuY2UgLyAzMDAwMCkgKiA2MDtcclxuICB9XHJcblxyXG4gIGNhclNlY29uZHMgPSBjYXJNaW51dGVzICUgMTsgLy8gS2VlcCBmbG9hdGluZyB2YWx1ZSBmb3Igc2Vjb25kcyBjb21wdXRpbmdcclxuICBjYXJNaW51dGVzID0gTWF0aC5mbG9vcihjYXJNaW51dGVzKTsgLy8gUmVtb3ZlIGZsb2F0aW5nIHZhbHVlXHJcblxyXG4gIGlmIChjYXJNaW51dGVzID4gNjApIHtcclxuICAgIGNhck1pbnV0ZXMgPSBgJHtNYXRoLmZsb29yKGNhck1pbnV0ZXMgLyA2MCl9aCAke2Nhck1pbnV0ZXMgJSA2MH1tYDtcclxuICB9IGVsc2Uge1xyXG4gICAgY2FyTWludXRlcyA9IGAke2Nhck1pbnV0ZXN9bWA7XHJcbiAgfVxyXG5cclxuICBsZXQgd2Fsa01pbnV0ZXMgPSAoZGlzdGFuY2UgLyA1MDAwKSAqIDYwO1xyXG4gIGxldCB3YWxrU2Vjb25kcyA9IHdhbGtNaW51dGVzICUgMTtcclxuICB3YWxrTWludXRlcyA9IE1hdGguZmxvb3Iod2Fsa01pbnV0ZXMpOyAvLyBSZW1vdmUgZmxvYXRpbmcgdmFsdWVcclxuXHJcbiAgaWYgKHdhbGtNaW51dGVzID4gNjApIHtcclxuICAgIHdhbGtNaW51dGVzID0gYCR7TWF0aC5mbG9vcih3YWxrTWludXRlcyAvIDYwKX1oICR7d2Fsa01pbnV0ZXMgJSA2MH1tYDtcclxuICB9IGVsc2Uge1xyXG4gICAgd2Fsa01pbnV0ZXMgPSBgJHt3YWxrTWludXRlc31tYDtcclxuICB9ICBcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNhcjogYCR7Y2FyTWludXRlc30gJHtNYXRoLmZsb29yKHByZWNpc2lvblJvdW5kKChjYXJTZWNvbmRzIC8gMTAwKSAqIDYwLCAyKSAqIDEwMCl9c2AsXHJcbiAgICB3YWxrOiBgJHt3YWxrTWludXRlc30gJHtNYXRoLmZsb29yKHByZWNpc2lvblJvdW5kKCh3YWxrU2Vjb25kcyAvIDEwMCkgKiA2MCwgMikgKiAxMDApfXNgLFxyXG4gIH07XHJcbn07XHJcblxyXG5cclxuY29uc3QgcHJlY2lzaW9uUm91bmQgPSAodmFsdWUsIHByZWNpc2lvbikgPT4ge1xyXG4gIGNvbnN0IG11bHRpcGxpZXIgPSBNYXRoLnBvdygxMCwgcHJlY2lzaW9uIHx8IDApO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogbXVsdGlwbGllcikgLyBtdWx0aXBsaWVyO1xyXG59O1xyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBDQ0RIX0NFTlRFUjoge1xyXG4gICAgTEFUOiA0OC41MzE4MzkwNjQ0MTk2MixcclxuICAgIExORzogMi4wNTM3NTY3MTM4NjcxODhcclxuICB9LFxyXG4gIE1BUF9CT1VORFM6IHdpbmRvdy5MLmxhdExuZ0JvdW5kcyhcclxuICAgIHdpbmRvdy5MLmxhdExuZyg0OC42Nzk0MDA3MTU5NjM4OTQsIDEuNzM5MDYwNjY4OTQ1MzEyNyksXHJcbiAgICB3aW5kb3cuTC5sYXRMbmcoNDguMzg0MzkwNzQxNTE4NjYsIDIuMzQzMzk1OTk2MDkzNzUwKVxyXG4gICksXHJcbiAgT1NNX0xBWUVSOiB3aW5kb3cuTC50aWxlTGF5ZXIoJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywge1xyXG4gICAgYXR0cmlidXRpb246ICcmY29weTsgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+JyxcclxuICAgIG1heFpvb206IDE5LFxyXG4gICAgbWluWm9vbTogMTJcclxuICB9KSxcclxuICBFU1JJX0xBWUVSOiB3aW5kb3cuTC50aWxlTGF5ZXIoJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvV29ybGRfSW1hZ2VyeS9NYXBTZXJ2ZXIvdGlsZS97en0ve3l9L3t4fScsIHtcclxuICAgIGF0dHJpYnV0aW9uOiAnJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5hcmNnaXMuY29tL2hvbWUvaXRlbS5odG1sP2lkPTEwZGYyMjc5Zjk2ODRlNGE5ZjZhN2YwOGZlYmFjMmE5XCI+RXNyaSBJbWFnZXJ5PC9hPicsXHJcbiAgICBtYXhab29tOiAxOSxcclxuICAgIG1pblpvb206IDEyXHJcbiAgfSksXHJcbiAgZ2V0RGlzdGFuY2VCZXR3ZWVuQ29vcmRzOiBnZXREaXN0YW5jZUJldHdlZW5Db29yZHMsXHJcbiAgY29udmVydERpc3RhbmNlVG9TdHJpbmc6IGNvbnZlcnREaXN0YW5jZVRvU3RyaW5nLFxyXG4gIGJ1aWxkRGlzdGFuY2VFVEE6IGJ1aWxkRGlzdGFuY2VFVEEsXHJcbiAgcHJlY2lzaW9uUm91bmQ6IHByZWNpc2lvblJvdW5kXHJcbn07XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IHt9OyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0ICcuLi9zY3NzL01vbkRvdXJkYW5uYWlzLnNjc3MnO1xyXG5pbXBvcnQgTWFwIGZyb20gJy4vdXRpbHMvTWFwLmpzJztcclxuaW1wb3J0IFV0aWxzIGZyb20gJy4vdXRpbHMvVXRpbHMuanMnO1xyXG5cclxuXHJcbmNsYXNzIE1vbkRvdXJkYW5uYWlzIHtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fbWFwID0gbnVsbDtcclxuICAgIHRoaXMuX2xheWVycyA9IHt9O1xyXG4gICAgdGhpcy5fZGF0YSA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5fdXNlciA9IHtcclxuICAgICAgbGF0OiBVdGlscy5IT01FX0xBVCxcclxuICAgICAgbG5nOiBVdGlscy5IT01FX0xORyxcclxuICAgICAgYWNjdXJhY3k6IDAsXHJcbiAgICAgIG1hcmtlcjogbnVsbFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLl9pbml0R2VvbG9jYXRpb24oKVxyXG4gICAgICAudGhlbih0aGlzLl9mZXRjaE1hcmtlcnMuYmluZCh0aGlzKSlcclxuICAgICAgLnRoZW4odGhpcy5faW5pdE1hcC5iaW5kKHRoaXMpKVxyXG4gICAgICAudGhlbih0aGlzLl9pbml0RXZlbnRzLmJpbmQodGhpcykpXHJcbiAgICAgIC50aGVuKHRoaXMuX2J1aWxkTWFya2Vycy5iaW5kKHRoaXMpKVxyXG4gICAgICAudGhlbih0aGlzLl9idWlsZFBvbHlnb25zLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcblxyXG4gIF9pbml0R2VvbG9jYXRpb24oKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcblx0XHRcdGlmICgnZ2VvbG9jYXRpb24nIGluIG5hdmlnYXRvcikge1xyXG5cdFx0XHRcdGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICBlbmFibGVIaWdoQWNjdXJhY3k6IHRydWUsIC8vIE1vcmUgY29uc3VwdGlvbiwgYmV0dGVyIHBvc2l0aW9uXHJcbiAgICAgICAgICBtYXhpbXVtQWdlOiAxMDAwLCAvLyBBIHBvc2l0aW9uIHdpbGwgbGFzdCAxcyBtYXhpbXVtXHJcbiAgICAgICAgICB0aW1lb3V0OiA5MDAsIC8vIEEgcG9zaXRpb24gaXMgdXBkYXRlZCBpbiAwLjlzIG1heGltdW1cclxuICAgICAgICB9O1xyXG5cdFx0XHRcdHRoaXMuX3dhdGNoSWQgPSBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24ud2F0Y2hQb3NpdGlvbihwb3NpdGlvbiA9PiB7XHJcblx0XHRcdFx0XHQvLyBVcGRhdGUgc2F2ZWQgdXNlciBwb3NpdGlvblxyXG5cdFx0XHRcdFx0dGhpcy5fdXNlci5sYXQgPSBwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGU7XHJcblx0XHRcdFx0XHR0aGlzLl91c2VyLmxuZyA9IHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGU7XHJcblx0XHRcdFx0XHR0aGlzLl91c2VyLmFjY3VyYWN5ID0gcG9zaXRpb24uY29vcmRzLmFjY3VyYWN5O1xyXG5cdFx0XHRcdFx0Ly8gT25seSBkcmF3IG1hcmtlciBpZiBtYXAgaXMgYWxyZWFkeSBjcmVhdGVkXHJcblx0XHRcdFx0XHRpZiAodGhpcy5fbWFwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21hcC5kcmF3VXNlck1hcmtlcigpO1xyXG4gICAgICAgICAgfVxyXG5cdFx0XHRcdFx0cmVzb2x2ZSgpO1xyXG5cdFx0XHRcdH0sIHJlc29sdmUsIG9wdGlvbnMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG5cdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX2ZldGNoTWFya2VycygpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgZmV0Y2goYC4vYXNzZXRzL2pzb24vTWFwRGF0YS5qc29uYCkudGhlbihkYXRhID0+IHtcclxuICAgICAgICBkYXRhLmpzb24oKS50aGVuKGpzb25EYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMuX2RhdGEgPSBqc29uRGF0YTtcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9KS5jYXRjaChyZXNvbHZlKTtcclxuICAgICAgfSkuY2F0Y2gocmVzb2x2ZSk7XHJcbiAgICB9KTtcclxuICB9ICBcclxuXHJcblxyXG4gIF9pbml0TWFwKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICB0aGlzLl9tYXAgPSBuZXcgTWFwKHtcclxuICAgICAgICB0YXJnZXRJZDogJ3Nhcm1hdGVzLWxhbmQnXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXNvbHZlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBfaW5pdEV2ZW50cygpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgLy8gTGlzdGVuaW5nIHRvIG1vZGFsIGV2ZW50XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsb3NlTW9kYWwuYmluZCh0aGlzKSk7XHJcbiAgICAgIHJlc29sdmUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIF9idWlsZE1hcmtlcnMoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9kYXRhLm1hcmtlcnMpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuX2RhdGEubWFya2Vyc1trZXlzW2ldXS5sZW5ndGg7ICsraikge1xyXG4gICAgICAgICAgdGhpcy5fbWFwLmFkZE1hcmsodGhpcy5fZGF0YS5tYXJrZXJzW2tleXNbaV1dW2pdLCB0aGlzLl9jcmVhdGVNYXJrZXJQb3B1cC5iaW5kKHRoaXMpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgX2J1aWxkUG9seWdvbnMoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9kYXRhLmNpdHlCb3VuZHMpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcclxuICAgICAgICB0aGlzLl9tYXAuYWRkUG9seWdvbih0aGlzLl9kYXRhLmNpdHlCb3VuZHNba2V5c1tpXV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJlc29sdmUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qIE1hcCBVdGlscyAqL1xyXG5cclxuXHJcbiAgX2NyZWF0ZU1hcmtlclBvcHVwKG9wdHMpIHtcclxuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xyXG4gICAgY29uc3QgdGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdIMycpO1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0knKTtcclxuICAgIGNvbnN0IHRvd24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdJJyk7XHJcbiAgICBjb25zdCBwaG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0EnKTtcclxuICAgIGNvbnN0IHdlYnNpdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdBJyk7XHJcbiAgICBjb25zdCBpbmZvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnUCcpO1xyXG4gICAgY29uc3Qgb3BlbldpdGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdBJyk7XHJcblxyXG4gICAgZG9tLmNsYXNzTGlzdC5hZGQoJ21hcmtlci1wb3B1cCcpO1xyXG4gICAgdGl0bGUuaW5uZXJIVE1MID0gb3B0cy5uYW1lO1xyXG4gICAgYWRkcmVzcy5pbm5lckhUTUwgPSBvcHRzLmFkZHJlc3M7XHJcbiAgICB0b3duLmlubmVySFRNTCA9IG9wdHMudG93bjtcclxuICAgIHBob25lLmhyZWYgPSBgdGVsOiR7b3B0cy5waG9uZX1gO1xyXG4gICAgcGhvbmUuaW5uZXJIVE1MID0gYDxpbWcgc3JjPVwiLi9hc3NldHMvaW1nL2ljb24vcGhvbmUuc3ZnXCI+JHtvcHRzLnBob25lfWA7XHJcbiAgICB3ZWJzaXRlLmhyZWYgPSBvcHRzLndlYnNpdGU7XHJcbiAgICB3ZWJzaXRlLmlubmVySFRNTCA9ICc8aW1nIHNyYz1cIi4vYXNzZXRzL2ltZy9pY29uL3dlYi5zdmdcIj5Db25zdWx0ZXIgbGUgc2l0ZSc7XHJcbiAgICB3ZWJzaXRlLnNldEF0dHJpYnV0ZSgncmVsJywgJ25vb3BlbmVyIG5vcmVmZXJyZXInKTtcclxuICAgIHdlYnNpdGUuc2V0QXR0cmlidXRlKCd0YXJnZXQnLCAnX2JsYW5rJyk7XHJcbiAgICBpbmZvLmlubmVySFRNTCA9IG9wdHMuaW5mbztcclxuICAgIG9wZW5XaXRoLmhyZWYgPSBgZ2VvOiR7b3B0cy5sYXR9LCR7b3B0cy5sbmd9YDtcclxuICAgIG9wZW5XaXRoLmlubmVySFRNTCA9ICc8aW1nIHNyYz1cIi4vYXNzZXRzL2ltZy9pY29uL3Bpbi5zdmdcIj5PdXZyaXIgZGFucyBsZSBHUFMnO1xyXG5cclxuICAgIGRvbS5hcHBlbmRDaGlsZCh0aXRsZSk7XHJcbiAgICBkb20uYXBwZW5kQ2hpbGQoYWRkcmVzcyk7XHJcbiAgICBkb20uYXBwZW5kQ2hpbGQodG93bik7XHJcblxyXG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5fbWFya2VyT3BlbmVkU3RhdGUob3B0cy50aW1ldGFibGUpO1xyXG4gICAgZG9tLmFwcGVuZENoaWxkKGJ1dHRvbik7XHJcblxyXG4gICAgaWYgKG9wdHMudGltZXRhYmxlLmxlbmd0aCA+IDApIHtcclxuICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fdGltZXRiYWxlTW9kYWwuYmluZCh0aGlzLCBvcHRzKSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmIChvcHRzLmluZm8gIT09ICcnKSB7XHJcbiAgICAgIGRvbS5hcHBlbmRDaGlsZChpbmZvKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0cy5waG9uZSAhPT0gJycpIHtcclxuICAgICAgZG9tLmFwcGVuZENoaWxkKHBob25lKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0cy53ZWJzaXRlICE9PSAnJykge1xyXG4gICAgICBkb20uYXBwZW5kQ2hpbGQod2Vic2l0ZSk7XHJcbiAgICB9ICAgIFxyXG4gICAgXHJcbiAgICBkb20uYXBwZW5kQ2hpbGQob3BlbldpdGgpO1xyXG5cclxuICAgIHJldHVybiBkb207XHJcbiAgfVxyXG5cclxuXHJcbiAgX21hcmtlck9wZW5lZFN0YXRlKHRpbWV0YWJsZSkge1xyXG4gICAgY29uc3QgZG9tID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJyk7XHJcbiAgICBjb25zdCBzdGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0g1Jyk7XHJcbiAgICBjb25zdCBtb3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnSScpO1xyXG4gICAgZG9tLmNsYXNzTGlzdC5hZGQoJ21hcmtlci1vcGVuZWQnKTtcclxuICAgIGRvbS5hcHBlbmRDaGlsZChzdGF0ZSk7XHJcbiAgICBkb20uYXBwZW5kQ2hpbGQobW9yZSk7XHJcbiAgICBcclxuICAgIGlmICh0aW1ldGFibGUubGVuZ3RoKSB7XHJcbiAgICAgIG1vcmUuaW5uZXJIVE1MID0gJ1ZvaXIgbGVzIGhvcmFpcmVzJztcclxuICAgICAgdGhpcy5fY2hlY2tUaW1lKHRpbWV0YWJsZSwgZG9tKTtcclxuICAgICAgc2V0SW50ZXJ2YWwodGhpcy5fY2hlY2tUaW1lLmJpbmQodGhpcywgdGltZXRhYmxlLCBkb20pLCAzMDAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tYXJrZXJJc09wZW5lZChkb20sIHRydWUpO1xyXG4gICAgICBtb3JlLmlubmVySFRNTCA9ICdUb3Vqb3VycyBvdXZlcnQnOyAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkb207XHJcbiAgfVxyXG5cclxuXHJcbiAgX2NoZWNrVGltZSh0aW1ldGFibGUsIGRvbSkge1xyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGxldCBob3VyID0gbm93LmdldEhvdXJzKCk7XHJcbiAgICBsZXQgbWludXRlcyA9IG5vdy5nZXRNaW51dGVzKCk7XHJcbiAgICBpZiAobWludXRlcyA8IDEwKSB7XHJcbiAgICAgIG1pbnV0ZXMgPSBgMCR7bWludXRlc31gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRheU9mV2VlayA9IG5vdy5nZXREYXkoKSAtIDE7XHJcbiAgICBjb25zdCBvcGVuaW5nVGltZSA9IHBhcnNlSW50KGAke3RpbWV0YWJsZVtkYXlPZldlZWtdLm9wZW4uaH0ke3RpbWV0YWJsZVtkYXlPZldlZWtdLm9wZW4ubX1gKTtcclxuICAgIGNvbnN0IGNsb3NpbmdUaW1lID0gcGFyc2VJbnQoYCR7dGltZXRhYmxlW2RheU9mV2Vla10uY2xvc2UuaH0ke3RpbWV0YWJsZVtkYXlPZldlZWtdLmNsb3NlLm19YCk7XHJcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IHBhcnNlSW50KGAke2hvdXJ9JHttaW51dGVzfWApO1xyXG4gICAgLy8gV29uJ3Qgd29yayBpZiB0aW1ldGFibGUgb3Blbi9jbG9zZSBob3VycyBhcmVuJ3Qgb24gdGhlIHNhbWUgZGF5XHJcbiAgICBpZiAodGltZXRhYmxlW2RheU9mV2Vla10uaXNPcGVuICYmIGlzTmFOKG9wZW5pbmdUaW1lKSkgeyAvLyAyNC83IG9wZW5pbmdcclxuICAgICAgdGhpcy5fbWFya2VySXNPcGVuZWQoZG9tLCB0cnVlKTtcclxuICAgIH0gZWxzZSBpZiAodGltZXRhYmxlW2RheU9mV2Vla10uaXNPcGVuICYmIGN1cnJlbnRUaW1lID49IG9wZW5pbmdUaW1lICYmIGN1cnJlbnRUaW1lIDwgY2xvc2luZ1RpbWUpIHtcclxuICAgICAgaWYgKHRpbWV0YWJsZVtkYXlPZldlZWtdLmJyZWFrLmhhc0JyZWFrKSB7XHJcbiAgICAgICAgY29uc3QgYnJlYWtPcGVuaW5nVGltZSA9IHBhcnNlSW50KGAke3RpbWV0YWJsZVtkYXlPZldlZWtdLmJyZWFrLmVuZC5ofSR7dGltZXRhYmxlW2RheU9mV2Vla10uYnJlYWsuZW5kLm19YCk7XHJcbiAgICAgICAgY29uc3QgYnJlYWtDbG9zaW5nVGltZSA9IHBhcnNlSW50KGAke3RpbWV0YWJsZVtkYXlPZldlZWtdLmJyZWFrLnN0YXJ0Lmh9JHt0aW1ldGFibGVbZGF5T2ZXZWVrXS5icmVhay5zdGFydC5tfWApO1xyXG4gICAgICAgIGlmIChjdXJyZW50VGltZSA+PSBicmVha0Nsb3NpbmdUaW1lICYmIGN1cnJlbnRUaW1lIDwgYnJlYWtPcGVuaW5nVGltZSkge1xyXG4gICAgICAgICAgdGhpcy5fbWFya2VySXNDbG9zZWQoZG9tKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fbWFya2VySXNPcGVuZWQoZG9tKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fbWFya2VySXNPcGVuZWQoZG9tKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsgICAgICBcclxuICAgICAgdGhpcy5fbWFya2VySXNDbG9zZWQoZG9tKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBfbWFya2VySXNPcGVuZWQoZG9tLCBhbHdheXNPcGVuZWQpIHtcclxuICAgIGRvbS5maXJzdENoaWxkLmlubmVySFRNTCA9IGBPdXZlcnRgO1xyXG4gICAgaWYgKGFsd2F5c09wZW5lZCA9PT0gdHJ1ZSkge1xyXG4gICAgICBkb20ubGFzdENoaWxkLmlubmVySFRNTCA9IGAyNGgvMjRoIGV0IDdqLzdqYDtcclxuICAgIH1cclxuICAgIGRvbS5jbGFzc0xpc3QuYWRkKCdvcGVuZWQnKTtcclxuICB9XHJcblxyXG5cclxuICBfbWFya2VySXNDbG9zZWQoZG9tKSB7XHJcbiAgICBkb20uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSBgRmVybcOpYDtcclxuICAgIGRvbS5sYXN0Q2hpbGQuaW5uZXJIVE1MID0gYFZvaXIgbGVzIGhvcmFpcmVzYDtcclxuICAgIGRvbS5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuZWQnKTtcclxuICB9XHJcblxyXG5cclxuICBfdGltZXRiYWxlTW9kYWwob3B0cykge1xyXG4gICAgdGhpcy5mZXRjaE1vZGFsKCd0aW1ldGFibGVtb2RhbCcpLnRoZW4oZG9tID0+IHtcclxuICAgICAgLy8gVXBkYXRpbmcgbW9kYWwgaGVhZGVyIGFuZCBpbmZvXHJcbiAgICAgIGRvbS5xdWVyeVNlbGVjdG9yKCcjbWFyay1uYW1lJykuaW5uZXJIVE1MID0gb3B0cy5uYW1lO1xyXG4gICAgICBkb20ucXVlcnlTZWxlY3RvcignI21hcmstYWRkcmVzcycpLmlubmVySFRNTCA9IGAke29wdHMuYWRkcmVzc30sICR7b3B0cy50b3dufWA7XHJcbiAgICAgIGNvbnN0IGRpc3RhbmNlID0gVXRpbHMuZ2V0RGlzdGFuY2VCZXR3ZWVuQ29vcmRzKFtvcHRzLmxhdCwgb3B0cy5sbmddLCBbdGhpcy5fdXNlci5sYXQsIHRoaXMuX3VzZXIubG5nXSk7XHJcbiAgICAgIGRvbS5xdWVyeVNlbGVjdG9yKCcjbWFyay1kaXN0YW5jZScpLmlubmVySFRNTCA9IGBWb3VzIMOodGVzIMOgIGVudmlyb24gJHtVdGlscy5jb252ZXJ0RGlzdGFuY2VUb1N0cmluZyhkaXN0YW5jZSl9IGRlIDxiPiR7b3B0cy5uYW1lfTwvYj4gw6Agdm9sIGQnb2lzZWF1YDtcclxuICAgICAgY29uc3QgZXRhID0gVXRpbHMuYnVpbGREaXN0YW5jZUVUQShkaXN0YW5jZSk7XHJcbiAgICAgIGRvbS5xdWVyeVNlbGVjdG9yKCcjbWFyay1ldGEnKS5pbm5lckhUTUwgPSBgQ2UgcXVpIHJlcHLDqXNlbnRlIGVudmlyb24gJHtldGEuY2FyfSBlbiB2b2l0dXJlLCBvdSAke2V0YS53YWxrfSDDoCBwaWVkLmA7XHJcbiAgICAgIGRvbS5xdWVyeVNlbGVjdG9yKCcjbWFyay1zdGF0ZScpLmFwcGVuZENoaWxkKHRoaXMuX21hcmtlck9wZW5lZFN0YXRlKG9wdHMudGltZXRhYmxlKSk7XHJcbiAgICAgIC8vIE5vdyB1cGRhdGUgZGF5IGJ5IGRheVxyXG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBjb25zdCBkYXlPZldlZWsgPSBub3cuZ2V0RGF5KCkgLSAxO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdHMudGltZXRhYmxlLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgY29uc3QgZGF5RG9tID0gZG9tLnF1ZXJ5U2VsZWN0b3IoJyN0aW1ldGFibGUnKS5jaGlsZHJlbltpXTtcclxuICAgICAgICBpZiAob3B0cy50aW1ldGFibGVbaV0uaXNPcGVuID09PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb25zdCBtb3JuaW5nID0gZGF5RG9tLmxhc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQ7XHJcbiAgICAgICAgICBjb25zdCBhZnRlcm5vb24gPSBkYXlEb20ubGFzdEVsZW1lbnRDaGlsZC5sYXN0RWxlbWVudENoaWxkO1xyXG4gICAgICAgICAgaWYgKG9wdHMudGltZXRhYmxlW2ldLmJyZWFrICYmIG9wdHMudGltZXRhYmxlW2ldLmJyZWFrLmhhc0JyZWFrID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIG1vcm5pbmcuaW5uZXJIVE1MID0gYDxwPiR7b3B0cy50aW1ldGFibGVbaV0ub3Blbi5ofToke29wdHMudGltZXRhYmxlW2ldLm9wZW4ubX0g4oCSICR7b3B0cy50aW1ldGFibGVbaV0uYnJlYWsuc3RhcnQuaH06JHtvcHRzLnRpbWV0YWJsZVtpXS5icmVhay5zdGFydC5tfTwvcD5gO1xyXG4gICAgICAgICAgICBtb3JuaW5nLmNsYXNzTGlzdC5hZGQoJ2ZpbGxlZCcpOyAvLyBNb3JuaW5nXHJcbiAgICAgICAgICAgIG1vcm5pbmcuY2xhc3NMaXN0LmFkZCgnc3BsaXRlZCcpOyAvLyBNb3JuaW5nXHJcbiAgICAgICAgICAgIGFmdGVybm9vbi5pbm5lckhUTUwgPSBgPHA+JHtvcHRzLnRpbWV0YWJsZVtpXS5icmVhay5lbmQuaH06JHtvcHRzLnRpbWV0YWJsZVtpXS5icmVhay5lbmQubX0g4oCSICR7b3B0cy50aW1ldGFibGVbaV0uY2xvc2UuaH06JHtvcHRzLnRpbWV0YWJsZVtpXS5jbG9zZS5tfTwvcD5gO1xyXG4gICAgICAgICAgICBhZnRlcm5vb24uY2xhc3NMaXN0LmFkZCgnZmlsbGVkJyk7IC8vIEFmdGVybm9vblxyXG4gICAgICAgICAgICBhZnRlcm5vb24uY2xhc3NMaXN0LmFkZCgnc3BsaXRlZCcpOyAvLyBBZnRlcm5vb25cclxuICAgICAgICAgIH0gZWxzZSBpZiAob3B0cy50aW1ldGFibGVbaV0ub3Blbi5oICYmIG9wdHMudGltZXRhYmxlW2ldLmNsb3NlLmgpIHtcclxuICAgICAgICAgICAgbW9ybmluZy5pbm5lckhUTUwgPSBgPHA+JHtvcHRzLnRpbWV0YWJsZVtpXS5vcGVuLmh9OiR7b3B0cy50aW1ldGFibGVbaV0ub3Blbi5tfTwvcD5gO1xyXG4gICAgICAgICAgICBtb3JuaW5nLmNsYXNzTGlzdC5hZGQoJ2ZpbGxlZCcpOyAvLyBNb3JuaW5nXHJcbiAgICAgICAgICAgIGFmdGVybm9vbi5pbm5lckhUTUwgPSBgPHA+JHtvcHRzLnRpbWV0YWJsZVtpXS5jbG9zZS5ofToke29wdHMudGltZXRhYmxlW2ldLmNsb3NlLm19PC9wPmA7XHJcbiAgICAgICAgICAgIGFmdGVybm9vbi5jbGFzc0xpc3QuYWRkKCdmaWxsZWQnKTsgLy8gQWZ0ZXJub29uXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtb3JuaW5nLmlubmVySFRNTCA9IGA8cD4wMDowMDwvcD5gO1xyXG4gICAgICAgICAgICBtb3JuaW5nLmNsYXNzTGlzdC5hZGQoJ2ZpbGxlZCcpOyAvLyBNb3JuaW5nXHJcbiAgICAgICAgICAgIGFmdGVybm9vbi5pbm5lckhUTUwgPSBgPHA+MjQ6MDA8L3A+YDtcclxuICAgICAgICAgICAgYWZ0ZXJub29uLmNsYXNzTGlzdC5hZGQoJ2ZpbGxlZCcpOyAvLyBBZnRlcm5vb25cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGF5RG9tLmxhc3RFbGVtZW50Q2hpbGQuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9XCJjbG9zZWRcIj48cD5GZXJtw6k8L3A+PC9kaXY+YDsgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1hdGNoaW5nIHRvZGF5J3MgZGF5XHJcbiAgICAgICAgaWYgKGkgPT09IGRheU9mV2Vlaykge1xyXG4gICAgICAgICAgZGF5RG9tLmNsYXNzTGlzdC5hZGQoJ3RvZGF5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtb3ZlcmxheScpLmFwcGVuZENoaWxkKGRvbSk7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5Jykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtb3ZlcmxheScpLnN0eWxlLm9wYWNpdHkgPSAxLCA1MCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4vKiBTZWFyY2ggbW9kYWwgbWV0aG9kcyAqL1xyXG5cclxuLypcclxuICBfc2VhcmNoTW9kYWwoKSB7XHJcbiAgICB0aGlzLl9mZXRjaE1vZGFsKCdzZWFyY2htb2RhbCcpLnRoZW4oZG9tID0+IHtcclxuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuX21hcmtzKTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgZG9tLmZpcnN0RWxlbWVudENoaWxkLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZU1hcmtDYXRlZ29yeVNlYXJjaEljb24oa2V5c1tpXSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5JykuYXBwZW5kQ2hpbGQoZG9tKTtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXknKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5Jykuc3R5bGUub3BhY2l0eSA9IDEsIDUwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIF9jcmVhdGVNYXJrQ2F0ZWdvcnlTZWFyY2hJY29uKHR5cGUpIHtcclxuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xyXG4gICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnSU1HJyk7XHJcbiAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ1AnKTtcclxuICAgIGRvbS5jbGFzc0xpc3QuYWRkKCdmaWx0ZXJpbmctZWxlbWVudCcpO1xyXG4gICAgaW1nLnNyYyA9IGAvYXNzZXRzL2ltZy9tYXJrZXIvJHt0eXBlfS5zdmdgO1xyXG4gICAgbGFiZWwuaW5uZXJIVE1MID0gdHlwZTtcclxuICAgIGRvbS5hcHBlbmRDaGlsZChpbWcpO1xyXG4gICAgZG9tLmFwcGVuZENoaWxkKGxhYmVsKTtcclxuICAgIHJldHVybiBkb207XHJcbiAgfVxyXG4qL1xyXG5cclxuICAvKiBNb2RhbCBtZXRob2RzICovXHJcblxyXG4gIGZldGNoTW9kYWwodXJsKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XHJcbiAgICAgIGZldGNoKGAuL2Fzc2V0cy9odG1sLyR7dXJsfS5odG1sYCkudGhlbihkYXRhID0+IHtcclxuICAgICAgICBkYXRhLnRleHQoKS50aGVuKGh0bWwgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZShkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChodG1sKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VNb2RhbChldmVudCwgZm9yY2UpIHtcclxuXHRcdGlmIChmb3JjZSA9PT0gdHJ1ZSB8fCBldmVudC50YXJnZXQuaWQgPT09ICdtb2RhbC1vdmVybGF5JyB8fCBldmVudC50YXJnZXQuaWQuaW5kZXhPZignY2xvc2UnKSAhPT0gLTEpIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXknKS5zdHlsZS5vcGFjaXR5ID0gMDtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXknKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5JykuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgIH0sIDMwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IHVzZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdXNlcjtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTW9uRG91cmRhbm5haXM7XHJcbiJdLCJuYW1lcyI6WyJNYXJrZXJzIiwiVXRpbHMiLCJNYXAiLCJvcHRpb25zIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2lkIiwidGFyZ2V0SWQiLCJfbWFwIiwiX21hcmtzIiwiX3BvbHlnb25zIiwiX2xheWVycyIsIkNhcnRlIiwiU2F0ZWxsaXRlIiwiX2luaXQiLCJfZXZlbnRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJ3aW5kb3ciLCJMIiwibWFwIiwiem9vbUNvbnRyb2wiLCJzZXRWaWV3IiwiQ0NESF9DRU5URVIiLCJMQVQiLCJMTkciLCJjb250cm9sIiwic2NhbGUiLCJhZGRUbyIsInNldE1heEJvdW5kcyIsIk1BUF9CT1VORFMiLCJPU01fTEFZRVIiLCJFU1JJX0xBWUVSIiwibGF5ZXJzIiwicG9zaXRpb24iLCJfdGhpcyIsIm9uIiwiX21hcENsaWNrZWQiLCJiaW5kIiwicGFuSW5zaWRlQm91bmRzIiwiYW5pbWF0ZSIsIm9wdHMiLCJjb25zb2xlIiwibG9nIiwibGF0bG5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImxhdCIsImxuZyIsImRyYXdVc2VyTWFya2VyIiwibWQiLCJ1c2VyIiwibWFya2VyIiwiaWNvbiIsInNldExhdExuZyIsImFkZE1hcmsiLCJjcmVhdGVQb3B1cCIsIl90aGlzMiIsInR5cGVzIiwidHlwZSIsInNwbGl0IiwibGVuZ3RoIiwiY29uY2F0IiwiZmx5VG8iLCJiaW5kUG9wdXAiLCJpIiwicHVzaCIsImFkZFBvbHlnb24iLCJwb2x5Z29uIiwiT2JqZWN0IiwiZnJlZXplIiwicmVzdGF1cmFudCIsIkljb24iLCJpY29uVXJsIiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwicG9wdXBBbmNob3IiLCJzaGFkb3dVcmwiLCJzaGFkb3dTaXplIiwic2hhZG93QW5jaG9yIiwiYmFyIiwidG9iYWNjbyIsImNlbGxhciIsImdyb2NlcnkiLCJzcG9ydCIsImJha2VyeSIsInN0b3JlIiwiYm9vayIsImxhbmRtYXJrIiwiY3JhZnQiLCJnYXJkZW4iLCJjYXIiLCJnYXMiLCJhbmltYWwiLCJtYWlsIiwicGFyayIsInJlY3ljbGUiLCJhZG1pbmlzdHJhdGlvbiIsImJhbmsiLCJtZWRpY2FsIiwiZGVjbyIsImJhcnN0b3JlIiwiZ2V0RGlzdGFuY2VCZXR3ZWVuQ29vcmRzIiwiZnJvbSIsInRvIiwibG9uMSIsIk1hdGgiLCJQSSIsImxhdDEiLCJsb24yIiwibGF0MiIsImRlbHRhTGF0IiwiZGVsdGFMb24iLCJhIiwicG93Iiwic2luIiwiY29zIiwiYyIsImFzaW4iLCJzcXJ0IiwiY29udmVydERpc3RhbmNlVG9TdHJpbmciLCJkaXN0YW5jZSIsInByZWNpc2lvblJvdW5kIiwiYnVpbGREaXN0YW5jZUVUQSIsImNhck1pbnV0ZXMiLCJjYXJTZWNvbmRzIiwiZmxvb3IiLCJ3YWxrTWludXRlcyIsIndhbGtTZWNvbmRzIiwid2FsayIsInByZWNpc2lvbiIsIm11bHRpcGxpZXIiLCJyb3VuZCIsImxhdExuZ0JvdW5kcyIsImxhdExuZyIsInRpbGVMYXllciIsImF0dHJpYnV0aW9uIiwibWF4Wm9vbSIsIm1pblpvb20iLCJNb25Eb3VyZGFubmFpcyIsIl9kYXRhIiwiX3VzZXIiLCJIT01FX0xBVCIsIkhPTUVfTE5HIiwiYWNjdXJhY3kiLCJfaW5pdEdlb2xvY2F0aW9uIiwidGhlbiIsIl9mZXRjaE1hcmtlcnMiLCJfaW5pdE1hcCIsIl9pbml0RXZlbnRzIiwiX2J1aWxkTWFya2VycyIsIl9idWlsZFBvbHlnb25zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJuYXZpZ2F0b3IiLCJlbmFibGVIaWdoQWNjdXJhY3kiLCJtYXhpbXVtQWdlIiwidGltZW91dCIsIl93YXRjaElkIiwiZ2VvbG9jYXRpb24iLCJ3YXRjaFBvc2l0aW9uIiwiY29vcmRzIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJmZXRjaCIsImRhdGEiLCJqc29uIiwianNvbkRhdGEiLCJfdGhpczMiLCJfdGhpczQiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNsb3NlTW9kYWwiLCJfdGhpczUiLCJrZXlzIiwibWFya2VycyIsImoiLCJfY3JlYXRlTWFya2VyUG9wdXAiLCJfdGhpczYiLCJjaXR5Qm91bmRzIiwiZG9tIiwiY3JlYXRlRWxlbWVudCIsInRpdGxlIiwiYWRkcmVzcyIsInRvd24iLCJwaG9uZSIsIndlYnNpdGUiLCJpbmZvIiwib3BlbldpdGgiLCJjbGFzc0xpc3QiLCJhZGQiLCJpbm5lckhUTUwiLCJuYW1lIiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImFwcGVuZENoaWxkIiwiYnV0dG9uIiwiX21hcmtlck9wZW5lZFN0YXRlIiwidGltZXRhYmxlIiwiX3RpbWV0YmFsZU1vZGFsIiwic3RhdGUiLCJtb3JlIiwiX2NoZWNrVGltZSIsInNldEludGVydmFsIiwiX21hcmtlcklzT3BlbmVkIiwibm93IiwiRGF0ZSIsImhvdXIiLCJnZXRIb3VycyIsIm1pbnV0ZXMiLCJnZXRNaW51dGVzIiwiZGF5T2ZXZWVrIiwiZ2V0RGF5Iiwib3BlbmluZ1RpbWUiLCJwYXJzZUludCIsIm9wZW4iLCJoIiwibSIsImNsb3NpbmdUaW1lIiwiY2xvc2UiLCJjdXJyZW50VGltZSIsImlzT3BlbiIsImlzTmFOIiwiaGFzQnJlYWsiLCJicmVha09wZW5pbmdUaW1lIiwiZW5kIiwiYnJlYWtDbG9zaW5nVGltZSIsInN0YXJ0IiwiX21hcmtlcklzQ2xvc2VkIiwiYWx3YXlzT3BlbmVkIiwiZmlyc3RDaGlsZCIsImxhc3RDaGlsZCIsInJlbW92ZSIsIl90aGlzNyIsImZldGNoTW9kYWwiLCJxdWVyeVNlbGVjdG9yIiwiZXRhIiwiZGF5RG9tIiwiY2hpbGRyZW4iLCJtb3JuaW5nIiwibGFzdEVsZW1lbnRDaGlsZCIsImZpcnN0RWxlbWVudENoaWxkIiwiYWZ0ZXJub29uIiwic3R5bGUiLCJkaXNwbGF5Iiwic2V0VGltZW91dCIsIm9wYWNpdHkiLCJ1cmwiLCJ0ZXh0IiwiaHRtbCIsImNyZWF0ZVJhbmdlIiwiY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50IiwiZXZlbnQiLCJmb3JjZSIsInRhcmdldCIsImlkIiwiaW5kZXhPZiIsImdldCJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/assets/html/index.html b/index.html similarity index 78% rename from assets/html/index.html rename to index.html index de9e1a2..5ecbd0b 100644 --- a/assets/html/index.html +++ b/index.html @@ -10,8 +10,8 @@ - - + +
Attention version alpha ; le contenu du site reste incomplet. contact@messebasse-production.com pour toute demande.
@@ -19,10 +19,10 @@ - - + + - +