@vmm/service
Advanced tools
Comparing version 1.0.29 to 1.0.30
{ | ||
"name": "@vmm/service", | ||
"version": "1.0.29", | ||
"description": "VMM Service library", | ||
"main": "src/index.js", | ||
"license": "MIT", | ||
"devDependencies": { | ||
"@types/express": "^4.17.1", | ||
"ts-loader": "^5.3.3", | ||
"tsconfig-paths-webpack-plugin": "^3.2.0", | ||
"typescript": "^3.4.1" | ||
}, | ||
"scripts": { | ||
"start": "DEBUG=@* ts-node -r tsconfig-paths/register ./src/index.ts ", | ||
"serve": "nodemon -- ./src/index.ts ", | ||
"build": "rm -R ./dist/* ; tsc", | ||
"watch": "tsc -w" | ||
}, | ||
"dependencies": { | ||
"@vmm/api": "^1.0.7", | ||
"base64url": "^3.0.1", | ||
"express": "^4.17.1", | ||
"fs-extra": "^8.1.0", | ||
"jsonwebtoken": "^8.5.1", | ||
"lodash": "^4.17.15", | ||
"loglevel": "^1.6.4", | ||
"mkdirp": "^0.5.1", | ||
"mongodb": "^3.3.3" | ||
} | ||
"name": "@vmm/service", | ||
"version": "1.0.30", | ||
"main": "src/index.js", | ||
"description": "VMM Service library", | ||
"license": "MIT" | ||
} |
@@ -151,2 +151,1 @@ "use strict"; | ||
exports.Argv = Argv; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Bcmd2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQXVCO0FBaUJ2QixNQUFhLElBQUk7SUFNZixZQUFZLFVBQWEsRUFBRSxPQUFpQjtRQUZwQyxVQUFLLEdBQUcsRUFBUyxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsRUFBUyxDQUFDO1FBRTlCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBRzlCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUd0QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUcxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBSU8sa0JBQWtCO1FBQ3hCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztTQUM3QztJQUNILENBQUM7SUFJTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUc7WUFDekIsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsbUJBQW1CO1lBQ2hDLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDNUIsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFLTyxNQUFNO1FBQ1osSUFBSSxPQUFPLEdBQWtCLElBQUksQ0FBQztR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QUFDLEtBQWM7UUFFbEIsZ0JBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN2QyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDNUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUdILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqQjtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxJQUFJLEtBQUssRUFBRTtnQkFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pCO1NBQ0Y7UUFHRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqQjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFwTUQsb0JBb01DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBcmdEZWZpbmVzIHtcbiAgW2s6IHN0cmluZ106IHtcbiAgICBzaG9ydDogc3RyaW5nIHwgbnVsbDtcbiAgICBkZWZhdWx0OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIH07XG59XG5leHBvcnQgaW50ZXJmYWNlIElBcHBJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbnR5cGUgSVZhbHVlPFQgZXh0ZW5kcyBJQXJnRGVmaW5lcz4gPSB7IFtQIGluIGtleW9mIFRdOiBUW1BdW1wiZGVmYXVsdFwiXSB9O1xuXG5leHBvcnQgY2xhc3MgQXJndjxUIGV4dGVuZHMgSUFyZ0RlZmluZXM+IHtcbiAgcHJpdmF0ZSBfYXBwSW5mbz86IElBcHBJbmZvO1xuICBwcml2YXRlIF9lcnJvcj86IHN0cmluZztcbiAgcHJpdmF0ZSBfYXJnRGVmaW5lczogSUFyZ0RlZmluZXM7XG4gIHByaXZhdGUgX2FyZ3MgPSB7fSBhcyBhbnk7XG4gIHByaXZhdGUgX3BhcnNlZEFyZ3MgPSB7fSBhcyBhbnk7XG4gIGNvbnN0cnVjdG9yKGFyZ0RlZmluZXM6IFQsIGFwcEluZm86IElBcHBJbmZvKSB7XG4gICAgdGhpcy5fYXBwSW5mbyA9IGFwcEluZm87XG4gICAgdGhpcy5fYXJnRGVmaW5lcyA9IGFyZ0RlZmluZXM7XG5cbiAgICAvLyDmt7vliqDnvLrnnIHnmoRoZWxwIOWSjCB2ZXJzaW9uIOWPguaVsFxuICAgIHRoaXMuX2FkZERlZmF1bHRBcmcoKTtcblxuICAgIC8vIOWIneWni+WMlue8uuecgeWAvFxuICAgIHRoaXMuX2luaXREZWZhdWx0VmFsdWVzKCk7XG5cbiAgICAvLyDop6PmnpDlj4LmlbBcbiAgICB0aGlzLl9wYXJzZSgpO1xuICAgIHRoaXMuX2FwcGx5Q21kRGVmaW5lcygpO1xuICB9XG4gIC8qKlxuICAgKiDliJ3lp4vljJbnvLrnnIHlgLxcbiAgICovXG4gIHByaXZhdGUgX2luaXREZWZhdWx0VmFsdWVzKCkge1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyh0aGlzLl9hcmdEZWZpbmVzKSkge1xuICAgICAgdGhpcy5fYXJnc1trXSA9IHRoaXMuX2FyZ0RlZmluZXNba10uZGVmYXVsdDtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIOa3u+WKoOe8uuecgeeahGhlbHDlkox2ZXJzaW9u5Y+C5pWwXG4gICAqL1xuICBwcml2YXRlIF9hZGREZWZhdWx0QXJnKCkge1xuICAgIHRoaXMuX2FyZ0RlZmluZXNbXCJoZWxwXCJdID0ge1xuICAgICAgc2hvcnQ6IFwiaFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwic2hvdyBoZWxwIG1lc3NhZ2VcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlIC8vIOe8uuecgeWAvFxuICAgIH07XG4gICAgdGhpcy5fYXJnRGVmaW5lc1tcInZlcnNpb25cIl0gPSB7XG4gICAgICBzaG9ydDogXCJ2XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJzaG93IGN1cnJlbnQgdmVyc2lvblwiLFxuICAgICAgZGVmYXVsdDogZmFsc2UgLy8g57y655yB5YC8XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiDop6PmnpBjbWTkuLrmjIflrppjbWTlr7nosaFcbiAgICovXG4gIHByaXZhdGUgX3BhcnNlKCkge1xuICAgIGxldCBsYXN0QXJnOiBudWxsIHwgc3RyaW5nID0gbnVsbDtcbiAgICB0aGlzLl9wYXJzZWRBcmdzID0ge307XG4gICAgLy8g6Kej5p6Q5ZG95Luk6KGM5Y+C5pWwXG4gICAgcHJvY2Vzcy5hcmd2LmZvckVhY2goKGFyZywgaSkgPT4ge1xuICAgICAgLy8g6Lez6L+H5Y+C5pWwIDAsMVxuICAgICAgaWYgKGkgPT09IDAgfHwgaSA9PT0gMSkgcmV0dXJuO1xuICAgICAgLy8g6Kej5p6Q56ys5LiA5Liq5ZG95Luk5Y+C5pWw77yM6Kej5p6Q5Yiw55qE5Y+C5pWw6buY6K6k6K6+5Li6dHJ1ZVxuICAgICAgaWYgKGFyZy5zdGFydHNXaXRoKFwiLVwiKSkge1xuICAgICAgICB0aGlzLl9wYXJzZWRBcmdzW2FyZ10gPSB0cnVlO1xuICAgICAgICBsYXN0QXJnID0gYXJnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy/kuIrkuIDkuKrlj4LmlbDnmoTlgLzvvIzpu5jorqTkuLp0cnVlXG4gICAgICAgIGlmIChsYXN0QXJnKSB7XG4gICAgICAgICAgdGhpcy5fcGFyc2VkQXJnc1tsYXN0QXJnXSA9IGFyZztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBlcnIg6K6+572u6Kej5p6Q6ZSZ6K+v5L+h5oGvXG4gICAqL1xuICBwcml2YXRlIF9zZXRQYXJzZUVycm9yKGVycjogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX2Vycm9yKSB7XG4gICAgICB0aGlzLl9lcnJvciA9IHRoaXMuX2Vycm9yICsgXCJcXG5cIiArIGVycjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZXJyb3IgPSBlcnI7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiDorr7nva7lkb3ku6TnmoTlgLzvvIzmo4Dmn6XnvLrnnIHlj4LmlbDlkozlgLzvvIzmoLnmja7lrprkuYnnmoTnsbvlnovorr7nva7lgLzlubbov5vooYzovazmjaJcbiAgICovXG4gIHByaXZhdGUgX3NldEFyZ1ZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgLy8gY29uc29sZS5sb2coXCItLSBTRVRcIiwga2V5LCB2YWx1ZSwgdHlwZW9mIHRoaXMuX2FyZ0RlZmluZXNba2V5XSk7XG4gICAgc3dpdGNoICh0eXBlb2YgdGhpcy5fYXJnRGVmaW5lc1trZXldLmRlZmF1bHQpIHtcbiAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHRoaXMuX2FyZ3Nba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIOino+aekOmUmeivr1xuICAgICAgICAgIHRoaXMuX3NldFBhcnNlRXJyb3IoYEVycm9yIEFyZzogJHtrZXl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAvLyDlpITnkIZib29sZWFu57G75Z6LXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgdGhpcy5fYXJnc1trZXldID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgc3dpdGNoICh2YWx1ZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBjYXNlIFwieWVzXCI6XG4gICAgICAgICAgICBjYXNlIFwidHJ1ZVwiOlxuICAgICAgICAgICAgY2FzZSBcIjFcIjpcbiAgICAgICAgICAgICAgdGhpcy5fYXJnc1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aGlzLl9hcmdzW2tleV0gPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgIHRoaXMuX2FyZ3Nba2V5XSA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5fc2V0UGFyc2VFcnJvcihgRXJyb3IgQXJnOiAke2tleX1gKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIOagueaNruWRveS7pOihjOWumuS5ieW6lOeUqOino+aekOe7k+aenFxuICAgKiBAcGFyYW0gYXJnc1xuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlDbWREZWZpbmVzKCkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuX2FyZ0RlZmluZXMpKSB7XG4gICAgICAvLyDpppblhYjmo4Dmn6Xplb/lj4LmlbBcbiAgICAgIGNvbnN0IGxvbmdBcmcgPSBgLS0ke18ua2ViYWJDYXNlKGtleSl9YDtcbiAgICAgIGNvbnN0IHNob3J0QXJnID0gYC0ke3RoaXMuX2FyZ0RlZmluZXNba2V5XS5zaG9ydH1gO1xuICAgICAgaWYgKHRoaXMuX3BhcnNlZEFyZ3NbbG9uZ0FyZ10pIHtcbiAgICAgICAgLy8g6K6+572u6ZW/5Y+C5pWwXG4gICAgICAgIHRoaXMuX3NldEFyZ1ZhbHVlKGtleSwgdGhpcy5fcGFyc2VkQXJnc1tsb25nQXJnXSk7XG4gICAgICAgIHRoaXMuX3BhcnNlZEFyZ3NbYC0tJHtfLmtlYmFiQ2FzZShrZXkpfWBdID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9wYXJzZWRBcmdzW3Nob3J0QXJnXSkge1xuICAgICAgICAvLyDorr7nva7nn63lj4LmlbBcbiAgICAgICAgdGhpcy5fc2V0QXJnVmFsdWUoa2V5LCB0aGlzLl9wYXJzZWRBcmdzW3Nob3J0QXJnXSk7XG4gICAgICAgIHRoaXMuX3BhcnNlZEFyZ3NbYC0ke3RoaXMuX2FyZ0RlZmluZXNba2V5XS5zaG9ydH1gXSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wcmludEhlbHAoKSB7XG4gICAgaWYgKHRoaXMuX2Vycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkVSUk9SOlwiICsgdGhpcy5fZXJyb3IpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fYXBwSW5mbykge1xuICAgICAgLy8g6L6T5Ye654mI5pysXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLl9hcHBJbmZvLm5hbWUgKyBcIiB2XCIgKyB0aGlzLl9hcHBJbmZvLnZlcnNpb24pO1xuXG4gICAgICAvLyDovpPlh7rlkb3ku6TnroDku4tcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuX2FwcEluZm8uZGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIC8vIOi+k+WHuuS9v+eUqOivtOaYjlxuICAgIGNvbnNvbGUubG9nKFwiQXJndW1lbnRzOlwiKTtcbiAgICBfLmZvckVhY2godGhpcy5fYXJnRGVmaW5lcywgKGFyZywga2V5KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgLSR7YXJnLnNob3J0fSBbLS0ke18ua2ViYWJDYXNlKGtleSl9XSwgJHtcbiAgICAgICAgICBhcmcuZGVzY3JpcHRpb25cbiAgICAgICAgfSAsZGVmYXVsdDogJHthcmcuZGVmYXVsdH1gXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgY2hlY2soYkV4aXQ6IGJvb2xlYW4pIHtcbiAgICAvLyDmo4Dmn6XmmK/lkKbmnInlpJrkvZnnmoTlj4LmlbBcbiAgICBfLmZvckVhY2godGhpcy5fcGFyc2VkQXJncywgKGFyZywga2V5KSA9PiB7XG4gICAgICBpZiAoYXJnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fc2V0UGFyc2VFcnJvcihgaW52YWxpZCBhcmc6ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8g6L6T5Ye6aGVscFxuICAgIGlmICh0aGlzLl9hcmdzW1wiaGVscFwiXSkge1xuICAgICAgdGhpcy5fcHJpbnRIZWxwKCk7XG4gICAgICBpZiAoYkV4aXQpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyDovpPlh7p2ZXJzaW9uXG4gICAgaWYgKHRoaXMuX2FyZ3NbXCJ2ZXJzaW9uXCJdKSB7XG4gICAgICBjb25zb2xlLmxvZyh0aGlzLl9hcHBJbmZvLnZlcnNpb24pO1xuICAgICAgaWYgKGJFeGl0KSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDovpPlh7rplJnor69cbiAgICBpZiAodGhpcy5fZXJyb3IpIHtcbiAgICAgIHRoaXMuX3ByaW50SGVscCgpO1xuICAgICAgaWYgKGJFeGl0KSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFyZ3MoKTogUmVhZG9ubHk8SVZhbHVlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FyZ3M7XG4gIH1cbn1cbiJdfQ== |
@@ -90,2 +90,1 @@ "use strict"; | ||
exports.conf = conf; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db25mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUEsd0RBQTBCO0FBQzFCLGtEQUEwQjtBQUMxQixrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLGdEQUF3QjtBQUN4QixvREFBdUI7QUFDdkIsbUVBQWtDO0FBQ2xDLG9EQUFrQztBQUNsQyxNQUFNLEVBQUUsR0FBRyxlQUFLLENBQUMsc0JBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFhcEUsU0FBUyxjQUFjLENBQUMsUUFBZ0IsRUFBRSxZQUFpQjtJQUN6RCxJQUFJLFlBQVksR0FBUSxFQUFFLENBQUM7SUFDM0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxnQkFBWSxFQUFFLENBQUM7SUFDOUIsU0FBUyxXQUFXLENBQUMsVUFBbUI7UUFFdEMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxrQkFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzQixJQUFJO2dCQUNGLGdCQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3RCO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsRUFBRSxDQUFDLHlCQUF5QixFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakI7U0FDRjtRQUVELGtCQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM5RCxJQUFJLEdBQUcsRUFBRTtnQkFDUCxFQUFFLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNqRDtpQkFBTTtnQkFDTCxFQUFFLENBQUMsNkJBQTZCLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDdkM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFJRCxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUU7UUFDM0MsVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixLQUFLLEVBQUUsV0FBVztLQUNuQixDQUFDLENBQUM7SUFHSCxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUU7UUFDNUMsVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRTtRQUMzQyxVQUFVLEVBQUUsS0FBSztRQUNqQixRQUFRLEVBQUUsS0FBSztRQUNmLFlBQVksRUFBRSxLQUFLO1FBQ25CLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDVixJQUFJO2dCQUNGLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxJQUFJLEdBQUcsZUFBSyxDQUFDLEtBQUssQ0FBQyxrQkFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxJQUFJLEVBQUU7b0JBRVIsZ0JBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUVuQyxnQkFBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQzlCO2FBQ0Y7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFFVixFQUFFLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEQsZ0JBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLFdBQVcsR0FBRyxRQUFRLEdBQUcsVUFBVSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsa0JBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQy9CLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDckQsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUMxQjthQUNGO1lBRUQsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBR0gsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRXJCLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFLRCxTQUFnQixJQUFJLENBQUksUUFBZ0IsRUFBRSxZQUFlO0lBRXZELE1BQU0sSUFBSSxHQUFnQixjQUFjLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRWpFLGtCQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBRTlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxFQUFFLENBQUMscUJBQXFCLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFaRCxvQkFZQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog6K+75Y+W6YWN572u5Y2V5Liq5paH5Lu2XG4gKiDoh6rliqjnm5HmjqfphY3nva7mlofku7blj5HnlJ/lj5jljJbvvIzlubboh6rliqhsb2Fk6YWN572u5paH5Lu2XG4gKi9cbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGpzb241IGZyb20gJ2pzb241JztcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBwa2cgZnJvbSAnLi4vcGFja2FnZS5qc29uJztcbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcbmNvbnN0IF9kID0gZGVidWcocGtnLm5hbWUgKyAnOicgKyBwYXRoLmJhc2VuYW1lKF9fZmlsZW5hbWUsICcuanMnKSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZyB7XG4gIF9sb2FkKCk6IHZvaWQ7XG4gIF9zYXZlKCk6IHZvaWQ7XG4gIF9ldmVudDogRXZlbnRFbWl0dGVyO1xufVxuXG4vKipcbiAqIOWKoOi9vemFjee9ruaWh+S7tlxuICogQHBhcmFtIGZpbGVOYW1lIOmFjee9ruaWh+S7tuWQjVxuICogQHBhcmFtIGNvbmZpZ0RlZmluZSDphY3nva7lrprkuYnlr7nosaFcbiAqL1xuZnVuY3Rpb24gbG9hZENvbmZpZ0ZpbGUoZmlsZU5hbWU6IHN0cmluZywgY29uZmlnRGVmaW5lOiBhbnkpOiBhbnkge1xuICBsZXQgY29uZmlnT2JqZWN0OiBhbnkgPSB7fTtcbiAgY29uc3QgZWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGZ1bmN0aW9uIF9zYXZlQ29uZmlnKHNhdmVBc05hbWU/OiBzdHJpbmcpIHtcbiAgICAvLyDpppblhYjnoa7orqTnm67moIfnm67lvZXlrZjlnKhcbiAgICBjb25zdCBmbiA9IHNhdmVBc05hbWUgPyBzYXZlQXNOYW1lIDogZmlsZU5hbWU7XG4gICAgY29uc3QgZGlyTmFtZSA9IHBhdGguZGlybmFtZShmbik7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGRpck5hbWUpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBta2RpcnAuc3luYyhkaXJOYW1lKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgX2QoJ2NyZWF0ZSBjb25maWcgZGlyIGZhaWw6JywgZGlyTmFtZSwgZS5tZXNzYWdlKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyDkv53lrZjphY3nva7mlofku7ZcbiAgICBmcy53cml0ZUZpbGUoZm4sIEpTT04uc3RyaW5naWZ5KGNvbmZpZ09iamVjdCwgbnVsbCwgMiksIChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgX2QoJ3dyaXRlIGNvbmZpZyBGaWxlIEVycm9yOicsIGZuLCBlcnIubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfZCgnd3JpdGVjb25maWcgRmlsZSBzdWNjZXNzZWQ6JywgZm4pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8g5a6a5LmJ5L+d5a2Y5Ye95pWwXG4gIC8vIOWumuS5ieS/neWtmOWHveaVsFxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uZmlnT2JqZWN0LCAnX3NhdmUnLCB7XG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IF9zYXZlQ29uZmlnLFxuICB9KTtcblxuICAvLyDlrprkuYnkv53lrZjlh73mlbBcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbmZpZ09iamVjdCwgJ19ldmVudCcsIHtcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogZWUsXG4gIH0pO1xuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25maWdPYmplY3QsICdfbG9hZCcsIHtcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgX2QoJ2xvYWQgY29uZmlnIGZpbGUgOicsIGZpbGVOYW1lKTtcbiAgICAgICAgY29uc3QganNvbiA9IGpzb241LnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlTmFtZSwgJ3V0ZjgnKSk7XG4gICAgICAgIGlmIChqc29uKSB7XG4gICAgICAgICAgLy8g5ZCI5bm257y655yB6YWN572u5Yiw6YWN572u5paH5Lu2XG4gICAgICAgICAgXy5kZWZhdWx0c0RlZXAoanNvbiwgY29uZmlnRGVmaW5lKTtcbiAgICAgICAgICAvLyDms6jlhaXphY3nva7liLDphY3nva7lr7nosaFcbiAgICAgICAgICBfLmFzc2lnbihjb25maWdPYmplY3QsIGpzb24pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIOWKoOi9veW8guW4uO+8jOiHquWKqOWQiOW5tue8uuecgemFjee9rlxuICAgICAgICBfZCgnY29uZmlnIGZpbGUgb3BlbiBmYWlsOicsIGZpbGVOYW1lLCBlLm1lc3NhZ2UpO1xuICAgICAgICBfLmRlZmF1bHRzRGVlcChjb25maWdPYmplY3QsIGNvbmZpZ0RlZmluZSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRGaWxlID0gZmlsZU5hbWUgKyAnLmRlZmF1bHQnO1xuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGVmYXVsdEZpbGUpKSB7XG4gICAgICAgICAgX2QoJ3BsZWFzZSBzZWU6IGRlZmF1bHQgY29uZmlnIGZpbGUgOicsIGRlZmF1bHRGaWxlKTtcbiAgICAgICAgICBfc2F2ZUNvbmZpZyhkZWZhdWx0RmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIOWKoOi9veWujOaIkOWQjuWPkemAgemAmuefpVxuICAgICAgZWUuZW1pdCgnbG9hZCcpO1xuICAgIH0sXG4gIH0pO1xuXG4gIC8vIOWKoOi9vemFjee9rlxuICBjb25maWdPYmplY3QuX2xvYWQoKTtcblxuICByZXR1cm4gY29uZmlnT2JqZWN0O1xufVxuXG4vKipcbiAqIOWvvOWHuumFjee9ruaWh+S7tuWKoOi9veWHveaVsFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZjxUPihmaWxlTmFtZTogc3RyaW5nLCBjb25maWdEZWZpbmU6IFQpOiBUICYgSUNvbmZpZyB7XG4gIC8vIOS7jumFjee9ruaWh+S7tuS4reWKoOi9vemFjee9rlxuICBjb25zdCBjb25mOiBUICYgSUNvbmZpZyA9IGxvYWRDb25maWdGaWxlKGZpbGVOYW1lLCBjb25maWdEZWZpbmUpO1xuICAvLyDnm5Hmjqfmlofku7blj5jljJbvvIzlubboh6rliqjor7vlj5blkozliqDovb1cbiAgZnMud2F0Y2hGaWxlKGZpbGVOYW1lLCAoc3RhdCkgPT4ge1xuICAgIC8vIOW7tuaXtjHnp5Lpkp/vvIzph43mlrDliqDovb3phY3nva5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIF9kKCdyZWxvYWQgY29uZmlnIGZpbGU6JywgZmlsZU5hbWUpO1xuICAgICAgY29uZi5fbG9hZCgpO1xuICAgIH0sIDEwMDApO1xuICB9KTtcbiAgcmV0dXJuIGNvbmY7XG59XG4iXX0= |
@@ -19,2 +19,1 @@ "use strict"; | ||
exports.logger = logger_2.logger; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxxQ0FBa0M7QUFDbEMsb0RBQXlEO0FBQ3pELE1BQU0sR0FBRyxHQUFHLGVBQU0sQ0FBQyxHQUFHLG1CQUFPLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztBQUUvQyxHQUFHLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFdkMscUNBQStEO0FBQXRELDRCQUFBLE9BQU8sQ0FBQTtBQUFFLCtCQUFBLFVBQVUsQ0FBQTtBQUFFLGtDQUFBLGFBQWEsQ0FBQTtBQUMzQywrQkFBOEI7QUFBckIsc0JBQUEsSUFBSSxDQUFBO0FBQ2IsK0JBQThCO0FBQXJCLHNCQUFBLElBQUksQ0FBQTtBQUNiLHFDQUFrQztBQUF6QiwwQkFBQSxLQUFLLENBQUE7QUFDZCxtQ0FBa0M7QUFBekIsMEJBQUEsTUFBTSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDpgJrov4flkb3ku6TooYzlj4LmlbDmjIflrprnq6/lj6PvvIzlkK/liqhleHByZXNz5pyN5YqhXG4gKiDmlK/mjIHmoIflh4blkb3ku6TooYzlj4LmlbA6XG4gKiAgICAgLS1wb3J0LCDlkK/liqjmnI3liqHnq6/lj6Plj7dcbiAqICAgICAtLXdvcmssIOWQr+WKqOacjeWKoeW3peS9nOebruW9lVxuICovXG5cbi8vIOWIneWni+WMlkRFQlVH5bqTXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgcGtnLCB7IG5hbWUgYXMgcGtnTmFtZSB9IGZyb20gJ0AvLi4vcGFja2FnZS5qc29uJztcbmNvbnN0IGxvZyA9IGxvZ2dlcihgJHtwa2dOYW1lfToke19fZmlsZW5hbWV9YCk7XG5cbmxvZy5kZWJ1Zygndm1tIGxpYiBzZXJ2aWNlIHN0YXJ0IC4uLicpO1xuXG5leHBvcnQgeyBTZXJ2aWNlLCBTRVNTX1NUQVJULCBTZXNzaW9uQ3J5cHRvIH0gZnJvbSAnLi9TZXJ2aWNlJztcbmV4cG9ydCB7IEFyZ3YgfSBmcm9tICcuL0FyZ3YnO1xuZXhwb3J0IHsgY29uZiB9IGZyb20gJy4vQ29uZic7XG5leHBvcnQgeyBNb25nbyB9IGZyb20gJy4vTW9uZ29EYic7XG5leHBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG4iXX0= |
@@ -24,2 +24,1 @@ "use strict"; | ||
exports.logger = logger; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdEQUFnQztBQUNoQyxzREFBOEI7QUFFOUIsTUFBTSxlQUFlLEdBQUcsa0JBQVEsQ0FBQyxhQUFhLENBQUM7QUFFL0MsU0FBZ0IsTUFBTSxDQUFDLElBQVk7SUFDakMsTUFBTSxJQUFJLEdBQUcsa0JBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFTLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVTtRQUM1RCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVwRSxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQztJQUNGLElBQUksaUJBQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFFeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsQjtTQUFNO1FBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQWRELHdCQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZ2xldmVsIGZyb20gJ2xvZ2xldmVsJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ3Byb2Nlc3MnO1xuXG5jb25zdCBvcmlnaW5hbEZhY3RvcnkgPSBsb2dsZXZlbC5tZXRob2RGYWN0b3J5O1xuXG5leHBvcnQgZnVuY3Rpb24gbG9nZ2VyKG5hbWU6IHN0cmluZykge1xuICBjb25zdCBfbG9nID0gbG9nbGV2ZWwuZ2V0TG9nZ2VyKG5hbWUpO1xuICBfbG9nLm1ldGhvZEZhY3RvcnkgPSBmdW5jdGlvbihtZXRob2ROYW1lLCBsb2dMZXZlbCwgbG9nZ2VyTmFtZSkge1xuICAgIGNvbnN0IHJhd01ldGhvZCA9IG9yaWdpbmFsRmFjdG9yeShtZXRob2ROYW1lLCBsb2dMZXZlbCwgbG9nZ2VyTmFtZSk7XG4gICAgLy8g6L+U5Zue57uR5a6a5pa55rOVLOS9v+W+lyBjb25zb2xlIOWPr+aOoua1i+aWh+S7tuWQjVxuICAgIHJldHVybiByYXdNZXRob2QuYmluZChfbG9nLCBsb2dnZXJOYW1lKTtcbiAgfTtcbiAgaWYgKHByb2Nlc3MuZW52WydERUJVRyddKSB7XG4gICAgLy8g5omT5Y2w5pel5b+XXG4gICAgX2xvZy5zZXRMZXZlbCgwKTtcbiAgfSBlbHNlIHtcbiAgICBfbG9nLnNldExldmVsKDMpO1xuICB9XG4gIHJldHVybiBfbG9nO1xufVxuIl19 |
@@ -138,2 +138,1 @@ "use strict"; | ||
exports.Mongo = Mongo; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29EYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Nb25nb0RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EscUNBQWlIO0FBR2pILGtEQUEwQjtBQUMxQixvREFBdUI7QUFDdkIsZ0RBQXdCO0FBQ3hCLG1FQUFrQztBQUNsQyxNQUFNLEVBQUUsR0FBRyxlQUFLLENBQUMsc0JBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUF5QnBFLE1BQWEsS0FBSztJQWdCaEIsWUFBWSxHQUFXLEVBQUUsT0FBMkIsRUFBRSxPQUFlLEVBQUUsbUJBQXNCO1FBWnJGLFlBQU8sR0FBdUIsSUFBSSxDQUFDO1FBQ25DLFFBQUcsR0FBYyxJQUFJLENBQUM7UUFDdEIsaUJBQVksR0FBRyxFQUEyQixDQUFDO1FBV2pELEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUNNLGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFJTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBSU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7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QUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1lBQzVCLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBakxELHNCQWlMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog5a6e546wdHPmjqXlj6PnmoRtb25nb2Ri5bqTXG4gKi9cbmltcG9ydCB7IE1vbmdvQ2xpZW50LCBJbmRleE9wdGlvbnMsIE1vbmdvQ2xpZW50T3B0aW9ucywgRGIsIENvbGxlY3Rpb24sIENvbGxlY3Rpb25DcmVhdGVPcHRpb25zIH0gZnJvbSAnbW9uZ29kYic7XG5cbmltcG9ydCB7IERiU2NoZW1hLCBJRXh0RGIsIEluZGV4U2NoZW1hIH0gZnJvbSAnQHZtbS9hcGknO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBwa2cgZnJvbSAnLi4vcGFja2FnZS5qc29uJztcbmNvbnN0IF9kID0gZGVidWcocGtnLm5hbWUgKyAnOicgKyBwYXRoLmJhc2VuYW1lKF9fZmlsZW5hbWUsICcuanMnKSk7XG5cbmludGVyZmFjZSBJT2JqIHtcbiAgW2s6IHN0cmluZ106IGFueTtcbn1cbi8qKlxuICog5pWw5o2u5bqT5a6a5LmJ5o6l5Y+jXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURiU2NoZW1hcyB7XG4gIFtrOiBzdHJpbmddOiB7XG4gICAgZG9jU2NoZW1hOiBJT2JqO1xuICAgIGluZGV4U2NoZW1hOiBJT2JqO1xuICAgIGNvbGxPcHRpb25zOiBJT2JqO1xuICB9O1xufVxuXG4vKipcbiAqIOWvvOWHuuacrOWcsOaVsOaNruW6k+iusOW9lembhlxuICovXG5leHBvcnQgdHlwZSBJRXhwb3J0Q29sbGVjdGlvbnM8VCBleHRlbmRzIElEYlNjaGVtYXM+ID0ge1xuICBbSyBpbiBrZXlvZiBUXTogQ29sbGVjdGlvbjxUW0tdWydkb2NTY2hlbWEnXT47XG59O1xuXG4vLyDlpoLmnpzmlbDmja7lupPnu5PmnoTpnIDopoHvvIzliJnpnIDopoHmj5Dkvpvlj5jmm7TohJrmnKzmnaXmiafooYxcblxuZXhwb3J0IGNsYXNzIE1vbmdvPFQgZXh0ZW5kcyBJRGJTY2hlbWFzPiB7XG4gIHByaXZhdGUgX3VybDogc3RyaW5nO1xuICBwcml2YXRlIF9vcHRpb25zOiBNb25nb0NsaWVudE9wdGlvbnM7XG4gIHByaXZhdGUgX21vZE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfY2xpZW50OiBNb25nb0NsaWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9kYjogRGIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbnMgPSB7fSBhcyBJRXhwb3J0Q29sbGVjdGlvbnM8VD47XG4gIHByaXZhdGUgX2RiQ29sbGVjdGlvbnNEZWZpbmU6IFQ7XG5cbiAgLyoqXG4gICAqIOaehOmAoE1vbmdvZGLmlbDmja7lupPnrqHnkIbnsbtcbiAgICogQHBhcmFtIHVybCAg5pWw5o2u5bqT6L+e5o6l5a2X56ym5LiyXG4gICAqIEBwYXJhbSBvcHRpb25zIOi/nuaOpemAiemhuVxuICAgKiBAcGFyYW0gbW9kTmFtZSDnu4Tku7blkI3np7DvvIzpu5jorqTliJvlu7rnmoTmlbDmja7lupPlkI3np7BcbiAgICogQHBhcmFtIGRiQ29sbGVjdGlvbnNEZWZpbmUg5pWw5o2u5bqT5pa55qGI5a6a5LmJXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgb3B0aW9uczogTW9uZ29DbGllbnRPcHRpb25zLCBtb2ROYW1lOiBzdHJpbmcsIGRiQ29sbGVjdGlvbnNEZWZpbmU6IFQpIHtcbiAgICBfZCgndXNpbmcgZGIgZGVmaW5lczonLCBPYmplY3Qua2V5cyhkYkNvbGxlY3Rpb25zRGVmaW5lKSk7XG4gICAgdGhpcy5fZGJDb2xsZWN0aW9uc0RlZmluZSA9IGRiQ29sbGVjdGlvbnNEZWZpbmU7XG4gICAgdGhpcy5fdXJsID0gdXJsO1xuICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuX21vZE5hbWUgPSBtb2ROYW1lO1xuICB9XG4gIHB1YmxpYyBnZXRNb25nb0NsaWVudCgpIHtcbiAgICBpZiAodGhpcy5fY2xpZW50ID09PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoJ01vbmdvZGIgY2xpZW50IEludmFsaWQhIScpO1xuICAgIHJldHVybiB0aGlzLl9jbGllbnQ7XG4gIH1cbiAgLyoqXG4gICAqIOiOt+WPluW9k+WJjeWumuS5ieeahOaJgOacieaVsOaNruW6k+iusOW9lembhlxuICAgKi9cbiAgcHVibGljIGNvbGxlY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9ucztcbiAgfVxuICAvKipcbiAgICog6L+e5o6l5Yiw5pWw5o2u5bqTLGFzeW5jIOW8guatpeWHveaVsFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNvbm5lY3QoKSB7XG4gICAgX2QoJ2Nvbm5lY3QgdG8gbW9uZ29kYicpO1xuICAgIHRoaXMuX2NsaWVudCA9IGF3YWl0IE1vbmdvQ2xpZW50LmNvbm5lY3QodGhpcy5fdXJsLCB0aGlzLl9vcHRpb25zKTtcbiAgICB0aGlzLl9kYiA9IGF3YWl0IHRoaXMuX2NsaWVudC5kYih0aGlzLl9tb2ROYW1lKTtcbiAgICB0aGlzLl9tb25pdG9yRGJFdmVudCgpO1xuICAgIGF3YWl0IHRoaXMuX2Vuc3VyZVNjaGVtYUNvbGxlY3Rpb25zKCk7XG5cbiAgICAvL+WIm+W7uue0ouW8lVxuICAgIF8uZm9yRWFjaCh0aGlzLl9jb2xsZWN0aW9ucywgYXN5bmMgKGNvbGwsIG5hbWUpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMuX2Vuc3VyZUNvbGxlY3Rpb25JbmRleGVzKGNvbGwsIHRoaXMuX2RiQ29sbGVjdGlvbnNEZWZpbmVbbmFtZV0uaW5kZXhTY2hlbWEpO1xuICAgIH0pO1xuXG4gICAgX2QoJ29wZW4gbW9uZ29kYiBzdWNjZXNzZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDnoa7orqTlvZPliY3lrprkuYnnmoTmiYDmnInmlbDmja7lupPpm4blkIjlrZjlnKhcbiAgICog5LiN5a2Y5Zyo55qE5pWw5o2u5bqT5bCG6KKr5Yib5bu6XG4gICAqIOacrOe7hOS7tuWIm+W7uueahOaVsOaNruW6k+WwhuiHquWKqOWIm+W7uue0ouW8le+8jOW5tuWIoOmZpOacquWumuS5iee0ouW8leOAglxuICAgKiDlpoLmnpzntKLlvJXlrprkuYnkuLrnqbrvvIzliJnkuI3liKDpmaTntKLlvJXvvIzpmLLmraLlvJXnlKjlpJbpg6jmlbDmja7lupPnmoTntKLlvJXlhrLnqoHmiJbogIXmiYvliqjliJvlu7rnmoTntKLlvJXlhrLnqoFcbiAgICog5pys57uE5Lu25YaF5pyq6KKr5a6a5LmJ55qE5pWw5o2u5bqT5bCG6KKr6Ieq5Yqo6YeN5paw5ZG95ZCN5Li6X3VudXNlZF94eHhcbiAgICog5aSW6YOo5pWw5o2u5bqT55qE5pWw5o2u5bqT5ZKM6K6w5b2V6ZuG5ZCN56ew5ZyoX2V4dERi5Lit5a6a5LmJXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIF9lbnN1cmVTY2hlbWFDb2xsZWN0aW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBfZCgnX2Vuc3VyZVNjaGVtYUNvbGxlY3Rpb25zOicpO1xuICAgIGlmICghdGhpcy5fZGIpIHJldHVybjtcbiAgICAvLyDojrflj5blvZPliY3lrZjlnKjnmoRjb2xsc1xuICAgIGNvbnN0IGN1ckNvbGxzID0gXy5rZXlCeShhd2FpdCB0aGlzLl9kYi5jb2xsZWN0aW9ucygpLCAnY29sbGVjdGlvbk5hbWUnKTtcblxuICAgIGNvbnN0IG1vZENvbGxEZWZpbmVzID0gXy5waWNrQnkodGhpcy5fZGJDb2xsZWN0aW9uc0RlZmluZSwgKHYpID0+ICFfLmdldCh2LmNvbGxPcHRpb25zLCAnX2V4dERiJykpO1xuICAgIF9kKCdtb2RDb2xsRGVmaW5lczonLCBPYmplY3Qua2V5cyhtb2RDb2xsRGVmaW5lcykpO1xuICAgIGNvbnN0IGV4dGVybkNvbGxEZWZpbmVzID0gXy5waWNrQnkodGhpcy5fZGJDb2xsZWN0aW9uc0RlZmluZSwgKHYpID0+ICEhXy5nZXQodi5jb2xsT3B0aW9ucywgJ19leHREYicpKTtcbiAgICBfZCgnZXh0ZXJuQ29sbERlZmluZXM6JywgZXh0ZXJuQ29sbERlZmluZXMpO1xuXG4gICAgLy8g5LiN5Zyo5a6a5LmJ5Lit55qEY29sbHPlsIbooqvph43lkb3lkI3kuLpfdW51c2VkX3h4eFxuICAgIGZvciAoY29uc3QgY29sTmFtZSBvZiBPYmplY3Qua2V5cyhjdXJDb2xscykpIHtcbiAgICAgIGlmIChtb2RDb2xsRGVmaW5lc1tjb2xOYW1lXSkge1xuICAgICAgICBfZCgnb3BlbiBleGlzdGVkIGNvbGxlY3Rpb246JywgY29sTmFtZSk7XG4gICAgICAgIC8vIOacieaViOeahGNvbGzlrprkuYnvvIzmiZPlvIBjb2xsZWN0aW9uXG4gICAgICAgIHRoaXMuX2NvbGxlY3Rpb25zW2NvbE5hbWUgYXMga2V5b2YgVF0gPSBjdXJDb2xsc1tjb2xOYW1lXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIOmHjeWRveWQjeWSjOajgOa1i+aXoOaViOeahGNvbGxlY3Rpb25cbiAgICAgICAgaWYgKCFjb2xOYW1lLnN0YXJ0c1dpdGgoJ18nKSAmJiAhY29sTmFtZS5zdGFydHNXaXRoKCdzeXN0ZW0uJykpIHtcbiAgICAgICAgICBjb25zdCBkID0gbmV3IERhdGUoKTtcblxuICAgICAgICAgIGNvbnN0IG5hbWUgPSAnX3VudXNlZF8nICsgY29sTmFtZSArIGBfJHtkLmdldEZ1bGxZZWFyKCl9XyR7ZC5nZXRNb250aCgpfV8ke2QuZ2V0RGF0ZSgpfWA7XG4gICAgICAgICAgYXdhaXQgdGhpcy5fZGIucmVuYW1lQ29sbGVjdGlvbihjb2xOYW1lLCBuYW1lKTtcbiAgICAgICAgICBfZCgncmVuYW1lIHVudXNlZCBjb2xsZWN0aW9uOicsIG5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9kKCd1bnVzZWQgY29sbGVjdGlvbjonLCBjb2xOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyDliJvlu7rmlrDnmoTlt7LlrprkuYnmqKHlnZdjb2xsc1xuICAgIGZvciAoY29uc3QgbmV3Q29sbCBvZiBfLmRpZmZlcmVuY2UoT2JqZWN0LmtleXMobW9kQ29sbERlZmluZXMpLCBPYmplY3Qua2V5cyhjdXJDb2xscykpKSB7XG4gICAgICB0aGlzLl9jb2xsZWN0aW9uc1tuZXdDb2xsIGFzIGtleW9mIFRdID0gYXdhaXQgdGhpcy5fZGIuY3JlYXRlQ29sbGVjdGlvbihcbiAgICAgICAgbmV3Q29sbCxcbiAgICAgICAgdGhpcy5fZGJDb2xsZWN0aW9uc0RlZmluZVtuZXdDb2xsXS5jb2xsT3B0aW9ucyxcbiAgICAgICk7XG4gICAgICBfZCgnY3JlYXRlIG5ldyBjb2xsZWN0aW9uOicsIG5ld0NvbGwpO1xuICAgIH1cblxuICAgIC8vIOWIm+W7uuWFtuS7luaVsOaNruW6k+S4reeahGNvbGxz77yM5LiN5L2/55SoS+S9nOS4uuWklumDqOaVsOaNruW6k+WQjeensO+8jOS9v+eUqF9leHREYueahGNvbOWQjeensFxuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhleHRlcm5Db2xsRGVmaW5lcykpIHtcbiAgICAgIGNvbnN0IHYgPSBleHRlcm5Db2xsRGVmaW5lc1trXTtcbiAgICAgIGlmICghdikgY29udGludWU7XG5cbiAgICAgIGNvbnN0IGV4dERiSW5mbzogSUV4dERiID0gXy5nZXQodiwgJ2NvbGxPcHRpb25zLl9leHREYicpO1xuICAgICAgaWYgKCF0aGlzLl9jbGllbnQgfHwgIWV4dERiSW5mbykgcmV0dXJuO1xuICAgICAgLy8gLy8g5omT5byA5ZKM5Yib5bu65aSW6YOo5bqTXG4gICAgICAvLyBfZCgnLS0tLWNyZWF0ZSBleHRlcm4gZGIgIGNvbGxlY3Rpb246JywgZGJOYW1lLCBrKTtcbiAgICAgIGNvbnN0IGV4dGVybkRiID0gdGhpcy5fY2xpZW50LmRiKGV4dERiSW5mby5kYik7XG4gICAgICBjb25zdCBleHRDb2xscyA9IF8ua2V5QnkoYXdhaXQgZXh0ZXJuRGIuY29sbGVjdGlvbnMoKSwgJ2NvbGxlY3Rpb25OYW1lJyk7XG4gICAgICBpZiAoIWV4dENvbGxzW2V4dERiSW5mby5jb2xdKSB7XG4gICAgICAgIC8vIOWIm+W7umNvbGxlY3Rpb25cbiAgICAgICAgX2QoJ2NyZWF0ZSBleHRlcm4gY29sbGVjdGlvbiBvazonLCBleHREYkluZm8pO1xuICAgICAgICB0aGlzLl9jb2xsZWN0aW9uc1trIGFzIGtleW9mIFRdID0gYXdhaXQgZXh0ZXJuRGIuY3JlYXRlQ29sbGVjdGlvbihcbiAgICAgICAgICBleHREYkluZm8uY29sLFxuICAgICAgICAgIF8ub21pdCh2LmNvbGxPcHRpb25zLCAnX2V4dERiJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfZCgnb3BlbiBleHRlcm4gY29sbGVjdGlvbiBvazonLCBleHREYkluZm8pO1xuICAgICAgICB0aGlzLl9jb2xsZWN0aW9uc1trIGFzIGtleW9mIFRdID0gZXh0Q29sbHNbZXh0RGJJbmZvLmNvbF07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZW5zdXJlQ29sbGVjdGlvbkluZGV4ZXMoY29sbDogQ29sbGVjdGlvbiwgaW5kZXhTY2hlbWFzOiBJbmRleFNjaGVtYSkge1xuICAgIC8vIOaWsOWinuWKn+iDve+8jOWmguaenOmFjee9rue0ouW8leS4uuepuu+8jOWImeS4jeWkhOeQhue0ouW8leS/oeaBr1xuICAgIC8vIOS4uuS6humBv+WFjeWkmuS4qumhueebruaJk+W8gOS4gOS4quaVsOaNruW6k+eahOWGsueqgemXrumimFxuICAgIGlmIChfLmlzRW1wdHkoaW5kZXhTY2hlbWFzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4c0FycmF5ID0gYXdhaXQgY29sbC5pbmRleGVzKCk7XG5cbiAgICBjb25zdCBpbmRleGVzID0gXy5rZXlCeShpbmRleHNBcnJheSwgJ25hbWUnKTtcbiAgICBfZCgnZW5zdXJlIGNvbGxlY3Rpb24gaW5kZXhlczonLCBjb2xsLmNvbGxlY3Rpb25OYW1lLCBPYmplY3Qua2V5cyhpbmRleFNjaGVtYXMpLmpvaW4oKSk7XG5cbiAgICAvLyDliKDpmaTpnZ7nvLrnnIFfaWRf55qE5peg5pWI57Si5byVXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoaW5kZXhlcykpIHtcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnX2lkJykpIGNvbnRpbnVlO1xuICAgICAgaWYgKCFfLmlzUGxhaW5PYmplY3QoaW5kZXhTY2hlbWFzW2tleV0pKSB7XG4gICAgICAgIGF3YWl0IGNvbGwuZHJvcEluZGV4KGtleSk7XG4gICAgICAgIGRlbGV0ZSBpbmRleGVzW2tleV07XG4gICAgICAgIF9kKCdkcm9wIGludmFsaWQgaW5kZXg6JywgY29sbC5jb2xsZWN0aW9uTmFtZSwga2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gX2QoJ2Vuc3VyZSBjb2xsZWN0aW9uIGluZGV4ZXMgT0s6MScsIGNvbGwuY29sbGVjdGlvbk5hbWUsIE9iamVjdC5rZXlzKGluZGV4U2NoZW1hcykpO1xuXG4gICAgLy8g5Yib5bu65paw5a6a5LmJ55qEaW5kZXhcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhpbmRleFNjaGVtYXMpKSB7XG4gICAgICBpZiAoXy5pc0VtcHR5KGluZGV4ZXNba2V5XSkpIHtcbiAgICAgICAgX2QoJ2NyZWF0ZSBuZXcgaW5kZXg6JywgY29sbC5jb2xsZWN0aW9uTmFtZSwga2V5LCBpbmRleFNjaGVtYXNba2V5XSk7XG4gICAgICAgIGF3YWl0IGNvbGwuY3JlYXRlSW5kZXgoaW5kZXhTY2hlbWFzW2tleV0uZmllbGRzLCB7XG4gICAgICAgICAgbmFtZToga2V5LFxuICAgICAgICAgIC4uLmluZGV4U2NoZW1hc1trZXldLm9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX21vbml0b3JEYkV2ZW50KCkge1xuICAgIGlmICghdGhpcy5fZGIpIHJldHVybjtcbiAgICAvLyDnm5HlkKzkuovku7ZcbiAgICB0aGlzLl9kYi5vbignZHJvcCcsICgpID0+IHtcbiAgICAgIF9kKCdtb25nb2RiIGRyb3A6Jyk7XG4gICAgfSk7XG4gICAgdGhpcy5fZGIub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgX2QoJ21vbmdvZGIgY2xvc2U6Jyk7XG4gICAgfSk7XG4gICAgdGhpcy5fZGIub24oJ2Vycm9yJywgKGVycjogYW55KSA9PiB7XG4gICAgICBfZCgnbW9uZ29kYiBlcnJvcjonLCBlcnIpO1xuICAgIH0pO1xuICAgIHRoaXMuX2RiLm9uKCd0aW1lb3V0JywgKCkgPT4ge1xuICAgICAgX2QoJ21vbmdvZGIgdGltZW91dDonKTtcbiAgICB9KTtcbiAgICB0aGlzLl9kYi5vbigncmVjb25uZWN0JywgKCkgPT4ge1xuICAgICAgX2QoJ21vbmdvZGIgcmVjb25uZWN0OicpO1xuICAgIH0pO1xuICB9XG59XG4iXX0= |
@@ -238,2 +238,1 @@ "use strict"; | ||
exports.createDbApi = createDbApi; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdERiQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc3REYkFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLG9EQUE0QjtBQUM1QixvREFBdUI7QUFHdkIsZ0RBQXdCO0FBQ3hCLGtEQUEwQjtBQUMxQixtRUFBa0M7QUFDbEMsTUFBTSxFQUFFLEdBQUcsZUFBSyxDQUFDLHNCQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxjQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBT3BFLFNBQVMsbUJBQW1CLENBQUMsVUFBZSxFQUFFLGFBQWtCO0lBQzlELElBQUksT0FBTyxHQUF5QixVQUFVLElBQUksRUFBRSxDQUFDO0lBRXJELElBQUksYUFBYSxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFOUMsZ0JBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDN0IsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxFQUF3QixDQUFDO1FBQzlDLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbEMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGdCQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDO1lBRWxDLElBQUksYUFBYSxDQUFDLE9B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VixZQUFZLENBQUMsWUFBWSxFQUN6QixRQUFRLENBQ1QsQ0FBQztZQUNGLEVBQUUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztLQXlCc0IsQ0FBQztBQUM1QixDQUFDO0FBM1hELGtDQTJYQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEYlNjaGVtYXMsIElFeHBvcnRDb2xsZWN0aW9ucywgTW9uZ28gfSBmcm9tICcuL01vbmdvRGInO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiwgR3JpZEZTQnVja2V0IH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG4vLyDliJ3lp4vljJZERUJVR+W6k1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHBrZyBmcm9tICcuLi9wYWNrYWdlLmpzb24nO1xuY29uc3QgX2QgPSBkZWJ1Zyhwa2cubmFtZSArICc6JyArIHBhdGguYmFzZW5hbWUoX19maWxlbmFtZSwgJy5qcycpKTtcblxuLyoqXG4gKiDlkIjlubblrprkuYlhcGkg55qEZXhjbHVkZUZpZWxkc+Wtl+autVxuICogQHBhcmFtIHJlcSDor7fmsYJcbiAqIEBwYXJhbSByZXN0T3B0aW9uc1xuICovXG5mdW5jdGlvbiBfbWVyZ2VFeGNsdWRlRmllbGRzKHJlcU9wdGlvbnM6IGFueSwgZXhjbHVkZUZpZWxkczogYW55KSB7XG4gIGxldCBvcHRpb25zOiB7IFtrOiBzdHJpbmddOiBhbnkgfSA9IHJlcU9wdGlvbnMgfHwge307XG5cbiAgaWYgKGV4Y2x1ZGVGaWVsZHMpIHtcbiAgICBvcHRpb25zLnByb2plY3Rpb24gPSBvcHRpb25zLnByb2plY3Rpb24gfHwge307XG5cbiAgICBfLmZvckVhY2goZXhjbHVkZUZpZWxkcywgKHYpID0+IHtcbiAgICAgIG9wdGlvbnMucHJvamVjdGlvblt2XSA9IDA7XG4gICAgfSk7XG4gICAgLy8g6Ziy5q2icHJvamVjdGlvbiDorr7nva4gMS8w5Yay56qBLOWmguaenHByb2plY3Rpb27kuK3lj4jkuIDkuKrlrZfmrrXkuLoxLOWImeWIoOmZpOaJgOacieS4ujDnmoTlrZfmrrVcbiAgICBjb25zdCBwcm9qZWN0aW9uXzEgPSB7fSBhcyB7IFtrOiBzdHJpbmddOiAxIH07IC8vIOWtl+autTHnmoTpm4blkIhcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMob3B0aW9ucy5wcm9qZWN0aW9uKSkge1xuICAgICAgaWYgKG9wdGlvbnMucHJvamVjdGlvbltuYW1lXSAhPT0gMCkge1xuICAgICAgICBwcm9qZWN0aW9uXzFbbmFtZV0gPSAxO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIV8uaXNFbXB0eShwcm9qZWN0aW9uXzEpKSB7XG4gICAgICBvcHRpb25zLnByb2plY3Rpb24gPSBwcm9qZWN0aW9uXzE7XG4gICAgICAvLyDnibnmrorlupTlr7lfaWTlrZfmrrUs5aaC5p6c6YWN572u5Li6MCzliJnorr7nva7mjpLpmaRfaWRcbiAgICAgIGlmIChleGNsdWRlRmllbGRzLmluZGV4T2YoJ19pZCcpID49IDApIHtcbiAgICAgICAgb3B0aW9ucy5wcm9qZWN0aW9uWydfaWQnXSA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5mdW5jdGlvbiBfZWFjaFZhbHVlRGVlcChcbiAgb2JqOiBhbnksXG4gIG1hdGNoOiBSZWdFeHAsXG4gIGNhbGxiYWNrOiAodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nLFxuKSB7XG4gIF8uZm9yRWFjaChvYmosICh2OiBhbnksIGspID0+IHtcbiAgICBpZiAoXy5pc1N0cmluZyh2KSkge1xuICAgICAgY29uc3QgbSA9IHYubWF0Y2gobWF0Y2gpO1xuICAgICAgLy8gICBfZCgnLS0tLS0tISEhLG0nLCBtKTtcbiAgICAgIGlmIChtICYmIG0ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIG9ialtrXSA9IGNhbGxiYWNrKG1bMV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHYpKSB7XG4gICAgICBfZWFjaFZhbHVlRGVlcCh2LCBtYXRjaCwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSk7XG59XG5mdW5jdGlvbiBfc2Vzc2lvbk1hdGNoKHF1ZXJ5OiBhbnksIHNlc3Npb25NYXRjaDogYW55LCBzZXNzaW9uczogYW55KSB7XG4gIGxldCByZXRRdWVyeSA9IHF1ZXJ5O1xuICBpZiAoXy5pc1BsYWluT2JqZWN0KHNlc3Npb25NYXRjaCkpIHtcbiAgICBjb25zdCBzbSA9IF8uY2xvbmVEZWVwKHNlc3Npb25NYXRjaCk7XG4gICAgX2VhY2hWYWx1ZURlZXAoc20sIC97eyguKil9fS8sICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIF8uZ2V0KHNlc3Npb25zLCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgLy8g6I635Y+W5Yy56YWNXG4gICAgLy8gX2QoJ01BVENIIC0tLS0gMjInLCBzZXNzaW9uTWF0Y2gpO1xuICAgIHJldFF1ZXJ5ID0ge1xuICAgICAgJGFuZDogW3F1ZXJ5LCBzbV0sXG4gICAgfTtcbiAgfVxuICByZXR1cm4gcmV0UXVlcnk7XG59XG5cbi8qKlxuICog5Yib5bu65pWw5o2u5bqTUkVTVOebuOWFs0FQSVxuICogQHBhcmFtIG1vbmdvIOaVsOaNruW6k+WvueixoVxuICogQHBhcmFtIGNvbGxOYW1lIOaVsOaNruW6k0NvbGzlkI3np7BcbiAqIEBwYXJhbSByZXN0RGIg5a6a5LmJ55qEcmVzdERiIOmCo+S5iFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGJBcGkobW9uZ286IE1vbmdvPGFueT4sIHJlc3REYjogYW55KSB7XG4gIGNvbnN0IF9yZXN0T3B0aW9ucyA9IHJlc3REYi5fZGI7XG4gIGNvbnN0IGNvbGxOYW1lID0gcmVzdERiLl9zY2hlbWEuY29sbE5hbWU7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyAtLS0tLeaVsOaNruW6k+afpeivoiBSICDnm7jlhbPmlrnms5VcbiAgICBmaW5kT25lOiBhc3luYyAocmVxOiBhbnksIHNlc3Npb25zOiBhbnkpID0+IHtcbiAgICAgIC8vIOajgOafpeWPguaVsFxuICAgICAgYXNzZXJ0KHJlcS5maWx0ZXIsICduZWVkIGZpbHRlcicpO1xuICAgICAgLy8g6I635Y+W5a+56LGh77yM5pWw5o2u5bqT5a+56LGh5b+F6aG75Zyo5q2k6I635Y+W5ZCm5YiZ5Y+W5LiN5Yiw5a6e6ZmF5a+56LGhXG4gICAgICBjb25zdCBkYiA9IG1vbmdvLmNvbGxlY3Rpb25zKClbY29sbE5hbWVdO1xuICAgICAgX2QoJ2ZpbmRPbmU6JywgY29sbE5hbWUsIHJlcSwgc2Vzc2lvbnMsIF9yZXN0T3B0aW9ucyk7XG4gICAgICAvLyDlkIjlubbpmZDliLblrZfmrrUscHJvamVjdGlvblxuICAgICAgY29uc3Qgb3B0aW9ucyA9IF9tZXJnZUV4Y2x1ZGVGaWVsZHMoXG4gICAgICAgIHJlcS5vcHRpb25zLFxuICAgICAgICBfcmVzdE9wdGlvbnMuZXhjbHVkZUZpZWxkcyxcbiAgICAgICk7XG4gICAgICBfZCgnZmluZE9uZSAtLSBvcHRpb25zOicsIG9wdGlvbnMpO1xuICAgICAgLy8g5aSE55CGc2Vzc2lvbk1hdGNo5Yy56YWN5L+h5oGvXG4gICAgICBsZXQgcXVlcnkgPSBfc2Vzc2lvbk1hdGNoKFxuICAgICAgICByZXEuZmlsdGVyLFxuICAgICAgICBfcmVzdE9wdGlvbnMuc2Vzc2lvbk1hdGNoLFxuICAgICAgICBzZXNzaW9ucyxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBhd2FpdCBkYi5maW5kT25lKHF1ZXJ5LCBvcHRpb25zKTtcbiAgICB9LFxuICAgIGZpbmQ6IGFzeW5jIChyZXE6IGFueSwgc2Vzc2lvbnM6IGFueSkgPT4ge1xuICAgICAgLy8g5qOA5p+l5Y+C5pWwXG4gICAgICBhc3NlcnQocmVxLmZpbHRlciwgJ25lZWQgZmlsdGVyJyk7XG4gICAgICAvLyDojrflj5blr7nosaFcbiAgICAgIGNvbnN0IGRiID0gbW9uZ28uY29sbGVjdGlvbnMoKVtjb2xsTmFtZV07XG4gICAgICBfZCgnZmluZDonLCBjb2xsTmFtZSwgcmVxLCBzZXNzaW9ucywgX3Jlc3RPcHRpb25zKTtcbiAgICAgIC8vIOWQiOW5tumZkOWItuWtl+autSxwcm9qZWN0aW9uXG4gICAgICBjb25zdCBvcHRpb25zID0gX21lcmdlRXhjbHVkZUZpZWxkcyhcbiAgICAgICAgcmVxLm9wdGlvbnMsXG4gICAgICAgIF9yZXN0T3B0aW9ucy5leGNsdWRlRmllbGRzLFxuICAgICAgKTtcbiAgICAgIF9kKCdmaW5kIC0tIG9wdGlvbnM6Jywgb3B0aW9ucyk7XG4gICAgICAvLyDlpITnkIZzZXNzaW9uTWF0Y2jljLnphY3kv6Hmga9cbiAgICAgIGxldCBxdWVyeSA9IF9zZXNzaW9uTWF0Y2goXG4gICAgICAgIHJlcS5maWx0ZXIsXG4gICAgICAgIF9yZXN0T3B0aW9ucy5zZXNzaW9uTWF0Y2gsXG4gICAgICAgIHNlc3Npb25zLFxuICAgICAgKTtcbiAgICAgIF9kKCdxdWVyeTotLS0tJywgcXVlcnkpO1xuICAgICAgcmV0dXJuIGF3YWl0IGRiLmZpbmQocXVlcnksIG9wdGlvbnMpLnRvQXJyYXkoKTtcbiAgICB9LFxuXG4gICAgY291bnREb2N1bWVudHM6IGFzeW5jIChyZXE6IGFueSwgc2Vzc2lvbnM6IGFueSkgPT4ge1xuICAgICAgLy8g5qOA5p+l5Y+C5pWwXG4gICAgICBhc3NlcnQocmVxLmZpbHRlciwgJ25lZWQgZmlsdGVyJyk7XG4gICAgICAvLyDojrflj5blr7nosaFcbiAgICAgIGNvbnN0IGRiID0gbW9uZ28uY29sbGVjdGlvbnMoKVtjb2xsTmFtZV07XG4gICAgICBfZCgnY291bnREb2N1bWVudHM6JywgY29sbE5hbWUsIHJlcSwgc2Vzc2lvbnMsIF9yZXN0T3B0aW9ucyk7XG4gICAgICAvLyDkuI3pnIDopoHlkIjlubbpmZDliLblrZfmrrVcbiAgICAgIC8vIOWkhOeQhnNlc3Npb25NYXRjaOWMuemFjeS/oeaBr1xuICAgICAgbGV0IHF1ZXJ5ID0gX3Nlc3Npb25NYXRjaChcbiAgICAgICAgcmVxLmZpbHRlcixcbiAgICAgICAgX3Jlc3RPcHRpb25zLnNlc3Npb25NYXRjaCxcbiAgICAgICAgc2Vzc2lvbnMsXG4gICAgICApO1xuICAgICAgX2QoJ3F1ZXJ5Oi0tLS0nLCBxdWVyeSk7XG4gICAgICByZXR1cm4gYXdhaXQgZGIuY291bnREb2N1bWVudHMocXVlcnksIHJlcS5vcHRpb25zKTtcbiAgICB9LFxuXG4gICAgZXN0aW1hdGVkRG9jdW1lbnRDb3VudDogYXN5bmMgKHJlcTogYW55LCBzZXNzaW9uczogYW55KSA9PiB7XG4gICAgICAvLyDmo4Dmn6Xlj4LmlbBcbiAgICAgIGFzc2VydChyZXEuZmlsdGVyLCAnbmVlZCBmaWx0ZXInKTtcbiAgICAgIC8vIOiOt+WPluWvueixoVxuICAgICAgY29uc3QgZGIgPSBtb25nby5jb2xsZWN0aW9ucygpW2NvbGxOYW1lXTtcbiAgICAgIF9kKCdlc3RpbWF0ZWREb2N1bWVudENvdW50OicsIGNvbGxOYW1lLCByZXEsIHNlc3Npb25zLCBfcmVzdE9wdGlvbnMpO1xuICAgICAgLy8g5LiN6ZyA6KaB5ZCI5bm26ZmQ5Yi25a2X5q61XG4gICAgICAvLyDlpITnkIZzZXNzaW9uTWF0Y2jljLnphY3kv6Hmga9cbiAgICAgIGxldCBxdWVyeSA9IF9zZXNzaW9uTWF0Y2goXG4gICAgICAgIHJlcS5maWx0ZXIsXG4gICAgICAgIF9yZXN0T3B0aW9ucy5zZXNzaW9uTWF0Y2gsXG4gICAgICAgIHNlc3Npb25zLFxuICAgICAgKTtcbiAgICAgIF9kKCdxdWVyeTotLS0tJywgcXVlcnkpO1xuICAgICAgcmV0dXJuIGF3YWl0IGRiLmVzdGltYXRlZERvY3VtZW50Q291bnQocXVlcnksIHJlcS5vcHRpb25zKTtcbiAgICB9LFxuXG4gICAgZ2VvSGF5c3RhY2tTZWFyY2g6IGFzeW5jIChyZXE6IGFueSwgc2Vzc2lvbnM6IGFueSkgPT4ge1xuICAgICAgLy8g5qOA5p+l5Y+C5pWwXG4gICAgICBhc3NlcnQocmVxLmZpbHRlciwgJ25lZWQgZmlsdGVyJyk7XG4gICAgICAvLyDojrflj5blr7nosaFcbiAgICAgIGNvbnN0IGRiID0gbW9uZ28uY29sbGVjdGlvbnMoKVtjb2xsTmFtZV07XG4gICAgICBfZCgnZ2VvSGF5c3RhY2tTZWFyY2g6JywgY29sbE5hbWUsIHJlcSwgc2Vzc2lvbnMsIF9yZXN0T3B0aW9ucyk7XG4gICAgICAvLyDkuI3pnIDopoHlkIjlubbpmZDliLblrZfmrrVcbiAgICAgIC8vIOWkhOeQhnNlc3Npb25NYXRjaOWMuemFjeS/oeaBr1xuICAgICAgbGV0IHF1ZXJ5ID0gX3Nlc3Npb25NYXRjaChcbiAgICAgICAgcmVxLmZpbHRlcixcbiAgICAgICAgX3Jlc3RPcHRpb25zLnNlc3Npb25NYXRjaCxcbiAgICAgICAgc2Vzc2lvbnMsXG4gICAgICApO1xuICAgICAgX2QoJ3F1ZXJ5Oi0tLS0nLCBxdWVyeSk7XG4gICAgICByZXR1cm4gYXdhaXQgZGIuZ2VvSGF5c3RhY2tTZWFyY2gocmVxLngsIHJlcS55LCByZXEub3B0aW9ucyk7XG4gICAgfSxcblxuICAgIC8vIOiOt+WPlumbhuWQiOS4reaMh+WumuWtl+auteeahOS4jemHjeWkjeWAvO+8jOW5tuS7peaVsOe7hOeahOW9ouW8j+i/lOWbnlxuICAgIGRpc3RpbmN0OiBhc3luYyAocmVxOiBhbnksIHNlc3Npb25zOiBhbnkpID0+IHtcbiAgICAgIC8vIOajgOafpeWPguaVsFxuICAgICAgYXNzZXJ0KHJlcS5xdWVyeSwgJ25lZWQgcXVlcnknKTtcbiAgICAgIC8vIOajgOa1i2tleVxuICAgICAgaWYgKF8uaXNBcnJheShfcmVzdE9wdGlvbnMuZXhjbHVkZUZpZWxkcykpIHtcbiAgICAgICAgY29uc3Qga0FycmF5ID0gXy50cmltKHJlcS5rZXkpLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmIChrQXJyYXkgJiYga0FycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoX3Jlc3RPcHRpb25zLmV4Y2x1ZGVGaWVsZHMuaW5kZXhPZihrQXJyYXlbMF0pID49IDApIHtcbiAgICAgICAgICAgIC8vIGtleSDljIXlkKvlnKjmjpLpmaTlrZfmrrXkuK3vvIzmiqXplJlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigna2V5IGlzIGV4Y2x1ZGVGaWVsZHM6JyArIHJlcS5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8g6I635Y+W5a+56LGhXG4gICAgICBjb25zdCBkYiA9IG1vbmdvLmNvbGxlY3Rpb25zKClbY29sbE5hbWVdO1xuICAgICAgX2QoJ2Rpc3RpbmN0OicsIGNvbGxOYW1lLCByZXEsIHNlc3Npb25zLCBfcmVzdE9wdGlvbnMpO1xuICAgICAgLy8g5aSE55CGc2Vzc2lvbk1hdGNo5Yy56YWN5L+h5oGvXG4gICAgICBsZXQgcXVlcnkgPSBfc2Vzc2lvbk1hdGNoKHJlcS5xdWVyeSwgX3Jlc3RPcHRpb25zLnNlc3Npb25NYXRjaCwgc2Vzc2lvbnMpO1xuICAgICAgX2QoJ3F1ZXJ5Oi0tLS0nLCBxdWVyeSk7XG4gICAgICByZXR1cm4gYXdhaXQgZGIuZGlzdGluY3QocmVxLmtleSwgcXVlcnkpO1xuICAgIH0sXG4gICAgaW5zZXJ0T25lOiBhc3luYyAocmVxOiBhbnksIHNlc3Npb25zOiBhbnkpID0+IHtcbiAgICAgIC8vIOajgOafpeWPguaVsFxuICAgICAgYXNzZXJ0KHJlcS5kb2MsICduZWVkIGRvYycpO1xuICAgICAgLy8g6I635Y+W5a+56LGh77yM5pWw5o2u5bqT5a+56LGh5b+F6aG75Zyo5q2k6I635Y+W5ZCm5YiZ5Y+W5LiN5Yiw5a6e6ZmF5a+56LGhXG4gICAgICBjb25zdCBkYiA9IG1vbmdvLmNvbGxlY3Rpb25zKClbY29sbE5hbWVdO1xuICAgICAgX2QoJ2luc2VydE9uZTonLCBjb2xsTmFtZSwgcmVxLCBzZXNzaW9ucywgX3Jlc3RPcHRpb25zKTtcbiAgICAgIC8vIOWQiOW5tumZkOWItuWtl+autSxwcm9qZWN0aW9uXG4gICAgICAvLyBjb25zdCBvcHRpb25zID0gX21lcmdlRXhjbHVkZUZpZWxkcyhyZXEsIF9yZXN0T3B0aW9ucy5leGNsdWRlRmllbGRzKTtcbiAgICAgIC8vIF9kKCdmaW5kT25lIC0tIG9wdGlvbnM6Jywgb3B0aW9ucyk7XG4gICAgICAvLyDlpITnkIZzZXNzaW9uTWF0Y2jljLnphY3kv6Hmga9cbiAgICAgIC8vIGxldCBkb2MgPSBfc2Vzc2lvbk1hdGNoKFxuICAgICAgLy8gICByZXEuZG9jLFxuICAgICAgLy8gICBfcmVzdE9wdGlvbnMuc2Vzc2lvbk1hdGNoLFxuICAgICAgLy8gICBzZXNzaW9ucyxcbiAgICAgIC8vICk7XG5cbiAgICAgIGxldCBkb2MgPSByZXEuZG9jO1xuICAgICAgcmV0dXJuIGF3YWl0IGRiLmluc2VydE9uZShkb2MpO1xuICAgIH0sXG4gICAgaW5zZXJ0TWFueTogYXN5bmMgKHJlcTogYW55LCBzZXNzaW9uczogYW55KSA9PiB7XG4gICAgICAvLyDmo4Dmn6Xlj4LmlbBcbiAgICAgIGFzc2VydChyZXEuZG9jcywgJ25lZWQgZG9jcycpO1xuICAgICAgLy8g6I635Y+W5a+56LGh77yM5pWw5o2u5bqT5a+56LGh5b+F6aG75Zyo5q2k6I635Y+W5ZCm5YiZ5Y+W5LiN5Yiw5a6e6ZmF5a+56LGhXG4gICAgICBjb25zdCBkYiA9IG1vbmdvLmNvbGxlY3Rpb25zKClbY29sbE5hbWVdO1xuICAgICAgX2QoJ2luc2VydE9uZTonLCBjb2xsTmFtZSwgcmVxLCBzZXNzaW9ucywgX3Jlc3RPcHRpb25zKTtcbiAgICAgIC8vIOWQiOW5tumZkOWItuWtl+autSxwcm9qZWN0aW9uXG4gICAgICAvLyBjb25zdCBvcHRpb25zID0gX21lcmdlRXhjbHVkZUZpZWxkcyhyZXEsIF9yZXN0T3B0aW9ucy5leGNsdWRlRmllbGRzKTtcbiAgICAgIC8vIF9kKCdmaW5kT25lIC0tIG9wdGlvbnM6Jywgb3B0aW9ucyk7XG4gICAgICAvLyDlpITnkIZzZXNzaW9uTWF0Y2jljLnphY3kv6Hmga9cbiAgICAgIC8vIGxldCBkb2MgPSBfc2Vzc2lvbk1hdGNoKFxuICAgICAgLy8gICByZXEuZG9jLFxuICAgICAgLy8gICBfcmVzdE9wdGlvbnMuc2Vzc2lvbk1hdGNoLFxuICAgICAgLy8gICBzZXNzaW9ucyxcbiAgICAgIC8vICk7XG5cbiAgICAgIGxldCBkb2NzID0gcmVxLmRvY3M7XG4gICAgICByZXR1cm4gYXdhaXQgZGIuaW5zZXJ0TWFueShkb2NzKTtcbiAgICB9LFxuXG4gICAgLy8gLS0tLS0tLS0tIFUg5pWw5o2u5bqT5pu05paw55u45YWz5pa55rOVXG4gICAgdXBkYXRlT25lOiBhc3luYyAocmVxOiBhbnksIHNlc3Npb25zOiBhbnkpID0+IHtcbiAgICAgIC8vIOajgOafpeWPguaVsFxuICAgICAgYXNzZXJ0KHJlcS5maWx0ZXIsICduZWVkIGZpbHRlcicpO1xuICAgICAgYXNzZXJ0KHJlcS51cGRhdGUsICduZWVkIHVwZGF0ZScpO1xuICAgICAgLy8g6I635Y+W5a+56LGhXG4gICAgICBjb25zdCBkYiA9IG1vbmdvLmNvbGxlY3Rpb25zKClbY29sbE5hbWVdO1xuICAgICAgX2QoJ3VwZGF0ZU9uZSAxMTonLCBjb2xsTmFtZSwgcmVxLCBzZXNzaW9ucywgX3Jlc3RPcHRpb25zKTtcbiAgICAgIC8vIOaOkumZpOmZkOWItuWtl+autSzkuI3pnIDopoFcbiAgICAgIGNvbnN0IHVwZGF0ZSA9IHJlcS51cGRhdGU7XG4gICAgICBjb25zdCBvcHRpb25zID0gKHJlcS5vcHRpb25zIHx8IHt9KSBhcyB7IFtrOiBzdHJpbmddOiBhbnkgfTtcblxuICAgICAgLy8g5qOA5rWLdXBzZXJ05Y+C5pWw77yM6KaB5rGC55So5oi3QVBJ5a6a5LmJ5LqGQ3JlYXRl55u45YWz5Ye95pWwXG4gICAgICBpZiAoXy5pc0VtcHR5KHJlc3REYlsnaW5zZXJ0T25lJ10pKSB7XG4gICAgICAgIC8vIOWmguaenOaXoGluc2VydE9uZeWumuS5ie+8jOWImeS4jeWFgeiuuHVwc2VydOWPguaVsFxuICAgICAgICBvcHRpb25zLnVwc2VydCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyDlpITnkIZzZXNzaW9uTWF0Y2jljLnphY3kv6Hmga9cbiAgICAgIGxldCBxdWVyeSA9IF9zZXNzaW9uTWF0Y2goXG4gICAgICAgIHJlcS5maWx0ZXIsXG4gICAgICAgIF9yZXN0T3B0aW9ucy5zZXNzaW9uTWF0Y2gsXG4gICAgICAgIHNlc3Npb25zLFxuICAgICAgKTtcbiAgICAgIF9kKCdxdWVyeTotLS0tJywgcXVlcnkpO1xuICAgICAgX2QoJ3VwZGF0ZTotLS0tJywgdXBkYXRlKTtcbiAgICAgIF9kKCdvcHRpb25zOi0tLS0nLCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IHJldCA9IGF3YWl0IGRiLnVwZGF0ZU9uZShxdWVyeSwgdXBkYXRlLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiByZXRbJ3Jlc3VsdCddO1xuICAgIH0sXG5cbiAgICB1cGRhdGVNYW55OiBhc3luYyAocmVxOiBhbnksIHNlc3Npb25zOiBhbnkpID0+IHtcbiAgICAgIC8vIOajgOafpeWPguaVsFxuICAgICAgYXNzZXJ0KHJlcS5maWx0ZXIsICduZWVkIGZpbHRlcicpO1xuICAgICAgYXNzZXJ0KHJlcS51cGRhdGUsICduZWVkIHVwZGF0ZScpO1xuICAgICAgLy8g6I635Y+W5a+56LGhXG4gICAgICBjb25zdCBkYiA9IG1vbmdvLmNvbGxlY3Rpb25zKClbY29sbE5hbWVdO1xuICAgICAgX2QoJ3VwZGF0ZU9uZSAxMTonLCBjb2xsTmFtZSwgcmVxLCBzZXNzaW9ucywgX3Jlc3RPcHRpb25zKTtcbiAgICAgIC8vIOaOkumZpOmZkOWItuWtl+autSzkuI3pnIDopoFcbiAgICAgIGNvbnN0IHVwZGF0ZSA9IHJlcS51cGRhdGU7XG4gICAgICBjb25zdCBvcHRpb25zID0gKHJlcS5vcHRpb25zIHx8IHt9KSBhcyB7IFtrOiBzdHJpbmddOiBhbnkgfTtcblxuICAgICAgLy8g5qOA5rWLdXBzZXJ05Y+C5pWw77yM6KaB5rGC55So5oi3QVBJ5a6a5LmJ5LqGQ3JlYXRl55u45YWz5Ye95pWwXG4gICAgICBpZiAoXy5pc0VtcHR5KHJlc3REYlsnaW5zZXJ0T25lJ10pKSB7XG4gICAgICAgIC8vIOWmguaenOaXoGluc2VydE9uZeWumuS5ie+8jOWImeS4jeWFgeiuuHVwc2VydOWPguaVsFxuICAgICAgICBvcHRpb25zLnVwc2VydCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyDlpITnkIZzZXNzaW9uTWF0Y2jljLnphY3kv6Hmga9cbiAgICAgIGxldCBxdWVyeSA9IF9zZXNzaW9uTWF0Y2goXG4gICAgICAgIHJlcS5maWx0ZXIsXG4gICAgICAgIF9yZXN0T3B0aW9ucy5zZXNzaW9uTWF0Y2gsXG4gICAgICAgIHNlc3Npb25zLFxuICAgICAgKTtcbiAgICAgIF9kKCdxdWVyeTotLS0tJywgcXVlcnkpO1xuICAgICAgX2QoJ3VwZGF0ZTotLS0tJywgdXBkYXRlKTtcbiAgICAgIF9kKCdvcHRpb25zOi0tLS0nLCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IHJldCA9IGF3YWl0IGRiLnVwZGF0ZU1hbnkocXVlcnksIHVwZGF0ZSwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmV0WydyZXN1bHQnXTtcbiAgICB9LFxuXG4gICAgZmluZE9uZUFuZFVwZGF0ZTogYXN5bmMgKHJlcTogYW55LCBzZXNzaW9uczogYW55KSA9PiB7XG4gICAgICAvLyDmo4Dmn6Xlj4LmlbBcbiAgICAgIGFzc2VydChyZXEuZmlsdGVyLCAnbmVlZCBmaWx0ZXInKTtcbiAgICAgIGFzc2VydChyZXEudXBkYXRlLCAnbmVlZCB1cGRhdGUnKTtcbiAgICAgIC8vIOiOt+WPluWvueixoVxuICAgICAgY29uc3QgZGIgPSBtb25nby5jb2xsZWN0aW9ucygpW2NvbGxOYW1lXTtcbiAgICAgIF9kKCd1cGRhdGVPbmUgMTE6JywgY29sbE5hbWUsIHJlcSwgc2Vzc2lvbnMsIF9yZXN0T3B0aW9ucyk7XG4gICAgICAvLyDmjpLpmaTpmZDliLblrZfmrrUs5LiN6ZyA6KaBXG4gICAgICBjb25zdCB1cGRhdGUgPSByZXEudXBkYXRlO1xuXG4gICAgICAvLyDlkIjlubbmjpLpmaTlrZfmrrXlj4LmlbBcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBfbWVyZ2VFeGNsdWRlRmllbGRzKFxuICAgICAgICByZXEub3B0aW9ucyxcbiAgICAgICAgX3Jlc3RPcHRpb25zLmV4Y2x1ZGVGaWVsZHMsXG4gICAgICApO1xuXG4gICAgICAvLyDmo4DmtYt1cHNlcnTlj4LmlbDvvIzopoHmsYLnlKjmiLdBUEnlrprkuYnkuoZDcmVhdGXnm7jlhbPlh73mlbBcbiAgICAgIGlmIChfLmlzRW1wdHkocmVzdERiWydpbnNlcnRPbmUnXSkpIHtcbiAgICAgICAgLy8g5aaC5p6c5pegaW5zZXJ0T25l5a6a5LmJ77yM5YiZ5LiN5YWB6K64dXBzZXJ05Y+C5pWwXG4gICAgICAgIG9wdGlvbnMudXBzZXJ0ID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIOWkhOeQhnNlc3Npb25NYXRjaOWMuemFjeS/oeaBr1xuICAgICAgbGV0IHF1ZXJ5ID0gX3Nlc3Npb25NYXRjaChcbiAgICAgICAgcmVxLmZpbHRlcixcbiAgICAgICAgX3Jlc3RPcHRpb25zLnNlc3Npb25NYXRjaCxcbiAgICAgICAgc2Vzc2lvbnMsXG4gICAgICApO1xuICAgICAgX2QoJ3F1ZXJ5Oi0tLS0nLCBxdWVyeSk7XG4gICAgICBfZCgndXBkYXRlOi0tLS0nLCB1cGRhdGUpO1xuICAgICAgX2QoJ29wdGlvbnM6LS0tLScsIG9wdGlvbnMpO1xuICAgICAgY29uc3QgcmV0ID0gYXdhaXQgZGIuZmluZE9uZUFuZFVwZGF0ZShxdWVyeSwgdXBkYXRlLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIGZpbmRPbmVBbmRSZXBsYWNlOiBhc3luYyAocmVxOiBhbnksIHNlc3Npb25zOiBhbnkpID0+IHtcbiAgICAgIC8vIOajgOafpeWPguaVsFxuICAgICAgYXNzZXJ0KHJlcS5maWx0ZXIsICduZWVkIGZpbHRlcicpO1xuICAgICAgYXNzZXJ0KHJlcS5yZXBsYWNlbWVudCwgJ25lZWQgdXBkYXRlJyk7XG4gICAgICAvLyDojrflj5blr7nosaFcbiAgICAgIGNvbnN0IGRiID0gbW9uZ28uY29sbGVjdGlvbnMoKVtjb2xsTmFtZV07XG4gICAgICBfZCgndXBkYXRlT25lIDExOicsIGNvbGxOYW1lLCByZXEsIHNlc3Npb25zLCBfcmVzdE9wdGlvbnMpO1xuICAgICAgLy8g5o6S6Zmk6ZmQ5Yi25a2X5q61LOS4jemcgOimgVxuICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSByZXEucmVwbGFjZW1lbnQ7XG5cbiAgICAgIC8vIOWQiOW5tuaOkumZpOWtl+auteWPguaVsFxuICAgICAgY29uc3Qgb3B0aW9ucyA9IF9tZXJnZUV4Y2x1ZGVGaWVsZHMoXG4gICAgICAgIHJlcS5vcHRpb25zLFxuICAgICAgICBfcmVzdE9wdGlvbnMuZXhjbHVkZUZpZWxkcyxcbiAgICAgICk7XG5cbiAgICAgIC8vIOajgOa1i3Vwc2VydOWPguaVsO+8jOimgeaxgueUqOaIt0FQSeWumuS5ieS6hkNyZWF0ZeebuOWFs+WHveaVsFxuICAgICAgaWYgKF8uaXNFbXB0eShyZXN0RGJbJ2luc2VydE9uZSddKSkge1xuICAgICAgICAvLyDlpoLmnpzml6BpbnNlcnRPbmXlrprkuYnvvIzliJnkuI3lhYHorrh1cHNlcnTlj4LmlbBcbiAgICAgICAgb3B0aW9ucy51cHNlcnQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8g5aSE55CGc2Vzc2lvbk1hdGNo5Yy56YWN5L+h5oGvXG4gICAgICBsZXQgcXVlcnkgPSBfc2Vzc2lvbk1hdGNoKFxuICAgICAgICByZXEuZmlsdGVyLFxuICAgICAgICBfcmVzdE9wdGlvbnMuc2Vzc2lvbk1hdGNoLFxuICAgICAgICBzZXNzaW9ucyxcbiAgICAgICk7XG4gICAgICBfZCgncXVlcnk6LS0tLScsIHF1ZXJ5KTtcbiAgICAgIF9kKCd1cGRhdGU6LS0tLScsIHJlcGxhY2VtZW50KTtcbiAgICAgIF9kKCdvcHRpb25zOi0tLS0nLCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IHJldCA9IGF3YWl0IGRiLmZpbmRPbmVBbmRSZXBsYWNlKHF1ZXJ5LCByZXBsYWNlbWVudCwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0sXG5cbiAgICAvLyDliKDpmaTmk43kvZxcblxuICAgIGRlbGV0ZU9uZTogYXN5bmMgKHJlcTogYW55LCBzZXNzaW9uczogYW55KSA9PiB7XG4gICAgICAvLyDmo4Dmn6Xlj4LmlbBcbiAgICAgIGFzc2VydChyZXEuZmlsdGVyLCAnbmVlZCBmaWx0ZXInKTtcbiAgICAgIC8vIOiOt+WPluWvueixoVxuICAgICAgY29uc3QgZGIgPSBtb25nby5jb2xsZWN0aW9ucygpW2NvbGxOYW1lXTtcbiAgICAgIF9kKCdkZWxldGVPbmU6JywgY29sbE5hbWUsIHJlcSwgc2Vzc2lvbnMsIF9yZXN0T3B0aW9ucyk7XG4gICAgICAvLyDmjpLpmaTpmZDliLblrZfmrrUs5LiN6ZyA6KaBXG4gICAgICAvLyDlpITnkIZzZXNzaW9uTWF0Y2jljLnphY3kv6Hmga9cbiAgICAgIGxldCBxdWVyeSA9IF9zZXNzaW9uTWF0Y2goXG4gICAgICAgIHJlcS5maWx0ZXIsXG4gICAgICAgIF9yZXN0T3B0aW9ucy5zZXNzaW9uTWF0Y2gsXG4gICAgICAgIHNlc3Npb25zLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSAocmVxLm9wdGlvbnMgfHwge30pIGFzIHsgW2s6IHN0cmluZ106IGFueSB9O1xuICAgICAgX2QoJ3F1ZXJ5Oi0tLS0nLCBxdWVyeSk7XG4gICAgICBjb25zdCByZXQgPSBhd2FpdCBkYi5kZWxldGVPbmUocXVlcnksIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIHJldFsncmVzdWx0J107XG4gICAgfSxcblxuICAgIGRlbGV0ZU1hbnk6IGFzeW5jIChyZXE6IGFueSwgc2Vzc2lvbnM6IGFueSkgPT4ge1xuICAgICAgLy8g5qOA5p+l5Y+C5pWwXG4gICAgICBhc3NlcnQocmVxLmZpbHRlciwgJ25lZWQgZmlsdGVyJyk7XG4gICAgICAvLyDojrflj5blr7nosaFcbiAgICAgIGNvbnN0IGRiID0gbW9uZ28uY29sbGVjdGlvbnMoKVtjb2xsTmFtZV07XG4gICAgICBfZCgnZGVsZXRlT25lOicsIGNvbGxOYW1lLCByZXEsIHNlc3Npb25zLCBfcmVzdE9wdGlvbnMpO1xuICAgICAgLy8g5o6S6Zmk6ZmQ5Yi25a2X5q61LOS4jemcgOimgVxuICAgICAgLy8g5aSE55CGc2Vzc2lvbk1hdGNo5Yy56YWN5L+h5oGvXG4gICAgICBsZXQgcXVlcnkgPSBfc2Vzc2lvbk1hdGNoKFxuICAgICAgICByZXEuZmlsdGVyLFxuICAgICAgICBfcmVzdE9wdGlvbnMuc2Vzc2lvbk1hdGNoLFxuICAgICAgICBzZXNzaW9ucyxcbiAgICAgICk7XG4gICAgICBjb25zdCBvcHRpb25zID0gKHJlcS5vcHRpb25zIHx8IHt9KSBhcyB7IFtrOiBzdHJpbmddOiBhbnkgfTtcbiAgICAgIF9kKCdxdWVyeTotLS0tJywgcXVlcnkpO1xuICAgICAgY29uc3QgcmV0ID0gYXdhaXQgZGIuZGVsZXRlTWFueShxdWVyeSwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmV0WydyZXN1bHQnXTtcbiAgICB9LFxuXG4gICAgZmluZE9uZUFuZERlbGV0ZTogYXN5bmMgKHJlcTogYW55LCBzZXNzaW9uczogYW55KSA9PiB7XG4gICAgICAvLyDmo4Dmn6Xlj4LmlbBcbiAgICAgIGFzc2VydChyZXEuZmlsdGVyLCAnbmVlZCBmaWx0ZXInKTtcbiAgICAgIC8vIOiOt+WPluWvueixoVxuICAgICAgY29uc3QgZGIgPSBtb25nby5jb2xsZWN0aW9ucygpW2NvbGxOYW1lXTtcbiAgICAgIF9kKCdkZWxldGVPbmU6JywgY29sbE5hbWUsIHJlcSwgc2Vzc2lvbnMsIF9yZXN0T3B0aW9ucyk7XG5cbiAgICAgIC8vIOWQiOW5tuaOkumZpOWtl+auteWPguaVsFxuICAgICAgY29uc3Qgb3B0aW9ucyA9IF9tZXJnZUV4Y2x1ZGVGaWVsZHMoXG4gICAgICAgIHJlcS5vcHRpb25zLFxuICAgICAgICBfcmVzdE9wdGlvbnMuZXhjbHVkZUZpZWxkcyxcbiAgICAgICk7XG4gICAgICAvLyDlpITnkIZzZXNzaW9uTWF0Y2jljLnphY3kv6Hmga9cbiAgICAgIGxldCBxdWVyeSA9IF9zZXNzaW9uTWF0Y2goXG4gICAgICAgIHJlcS5maWx0ZXIsXG4gICAgICAgIF9yZXN0T3B0aW9ucy5zZXNzaW9uTWF0Y2gsXG4gICAgICAgIHNlc3Npb25zLFxuICAgICAgKTtcbiAgICAgIF9kKCdxdWVyeTotLS0tJywgcXVlcnkpO1xuICAgICAgY29uc3QgcmV0ID0gYXdhaXQgZGIuZmluZE9uZUFuZERlbGV0ZShxdWVyeSwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0sXG5cbiAgICAvLyAvLyBEZWxldGUg5pa55rOVXG4gICAgLy8gZGVsZXRlT25lOiBIVFRQPHsgZmlsdGVyOiBGaWx0ZXJRdWVyeTxUU2NoZW1hPiB9LCBUU2NoZW1hPihcbiAgICAvLyAgIHNlc3Npb25zLFxuICAgIC8vICAgbmVlZEFjdG9ycyxcbiAgICAvLyApLFxuXG4gICAgLy8gLyoqXG4gICAgLy8gICog5Yig6Zmk5aSa5p2h6K6w5b2VXG4gICAgLy8gICogaHR0cDovL21vbmdvZGIuZ2l0aHViLmlvL25vZGUtbW9uZ29kYi1uYXRpdmUvMy4xL2FwaS9Db2xsZWN0aW9uLmh0bWwjZGVsZXRlTWFueVxuICAgIC8vICAqL1xuICAgIC8vIGRlbGV0ZU1hbnk6IEhUVFA8eyBmaWx0ZXI6IEZpbHRlclF1ZXJ5PFRTY2hlbWE+IH0sIFRTY2hlbWE+KFxuICAgIC8vICAgc2Vzc2lvbnMsXG4gICAgLy8gICBuZWVkQWN0b3JzLFxuICAgIC8vICksXG5cbiAgICAvLyAvKipcbiAgICAvLyAgKiBodHRwOi8vbW9uZ29kYi5naXRodWIuaW8vbm9kZS1tb25nb2RiLW5hdGl2ZS8zLjEvYXBpL0NvbGxlY3Rpb24uaHRtbCNmaW5kT25lQW5kRGVsZXRlXG4gICAgLy8gICpcbiAgICAvLyAgKi9cbiAgICAvLyBmaW5kT25lQW5kRGVsZXRlOiBIVFRQPFxuICAgIC8vICAgeyBmaWx0ZXI6IEZpbHRlclF1ZXJ5PFRTY2hlbWE+OyBvcHRpb25zPzogRmluZE9uZUFuZERlbGV0ZU9wdGlvbiB9LFxuICAgIC8vICAgRmluZEFuZE1vZGlmeVdyaXRlT3BSZXN1bHRPYmplY3Q8VFNjaGVtYT5cbiAgICAvLyA+KHNlc3Npb25zLCBuZWVkQWN0b3JzKSxcbiAgfSBhcyB7IFtrOiBzdHJpbmddOiBhbnkgfTtcbn1cbiJdfQ== |
@@ -293,2 +293,1 @@ "use strict"; | ||
exports.Service = Service; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUEsc0RBQW1FO0FBQ25FLDhEQUFxQztBQUVyQyxnREFBd0I7QUFDeEIsa0RBQTBCO0FBQzFCLG1FQUFrQztBQUNsQyxNQUFNLEVBQUUsR0FBRyxlQUFLLENBQUMsc0JBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLGNBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFcEUsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixnREFBb0M7QUFDcEMsb0RBQXVCO0FBQ3ZCLDBEQUFrQztBQUNsQyxnRUFBK0I7QUFDL0IsMkNBQTBDO0FBTTdCLFFBQUEsVUFBVSxHQUFHLE1BQU0sQ0FBQztBQThCakMsTUFBYSxhQUFhO0lBRXhCLFlBQVksR0FBVztRQUNyQixnQkFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ1osT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNwQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNYO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSTtZQUNGLE1BQU0sR0FBRyxHQUFHLGdCQUFNLENBQUMsZ0JBQWdCLENBQ2pDLGFBQWEsRUFDYixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUNwQixDQUFDO1lB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QUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3hCO3FCQUFNO29CQUNMLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUN0QztnQkFDRCxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBS0QsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUM3RCxFQUFFLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpaRCwwQkF5WkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIOabtOaWsHNlc3Npb27lrprkuYnvvIzph4fnlKjmoIflh4Z3ZWJ0b2tlbuWunueOsO+8jOWwhnNlc3Npb27liIbkuLrnlKjmiLflj6/op4HnmoTmmI7mlodzZXNzaW9uXG4gKiDku6Xlj4rmnI3liqHlmajlj6/op4Hlr4bmlodzZXNzaW9u5Lik6YOo5YiG77yMYXBp5a6e546w5Lit5Lmf6KaB5Yy65YiG5byAXG4gKlxuICovXG5cbmltcG9ydCBleHByZXNzLCB7IFJlcXVlc3QsIFJlc3BvbnNlLCBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBib2R5UGFyc2VyIGZyb20gJ2JvZHktcGFyc2VyJzsgLy8gYm9keSBwYXJzZXJcbi8vIOWIneWni+WMlkRFQlVH5bqTXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgcGtnIGZyb20gJy4uL3BhY2thZ2UuanNvbic7XG5jb25zdCBfZCA9IGRlYnVnKHBrZy5uYW1lICsgJzonICsgcGF0aC5iYXNlbmFtZShfX2ZpbGVuYW1lLCAnLmpzJykpO1xuXG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCBodHRwLCB7IFNlcnZlciB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBiYXNlNjR1cmwgZnJvbSAnYmFzZTY0dXJsJztcbmltcG9ydCBqd3QgZnJvbSAnanNvbndlYnRva2VuJztcbmltcG9ydCB7IGNyZWF0ZURiQXBpIH0gZnJvbSAnLi9yZXN0RGJBcGknO1xuaW1wb3J0IHsgSUV4cG9ydENvbGxlY3Rpb25zLCBJRGJTY2hlbWFzLCBNb25nbyB9IGZyb20gJy4vTW9uZ29EYic7XG5pbXBvcnQgeyBSZXF1ZXN0SGFuZGxlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgSUNvbmZpZyB9IGZyb20gJy4vQ29uZi5qcyc7XG5cbi8vIOe7n+S4gOiuvue9rnNlc3PmoIfnpLpcbmV4cG9ydCBjb25zdCBTRVNTX1NUQVJUID0gJy1jcy0nO1xuXG50eXBlIEFSR1NfVFlQRTxUPiA9IFQgZXh0ZW5kcyAoYXJnOiBpbmZlciBVKSA9PiBhbnkgPyBVIDogbmV2ZXI7XG50eXBlIFJFVFVSTl9UWVBFPFQ+ID0gVCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gaW5mZXIgUiA/IFIgOiBhbnk7XG5cbmludGVyZmFjZSBJU2Vzc2lvblVwZGF0ZUZ1bmN0aW9uPFQ+IHtcbiAgKHNlc3NOYW1lOiBUKTogYW55O1xufVxuXG50eXBlIFNFU1NJT05fVVBEQVRFX0ZVTkMgPSB7IChleHBpcmVTZWNvbmRzPzogbnVtYmVyKTogdm9pZCB9O1xuXG50eXBlIEZVTExfU0VTU0lPTlM8VD4gPSBUICYgeyBbayBpbiBrZXlvZiBUXTogeyB1cGRhdGU6IFNFU1NJT05fVVBEQVRFX0ZVTkMgfSB9O1xuXG50eXBlIFJFTUFQX0FQSV9GVU5DUzxBUElfVCwgU0VTU0lPTlNfVD4gPSB7XG4gIFtQIGluIGtleW9mIEFQSV9UXTogKFxuICAgIHJlcTogQVJHU19UWVBFPEFQSV9UW1BdPixcbiAgICBzZXNzaW9uczogRlVMTF9TRVNTSU9OUzxTRVNTSU9OU19UPixcbiAgICBodHRwUmVxdWVzdDogUmVxdWVzdCxcbiAgICBodHRwUmVzcG9uc2U6IFJlc3BvbnNlLFxuICApID0+IFJFVFVSTl9UWVBFPEFQSV9UW1BdPlxufTtcblxudHlwZSBBcGlGdW5jdGlvbl9UID0gKC4uLmFyZ3M6IGFueSkgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBJU2V2aWNlU2Vzc2lvbiA9IHsgW2sgaW4gc3RyaW5nXToge30gfTtcblxuLyoqXG4gKiBTZXNzaW9u6Kej5p6QXG4gKlxuICovXG5leHBvcnQgY2xhc3MgU2Vzc2lvbkNyeXB0byB7XG4gIHByaXZhdGUgX2tleTogQnVmZmVyO1xuICBjb25zdHJ1Y3RvcihrZXk6IHN0cmluZykge1xuICAgIGFzc2VydChrZXkubGVuZ3RoID4gMCk7XG4gICAgLy8g6K6+572ua2V56ZW/5bqm5Li6MzLkuKrlrZfoioJcbiAgICBsZXQgayA9IGtleTtcbiAgICB3aGlsZSAoay5sZW5ndGggPCAzMikge1xuICAgICAgayA9IGsgKyBrO1xuICAgIH1cbiAgICB0aGlzLl9rZXkgPSBCdWZmZXIuZnJvbShrLnNsaWNlKDAsIDMyKSk7XG4gIH1cbiAgZGVjKGRhdGE6IHN0cmluZyk6IHsgW2sgaW4gc3RyaW5nXTogYW55IH0ge1xuICAgIGxldCByZXQgPSB7fTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjID0gY3J5cHRvLmNyZWF0ZURlY2lwaGVyaXYoXG4gICAgICAgICdhZXMtMjU2LWNiYycsXG4gICAgICAgIHRoaXMuX2tleSxcbiAgICAgICAgdGhpcy5fa2V5LnNsaWNlKDE2KSxcbiAgICAgICk7XG4gICAgICAvLyBiYXNlNjTop6PnoIFcblxuICAgICAgY29uc3QgYnVmID0gYmFzZTY0dXJsLnRvQnVmZmVyKGRhdGEpO1xuICAgICAgcmV0ID0gSlNPTi5wYXJzZShcbiAgICAgICAgQnVmZmVyLmNvbmNhdChbZGVjLnVwZGF0ZShidWYpLCBkZWMuZmluYWwoKV0pLnRvU3RyaW5nKCksXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIF9kKCdkZWMgc2Vzc2lvbiBmYWlsOicsIGUubWVzc2FnZSk7XG4gICAgICB0aHJvdyAnc2Vzc2lvbiBjcnlwdG8gZmFpbCc7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbiAgZW5jKGRhdGE6IHsgW2sgaW4gc3RyaW5nXTogYW55IH0pOiBzdHJpbmcge1xuICAgIGFzc2VydChfLmlzUGxhaW5PYmplY3QoZGF0YSkpO1xuICAgIGNvbnN0IGVuYyA9IGNyeXB0by5jcmVhdGVDaXBoZXJpdihcbiAgICAgICdhZXMtMjU2LWNiYycsXG4gICAgICB0aGlzLl9rZXksXG4gICAgICB0aGlzLl9rZXkuc2xpY2UoMTYpLFxuICAgICk7XG4gICAgY29uc3QgZW5jQnVmID0gQnVmZmVyLmNvbmNhdChbXG4gICAgICBlbmMudXBkYXRlKEpTT04uc3RyaW5naWZ5KGRhdGEpKSxcbiAgICAgIGVuYy5maW5hbCgpLFxuICAgIF0pO1xuICAgIHJldHVybiBiYXNlNjR1cmwuZW5jb2RlKGVuY0J1Zik7XG4gIH1cbn1cblxuaW50ZXJmYWNlIElTZXJ2aWNlT3B0aW9uczxUX0FQSSwgVF9SRVNUREIsIFRfU0VTU0lPTj4ge1xuICBob3N0Pzogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG4gIGFwaTogVF9BUEk7XG4gIGRiPzoge1xuICAgIG1vbmdvOiBNb25nbzxhbnk+O1xuICAgIHJlc3REYkFwaTogVF9SRVNUREI7XG4gIH07XG4gIHByb2plY3RDb25maWc6IElDb25maWcgJiB7IHNlc3NLZXk6IHN0cmluZyB9O1xuICBzZXNzaW9uOiB7XG4gICAgZGVmaW5lOiBUX1NFU1NJT047XG4gICAgZXhwaXJlU2Vjb25kczogbnVtYmVyO1xuICB9O1xuICBhcGlNaWRkbGVXYXJlcz86IFJlcXVlc3RIYW5kbGVyW107IC8vQXBpIOi3r+eUseS9v+eUqOeahOS4remXtOS7tlxufVxuXG4vKipcbiAqIOWIm+W7uuWSjOeuoeeQhuacjeWKoVxuICog5ZCv5YqoIGV4cHJlc3Mg5pyN5Yqh77yM5a6e546w57G7SlNPTiBXZWIgVG9rZW7vvIhKV1TvvInnmoTmlrnmoYhcbiAqIOino+aekEpDU++8jOW5tuWwhkpDU+a3u+WKoOWIsHNlc3Npb27kuK1cbiAqIOavj+S4que7hOS7tueahOaMgui9vei3r+W+hFxuICovXG5leHBvcnQgY2xhc3MgU2VydmljZTxcbiAgVF9BUEkgZXh0ZW5kcyB7IFtrOiBzdHJpbmddOiBBcGlGdW5jdGlvbl9UIH0gJiB7IF9fcGtnPzogYW55IH0sXG4gIFRfREIgZXh0ZW5kcyBJRXhwb3J0Q29sbGVjdGlvbnM8SURiU2NoZW1hcz4sXG4gIFRfUkVTVERCIGV4dGVuZHMgeyBbazogc3RyaW5nXTogeyBbazogc3RyaW5nXTogQXBpRnVuY3Rpb25fVCB9IH0sXG4gIFRfU0VTU0lPTlMgZXh0ZW5kcyBJU2V2aWNlU2Vzc2lvblxuPiB7XG4gIHB1YmxpYyBleHByZXNzQXBwID0gZXhwcmVzcygpO1xuICBwdWJsaWMgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoKTtcbiAgcHJpdmF0ZSBfb3B0aW9uczogSVNlcnZpY2VPcHRpb25zPFRfQVBJLCBUX1JFU1REQiwgVF9TRVNTSU9OUz47XG4gIHByaXZhdGUgX25hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2Vzc2lvbkV4cGlyZVNlY29uZHMgPSAyMCAqIDYwOyAvLyDkvJror53otoXml7bml7bplb9cbiAgcHJpdmF0ZSBfc2Vzc2lvbkNyeXB0bzogU2Vzc2lvbkNyeXB0bztcbiAgcHJpdmF0ZSBfc2VydmljZVBhdGg6IHN0cmluZztcbiAgLy8gcHJpdmF0ZSBfc2Vzc2lvbnNEZWZpbmU6IElTZXZpY2VTZXNzaW9uO1xuICBwdWJsaWMgYXBpOiBSRU1BUF9BUElfRlVOQ1M8VF9BUEksIFRfU0VTU0lPTlM+O1xuXG4gIC8qKlxuICAgKiDliJvlu7rnmoRodHRwIFNlcnZlciDlr7nosaHvvIzlj6ror7tcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBodHRwU2VydmVyOiBTZXJ2ZXI7XG5cbiAgLyoqXG4gICAqIOaehOmAoHNlcnZpY2VcbiAgICogQHBhcmFtIHBvcnQg56uv5Y+j5Y+3XG4gICAqIEBwYXJhbSBhcGkgYXBpIOWumuS5iVxuICAgKiBAcGFyYW0gc2Vzc2lvbnMg55So5oi35Lya6K+d5a6a5LmJXG4gICAqIEBwYXJhbSBzZXNzaW9uS2V5IOWKoOino+WvhuS8muivneS9v+eUqOeahGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9uczogSVNlcnZpY2VPcHRpb25zPFRfQVBJLCBUX1JFU1REQiwgVF9TRVNTSU9OUz4pIHtcbiAgICAvLyDpqozor4Hlj4LmlbBcbiAgICAvLyDnm5HlkKzpobnnm67phY3nva7mlofku7blj5jljJbvvIzph43mlrDliqDovb1rZXlcbiAgICBpZiAoXy5pc0VtcHR5KG9wdGlvbnMucHJvamVjdENvbmZpZy5zZXNzS2V5KSkge1xuICAgICAgb3B0aW9ucy5wcm9qZWN0Q29uZmlnLnNlc3NLZXkgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoOCkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgb3B0aW9ucy5wcm9qZWN0Q29uZmlnLl9zYXZlKCk7XG4gICAgfVxuICAgIF9kKCctLS0+IHVzaW5nIHNlc3NLZXk6Jywgb3B0aW9ucy5wcm9qZWN0Q29uZmlnLnNlc3NLZXkpO1xuICAgIG9wdGlvbnMucHJvamVjdENvbmZpZy5fZXZlbnQub24oJ2xvYWQnLCAoKSA9PiB7XG4gICAgICBfZCgnLS0tPiBsb2FkIHNlc3NLZXk6Jywgb3B0aW9ucy5wcm9qZWN0Q29uZmlnLnNlc3NLZXkpO1xuICAgICAgdGhpcy5fc2Vzc2lvbkNyeXB0byA9IG5ldyBTZXNzaW9uQ3J5cHRvKG9wdGlvbnMucHJvamVjdENvbmZpZy5zZXNzS2V5KTtcbiAgICB9KTtcblxuICAgIC8vIOWIneWni+WMluWKoOWvhlxuICAgIHRoaXMuX3Nlc3Npb25DcnlwdG8gPSBuZXcgU2Vzc2lvbkNyeXB0byhvcHRpb25zLnByb2plY3RDb25maWcuc2Vzc0tleSk7XG5cbiAgICAvLyDorr7nva7nvLrnnIFob3N0XG4gICAgaWYgKF8uaXNFbXB0eShvcHRpb25zLmhvc3QpKSB7XG4gICAgICBvcHRpb25zLmhvc3QgPSAnMTI3LjAuMC4xJztcbiAgICB9XG5cbiAgICB0aGlzLl9uYW1lID0gb3B0aW9ucy5hcGkuX19wa2cubmFtZTtcbiAgICAvLyDkv53lrZhvcHRpb25zXG4gICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLl9zZXJ2aWNlUGF0aCA9IGAvYXBpLyR7Xy5rZWJhYkNhc2UodGhpcy5fbmFtZSl9YDtcbiAgICAvLyDorr7nva5hcGnvvIzpgJrov4djbG9uZeWkhOeQhu+8jOS4jeegtOWdj+WOn+acieWumuS5iVxuICAgIHRoaXMuYXBpID0gXy5jbG9uZShvcHRpb25zLmFwaSkgYXMgYW55O1xuXG4gICAgLy8g5oyC6L29QVBJ6Lev55SxXG4gICAgX2QoJ2FwaSB1c2luZyBzZXJ2aWNlIHBhdGg6JywgdGhpcy5fc2VydmljZVBhdGgpO1xuICAgIC8vIOi3qOWfn+iuvue9rlxuICAgIHRoaXMucm91dGVyLnVzZSh0aGlzLl9yZXNwb25zZUhlYWRlck9yaWdpbkhhbmRsZS5iaW5kKHRoaXMpKTtcblxuICAgIC8vIEpTT07op6PmnpBcbiAgICB0aGlzLnJvdXRlci51c2UoXG4gICAgICBib2R5UGFyc2VyLmpzb24oe1xuICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIGxpbWl0OiAnNTAwa2InLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIOiusOW9leaXpeW/l1xuICAgIHRoaXMucm91dGVyLnVzZSh0aGlzLl9sb2dIYW5kbGUuYmluZCh0aGlzKSk7XG4gICAgLy8g5Yqg6L295Lit6Ze05Lu2XG4gICAgaWYgKG9wdGlvbnMuYXBpTWlkZGxlV2FyZXMpIHtcbiAgICAgIHRoaXMucm91dGVyLnVzZShvcHRpb25zLmFwaU1pZGRsZVdhcmVzKTtcbiAgICB9XG4gICAgLy8g57uR5a6aYXBpXG4gICAgT2JqZWN0LmtleXModGhpcy5hcGkpLmZvckVhY2goKGFwaU5hbWUpID0+IHtcbiAgICAgIGlmIChhcGlOYW1lLnN0YXJ0c1dpdGgoJ18nKSkgcmV0dXJuO1xuICAgICAgX2QoJ3VzaW5nIGFwaTonLCBhcGlOYW1lLCB0aGlzLl9zZXJ2aWNlUGF0aCArICcvJyArIF8ua2ViYWJDYXNlKGFwaU5hbWUpKTtcbiAgICAgIHRoaXMucm91dGVyLnVzZShcbiAgICAgICAgYC8ke18ua2ViYWJDYXNlKGFwaU5hbWUpfWAsXG4gICAgICAgIHRoaXMuX2NyZWF0ZUFwaUhhbmRsZShcbiAgICAgICAgICB0aGlzLl9vcHRpb25zLmFwaVthcGlOYW1lXSxcbiAgICAgICAgICAoKSA9PiB0aGlzLmFwaVthcGlOYW1lXSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyDnu5HlrpogcmVzdERiIEFwaVxuICAgIGlmICh0aGlzLl9vcHRpb25zLmRiKSB7XG4gICAgICAvLyDnoa7lrprkvb/nlKggcmVzdERiQXBpXG4gICAgICBfLmZvckVhY2godGhpcy5fb3B0aW9ucy5kYi5yZXN0RGJBcGksIChyZXN0RGIsIGFwaU5hbWUpID0+IHtcbiAgICAgICAgX2QoJ3VzaW5nIHJlc3QgZGIgYXBpOicsIGFwaU5hbWUsIE9iamVjdC5rZXlzKHJlc3REYikuam9pbigpKTtcbiAgICAgICAgLy8gX2QoJ3VzaW5nIHJlc3REYjonLCByZXN0RGIpO1xuICAgICAgICBjb25zdCBkYkFwaXMgPSBjcmVhdGVEYkFwaSh0aGlzLl9vcHRpb25zLmRiLm1vbmdvLCByZXN0RGIpO1xuICAgICAgICBfLmZvckVhY2gocmVzdERiLCAoZGJNZXRob2QsIG1ldGhvZE5hbWUpID0+IHtcbiAgICAgICAgICBjb25zdCBhcGlQYXRoID0gYC9kYi8ke18ua2ViYWJDYXNlKGFwaU5hbWUpfS8ke18ua2ViYWJDYXNlKFxuICAgICAgICAgICAgbWV0aG9kTmFtZSxcbiAgICAgICAgICApfWA7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIudXNlKFxuICAgICAgICAgICAgYXBpUGF0aCxcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUFwaUhhbmRsZShkYk1ldGhvZCwgKCkgPT4gZGJBcGlzW21ldGhvZE5hbWVdKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIC8vIF9kKCcgICAgcmVzdERiIEFwaTonLCBtZXRob2ROYW1lLCB0aGlzLl9zZXJ2aWNlUGF0aCArIGFwaVBhdGgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE9iamVjdC5rZXlzKHRoaXMucmUpXG5cbiAgICB0aGlzLmV4cHJlc3NBcHAudXNlKHRoaXMuX3NlcnZpY2VQYXRoLCB0aGlzLnJvdXRlcik7XG5cbiAgICAvLyDliJvlu7pIVFRQ5pyN5YqhXG4gICAgdGhpcy5odHRwU2VydmVyID0gaHR0cC5jcmVhdGVTZXJ2ZXIodGhpcy5leHByZXNzQXBwKTtcbiAgfVxuICBwcml2YXRlIF9yZXNwb25zZUhlYWRlck9yaWdpbkhhbmRsZShcbiAgICByZXE6IFJlcXVlc3QsXG4gICAgcmVzOiBSZXNwb25zZSxcbiAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICkge1xuICAgIC8vIF9kKCctLS0tLS0tLS0tLSAgX3Jlc3BvbnNlSGVhZGVyT3JpZ2luSGFuZGxlJyk7XG4gICAgcmVzLmhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJywgcmVxLmhlYWRlcignb3JpZ2luJykpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzJywgJ3RydWUnKTtcbiAgICBpZiAocmVxLmhlYWRlcignQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QnKSkge1xuICAgICAgcmVzLmhlYWRlcihcbiAgICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZCcsXG4gICAgICAgIHJlcS5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kJyksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocmVxLmhlYWRlcignQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzJykpIHtcbiAgICAgIHJlcy5oZWFkZXIoXG4gICAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyxcbiAgICAgICAgcmVxLmhlYWRlcignQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzJyksXG4gICAgICApO1xuICAgIH1cbiAgICAvLyDmt7vliqAke1NFU1NfU1RBUlR9WFhYIEhlYWRlclxuICAgIGxldCBhY2VIZWFkZXJzID0gJyc7XG4gICAgXy5mb3JFYWNoKHJlcS5oZWFkZXJzLCAodiwgaykgPT4ge1xuICAgICAgaWYgKGsuc3RhcnRzV2l0aChTRVNTX1NUQVJUKSkge1xuICAgICAgICAvLyDlpoLmnpzliY3kuIDkuKrkuI3kuLrnqbos6KGl5LiKJywnXG4gICAgICAgIGlmIChhY2VIZWFkZXJzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgYWNlSGVhZGVycyA9IGFjZUhlYWRlcnMgKyBrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjZUhlYWRlcnMgPSBhY2VIZWFkZXJzICsgJywgJyArIGs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXMuaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycycsIGFjZUhlYWRlcnMpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzJywgJ3RydWUnKTtcbiAgICAvLyDmo4DmtYtPUFRJT05T6K+35rGC77yM55u05o6l6L+U5ZueXG4gICAgaWYgKHJlcS5tZXRob2QgPT09ICdPUFRJT05TJykge1xuICAgICAgcmVzLnN0YXR1cygyMDQpLmVuZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBuZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICog5L+d5a2Y6K6/6Zeu5pel5b+XXG4gICAqIEBwYXJhbSByZXEg6K+35rGCXG4gICAqIEBwYXJhbSByZXMg5bqU562UXG4gICAqIEBwYXJhbSBuZXh0IOS4i+S4gOS4quS4remXtOS7tlxuICAgKi9cbiAgcHJpdmF0ZSBfbG9nSGFuZGxlKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSB7XG4gICAgLy8gX2QoXG4gICAgLy8gICAnZnJvbSA6JyxcbiAgICAvLyAgIHJlcS5zb2NrZXQucmVtb3RlQWRkcmVzcyxcbiAgICAvLyAgIHJlcS5vcmlnaW5hbFVybCxcbiAgICAvLyAgIHJlcS5oZWFkZXJzLFxuICAgIC8vICAgcmVxLmJvZHksXG4gICAgLy8gKTtcbiAgICBuZXh0KCk7XG4gIH1cbiAgLyoqXG4gICAqIOWKoOWvhuWuouaIt+err+S8muivnVxuICAgKiBAcGFyYW0gbmFtZSDkvJror53lkI3np7BcbiAgICogQHBhcmFtIHNlc3Mg5Lya6K+d5a+56LGh77yMe2NsaWVudDp7fSxzZXJ2ZXI6e3195qC85byPXG4gICAqL1xuICBwdWJsaWMgYnVpbGRDbGllbnRTZXNzaW9uKG5hbWU6IHN0cmluZywgc2VzczogYW55KTogc3RyaW5nIHtcbiAgICAvLyDmt7vliqAgaXNzIOWtl+autSzku6XliKTlrppzZXNzaW9u55qE5ZCN56ewXG4gICAgc2Vzcy5pc3MgPSBuYW1lO1xuICAgIGRlbGV0ZSBzZXNzLmlhdDtcbiAgICBkZWxldGUgc2Vzcy5leHA7XG5cbiAgICAvLyDlr7lzZXJ2ZXIg5pyN5Yqh56uv5Lya6K+d5a2X5q616L+b6KGM5Yqg5a+GXG4gICAgc2Vzcy5zZXJ2ZXIgPSB0aGlzLl9zZXNzaW9uQ3J5cHRvLmVuYyhzZXNzLnNlcnZlciB8fCB7fSk7XG5cbiAgICBfZCgndXBkYXRlIGp3dCBzZXNzaW9uICcsIG5hbWUsIHNlc3MpO1xuICAgIGNvbnN0IHMgPSBqd3Quc2lnbihzZXNzLCB0aGlzLl9vcHRpb25zLnByb2plY3RDb25maWcuc2Vzc0tleSwge1xuICAgICAgZXhwaXJlc0luOlxuICAgICAgICBzZXNzLl9leHBpcmUgPiAwID8gc2Vzcy5fZXhwaXJlIDogdGhpcy5fb3B0aW9ucy5zZXNzaW9uLmV4cGlyZVNlY29uZHMsXG4gICAgfSk7XG4gICAgcmV0dXJuIHM7XG4gIH1cblxuICAvKipcbiAgICog6Kej5a+G5a6i5oi356uv5Lya6K+dXG4gICAqIEBwYXJhbSBzZXNzTmFtZSDkvJror53lkI3np7DvvIwke1NFU1NfU1RBUlR9WFhY5Lit55qEWFhY6YOo5YiGXG4gICAqIEBwYXJhbSBjc0RhdGEg5Lya6K+d5Y6f5aeL5pWw5o2uXG4gICAqL1xuICBwdWJsaWMgZGVjb2RlckNsaWVudFNlc3Npb24oc2Vzc05hbWU6IHN0cmluZywgY3NEYXRhOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmIChfLmlzRW1wdHkoY3NEYXRhLnRyaW0oKSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBsZXQgc2VzczogYW55O1xuICAgIHRyeSB7XG4gICAgICBzZXNzID0gand0LnZlcmlmeShjc0RhdGEsIHRoaXMuX29wdGlvbnMucHJvamVjdENvbmZpZy5zZXNzS2V5KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBfZCgndmVyaWZ5IGp3dCBmYWlsOicsIHNlc3NOYW1lLCBlLm1lc3NhZ2UpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8vIOino+WvhnNlcnZlciDmlbDmja5cbiAgICAvLyBfZCgnand0IHNlc3Npb246JyxzZXNzTmFtZSwgc2Vzcyk7XG4gICAgdHJ5IHtcbiAgICAgIHNlc3Muc2VydmVyID0gdGhpcy5fc2Vzc2lvbkNyeXB0by5kZWMoc2Vzcy5zZXJ2ZXIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIF9kKCdkZWNyeXB0IHNlc3Npb24gc2VydmVyIGZhaWw6Jywgc2Vzc05hbWUsIGNzRGF0YSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLy8gX2QoJ2p3dCBzZXNzaW9uIHNlcnZlcjonLCBzZXNzTmFtZSwgc2Vzcyk7XG5cbiAgICAvLyDmo4DmtYtpc3NcbiAgICBpZiAoc2Vzcy5pc3MgIT09IHNlc3NOYW1lKSB7XG4gICAgICBfZChgand0IHNlc3Npb24gaXNzIGZhaWwsc2Vzcz0ke3Nlc3NOYW1lfSxpc3M9JHtzZXNzLmlzc31gKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gc2VzcztcbiAgfVxuXG4gIC8qKlxuICAgKiDku45odHRwIHJlcSDkuK3op6PmnpBDbGllbnRTZXNzaW9u5a+56LGhXG4gICAqIENsaWVudFNlc3Npb24g5a+56LGh5piv5Yqg5a+G55qE77yM5Y+v6YCa6L+H5aSa56eN5pa55byP6L+b6KGM5Lyg6L6TLOaMieeFp+S7peS4i+S8mOWFiOe6p+i/m+ihjOino+aekFxuICAgKiB1cmzkuK3nmoQke1NFU1NfU1RBUlR9eHh45a2X5q61XG4gICAqIGhlYWRlcuS4reeahCR7U0VTU19TVEFSVH14eHjlrZfmrrVcbiAgICogcG9zdOWvueixoeS4reeahCR7U0VTU19TVEFSVH14eHjlrZfmrrVcbiAgICog5Yqg5a+G5pa55byP6YeH55SoYWVzMjU2LWNiY++8jHNhbHTlgLzkuLpcbiAgICog5aSa5Liqc2Vzc2lvbuS9v+eUqOS8oOi+k3NoaXlvbmcg6L+b6KGM5YiG5YmyXG4gICAqIEBwYXJhbSByZXEgSFRUUCDor7fmsYJcbiAgICovXG4gIHByaXZhdGUgX3BhcnNlU2Vzc2lvbihyZXE6IFJlcXVlc3QpOiBhbnkge1xuICAgIGNvbnN0IGNzID0ge30gYXMgeyBbayBpbiBzdHJpbmddOiB7fSB9O1xuICAgIC8vIOmBjeWOhuW5tuiOt+WPluWOn+WniyBjbGllbnRTZXNzaW9uIOWtl+autVxuICAgIGNvbnN0IGZuR2V0Q3MgPSAob2JqOiBhbnkpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JykgcmV0dXJuIHt9O1xuICAgICAgY29uc3QgcmV0OiBhbnkgPSB7fTtcbiAgICAgIF8uZm9yRWFjaChvYmosICh2LCBrKSA9PiB7XG4gICAgICAgIGlmIChrLnN0YXJ0c1dpdGgoU0VTU19TVEFSVCkpIHtcbiAgICAgICAgICByZXRbay5zbGljZSg0KV0gPSB2O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfTtcbiAgICAvLyBfZCgnPT09PT09PT09PT09PT09PT09PT09PT1fcGFyc2VTZXNzaW9uJywgY3MsIHJlcS5oZWFkZXJzKTtcbiAgICAvLyDojrflj5Zjc1xuICAgIF8uYXNzaWduKGNzLCBmbkdldENzKHJlcS5oZWFkZXJzKSwgZm5HZXRDcyhyZXEucXVlcnkpKTtcbiAgICAvLyBfZCgncGFyc2Ugc2Vzc2lvbjonLCBjcyk7XG5cbiAgICAvLyDop6Plr4Zjc+aVsOaNrlxuICAgIGNvbnN0IHJldGNzID0ge30gYXMgeyBbayBpbiBzdHJpbmddOiB7fSB9O1xuICAgIF8uZm9yRWFjaChjcywgKHNlc3NEYXRhOiBzdHJpbmcsIHNlc3NOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIC8vIHNlc3PlkI3np7Dku44gaHR0cOS8oOi+k+eahGtlYmFiQ2FzZSA9PT09PT4gc2Vzc+WumuS5ieeahGNhbWVsQ2FzZVxuICAgICAgY29uc3QgX3Nlc3NOYW1lID0gXy5jYW1lbENhc2Uoc2Vzc05hbWUpO1xuICAgICAgY29uc3Qgc2VzcyA9IHRoaXMuZGVjb2RlckNsaWVudFNlc3Npb24oX3Nlc3NOYW1lLCBzZXNzRGF0YSk7XG4gICAgICBpZiAoc2Vzcykge1xuICAgICAgICAvLyDmiJDlip9cbiAgICAgICAgcmV0Y3NbX3Nlc3NOYW1lXSA9IHNlc3M7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJldGNzO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBcGlQcmVtaXNzaW9ucyhkZWZpbmVkQXBpOiBhbnksIHNlc3Npb25zOiBhbnkpOiBib29sZWFuIHtcbiAgICBfZCgnY2hlY2sgYXBpIHByZW1pc3Npb25zOiBuZWVkPScsIGRlZmluZWRBcGkuX2FjdG9yKTtcbiAgICBpZiAoXy5pc0VtcHR5KGRlZmluZWRBcGkuX2FjdG9yKSkge1xuICAgICAgLy8g5o6l5Y+j5LiN6KaB5rGC5p2D6ZmQXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8g5aSE55CG5Y+C5pWwXG4gICAgbGV0IG5lZWRBY3RvcnMgPSBbXSBhcyBzdHJpbmdbXTtcbiAgICBpZiAoXy5pc1N0cmluZyhkZWZpbmVkQXBpLl9hY3RvcikpIHtcbiAgICAgIG5lZWRBY3RvcnMucHVzaChkZWZpbmVkQXBpLl9hY3Rvcik7XG4gICAgfSBlbHNlIGlmIChfLmlzQXJyYXkoZGVmaW5lZEFwaS5fYWN0b3IpKSB7XG4gICAgICBuZWVkQWN0b3JzID0gZGVmaW5lZEFwaS5fYWN0b3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9kKCdpbnZhbGlkIGRlZmluZWQgQVBJIGFjdG9ycycsIEpTT04uc3RyaW5naWZ5KGRlZmluZWRBcGksIG51bGwsIDIpKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8g5Yik5pat5p2D6ZmQ77yM5o6l5Y+j6KaB5rGC55qE5p2D6ZmQ5b+F6aG755So5oi35p2D6ZmQ5YWo6YOo5ruh6LazXG4gICAgY29uc3QgdXNlckFjdG9ycyA9IF8uZ2V0KHNlc3Npb25zLCBbJ3VzZXInLCAnY2xpZW50JywgJ2FjdG9yJ10pO1xuICAgIGlmIChfLmlzRW1wdHkodXNlckFjdG9ycykpIHtcbiAgICAgIF9kKCdpbnZhbGlkIHVzZXIgYWN0b3InLCB1c2VyQWN0b3JzKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyDliKTmlq3kuqTpm4ZcbiAgICBpZiAoXy5pbnRlcnNlY3Rpb24obmVlZEFjdG9ycywgdXNlckFjdG9ycykubGVuZ3RoICE9PSBuZWVkQWN0b3JzLmxlbmd0aCkge1xuICAgICAgX2QoJ2ludmFsaWQgdXNlciBhY3RvcnMsbmVlZDonLCBuZWVkQWN0b3JzLCAnLHVzZXI6JywgdXNlckFjdG9ycyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgX2QoJ2NoZWNrIHVzZXIgcHJlbWlzc2lvbnMgc3VjY2Vzc2VkLiAnLCB1c2VyQWN0b3JzKTtcblxuICAgIC8v5oiQ5YqfXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICog5Yib5bu6IEFQSSBIYW5kbGVcbiAgICogQHBhcmFtIHByZURlZmluZWRBcGkg6aKE5a6a5LmJ55qEQVBJXG4gICAqIEBwYXJhbSBjYWxsYmFja0FwaSDlvZPliY3lrprkuYnnmoTlm57osINBUElcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUFwaUhhbmRsZShcbiAgICBwcmVEZWZpbmVkQXBpOiBBcGlGdW5jdGlvbl9UICYgeyBfc2Vzc2lvbnM/OiBhbnkgfSxcbiAgICBjcmVhdGVBcGlGdW5jOiAoKSA9PiBBcGlGdW5jdGlvbl9ULFxuICApIHtcbiAgICAvLyDkuLpzZXNzaW9u5re75Yqg5pu05paw5Ye95pWwLOmAmui/h+mihOWumuS5iWFwaeS8muivneWkhOeQhlxuICAgIC8vIGNvbnN0IGFwaTogYW55ID0gdGhpcy5hcGk7XG4gICAgLy8gY29uc3QgX3ByZURlZmluZWRBcGkgPSB0aGlzLl9vcHRpb25zLmFwaSBhcyBhbnk7XG5cbiAgICByZXR1cm4gYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4ge1xuICAgICAgX2QoJ2FwaSBoYW5kbGU6JywgcmVxLm9yaWdpbmFsVXJsKTtcbiAgICAgIC8vIF9kKCd1c2luZyBzZXNzaW9uczonLCB0aGlzLl9zZXNzaW9ucyk7XG4gICAgICB0cnkge1xuICAgICAgICAvLyDop6PmnpBzZXNzaW9uc++8jOajgOa1i3Nlc3Npb25zXG4gICAgICAgIGNvbnN0IHNlc3Npb25zID0gdGhpcy5fcGFyc2VTZXNzaW9uKHJlcSk7XG4gICAgICAgIC8vIF9kKCdwYXJzZSBzZXNzaW9uczonLCBhcGlOYW1lLCBzZXNzaW9ucyk7XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBwcmVEZWZpbmVkQXBpLl9zZXNzaW9ucykge1xuICAgICAgICAgIC8vIF9kKCdjaGVja2FwaSAgc2Vzc2lvbnM6JywgYXBpTmFtZSwgbmFtZSk7XG4gICAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5zZXNzaW9uLmRlZmluZVtuYW1lXSxcbiAgICAgICAgICAgIGBzZXNzaW9uIGRlZmluZSBvZiAke25hbWV9IG5vdCBleGlzdGVkYCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmICghXy5pc1BsYWluT2JqZWN0KHNlc3Npb25zW25hbWVdKSkge1xuICAgICAgICAgICAgLy8g5LuO57y655yB5YC85aSN5Yi25paw55qEc2Vzc2lvblxuICAgICAgICAgICAgX2QoJ3NldCBkZWZhdWx0IHNlc3Npb25zOicsIG5hbWUpO1xuXG4gICAgICAgICAgICBzZXNzaW9uc1tuYW1lXSA9IF8uY2xvbmVEZWVwKHRoaXMuX29wdGlvbnMuc2Vzc2lvbi5kZWZpbmVbbmFtZV0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXNzaW9uc1tuYW1lXSwgJ3VwZGF0ZScsIHtcbiAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbihleHBpcmVTZWNvbmRzOiBudW1iZXIpIHtcbiAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlRmxhZyA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuX2V4cGlyZSA9IGV4cGlyZVNlY29uZHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNlc3Npb25zW25hbWVdLCAnX3VwZGF0ZUZsYWcnLCB7XG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXNzaW9uc1tuYW1lXSwgJ19leHBpcmUnLCB7XG4gICAgICAgICAgICB2YWx1ZTogLTEsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g5qOA5rWL5o6l5Y+j6KeS6Imy5p2D6ZmQXG4gICAgICAgIGlmICghdGhpcy5fY2hlY2tBcGlQcmVtaXNzaW9ucyhwcmVEZWZpbmVkQXBpLCBzZXNzaW9ucykpIHtcbiAgICAgICAgICByZXMuc3RhdHVzKDQwMSkuZW5kKCdpbnZhbGlkIHVzZXIgYWN0b3IgZm9yICcgKyByZXEub3JpZ2luYWxVcmwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyDosIPnlKjlrprkuYnnmoRhcGnmjqXlj6Plh73mlbBcbiAgICAgICAgbGV0IHJlc3VsdCA9IHt9O1xuICAgICAgICBjb25zdCBhcGlGdW5jID0gY3JlYXRlQXBpRnVuYygpO1xuICAgICAgICBpZiAodHlwZW9mIGFwaUZ1bmMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXN1bHQgPSBhd2FpdCBhcGlGdW5jKHJlcS5ib2R5LCBzZXNzaW9ucywgcmVxLCByZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc2VydmljZSBhcGkgaW52YWxpZCcpO1xuICAgICAgICB9XG4gICAgICAgIC8vIF9kKCctLS0tLS06cmVzdWx0LCcsIHJlc3VsdCk7XG5cbiAgICAgICAgLy8g5YeG5aSH5pu05pawU0VTU0lPTlxuICAgICAgICBfLmZvckVhY2goc2Vzc2lvbnMsIChzZXNzLCBuYW1lKSA9PiB7XG4gICAgICAgICAgLy8g5LiN6Ieq5Yqo5pu05pawIHVzZXIgc2Vzc2lvblxuICAgICAgICAgIC8vIOajgOa1i+abtOaWsOagh+W/l1xuICAgICAgICAgIGlmICghc2Vzcy5fdXBkYXRlRmxhZykgcmV0dXJuO1xuICAgICAgICAgIC8vIOa3u+WKoHN1YuWtl+autSzku6XliKTlrppzZXNzaW9u55qE5ZCN56ewXG4gICAgICAgICAgY29uc3QgcyA9IHRoaXMuYnVpbGRDbGllbnRTZXNzaW9uKG5hbWUsIHNlc3MpO1xuICAgICAgICAgIC8vIF9kKCc9PT09PT09PT09PT09PT09cmV0dXJuJywgbmFtZSwgcyk7XG4gICAgICAgICAgcmVzLmhlYWRlcihgJHtTRVNTX1NUQVJUfSR7Xy5rZWJhYkNhc2UobmFtZSl9YCwgcyk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyDov5Tlm57nu5PmnpzvvIzlpITnkIbkvJror53lubborr7nva7kvJror53mm7TmlrBcbiAgICAgICAgLy8gX2QoJy0tLS0tLTpyZXN1bHQgMTExLCcsIHJlc3VsdCk7XG5cbiAgICAgICAgcmVzLmpzb24ocmVzdWx0KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHJlcy5zdGF0dXMoZS5zdGF0dXMgPyBlLnN0YXR1cyA6IDUwMCkuZW5kKGUubWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmVuZChlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXMuc3RhdHVzKDUwMCkuZW5kKCd1bmtub3duIGVycm9yJyk7XG4gICAgICAgIH1cbiAgICAgICAgX2QoJ2FwaSBleGVjIGZhaWw6JywgZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlkK/liqjmnI3liqHnm5HlkKxcbiAgICovXG4gIGFzeW5jIGxpc3RlbigpIHtcbiAgICB0aGlzLmh0dHBTZXJ2ZXIubGlzdGVuKHRoaXMuX29wdGlvbnMucG9ydCwgJzAuMC4wLjAnLCAyMCwgKCkgPT4ge1xuICAgICAgX2QoJ3NlcnZpY2UgbGlzdGVuIGluIHBvcnQgc3VjY2Vzc2VkOicsIHRoaXMuX29wdGlvbnMucG9ydCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
0
0
43789
- Removed@vmm/api@^1.0.7
- Removedbase64url@^3.0.1
- Removedexpress@^4.17.1
- Removedfs-extra@^8.1.0
- Removedjsonwebtoken@^8.5.1
- Removedlodash@^4.17.15
- Removedloglevel@^1.6.4
- Removedmkdirp@^0.5.1
- Removedmongodb@^3.3.3
- Removed@vmm/api@1.0.9(transitive)
- Removedaccepts@1.3.8(transitive)
- Removedarray-flatten@1.1.1(transitive)
- Removedbase64url@3.0.1(transitive)
- Removedbl@2.2.1(transitive)
- Removedbody-parser@1.20.3(transitive)
- Removedbson@1.1.6(transitive)
- Removedbuffer-equal-constant-time@1.0.1(transitive)
- Removedbytes@3.1.2(transitive)
- Removedcall-bind-apply-helpers@1.0.2(transitive)
- Removedcall-bound@1.0.3(transitive)
- Removedcontent-disposition@0.5.4(transitive)
- Removedcontent-type@1.0.5(transitive)
- Removedcookie@0.7.1(transitive)
- Removedcookie-signature@1.0.6(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removeddebug@2.6.9(transitive)
- Removeddenque@1.5.1(transitive)
- Removeddepd@2.0.0(transitive)
- Removeddestroy@1.2.0(transitive)
- Removeddunder-proto@1.0.1(transitive)
- Removedecdsa-sig-formatter@1.0.11(transitive)
- Removedee-first@1.1.1(transitive)
- Removedencodeurl@1.0.22.0.0(transitive)
- Removedes-define-property@1.0.1(transitive)
- Removedes-errors@1.3.0(transitive)
- Removedes-object-atoms@1.1.1(transitive)
- Removedescape-html@1.0.3(transitive)
- Removedetag@1.8.1(transitive)
- Removedexpress@4.21.2(transitive)
- Removedfinalhandler@1.3.1(transitive)
- Removedforwarded@0.2.0(transitive)
- Removedfresh@0.5.2(transitive)
- Removedfs-extra@8.1.0(transitive)
- Removedfunction-bind@1.1.2(transitive)
- Removedget-intrinsic@1.2.7(transitive)
- Removedget-proto@1.0.1(transitive)
- Removedgopd@1.2.0(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedhas-symbols@1.1.0(transitive)
- Removedhasown@2.0.2(transitive)
- Removedhttp-errors@2.0.0(transitive)
- Removediconv-lite@0.4.24(transitive)
- Removedinherits@2.0.4(transitive)
- Removedipaddr.js@1.9.1(transitive)
- Removedisarray@1.0.0(transitive)
- Removedjsonfile@4.0.0(transitive)
- Removedjsonwebtoken@8.5.1(transitive)
- Removedjwa@1.4.1(transitive)
- Removedjws@3.2.2(transitive)
- Removedlodash@4.17.21(transitive)
- Removedlodash.includes@4.3.0(transitive)
- Removedlodash.isboolean@3.0.3(transitive)
- Removedlodash.isinteger@4.0.4(transitive)
- Removedlodash.isnumber@3.0.3(transitive)
- Removedlodash.isplainobject@4.0.6(transitive)
- Removedlodash.isstring@4.0.1(transitive)
- Removedlodash.once@4.1.1(transitive)
- Removedloglevel@1.9.2(transitive)
- Removedmath-intrinsics@1.1.0(transitive)
- Removedmedia-typer@0.3.0(transitive)
- Removedmemory-pager@1.5.0(transitive)
- Removedmerge-descriptors@1.0.3(transitive)
- Removedmethods@1.1.2(transitive)
- Removedmime@1.6.0(transitive)
- Removedmime-db@1.52.0(transitive)
- Removedmime-types@2.1.35(transitive)
- Removedminimist@1.2.8(transitive)
- Removedmkdirp@0.5.6(transitive)
- Removedmongodb@3.7.4(transitive)
- Removedms@2.0.02.1.3(transitive)
- Removednegotiator@0.6.3(transitive)
- Removedobject-inspect@1.13.4(transitive)
- Removedon-finished@2.4.1(transitive)
- Removedoptional-require@1.1.8(transitive)
- Removedparseurl@1.3.3(transitive)
- Removedpath-to-regexp@0.1.12(transitive)
- Removedprocess-nextick-args@2.0.1(transitive)
- Removedproxy-addr@2.0.7(transitive)
- Removedqs@6.13.0(transitive)
- Removedrange-parser@1.2.1(transitive)
- Removedraw-body@2.5.2(transitive)
- Removedreadable-stream@2.3.8(transitive)
- Removedrequire-at@1.0.6(transitive)
- Removedsafe-buffer@5.1.25.2.1(transitive)
- Removedsafer-buffer@2.1.2(transitive)
- Removedsaslprep@1.0.3(transitive)
- Removedsemver@5.7.2(transitive)
- Removedsend@0.19.0(transitive)
- Removedserve-static@1.16.2(transitive)
- Removedsetprototypeof@1.2.0(transitive)
- Removedside-channel@1.1.0(transitive)
- Removedside-channel-list@1.0.0(transitive)
- Removedside-channel-map@1.0.1(transitive)
- Removedside-channel-weakmap@1.0.2(transitive)
- Removedsparse-bitfield@3.0.3(transitive)
- Removedstatuses@2.0.1(transitive)
- Removedstring_decoder@1.1.1(transitive)
- Removedtoidentifier@1.0.1(transitive)
- Removedtype-is@1.6.18(transitive)
- Removeduniversalify@0.1.2(transitive)
- Removedunpipe@1.0.0(transitive)
- Removedutil-deprecate@1.0.2(transitive)
- Removedutils-merge@1.0.1(transitive)
- Removedvary@1.1.2(transitive)