New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

aurorajs

Package Overview
Dependencies
Maintainers
1
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aurorajs - npm Package Compare versions

Comparing version 0.1.48 to 0.1.49

40

index.js

@@ -13,18 +13,22 @@ "use strict";

for (var i = 0; i < lines.length; i++) {
if (lines[i].split("erial Number:").length > 1) {
if (lines[i].split("erial Number:").length > 1 && lines[i].split("erial Number: ")[1].length > 1) {
checkanswer.serial = lines[i].split("erial Number: ")[1];
}
if (lines[i].split("irmware:").length > 1) {
else {
checkanswer.serial = "none";
}
if (lines[i].split("irmware:").length > 1 && lines[i].split("irmware: ")[1].length > 1) {
checkanswer.firmware = lines[i].split("irmware: ")[1];
}
if (lines[i].split("anufacturing Date:").length > 1) {
else {
checkanswer.firmware = "none";
}
if (lines[i].split("anufacturing Date:").length > 1 && lines[i].split("anufacturing Date: ")[1].length > 1) {
checkanswer.dateprod = lines[i].split("anufacturing Date: ")[1];
}
else {
checkanswer.dateprod = "none";
}
}
if (checkanswer.serial && checkanswer.serial !== "" && checkanswer.firmware && checkanswer.firmware !== "" && checkanswer.dateprod && checkanswer.dateprod !== "") {
resolve(checkanswer);
}
else {
reject("malformed answer");
}
resolve(checkanswer);
}).catch(function (err) {

@@ -74,3 +78,11 @@ reject(err);

return new Promise(function (resolve, reject) {
if (!addressesoptions[0].serial) {
var checkmodel = false;
for (var i = 0; i < addressesoptions.length; i++) {
if (!checkmodel) {
if (addressesoptions[i].serial === "none" || addressesoptions[i].firmware === "none" || addressesoptions[i].dateprod === "none") {
checkmodel = true;
}
}
}
if (checkmodel) {
console.log("checking versions");

@@ -176,5 +188,5 @@ that.checkAll().then(function (a) {

console.log(err);
checkanswer.serial = "";
checkanswer.firmware = "";
checkanswer.dateprod = "";
checkanswer.serial = "none";
checkanswer.firmware = "none";
checkanswer.dateprod = "none";
resolve(checkanswer);

@@ -227,2 +239,2 @@ });

//# sourceMappingURL=data:application/json;base64,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LFVBQVMsR0FBRztnQkFDWCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUdOLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEIsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFFSixPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRXhCLENBQUM7WUFFTCxDQUFDLENBQUMsQ0FBQztRQUtQLENBQUMsQ0FBQyxDQUFDO0lBR1AsQ0FBQztJQUdELHlCQUFXLEdBQVgsVUFBWSxHQUFpRTtRQUN6RSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ04sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztnQkFBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDbEQsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDL0MsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFDTCxVQUFDO0FBQUQsQ0FyUUEsQUFxUUMsSUFBQTtBQUNELGlCQUFTLEdBQUcsQ0FBQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBleGVjID0gcmVxdWlyZShcInByb21pc2VkLWV4ZWNcIik7XG5pbXBvcnQgKiBhcyBQcm9taXNlIGZyb20gXCJibHVlYmlyZFwiO1xuaW1wb3J0ICogYXMgT3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgbHN1c2JkZXYgPSByZXF1aXJlKFwibHN1c2JkZXZcIik7XG5pbXBvcnQgYXN5bmMgPSByZXF1aXJlKFwiYXN5bmNcIik7XG5cbmxldCBhcGlWZXJzaW9uOiBzdHJpbmcgPSByZXF1aXJlKF9fZGlybmFtZSArIFwiL3BhY2thZ2UuanNvblwiKS5hcGlWZXJzaW9uO1xuXG5cbmZ1bmN0aW9uIGNoZWNraW5nKGNoZWNrYW5zd2VyLCBjbWQpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8SUFkZHJlc3M+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG5cbiAgICAgICAgZXhlYyhjbWQpLnRoZW4oZnVuY3Rpb24oZGF0YSkgeyAvLyBmaXJtd2FyZVxuICAgICAgICAgICAgbGV0IGxpbmVzID0gZGF0YS5zcGxpdChcIlxcblwiKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcblxuICAgICAgICAgICAgICAgIGlmIChsaW5lc1tpXS5zcGxpdChcImVyaWFsIE51bWJlcjpcIikubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5zZXJpYWwgPSBsaW5lc1tpXS5zcGxpdChcImVyaWFsIE51bWJlcjogXCIpWzFdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChsaW5lc1tpXS5zcGxpdChcImlybXdhcmU6XCIpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZmlybXdhcmUgPSBsaW5lc1tpXS5zcGxpdChcImlybXdhcmU6IFwiKVsxXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobGluZXNbaV0uc3BsaXQoXCJhbnVmYWN0dXJpbmcgRGF0ZTpcIikubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5kYXRlcHJvZCA9IGxpbmVzW2ldLnNwbGl0KFwiYW51ZmFjdHVyaW5nIERhdGU6IFwiKVsxXTtcbiAgICAgICAgICAgICAgICB9XG5cblxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjaGVja2Fuc3dlci5zZXJpYWwgJiYgY2hlY2thbnN3ZXIuc2VyaWFsICE9PSBcIlwiICYmIGNoZWNrYW5zd2VyLmZpcm13YXJlICYmIGNoZWNrYW5zd2VyLmZpcm13YXJlICE9PSBcIlwiICYmIGNoZWNrYW5zd2VyLmRhdGVwcm9kICYmIGNoZWNrYW5zd2VyLmRhdGVwcm9kICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShjaGVja2Fuc3dlcik7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KFwibWFsZm9ybWVkIGFuc3dlclwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gICBjaGVja2Fuc3dlci5maXJtd2FyZSA9IGRhdGE7XG5cbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSk7XG5cblxuXG4gICAgfSk7XG5cbn1cblxuXG5cbmZ1bmN0aW9uIHByZXBhcmVfYWRkcmVzcyhhZGRyZXNzZXM6IElBZGRyZXNzW10pIHtcbiAgICBsZXQgcmVhZGRyID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVhZGRyW2ldID0geyB1dWlkOiBhZGRyZXNzZXNbaV0udXVpZCwgZGV2OiBhZGRyZXNzZXNbaV0uaHViLCBhZGRyZXNzOiBhZGRyZXNzZXNbaV0uYWRkcmVzcyB9O1xuXG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyZWFkZHIpO1xufVxuXG5cblxuaW50ZXJmYWNlIElzdHJpbmcge1xuICAgIHZvbHRhZ2U6IG51bWJlcjtcbiAgICBjdXJyZW50OiBudW1iZXI7XG4gICAgcG93ZXI6IG51bWJlcjtcbn1cblxuXG5cbmludGVyZmFjZSBJQVBJIHtcblxuICAgIF9pZDogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICAgIGJvb3RJZDogc3RyaW5nO1xuICAgIGJvb3RUaW1lOiBudW1iZXI7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIHVwZGF0ZWRBdDogbnVtYmVyO1xuICAgIGRhdGU6IHN0cmluZztcbiAgICBzdHJpbmdzOiBJc3RyaW5nW107XG4gICAgZ3JpZDoge1xuICAgICAgICB2b2x0YWdlOiBudW1iZXI7XG4gICAgICAgIGN1cnJlbnQ6IG51bWJlcjtcbiAgICAgICAgcG93ZXI6IG51bWJlcjtcbiAgICAgICAgaHo6IG51bWJlcjtcbiAgICB9O1xuICAgIERjQWNDdnJFZmY6IG51bWJlcjtcbiAgICBpbnZUZW1wOiBudW1iZXI7XG4gICAgZW52VGVtcDogbnVtYmVyO1xuICAgIGRhaWx5RW5lcmd5OiBudW1iZXI7XG4gICAgd2Vla2x5RW5lcmd5OiBudW1iZXI7XG4gICAgbGFzdDdEYXlzRW5lcmd5OiBudW1iZXI7XG4gICAgbW9udGhseUVuZXJneTogbnVtYmVyO1xuICAgIHllYXJseUVuZXJneTogbnVtYmVyO1xuICAgIHRvdGFsRW5lcmd5OiBudW1iZXI7XG4gICAgcGFydGlhbEVuZXJneTogbnVtYmVyO1xuICAgIGJ1bGtWOiBudW1iZXI7XG4gICAgYnVsa01WOiBudW1iZXI7XG4gICAgYnVsa0RDOiBudW1iZXI7XG4gICAgaXNvUmVzOiBudW1iZXI7XG4gICAgZ3JpZFZEQzogbnVtYmVyO1xuICAgIGdyaWRBdmdWOiBudW1iZXI7XG4gICAgZ3JpZERDSHo6IG51bWJlcjtcbiAgICBwZWFrTWF4OiBudW1iZXI7XG4gICAgcGVha0RheTogbnVtYmVyO1xuICAgIHBpbjFXOiBudW1iZXI7XG4gICAgcGluMlc6IG51bWJlcjtcblxuICAgIGZpcm13YXJlOiBzdHJpbmc7XG4gICAgZGF0ZXByb2Q6IHN0cmluZztcbiAgICBzZXJpYWw6IHN0cmluZztcbiAgICBhZGRyZXNzOiBudW1iZXI7XG4gICAgbW9kZWw6IHN0cmluZztcbiAgICBhcGlWZXJzaW9uOiBzdHJpbmc7XG59XG5cblxuXG5pbnRlcmZhY2UgSUFkZHJlc3Mge1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICBkZXY/OiBzdHJpbmc7XG4gICAgYWRkcmVzczogbnVtYmVyO1xuICAgIGh1Yj86IHN0cmluZztcbiAgICBmaXJtd2FyZT86IHN0cmluZztcbiAgICBkYXRlcHJvZD86IHN0cmluZztcbiAgICBzZXJpYWw/OiBzdHJpbmc7XG4gICAgbW9kZWw/OiBzdHJpbmc7XG4gICAgYXBpVmVyc2lvbj86IHN0cmluZztcbn1cblxuY2xhc3MgQUpTIHtcbiAgICBhZGRyZXNzZXM6IElBZGRyZXNzW107XG4gICAgdGltZXpvbmU6IHN0cmluZztcbiAgICBleGVjOiBzdHJpbmc7XG4gICAgYXBpVmVyc2lvbjogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKGFkZHJlc3NlczogSUFkZHJlc3NbXSwgdGltZXpvbmU6IHN0cmluZywgZXhlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXBpVmVyc2lvbiA9IGFwaVZlcnNpb247XG4gICAgICAgIHRoaXMuYWRkcmVzc2VzID0gYWRkcmVzc2VzO1xuICAgICAgICB0aGlzLnRpbWV6b25lID0gdGltZXpvbmU7XG4gICAgICAgIGxldCBjbWQ6IHN0cmluZztcbiAgICAgICAgaWYgKGV4ZSkge1xuICAgICAgICAgICAgY21kID0gZXhlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKE9zLmFyY2goKSA9PT0gXCJhcm1cIikge1xuICAgICAgICAgICAgICAgIGNtZCA9IF9fZGlybmFtZSArIFwiL2Jpbi9yYXNwMi9hdXJvcmEuYmluXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKE9zLmFyY2goKSA9PT0gXCJ4NjRcIikge1xuICAgICAgICAgICAgICAgIGNtZCA9IF9fZGlybmFtZSArIFwiL2Jpbi94NjQvYXVyb3JhLmJpblwiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChPcy5hcmNoKCkgPT09IFwiaWEzMlwiKSB7XG4gICAgICAgICAgICAgICAgY21kID0gX19kaXJuYW1lICsgXCIvYmluL2lhMzIvYXVyb3JhLmJpblwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjbWQgPSBcImF1cm9yYVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leGVjID0gY21kO1xuICAgIH1cblxuICAgIGRhdGEoKSB7XG5cbiAgICAgICAgbGV0IGV4ZSA9IHRoaXMuZXhlYztcbiAgICAgICAgbGV0IHRpbWV6b25lID0gdGhpcy50aW1lem9uZTtcblxuICAgICAgICBsZXQgYWRkcmVzc2Vzb3B0aW9ucyA9IHRoaXMuYWRkcmVzc2VzO1xuXG4gICAgICAgIGxldCBwcmVwYXJlZF9hZGRyZXNzZXMgPSBwcmVwYXJlX2FkZHJlc3MoYWRkcmVzc2Vzb3B0aW9ucyk7XG5cbiAgICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJQVBJW10+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG4gICAgICAgICAgICBpZiAoIWFkZHJlc3Nlc29wdGlvbnNbMF0uc2VyaWFsKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNoZWNraW5nIHZlcnNpb25zXCIpO1xuXG4gICAgICAgICAgICAgICAgdGhhdC5jaGVja0FsbCgpLnRoZW4oZnVuY3Rpb24oYSkge1xuXG4gICAgICAgICAgICAgICAgICAgIHRoYXQuYWRkcmVzc2VzID0gYTtcblxuICAgICAgICAgICAgICAgICAgICBleGVjKF9fZGlybmFtZSArIFwiL2F1cm9yYS5zaCAtYSBcXFwiXCIgKyBwcmVwYXJlZF9hZGRyZXNzZXMgKyBcIlxcXCIgLXQgXFxcIlwiICsgdGltZXpvbmUgKyBcIlxcXCIgLWUgXFxcIlwiICsgZXhlICsgXCJcXFwiXCIpLnRoZW4oZnVuY3Rpb24oZGF0YTogc3RyaW5nKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcGlhbnM6IElBUElbXSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFwaWFucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGYgPSAwOyBmIDwgYS5sZW5ndGg7IGYrKykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcGlhbnNbaV0udWlkID09PSBhW2ZdLnV1aWQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFbZl0uZmlybXdhcmUpIGFwaWFuc1tpXS5maXJtd2FyZSA9IGFbZl0uZmlybXdhcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYVtmXS5kYXRlcHJvZCkgYXBpYW5zW2ldLmRhdGVwcm9kID0gYVtmXS5kYXRlcHJvZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhW2ZdLnNlcmlhbCkgYXBpYW5zW2ldLnNlcmlhbCA9IGFbZl0uc2VyaWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFbZl0uYWRkcmVzcykgYXBpYW5zW2ldLmFkZHJlc3MgPSBhW2ZdLmFkZHJlc3M7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWFuc1tpXS5tb2RlbCA9IFwiQXVyb3JhXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0uYXBpVmVyc2lvbiA9IGFwaVZlcnNpb247XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFwaWFucyk7XG5cbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cblxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICBleGVjKF9fZGlybmFtZSArIFwiL2F1cm9yYS5zaCAtYSBcXFwiXCIgKyBwcmVwYXJlZF9hZGRyZXNzZXMgKyBcIlxcXCIgLXQgXFxcIlwiICsgdGltZXpvbmUgKyBcIlxcXCIgLWUgXFxcIlwiICsgZXhlICsgXCJcXFwiXCIpLnRoZW4oZnVuY3Rpb24oZGF0YTogc3RyaW5nKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcGlhbnM6IElBUElbXSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFwaWFucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWFuc1tpXS5tb2RlbCA9IFwiQXVyb3JhXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpYW5zW2ldLmFwaVZlcnNpb24gPSBhcGlWZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFwaWFucyk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICBleGVjKF9fZGlybmFtZSArIFwiL2F1cm9yYS5zaCAtYSBcXFwiXCIgKyBwcmVwYXJlZF9hZGRyZXNzZXMgKyBcIlxcXCIgLXQgXFxcIlwiICsgdGltZXpvbmUgKyBcIlxcXCIgLWUgXFxcIlwiICsgZXhlICsgXCJcXFwiXCIpLnRoZW4oZnVuY3Rpb24oZGF0YTogc3RyaW5nKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGFwaWFuczogSUFQSVtdID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcGlhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGYgPSAwOyBmIDwgYWRkcmVzc2Vzb3B0aW9ucy5sZW5ndGg7IGYrKykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwaWFuc1tpXS51aWQgPT09IGFkZHJlc3Nlc29wdGlvbnNbZl0udXVpZCkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzZXNvcHRpb25zW2ZdLmZpcm13YXJlKSBhcGlhbnNbaV0uZmlybXdhcmUgPSBhZGRyZXNzZXNvcHRpb25zW2ZdLmZpcm13YXJlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2Vzb3B0aW9uc1tmXS5kYXRlcHJvZCkgYXBpYW5zW2ldLmRhdGVwcm9kID0gYWRkcmVzc2Vzb3B0aW9uc1tmXS5kYXRlcHJvZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZHJlc3Nlc29wdGlvbnNbZl0uc2VyaWFsKSBhcGlhbnNbaV0uc2VyaWFsID0gYWRkcmVzc2Vzb3B0aW9uc1tmXS5zZXJpYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzZXNvcHRpb25zW2ZdLmFkZHJlc3MpIGFwaWFuc1tpXS5hZGRyZXNzID0gYWRkcmVzc2Vzb3B0aW9uc1tmXS5hZGRyZXNzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWFuc1tpXS5tb2RlbCA9IFwiQXVyb3JhXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWFuc1tpXS5hcGlWZXJzaW9uID0gYXBpVmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYXBpYW5zKTtcblxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIGNoZWNrKHV1aWQ6IHN0cmluZykgeyAvLyBnZXQgbW9kZWwsIGZpcm13YXJlLCBwcm9kdWN0aW9uIGRhdGVcblxuXG4gICAgICAgIGlmICghdXVpZCkgdGhyb3cgRXJyb3IoXCJubyB1aWQgcHJvdmlkZWRcIik7XG5cblxuICAgICAgICBsZXQgZXhlID0gdGhpcy5leGVjO1xuXG4gICAgICAgIGxldCBhZGRyZXNzZXMgPSB0aGlzLmFkZHJlc3NlcztcblxuXG5cbiAgICAgICAgbGV0IGNoZWNrYW5zd2VyID0gPElBZGRyZXNzPnsgdXVpZDogdXVpZCB9O1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJQWRkcmVzcz4oZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG5cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2VzW2ldLnV1aWQgPT09IHV1aWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuaHViID0gYWRkcmVzc2VzW2ldLmh1YjtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuYWRkcmVzcyA9IGFkZHJlc3Nlc1tpXS5hZGRyZXNzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBsc3VzYmRldigpLnRoZW4oZnVuY3Rpb24oZGV2aXMpIHtcblxuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZXZpcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGV2aXNbaV0uaHViID09PSBjaGVja2Fuc3dlci5odWIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmRldiA9IGRldmlzW2ldLmRldjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgICAgICAgICBsZXQgY21kID0gZXhlICsgXCIgLWEgXCIgKyBjaGVja2Fuc3dlci5hZGRyZXNzICsgXCIgLVkgMjAgLW4gLWYgLWcgXCIgKyBjaGVja2Fuc3dlci5kZXY7XG5cbiAgICAgICAgICAgICAgICBjaGVja2luZyhjaGVja2Fuc3dlciwgY21kKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhKTtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tpbmcoY2hlY2thbnN3ZXIsIGNtZCkudGhlbihmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGEpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNraW5nKGNoZWNrYW5zd2VyLCBjbWQpLnRoZW4oZnVuY3Rpb24oYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2luZyhjaGVja2Fuc3dlciwgY21kKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLnNlcmlhbCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmZpcm13YXJlID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZGF0ZXByb2QgPSBcIlwiO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoY2hlY2thbnN3ZXIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cblxuICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcImVycnJycnIyXCIpO1xuXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgfSk7XG5cbiAgICB9XG5cblxuICAgIGNoZWNrQWxsKCkge1xuXG4gICAgICAgIGxldCBhZGRyZXNzZXMgPSB0aGlzLmFkZHJlc3NlcztcblxuICAgICAgICBsZXQgdGhhdCA9IHRoaXM7XG5cbiAgICAgICAgbGV0IGFsbGFuc3dlcnM6IElBZGRyZXNzW10gPSBbXTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8SUFkZHJlc3NbXT4oZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG5cblxuICAgICAgICAgICAgYXN5bmMuZWFjaChhZGRyZXNzZXMsIGZ1bmN0aW9uKGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuXG4gICAgICAgICAgICAgICAgdGhhdC5jaGVjayhpdGVyYXRvci51dWlkKS50aGVuKGZ1bmN0aW9uKGNoa2Fuc3cpIHtcblxuICAgICAgICAgICAgICAgICAgICBhbGxhbnN3ZXJzLnB1c2goY2hrYW5zdyk7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcblxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gT25lIG9mIHRoZSBpdGVyYXRpb25zIHByb2R1Y2VkIGFuIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAvLyBBbGwgcHJvY2Vzc2luZyB3aWxsIG5vdyBzdG9wLlxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYWxsYW5zd2Vycyk7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuXG5cblxuXG4gICAgICAgIH0pO1xuXG5cbiAgICB9XG5cblxuICAgIHJlY29uZmlndXJlKG9wdDogeyBhZGRyZXNzZXM/OiBJQWRkcmVzc1tdLCB0aW1lem9uZT86IHN0cmluZywgZXhlYz86IHN0cmluZyB9KSB7XG4gICAgICAgIGlmIChvcHQpIHtcbiAgICAgICAgICAgIGlmIChvcHQuYWRkcmVzc2VzKSB0aGlzLmFkZHJlc3NlcyA9IG9wdC5hZGRyZXNzZXM7XG4gICAgICAgICAgICBpZiAob3B0LnRpbWV6b25lKSB0aGlzLnRpbWV6b25lID0gb3B0LnRpbWV6b25lO1xuICAgICAgICAgICAgaWYgKG9wdC5leGVjKSB0aGlzLmV4ZWMgPSBvcHQuZXhlYztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCA9IEFKU1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDcEMsSUFBWSxPQUFPLFdBQU0sVUFBVSxDQUFDLENBQUE7QUFDcEMsSUFBWSxFQUFFLFdBQU0sSUFBSSxDQUFDLENBQUE7QUFDekIsSUFBTyxRQUFRLFdBQVcsVUFBVSxDQUFDLENBQUM7QUFDdEMsSUFBTyxLQUFLLFdBQVcsT0FBTyxDQUFDLENBQUM7QUFFaEMsSUFBSSxVQUFVLEdBQVcsT0FBTyxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFHekUsa0JBQWtCLFdBQVcsRUFBRSxHQUFHO0lBQzlCLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBVyxVQUFTLE9BQU8sRUFBRSxNQUFNO1FBR2pELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxJQUFJO1lBQ3hCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBRXBDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRS9GLFdBQVcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3RCxDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNKLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUNoQyxDQUFDO2dCQUVELEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUVyRixXQUFXLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTFELENBQUM7Z0JBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ0osV0FBVyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7Z0JBQ2xDLENBQUM7Z0JBRUQsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN6RyxXQUFXLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEUsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDSixXQUFXLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFDbEMsQ0FBQztZQUVMLENBQUM7WUFHRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFNekIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRztZQUNqQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFJUCxDQUFDLENBQUMsQ0FBQztBQUVQLENBQUM7QUFJRCx5QkFBeUIsU0FBcUI7SUFDMUMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFbEcsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUF3RUQ7SUFLSSxhQUFZLFNBQXFCLEVBQUUsUUFBZ0IsRUFBRSxHQUFZO1FBQzdELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksR0FBVyxDQUFDO1FBQ2hCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDTixHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2QsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLEdBQUcsR0FBRyxTQUFTLEdBQUcsdUJBQXVCLENBQUM7WUFDOUMsQ0FBQztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDN0IsR0FBRyxHQUFHLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQztZQUM1QyxDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixHQUFHLEdBQUcsU0FBUyxHQUFHLHNCQUFzQixDQUFDO1lBQzdDLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixHQUFHLEdBQUcsUUFBUSxDQUFDO1lBQ25CLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFJLEdBQUo7UUFFSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFN0IsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXRDLElBQUksa0JBQWtCLEdBQUcsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFM0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWhCLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBUyxVQUFTLE9BQU8sRUFBRSxNQUFNO1lBRS9DLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztZQUV2QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUUvQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ2QsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO3dCQUM5SCxVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUN0QixDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBR0QsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFFYixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBRWpDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBUyxDQUFDO29CQUUzQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztvQkFFbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsR0FBRyxrQkFBa0IsR0FBRyxVQUFVLEdBQUcsUUFBUSxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVMsSUFBWTt3QkFFbEksSUFBSSxNQUFNLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDdEMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7NEJBQ3JDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dDQUVoQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29DQUU5QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO3dDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztvQ0FDdEQsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzt3Q0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7b0NBQ3RELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7d0NBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO29DQUNoRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO3dDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztvQ0FFbkQsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7b0NBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO2dDQUV0QyxDQUFDOzRCQUNMLENBQUM7d0JBRUwsQ0FBQzt3QkFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBRXBCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFTLEdBQUc7d0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBRWpCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBR1AsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRztvQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsR0FBRyxrQkFBa0IsR0FBRyxVQUFVLEdBQUcsUUFBUSxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVMsSUFBWTt3QkFFbEksSUFBSSxNQUFNLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDdEMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7NEJBQ3JDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDOzRCQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQzt3QkFDdEMsQ0FBQzt3QkFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3BCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFTLEdBQUc7d0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBRVAsQ0FBQyxDQUFDLENBQUM7WUFHUCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRUosSUFBSSxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsR0FBRyxrQkFBa0IsR0FBRyxVQUFVLEdBQUcsUUFBUSxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVMsSUFBWTtvQkFFbEksSUFBSSxNQUFNLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7d0JBQ3JDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7NEJBRS9DLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQ0FFN0MsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO29DQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2dDQUNwRixFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7b0NBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0NBQ3BGLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQ0FDOUUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO29DQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dDQUVqRixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQ0FDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7NEJBQ3RDLENBQUM7d0JBQ0wsQ0FBQztvQkFFTCxDQUFDO29CQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFcEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRztvQkFDakIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztZQUVQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFRCxtQkFBSyxHQUFMLFVBQU0sSUFBWTtRQUdkLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQUMsTUFBTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUcxQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRXBCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFJL0IsSUFBSSxXQUFXLEdBQWEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFM0MsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFXLFVBQVMsT0FBTyxFQUFFLE1BQU07WUFHakQsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDN0IsV0FBVyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO29CQUNuQyxXQUFXLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQy9DLENBQUM7WUFDTCxDQUFDO1lBR0QsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVMsS0FBSztnQkFHMUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ3BDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ25DLFdBQVcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztvQkFDbkMsQ0FBQztnQkFDTCxDQUFDO2dCQUlELElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO2dCQUVwRixRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFTLENBQUM7b0JBQ3RDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDZixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ0wsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxDQUFDO3dCQUN0QyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2YsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO3dCQUNMLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVMsQ0FBQzs0QkFDdEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNmLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzs0QkFDTCxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFTLENBQUM7Z0NBQ3RDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDZixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBUyxHQUFHO2dDQUVqQixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dDQUVqQixXQUFXLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQ0FDNUIsV0FBVyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7Z0NBQzlCLFdBQVcsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO2dDQUU5QixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7NEJBRXpCLENBQUMsQ0FBQyxDQUFDO3dCQUNQLENBQUMsQ0FBQyxDQUFDO29CQUNQLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO1lBR1AsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRztnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFMUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWhCLENBQUMsQ0FBQyxDQUFDO1FBR1AsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBR0Qsc0JBQVEsR0FBUjtRQUVJLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFL0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWhCLElBQUksVUFBVSxHQUFlLEVBQUUsQ0FBQztRQUVoQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQWEsVUFBUyxPQUFPLEVBQUUsTUFBTTtZQUduRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFTLFFBQVEsRUFBRSxRQUFRO2dCQUU3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxPQUFPO29CQUUzQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUV6QixRQUFRLEVBQUUsQ0FBQztnQkFFZixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ0wsUUFBUSxFQUFFLENBQUM7Z0JBRWYsQ0FBQyxDQUFDLENBQUM7WUFFUCxDQUFDLEVBQUUsVUFBUyxHQUFHO2dCQUNYLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBR04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUVKLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFeEIsQ0FBQztZQUVMLENBQUMsQ0FBQyxDQUFDO1FBS1AsQ0FBQyxDQUFDLENBQUM7SUFHUCxDQUFDO0lBR0QseUJBQVcsR0FBWCxVQUFZLEdBQWlFO1FBQ3pFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDTixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO2dCQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUMvQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN2QyxDQUFDO0lBQ0wsQ0FBQztJQUNMLFVBQUM7QUFBRCxDQWpSQSxBQWlSQyxJQUFBO0FBQ0QsaUJBQVMsR0FBRyxDQUFBIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibGV0IGV4ZWMgPSByZXF1aXJlKFwicHJvbWlzZWQtZXhlY1wiKTtcbmltcG9ydCAqIGFzIFByb21pc2UgZnJvbSBcImJsdWViaXJkXCI7XG5pbXBvcnQgKiBhcyBPcyBmcm9tIFwib3NcIjtcbmltcG9ydCBsc3VzYmRldiA9IHJlcXVpcmUoXCJsc3VzYmRldlwiKTtcbmltcG9ydCBhc3luYyA9IHJlcXVpcmUoXCJhc3luY1wiKTtcblxubGV0IGFwaVZlcnNpb246IHN0cmluZyA9IHJlcXVpcmUoX19kaXJuYW1lICsgXCIvcGFja2FnZS5qc29uXCIpLmFwaVZlcnNpb247XG5cblxuZnVuY3Rpb24gY2hlY2tpbmcoY2hlY2thbnN3ZXIsIGNtZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxJQWRkcmVzcz4oZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG5cblxuICAgICAgICBleGVjKGNtZCkudGhlbihmdW5jdGlvbihkYXRhKSB7IC8vIGZpcm13YXJlXG4gICAgICAgICAgICBsZXQgbGluZXMgPSBkYXRhLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuXG4gICAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLnNwbGl0KFwiZXJpYWwgTnVtYmVyOlwiKS5sZW5ndGggPiAxICYmIGxpbmVzW2ldLnNwbGl0KFwiZXJpYWwgTnVtYmVyOiBcIilbMV0ubGVuZ3RoID4gMSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLnNlcmlhbCA9IGxpbmVzW2ldLnNwbGl0KFwiZXJpYWwgTnVtYmVyOiBcIilbMV07XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5zZXJpYWwgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobGluZXNbaV0uc3BsaXQoXCJpcm13YXJlOlwiKS5sZW5ndGggPiAxICYmIGxpbmVzW2ldLnNwbGl0KFwiaXJtd2FyZTogXCIpWzFdLmxlbmd0aCA+IDEpIHtcblxuICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5maXJtd2FyZSA9IGxpbmVzW2ldLnNwbGl0KFwiaXJtd2FyZTogXCIpWzFdO1xuXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZmlybXdhcmUgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobGluZXNbaV0uc3BsaXQoXCJhbnVmYWN0dXJpbmcgRGF0ZTpcIikubGVuZ3RoID4gMSAmJiBsaW5lc1tpXS5zcGxpdChcImFudWZhY3R1cmluZyBEYXRlOiBcIilbMV0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5kYXRlcHJvZCA9IGxpbmVzW2ldLnNwbGl0KFwiYW51ZmFjdHVyaW5nIERhdGU6IFwiKVsxXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5kYXRlcHJvZCA9IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIHJlc29sdmUoY2hlY2thbnN3ZXIpO1xuXG5cblxuICAgICAgICAgICAgLy8gICBjaGVja2Fuc3dlci5maXJtd2FyZSA9IGRhdGE7XG5cbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSk7XG5cblxuXG4gICAgfSk7XG5cbn1cblxuXG5cbmZ1bmN0aW9uIHByZXBhcmVfYWRkcmVzcyhhZGRyZXNzZXM6IElBZGRyZXNzW10pIHtcbiAgICBsZXQgcmVhZGRyID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVhZGRyW2ldID0geyB1dWlkOiBhZGRyZXNzZXNbaV0udXVpZCwgZGV2OiBhZGRyZXNzZXNbaV0uaHViLCBhZGRyZXNzOiBhZGRyZXNzZXNbaV0uYWRkcmVzcyB9O1xuXG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyZWFkZHIpO1xufVxuXG5cblxuaW50ZXJmYWNlIElzdHJpbmcge1xuICAgIHZvbHRhZ2U6IG51bWJlcjtcbiAgICBjdXJyZW50OiBudW1iZXI7XG4gICAgcG93ZXI6IG51bWJlcjtcbn1cblxuXG5cbmludGVyZmFjZSBJQVBJIHtcblxuICAgIF9pZDogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICAgIGJvb3RJZDogc3RyaW5nO1xuICAgIGJvb3RUaW1lOiBudW1iZXI7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIHVwZGF0ZWRBdDogbnVtYmVyO1xuICAgIGRhdGU6IHN0cmluZztcbiAgICBzdHJpbmdzOiBJc3RyaW5nW107XG4gICAgZ3JpZDoge1xuICAgICAgICB2b2x0YWdlOiBudW1iZXI7XG4gICAgICAgIGN1cnJlbnQ6IG51bWJlcjtcbiAgICAgICAgcG93ZXI6IG51bWJlcjtcbiAgICAgICAgaHo6IG51bWJlcjtcbiAgICB9O1xuICAgIERjQWNDdnJFZmY6IG51bWJlcjtcbiAgICBpbnZUZW1wOiBudW1iZXI7XG4gICAgZW52VGVtcDogbnVtYmVyO1xuICAgIGRhaWx5RW5lcmd5OiBudW1iZXI7XG4gICAgd2Vla2x5RW5lcmd5OiBudW1iZXI7XG4gICAgbGFzdDdEYXlzRW5lcmd5OiBudW1iZXI7XG4gICAgbW9udGhseUVuZXJneTogbnVtYmVyO1xuICAgIHllYXJseUVuZXJneTogbnVtYmVyO1xuICAgIHRvdGFsRW5lcmd5OiBudW1iZXI7XG4gICAgcGFydGlhbEVuZXJneTogbnVtYmVyO1xuICAgIGJ1bGtWOiBudW1iZXI7XG4gICAgYnVsa01WOiBudW1iZXI7XG4gICAgYnVsa0RDOiBudW1iZXI7XG4gICAgaXNvUmVzOiBudW1iZXI7XG4gICAgZ3JpZFZEQzogbnVtYmVyO1xuICAgIGdyaWRBdmdWOiBudW1iZXI7XG4gICAgZ3JpZERDSHo6IG51bWJlcjtcbiAgICBwZWFrTWF4OiBudW1iZXI7XG4gICAgcGVha0RheTogbnVtYmVyO1xuICAgIHBpbjFXOiBudW1iZXI7XG4gICAgcGluMlc6IG51bWJlcjtcblxuICAgIGZpcm13YXJlOiBzdHJpbmc7XG4gICAgZGF0ZXByb2Q6IHN0cmluZztcbiAgICBzZXJpYWw6IHN0cmluZztcbiAgICBhZGRyZXNzOiBudW1iZXI7XG4gICAgbW9kZWw6IHN0cmluZztcbiAgICBhcGlWZXJzaW9uOiBzdHJpbmc7XG59XG5cblxuXG5pbnRlcmZhY2UgSUFkZHJlc3Mge1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICBkZXY/OiBzdHJpbmc7XG4gICAgYWRkcmVzczogbnVtYmVyO1xuICAgIGh1Yj86IHN0cmluZztcbiAgICBmaXJtd2FyZT86IHN0cmluZztcbiAgICBkYXRlcHJvZD86IHN0cmluZztcbiAgICBzZXJpYWw/OiBzdHJpbmc7XG4gICAgbW9kZWw/OiBzdHJpbmc7XG4gICAgYXBpVmVyc2lvbj86IHN0cmluZztcbn1cblxuY2xhc3MgQUpTIHtcbiAgICBhZGRyZXNzZXM6IElBZGRyZXNzW107XG4gICAgdGltZXpvbmU6IHN0cmluZztcbiAgICBleGVjOiBzdHJpbmc7XG4gICAgYXBpVmVyc2lvbjogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKGFkZHJlc3NlczogSUFkZHJlc3NbXSwgdGltZXpvbmU6IHN0cmluZywgZXhlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXBpVmVyc2lvbiA9IGFwaVZlcnNpb247XG4gICAgICAgIHRoaXMuYWRkcmVzc2VzID0gYWRkcmVzc2VzO1xuICAgICAgICB0aGlzLnRpbWV6b25lID0gdGltZXpvbmU7XG4gICAgICAgIGxldCBjbWQ6IHN0cmluZztcbiAgICAgICAgaWYgKGV4ZSkge1xuICAgICAgICAgICAgY21kID0gZXhlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKE9zLmFyY2goKSA9PT0gXCJhcm1cIikge1xuICAgICAgICAgICAgICAgIGNtZCA9IF9fZGlybmFtZSArIFwiL2Jpbi9yYXNwMi9hdXJvcmEuYmluXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKE9zLmFyY2goKSA9PT0gXCJ4NjRcIikge1xuICAgICAgICAgICAgICAgIGNtZCA9IF9fZGlybmFtZSArIFwiL2Jpbi94NjQvYXVyb3JhLmJpblwiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChPcy5hcmNoKCkgPT09IFwiaWEzMlwiKSB7XG4gICAgICAgICAgICAgICAgY21kID0gX19kaXJuYW1lICsgXCIvYmluL2lhMzIvYXVyb3JhLmJpblwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjbWQgPSBcImF1cm9yYVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leGVjID0gY21kO1xuICAgIH1cblxuICAgIGRhdGEoKSB7XG5cbiAgICAgICAgbGV0IGV4ZSA9IHRoaXMuZXhlYztcbiAgICAgICAgbGV0IHRpbWV6b25lID0gdGhpcy50aW1lem9uZTtcblxuICAgICAgICBsZXQgYWRkcmVzc2Vzb3B0aW9ucyA9IHRoaXMuYWRkcmVzc2VzO1xuXG4gICAgICAgIGxldCBwcmVwYXJlZF9hZGRyZXNzZXMgPSBwcmVwYXJlX2FkZHJlc3MoYWRkcmVzc2Vzb3B0aW9ucyk7XG5cbiAgICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJQVBJW10+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG4gICAgICAgICAgICBsZXQgY2hlY2ttb2RlbCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFkZHJlc3Nlc29wdGlvbnMubGVuZ3RoOyBpKyspIHtcblxuICAgICAgICAgICAgICAgIGlmICghY2hlY2ttb2RlbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2Vzb3B0aW9uc1tpXS5zZXJpYWwgPT09IFwibm9uZVwiIHx8IGFkZHJlc3Nlc29wdGlvbnNbaV0uZmlybXdhcmUgPT09IFwibm9uZVwiIHx8IGFkZHJlc3Nlc29wdGlvbnNbaV0uZGF0ZXByb2QgPT09IFwibm9uZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja21vZGVsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBpZiAoY2hlY2ttb2RlbCkge1xuXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjaGVja2luZyB2ZXJzaW9uc1wiKTtcblxuICAgICAgICAgICAgICAgIHRoYXQuY2hlY2tBbGwoKS50aGVuKGZ1bmN0aW9uKGEpIHtcblxuICAgICAgICAgICAgICAgICAgICB0aGF0LmFkZHJlc3NlcyA9IGE7XG5cbiAgICAgICAgICAgICAgICAgICAgZXhlYyhfX2Rpcm5hbWUgKyBcIi9hdXJvcmEuc2ggLWEgXFxcIlwiICsgcHJlcGFyZWRfYWRkcmVzc2VzICsgXCJcXFwiIC10IFxcXCJcIiArIHRpbWV6b25lICsgXCJcXFwiIC1lIFxcXCJcIiArIGV4ZSArIFwiXFxcIlwiKS50aGVuKGZ1bmN0aW9uKGRhdGE6IHN0cmluZykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBpYW5zOiBJQVBJW10gPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcGlhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmID0gMDsgZiA8IGEubGVuZ3RoOyBmKyspIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBpYW5zW2ldLnVpZCA9PT0gYVtmXS51dWlkKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhW2ZdLmZpcm13YXJlKSBhcGlhbnNbaV0uZmlybXdhcmUgPSBhW2ZdLmZpcm13YXJlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFbZl0uZGF0ZXByb2QpIGFwaWFuc1tpXS5kYXRlcHJvZCA9IGFbZl0uZGF0ZXByb2Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYVtmXS5zZXJpYWwpIGFwaWFuc1tpXS5zZXJpYWwgPSBhW2ZdLnNlcmlhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhW2ZdLmFkZHJlc3MpIGFwaWFuc1tpXS5hZGRyZXNzID0gYVtmXS5hZGRyZXNzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0ubW9kZWwgPSBcIkF1cm9yYVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpYW5zW2ldLmFwaVZlcnNpb24gPSBhcGlWZXJzaW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcGlhbnMpO1xuXG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgZXhlYyhfX2Rpcm5hbWUgKyBcIi9hdXJvcmEuc2ggLWEgXFxcIlwiICsgcHJlcGFyZWRfYWRkcmVzc2VzICsgXCJcXFwiIC10IFxcXCJcIiArIHRpbWV6b25lICsgXCJcXFwiIC1lIFxcXCJcIiArIGV4ZSArIFwiXFxcIlwiKS50aGVuKGZ1bmN0aW9uKGRhdGE6IHN0cmluZykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBpYW5zOiBJQVBJW10gPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcGlhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0ubW9kZWwgPSBcIkF1cm9yYVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWFuc1tpXS5hcGlWZXJzaW9uID0gYXBpVmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcGlhbnMpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB9KTtcblxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgZXhlYyhfX2Rpcm5hbWUgKyBcIi9hdXJvcmEuc2ggLWEgXFxcIlwiICsgcHJlcGFyZWRfYWRkcmVzc2VzICsgXCJcXFwiIC10IFxcXCJcIiArIHRpbWV6b25lICsgXCJcXFwiIC1lIFxcXCJcIiArIGV4ZSArIFwiXFxcIlwiKS50aGVuKGZ1bmN0aW9uKGRhdGE6IHN0cmluZykge1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBhcGlhbnM6IElBUElbXSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXBpYW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmID0gMDsgZiA8IGFkZHJlc3Nlc29wdGlvbnMubGVuZ3RoOyBmKyspIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcGlhbnNbaV0udWlkID09PSBhZGRyZXNzZXNvcHRpb25zW2ZdLnV1aWQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2Vzb3B0aW9uc1tmXS5maXJtd2FyZSkgYXBpYW5zW2ldLmZpcm13YXJlID0gYWRkcmVzc2Vzb3B0aW9uc1tmXS5maXJtd2FyZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZHJlc3Nlc29wdGlvbnNbZl0uZGF0ZXByb2QpIGFwaWFuc1tpXS5kYXRlcHJvZCA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uZGF0ZXByb2Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzZXNvcHRpb25zW2ZdLnNlcmlhbCkgYXBpYW5zW2ldLnNlcmlhbCA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uc2VyaWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2Vzb3B0aW9uc1tmXS5hZGRyZXNzKSBhcGlhbnNbaV0uYWRkcmVzcyA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uYWRkcmVzcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0ubW9kZWwgPSBcIkF1cm9yYVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0uYXBpVmVyc2lvbiA9IGFwaVZlcnNpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFwaWFucyk7XG5cbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBjaGVjayh1dWlkOiBzdHJpbmcpIHsgLy8gZ2V0IG1vZGVsLCBmaXJtd2FyZSwgcHJvZHVjdGlvbiBkYXRlXG5cblxuICAgICAgICBpZiAoIXV1aWQpIHRocm93IEVycm9yKFwibm8gdWlkIHByb3ZpZGVkXCIpO1xuXG5cbiAgICAgICAgbGV0IGV4ZSA9IHRoaXMuZXhlYztcblxuICAgICAgICBsZXQgYWRkcmVzc2VzID0gdGhpcy5hZGRyZXNzZXM7XG5cblxuXG4gICAgICAgIGxldCBjaGVja2Fuc3dlciA9IDxJQWRkcmVzcz57IHV1aWQ6IHV1aWQgfTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8SUFkZHJlc3M+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWRkcmVzc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFkZHJlc3Nlc1tpXS51dWlkID09PSB1dWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmh1YiA9IGFkZHJlc3Nlc1tpXS5odWI7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmFkZHJlc3MgPSBhZGRyZXNzZXNbaV0uYWRkcmVzcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgbHN1c2JkZXYoKS50aGVuKGZ1bmN0aW9uKGRldmlzKSB7XG5cblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGV2aXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRldmlzW2ldLmh1YiA9PT0gY2hlY2thbnN3ZXIuaHViKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5kZXYgPSBkZXZpc1tpXS5kZXY7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cblxuXG4gICAgICAgICAgICAgICAgbGV0IGNtZCA9IGV4ZSArIFwiIC1hIFwiICsgY2hlY2thbnN3ZXIuYWRkcmVzcyArIFwiIC1ZIDIwIC1uIC1mIC1nIFwiICsgY2hlY2thbnN3ZXIuZGV2O1xuXG4gICAgICAgICAgICAgICAgY2hlY2tpbmcoY2hlY2thbnN3ZXIsIGNtZCkudGhlbihmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYSk7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNraW5nKGNoZWNrYW5zd2VyLCBjbWQpLnRoZW4oZnVuY3Rpb24oYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2luZyhjaGVja2Fuc3dlciwgY21kKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tpbmcoY2hlY2thbnN3ZXIsIGNtZCkudGhlbihmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5zZXJpYWwgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZmlybXdhcmUgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZGF0ZXByb2QgPSBcIm5vbmVcIjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGNoZWNrYW5zd2VyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJycnJyMlwiKTtcblxuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICB9KTtcblxuXG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG5cbiAgICBjaGVja0FsbCgpIHtcblxuICAgICAgICBsZXQgYWRkcmVzc2VzID0gdGhpcy5hZGRyZXNzZXM7XG5cbiAgICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuXG4gICAgICAgIGxldCBhbGxhbnN3ZXJzOiBJQWRkcmVzc1tdID0gW107XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElBZGRyZXNzW10+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG5cbiAgICAgICAgICAgIGFzeW5jLmVhY2goYWRkcmVzc2VzLCBmdW5jdGlvbihpdGVyYXRvciwgY2FsbGJhY2spIHtcblxuICAgICAgICAgICAgICAgIHRoYXQuY2hlY2soaXRlcmF0b3IudXVpZCkudGhlbihmdW5jdGlvbihjaGthbnN3KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgYWxsYW5zd2Vycy5wdXNoKGNoa2Fuc3cpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcblxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9uZSBvZiB0aGUgaXRlcmF0aW9ucyBwcm9kdWNlZCBhbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgLy8gQWxsIHByb2Nlc3Npbmcgd2lsbCBub3cgc3RvcC5cbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFsbGFuc3dlcnMpO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KTtcblxuXG5cblxuICAgICAgICB9KTtcblxuXG4gICAgfVxuXG5cbiAgICByZWNvbmZpZ3VyZShvcHQ6IHsgYWRkcmVzc2VzPzogSUFkZHJlc3NbXSwgdGltZXpvbmU/OiBzdHJpbmcsIGV4ZWM/OiBzdHJpbmcgfSkge1xuICAgICAgICBpZiAob3B0KSB7XG4gICAgICAgICAgICBpZiAob3B0LmFkZHJlc3NlcykgdGhpcy5hZGRyZXNzZXMgPSBvcHQuYWRkcmVzc2VzO1xuICAgICAgICAgICAgaWYgKG9wdC50aW1lem9uZSkgdGhpcy50aW1lem9uZSA9IG9wdC50aW1lem9uZTtcbiAgICAgICAgICAgIGlmIChvcHQuZXhlYykgdGhpcy5leGVjID0gb3B0LmV4ZWM7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgPSBBSlNcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

@@ -18,24 +18,30 @@ let exec = require("promised-exec");

if (lines[i].split("erial Number:").length > 1) {
if (lines[i].split("erial Number:").length > 1 && lines[i].split("erial Number: ")[1].length > 1) {
checkanswer.serial = lines[i].split("erial Number: ")[1];
} else {
checkanswer.serial = "none";
}
if (lines[i].split("irmware:").length > 1) {
if (lines[i].split("irmware:").length > 1 && lines[i].split("irmware: ")[1].length > 1) {
checkanswer.firmware = lines[i].split("irmware: ")[1];
} else {
checkanswer.firmware = "none";
}
if (lines[i].split("anufacturing Date:").length > 1) {
if (lines[i].split("anufacturing Date:").length > 1 && lines[i].split("anufacturing Date: ")[1].length > 1) {
checkanswer.dateprod = lines[i].split("anufacturing Date: ")[1];
} else {
checkanswer.dateprod = "none";
}
}
}
resolve(checkanswer);
if (checkanswer.serial && checkanswer.serial !== "" && checkanswer.firmware && checkanswer.firmware !== "" && checkanswer.dateprod && checkanswer.dateprod !== "") {
resolve(checkanswer);
} else {
reject("malformed answer");
}

@@ -175,4 +181,16 @@ // checkanswer.firmware = data;

if (!addressesoptions[0].serial) {
let checkmodel = false;
for (let i = 0; i < addressesoptions.length; i++) {
if (!checkmodel) {
if (addressesoptions[i].serial === "none" || addressesoptions[i].firmware === "none" || addressesoptions[i].dateprod === "none") {
checkmodel = true;
}
}
}
if (checkmodel) {
console.log("checking versions");

@@ -319,5 +337,5 @@

checkanswer.serial = "";
checkanswer.firmware = "";
checkanswer.dateprod = "";
checkanswer.serial = "none";
checkanswer.firmware = "none";
checkanswer.dateprod = "none";

@@ -324,0 +342,0 @@ resolve(checkanswer);

{
"name": "aurorajs",
"version": "0.1.48",
"version": "0.1.49",
"apiVersion": "0.0.3",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc