@lifeready/core 1.1.17 → 1.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -128,4 +128,4 @@ export var LinkTypeField;
128
128
  LinkTypeField["HARD"] = "HARD";
129
129
  LinkTypeField["SOFT"] = "SOFT";
130
130
  })(LinkTypeField || (LinkTypeField = {}));
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUsUUFBUSxDQUFJLFVBQXlCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxDQUFOLElBQVksZUFFWDtBQUZELFdBQVksZUFBZTtJQUN6QiwwQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUI7QUFNRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQW1KRCxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLG1DQUFlLENBQUE7SUFDZixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDaEMsaURBQXVCLENBQUE7SUFDdkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFHakM7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLGlDQUFhLENBQUE7SUFDYixxQ0FBaUIsQ0FBQTtJQUNq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ckIsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLCtDQUFxQixDQUFBO0lBQ3JCLCtDQUFxQixDQUFBO0lBQ3JCLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUF3SUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIERhdGVUaW1lLFxuICBHZW5lcmljU2NhbGFyLFxuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgSlNPTlN0cmluZyxcbiAgTHJFbWFpbCxcbiAgTm9kZSxcbiAgVGltZVN0YW1wZWQsXG59IGZyb20gJy4vZ3JhcGhxbC50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBFZGdlczxUPihjb25uZWN0aW9uOiBDb25uZWN0aW9uPFQ+KSB7XG4gIHJldHVybiBjb25uZWN0aW9uLmVkZ2VzLm1hcCgoZWRnZSkgPT4gZWRnZS5ub2RlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlc05vZGUge1xuICBteVZhdWx0OiBzdHJpbmdbXTtcbiAgdHBWYXVsdDogc3RyaW5nW107XG4gIHNoYXJlVmF1bHQ6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVc2VyRGVsZXRlU3RhdGUge1xuICBSRVFVRVNURUQgPSAnUkVRVUVTVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGVsZXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBVc2VyRGVsZXRlU3RhdGU7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZSB7XG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFuTm9kZSBleHRlbmRzIE5vZGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogSlNPTlN0cmluZztcbiAgc3RhdGU/OiBQbGFuU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBsYW5TdHJpcGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJzY3JpcHRpb25JZD86IHN0cmluZztcbiAgcHJpY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgcGxhbj86IFBsYW5Ob2RlO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RyaXBlPzogVXNlclBsYW5TdHJpcGVOb2RlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RyaXBlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY3VzdG9tZXI/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXNzS2V5UGFyYW1zPzogR2VuZXJpY1NjYWxhcjtcbiAgcGFzc0lkcFBhcmFtcz86IEdlbmVyaWNTY2FsYXI7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFzc0tleXM/OiBQYXNzS2V5Tm9kZVtdO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIHJvb3RLZXk/OiBLZXlOb2RlO1xuICBtYXN0ZXJLZXk/OiBLZXlOb2RlO1xuICBweGs/OiBLZXlOb2RlO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5vZGUgdHlwZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGludGVyZmFjZSBVc2VyTm9kZSBleHRlbmRzIE5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgY29udGFjdENhcmRzPzogQ29ubmVjdGlvbjxDb250YWN0Q2FyZE5vZGU+O1xuICBjdXJyZW50VXNlcktleT86IEN1cnJlbnRVc2VyS2V5Tm9kZTtcbiAgb3duZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgcmVjZWl2ZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgaXNDdXJyZW50VXNlcj86IGJvb2xlYW47XG4gIGhhdmVUcD86IGJvb2xlYW47XG4gIHN0cmlwZT86IFVzZXJTdHJpcGVOb2RlO1xuICB1c2VyUGxhbnM/OiBDb25uZWN0aW9uPFVzZXJQbGFuTm9kZT47XG4gIHVzZXJEZWxldGU/OiBVc2VyRGVsZXRlTm9kZTtcbiAgZmVhdHVyZXM/OiBGZWF0dXJlc05vZGU7XG4gIHVzZXJGZWF0dXJlU3RhdGU/OiBVc2VyRmVhdHVyZVN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJGZWF0dXJlU3RhdGUgZXh0ZW5kcyBUaW1lU3RhbXBlZCB7XG4gIG5vdGlmaWNhdGlvbnNMYXN0Vmlld2VkPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyVGltZSB7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYms/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENhcmROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBvd25lcj86IFVzZXJOb2RlO1xuICBwdWJsaWNEYXRhU2lnPzogc3RyaW5nO1xuICBwdWJsaWNTZWFyY2hhYmxlU2lnPzogc3RyaW5nO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xuICBkZWZhdWx0RnJvbT86IERhdGVUaW1lO1xuICBwdWJsaWNEYXRhPzogc3RyaW5nO1xuICBwdWJsaWNTZWFyY2hhYmxlPzogc3RyaW5nO1xuICBjaXBoZXJEYXRhPzogc3RyaW5nO1xuICBjaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAga2V5PzogS2V5Tm9kZTtcbiAgcGxhaW5EYXRhPzogc3RyaW5nO1xuICBwbGFpbkRhdGFTaWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgYWNjZXNzUm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIHBlcm1pc3Npb25zPzogUGVybWlzc2lvbkNob2ljZVtdO1xuICB0cEFjY2Vzc1JvbGVzPzogQWNjZXNzUm9sZVtdO1xuICBjb25maWRlbnRpYWxpdHk/OiBDb25maWRlbnRpYWxSZXNvdXJjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlOb2RlXG4gIGV4dGVuZHMgTm9kZSxcbiAgICBUaW1lU3RhbXBlZCxcbiAgICBBY2Nlc3NDb250cm9sbGVkUmVzb3VyY2Uge1xuICBwbGFpbk1ldGE/OiBKU09OU3RyaW5nO1xuICBwbGFpbk1ldGFKc29uPzogSlNPTk9iamVjdDtcbiAgY2lwaGVyTWV0YT86IHN0cmluZztcbiAgY2lwaGVyTWV0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGFyY2hpdmVkPzogYm9vbGVhbjtcbiAga2V5SWQ/OiBJRDtcbiAgY2hpbGRGaWxlTGlua3M/OiBDb25uZWN0aW9uPEZpbGVMaW5rTm9kZT47XG4gIGNoaWxkRGlyZWN0b3J5TGlua3M/OiBDb25uZWN0aW9uPERpcmVjdG9yeUxpbmtOb2RlPjtcbiAgcGFyZW50RGlyZWN0b3J5TGlua3M/OiBDb25uZWN0aW9uPERpcmVjdG9yeUxpbmtOb2RlPjtcbiAgblBhcmVudERpcmVjdG9yeUxpbmtzPzogRGlyZWN0b3J5TGlua05vZGVMck5MaXN0O1xuICBuQ2hpbGREaXJlY3RvcnlMaW5rcz86IERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdDtcbiAgbkNoaWxkRmlsZUxpbmtzPzogRmlsZUxpbmtOb2RlTHJOTGlzdDtcbiAgZGVzY2VuZGFudHM/OiBEZXNjZW5kYW50cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkLCBBY2Nlc3NDb250cm9sbGVkUmVzb3VyY2Uge1xuICBjdXJyZW50VmVyc2lvbj86IEZpbGVWZXJzaW9uTm9kZTtcbiAgYXJjaGl2ZWQ/OiBib29sZWFuO1xuICB2ZXJzaW9ucz86IENvbm5lY3Rpb248RmlsZVZlcnNpb25Ob2RlPjtcbiAga2V5SWQ/OiBJRDtcbiAgcGFyZW50RGlyZWN0b3J5TGlua3M/OiBDb25uZWN0aW9uPEZpbGVMaW5rTm9kZT47XG4gIG5QYXJlbnREaXJlY3RvcnlMaW5rcz86IEZpbGVMaW5rTm9kZUxyTkxpc3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5TGlua05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBhcmVudERpcmVjdG9yeT86IERpcmVjdG9yeU5vZGU7XG4gIGNoaWxkRGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgbGlua1R5cGU/OiBMaW5rVHlwZUZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaW5rTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFyZW50RGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgY2hpbGRGaWxlPzogRmlsZU5vZGU7XG4gIGxpbmtUeXBlPzogTGlua1R5cGVGaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogRGlyZWN0b3J5TGlua05vZGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlTGlua05vZGVMck5MaXN0IHtcbiAgbGlzdD86IEZpbGVMaW5rTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NlbmRhbnRzIHtcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xuICBkaXJlY3Rvcmllc0NvdW50PzogbnVtYmVyO1xuICBmaWxlc0NvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBBY2Nlc3NSb2xlQ2hvaWNlIHtcbiAgUkVBREVSID0gJ1JFQURFUicsXG4gIFdSSVRFUiA9ICdXUklURVInLFxuICBBRE1JTiA9ICdBRE1JTicsXG4gIERFTlkgPSAnREVOWScsXG4gIE9XTkVSID0gJ09XTkVSJyxcbn1cblxuZXhwb3J0IGVudW0gQWNjZXNzUm9sZU1ldGhvZENob2ljZSB7XG4gIElOSEVSSVRFRCA9ICdJTkhFUklURUQnLFxuICBESVJFQ1QgPSAnRElSRUNUJyxcbn1cblxuZXhwb3J0IGVudW0gUGVybWlzc2lvbkNob2ljZSB7XG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIFNIQVJFID0gJ1NIQVJFJyxcbiAgQVJDSElWRSA9ICdBUkNISVZFJyxcbiAgQUNDRVNTX0FSQ0hJVkVEID0gJ0FDQ0VTU19BUkNISVZFRCcsXG4gIFVOQVJDSElWRSA9ICdVTkFSQ0hJVkUnLFxuICBTRVRfQ09ORklERU5USUFMID0gJ1NFVF9DT05GSURFTlRJQUwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZGVudGlhbFJlc291cmNlIHtcbiAgaXNDb25maWRlbnRpYWw/OiBib29sZWFuO1xuICBtZXRob2Q/OiBBY2Nlc3NSb2xlTWV0aG9kQ2hvaWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2Vzc1JvbGUge1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbiAgc3ViamVjdD86IFVzZXJOb2RlO1xuICByb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgbWV0aG9kPzogQWNjZXNzUm9sZU1ldGhvZENob2ljZTtcbiAgaW5oZXJpdGVkRnJvbT86IERpcmVjdG9yeU5vZGU7XG4gIHRwPzogVHBOb2RlO1xuICBpc0lzc3Vlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEZpbGVPcGVyYXRpb25GaWVsZCB7XG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgUkVWRVJUID0gJ1JFVkVSVCcsXG4gIERFTEVURSA9ICdERUxFVEUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVWZXJzaW9uTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgZmlsZT86IEZpbGVOb2RlO1xuICBzdGF0ZT86IEZpbGVTdGF0ZU5vZGU7XG4gIG9wZXJhdGlvbj86IEZpbGVPcGVyYXRpb25GaWVsZDtcbiAgYXV0aG9yPzogVXNlck5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTdGF0ZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YUpzb24/OiBKU09OT2JqZWN0O1xuICBjaXBoZXJNZXRhPzogc3RyaW5nO1xuICBjaXBoZXJNZXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgY29udGVudFJlc291cmNlPzogc3RyaW5nO1xuICB2ZXJzaW9ucz86IENvbm5lY3Rpb248RmlsZVZlcnNpb25Ob2RlPjtcbiAga2V5SWQ/OiBJRDtcbn1cblxuZXhwb3J0IGVudW0gS2V5RXhjaGFuZ2VPdGtTdGF0ZSB7XG4gIE9US19JTklUSUFURUQgPSAnT1RLX0lOSVRJQVRFRCcsXG4gIE9US19BQ0NFUFRFRCA9ICdPVEtfQUNDRVBURUQnLFxuICBPVEtfQ09NUExFVEVEID0gJ09US19DT01QTEVURUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3RDYXJkU2hhcmVkQ2lwaGVyRGF0YSB7XG4gIC8vIFNoYXJlZCByZWFkIGFjY2VzcyBiZXR3ZWVuIGluaXRpYXRvciBhbmQgcmVzcG9uZGVyLiBCdXQgb25seSB0aGUgaW5pdGlhdG9yIGhhcyB3cml0ZSBhY2Nlc3MuXG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb246IEpTT05PYmplY3Q7XG59XG5cbi8qKlxuICogVGhlIGNvbnRlbnRzIG9mIHRoZSBvbmUtdGltZSBrZXkgY2lwaGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3RLZXlDaXBoZXJDbGVhckpzb24yIHtcbiAgLy8gVXNlZCB0byBjb25maXJtIHRvIHRoZSBpbml0aWF0b3IgdGhhdCB0aGUgcmVzcG9uZGVyIGhhcyBhY2Nlc3MgdG8gdGhlIG9uZS10aW1lIGtleS5cbiAgbm9uY2U6IHN0cmluZztcbiAgLy8gRGF0YSBzZW50IGZyb20gaW5pdGlhdG9yIHRvIHRoZSByZXNwb25kZXJcbiAgaW5pdGlhdG9yOiB7XG4gICAgb25lVGltZVBiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIG9uZS10aW1lIHB1YmxpYyBlbmNyeXB0aW9uIGtleSB0aGUgcmVzcG9uZGVyIHdpbGwgdXNlIHRvIHNlbmQgZGF0YSBiYWNrIHRvIHRoZSBpbml0aWF0b3JcbiAgICBwYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+OyAvLyBwdWJsaWMgZW5jcnlwdGlvbiBrZXlcbiAgICBzaWdQYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+OyAvLyBwdWJsaWMgc2lnbmluZyBrZXlcbiAgICBtZXNzYWdlPzogSlNPTk9iamVjdDtcbiAgICBjb250YWN0Q2FyZD86IENvbnRhY3RDYXJkU2hhcmVkQ2lwaGVyRGF0YTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlFeGNoYW5nZU90a05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogS2V5RXhjaGFuZ2VPdGtTdGF0ZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtTaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBpbml0aWF0b3JTaWdQeGs/OiBLZXlOb2RlO1xuICByZXNwb25kZXJTaWdQeGs/OiBLZXlOb2RlO1xuICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyPzogc3RyaW5nO1xuICBvdEtleVBhcmFtcz86IHN0cmluZztcbiAgb3RLZXlDaXBoZXI/OiBzdHJpbmc7XG4gIG90S2V5Q2lwaGVyQ2xlYXJKc29uPzogT3RLZXlDaXBoZXJDbGVhckpzb24yO1xuICByZXNwb25kZXJQYmtDaXBoZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEtleUV4Y2hhbmdlU3RhdGUge1xuICBJTl9QUk9HUkVTUyA9ICdJTl9QUk9HUkVTUycsXG4gIENPTVBMRVRFRCA9ICdDT01QTEVURUQnLFxuICBERUNMSU5FRCA9ICdERUNMSU5FRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBERUxFVEVEID0gJ0RFTEVURUQnLFxufVxuXG5leHBvcnQgZW51bSBLZXlFeGNoYW5nZU1vZGUge1xuICBPVEsgPSAnT1RLJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlFeGNoYW5nZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGV4cGlyeVRpbWU/OiBEYXRlVGltZTtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIHRva2VuRXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICBzdGF0ZT86IEtleUV4Y2hhbmdlU3RhdGU7XG4gIG1vZGU/OiBLZXlFeGNoYW5nZU1vZGU7XG4gIGluaXRpYXRvcj86IFVzZXJOb2RlO1xuICByZXNwb25kZXI/OiBVc2VyTm9kZTtcbiAgaW5pdGlhdG9yUm9vdEtleUNpcGhlcj86IHN0cmluZztcbiAgcmVzcG9uZGVyUm9vdEtleUNpcGhlcj86IHN0cmluZztcbiAgaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWQ/OiBib29sZWFuO1xuICByZXNwb25kZXJBY3Rpb25SZXF1aXJlZD86IGJvb2xlYW47XG4gIGNyZWF0ZVRwPzogYm9vbGVhbjtcbiAgb3RrPzogS2V5RXhjaGFuZ2VPdGtOb2RlO1xuICBpc0luaXRpYXRvcj86IGJvb2xlYW47XG4gIGlzRXhwaXJlZD86IGJvb2xlYW47XG4gIHJlc3BvbmRlckVtYWlsQWRkcmVzcz86IExyRW1haWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkSXRlbXMge1xuICBkaXJlY3Rvcmllcz86IENvbm5lY3Rpb248RGlyZWN0b3J5Tm9kZT47XG4gIGZpbGVzPzogQ29ubmVjdGlvbjxGaWxlTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkQ29udGFjdENhcmROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBvd25lcj86IFVzZXJOb2RlO1xuICByZWNlaXZlcj86IFVzZXJOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgc2hhcmVkQ2lwaGVyRGF0YVNpZz86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YVNpZ1B4az86IEtleU5vZGU7XG4gIG93bmVyQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgb3duZXJDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgb3duZXJLZXk/OiBLZXlOb2RlO1xuICBvd25lclBsYWluRGF0YT86IHN0cmluZztcbiAgb3duZXJQbGFpbkRhdGFKc29uPzogSlNPTk9iamVjdDtcbiAgb3duZXJQbGFpbkRhdGFTaWc/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJLZXk/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTaGFyZWRLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBrZXlFeGNoYW5nZT86IEtleUV4Y2hhbmdlTm9kZTtcbiAgdXNlcj86IFVzZXJOb2RlO1xuICB1c2VyUHJrPzogS2V5Tm9kZTtcbiAgdXNlclNpZ1Byaz86IEtleU5vZGU7XG4gIG90aGVyPzogVXNlck5vZGU7XG4gIG90aGVyUGJrPzogS2V5Tm9kZTtcbiAgb3RoZXJTaWdQYms/OiBLZXlOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBta1NoYXJlZEtleT86IEtleU5vZGU7XG4gIG1rUHhrPzogS2V5Tm9kZTtcbiAgbWtSZXNoYXJlUmVxdWVzdENpcGhlcj86IHN0cmluZztcbiAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXI/OiBzdHJpbmc7XG4gIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlckNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIG1rUmVzaGFyZVJlcXVlc3RTZW50PzogYm9vbGVhbjtcbiAgbWtSZXNoYXJlUmVzcG9uc2VTZW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXJyZW50VXNlclNoYXJlZEtleU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgb3RoZXI/OiBVc2VyTm9kZTtcbiAgdXNlclNoYXJlZEtleT86IFVzZXJTaGFyZWRLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgdXNlcj86IFVzZXJOb2RlO1xuICBvdGhlcj86IFVzZXJOb2RlO1xuICBjdXJyZW50VXNlclNoYXJlZEtleT86IEN1cnJlbnRVc2VyU2hhcmVkS2V5Tm9kZTtcbiAgaXNDb21wbGV0ZWQ/OiBib29sZWFuO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgbXlDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgbXlJdGVtcz86IFNoYXJlZEl0ZW1zO1xuICBzaGFyZWRJdGVtcz86IFNoYXJlZEl0ZW1zO1xuICBteVNjZW5hcmlvcz86IENvbm5lY3Rpb248U2NlbmFyaW9Ob2RlPjtcbiAgc2hhcmVkU2NlbmFyaW9zPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb05vZGU+O1xufVxuXG5leHBvcnQgZW51bSBUcEFzc2VtYmx5U3RhdGUge1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgUkVTRVQgPSAnUkVTRVQnLFxufVxuXG5leHBvcnQgZW51bSBUcENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGVudW0gVHBDbGFpbUFwcHJvdmVyU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRBcHByb3ZhbCBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXBwcm92ZXJFbWFpbD86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXI/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uPzogSlNPTk9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92YWxOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICByZWNlaXZlckNpcGhlcj86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleT86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhcHByb3ZlckVtYWlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZlciB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBzdGF0ZT86IFRwQ2xhaW1BcHByb3ZlclN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJTdWJBc3NlbWJseSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgYXBwcm92ZXJzPzogVHBQYXNzd29yZFJlc2V0VXNlckFwcHJvdmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlckFzc2VtYmx5IHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBzdWJBc3NlbWJsaWVzPzogVHBQYXNzd29yZFJlc2V0VXNlclN1YkFzc2VtYmx5W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgcmVzZXRVc2VybmFtZT86IHN0cmluZztcbiAgc3RhdGU/OiBUcENsYWltU3RhdGU7XG4gIHBhc3NLZXk/OiBQYXNzS2V5Tm9kZTtcbiAgbWFzdGVyS2V5PzogS2V5Tm9kZTtcbiAgcHhrPzogS2V5Tm9kZTtcbiAgc2Vzc2lvbkVuY3J5cHRpb25LZXk/OiBzdHJpbmc7XG4gIGFwcHJvdmFscz86IFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGVbXTtcbiAgYXNzZW1ibHlDaXBoZXJEYXRhPzogc3RyaW5nO1xuICB3cmFwcGVkQXNzZW1ibHlLZXlWZXJpZmllclByaz86IHN0cmluZztcbiAgYXNzZW1ibHk/OiBUcFBhc3N3b3JkUmVzZXRVc2VyQXNzZW1ibHk7XG4gIHJlcXVlc3RBZ2FpbkFmdGVyPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgYXNzZW1ibHk/OiBUcEFzc2VtYmx5Tm9kZTtcbiAgcmVxdWVzdD86IFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlO1xuICBhcHBsaWVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBUcENsYWltU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGlkPzogSUQ7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgY2FuTWVldFF1b3J1bT86IGJvb2xlYW47XG4gIHN1YmplY3RLZXk/OiBLZXlOb2RlO1xuICBzdWJqZWN0Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgc3ViamVjdENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhc3NlbWJseUtleT86IEtleU5vZGU7XG4gIGFzc2VtYmx5Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgYXNzZW1ibHlDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgc3ViQXNzZW1ibGllcz86IENvbm5lY3Rpb248VHBTdWJBc3NlbWJseU5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwU3ViQXNzZW1ibHlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIHN1YmplY3RDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbj86IHN0cmluZztcbiAgYXBwcm92ZXJzPzogQ29ubmVjdGlvbjxUcEFzc2VtYmx5QXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5QXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICB0cD86IFRwTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcFBhc3N3b3JkUmVzZXROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBhc3NlbWJseT86IFNoYXJlZFRwQXNzZW1ibHlOb2RlO1xuICB0cD86IFRwTm9kZTtcbiAgc2hhcmVkUmVxdWVzdD86IFNoYXJlZFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwQXNzZW1ibHlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBhc0FwcHJvdmVycz86IENvbm5lY3Rpb248VHBBc3NlbWJseUFzQXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5QXNBcHByb3Zlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0UmVxdWVzdE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGNsYWltPzogU2hhcmVkVHBDbGFpbU5vZGU7XG4gIHB4az86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBDbGFpbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogVHBDbGFpbVN0YXRlO1xuICBhc0NsYWltQXBwcm92ZXJzPzogQ29ubmVjdGlvbjxTaGFyZWRUcENsYWltQXBwcm92ZXJOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcENsYWltQXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IFRwQ2xhaW1BcHByb3ZlclN0YXRlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcmVjZWl2ZXJBcHByb3ZhbHM/OiBDb25uZWN0aW9uPFNoYXJlZFRwQ2xhaW1SZWNlaXZlckFwcHJvdmFsTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBDbGFpbVJlY2VpdmVyQXBwcm92YWxOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBweGs/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgZW51bSBMb2NrU3RhdGUge1xuICBVTkxPQ0tFRCA9ICdVTkxPQ0tFRCcsXG4gIE1VVEVYX0xPQ0tFRCA9ICdNVVRFWF9MT0NLRUQnLFxufVxuXG5leHBvcnQgZW51bSBTY2VuYXJpb1N0YXRlIHtcbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxuICBFTkFCTEVEID0gJ0VOQUJMRUQnLFxuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG59XG5cbmV4cG9ydCBlbnVtIENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGVudW0gQ2xhaW1BcHByb3ZlclN0YXRlIHtcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG59XG5cbmV4cG9ydCBlbnVtIFNjZW5hcmlvTGFzdENsYWltU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIFJFU0VUID0gJ1JFU0VUJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb0xhdGVzdENsYWltIHtcbiAgc3RhdGU/OiBTY2VuYXJpb0xhc3RDbGFpbVN0YXRlO1xuICBjcmVhdGVkPzogRGF0ZVRpbWU7XG4gIGNsYWltQWdhaW5BZnRlcj86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3ViamVjdD86IFVzZXJOb2RlO1xuICBzdWJqZWN0S2V5PzogS2V5Tm9kZTtcbiAgc3ViamVjdENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHN1YmplY3RDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYXNzZW1ibHk/OiBUcEFzc2VtYmx5Tm9kZTtcbiAgc3RhdGU/OiBTY2VuYXJpb1N0YXRlO1xuICBjbGFpbWFudHM/OiBDb25uZWN0aW9uPFNjZW5hcmlvQ2xhaW1hbnROb2RlPjtcbiAgcmVjZWl2ZXJzPzogQ29ubmVjdGlvbjxTY2VuYXJpb1JlY2VpdmVyTm9kZT47XG4gIGNsYWltcz86IENvbm5lY3Rpb248U2NlbmFyaW9DbGFpbU5vZGU+O1xuICBjbGFpbT86IFNjZW5hcmlvQ2xhaW1Ob2RlO1xuICBhc3NlbWJseVN0YXRlPzogU2NlbmFyaW9Bc3NlbWJseVN0YXRlO1xuICBsYXRlc3RDbGFpbT86IFNjZW5hcmlvTGF0ZXN0Q2xhaW07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9DbGFpbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGNsYWltYW50PzogU2NlbmFyaW9DbGFpbWFudE5vZGU7XG4gIHN0YXRlPzogQ2xhaW1TdGF0ZTtcbiAgc2NlbmFyaW8/OiBTY2VuYXJpb05vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9Bc3NlbWJseVN0YXRlIHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBzdWJBc3NlbWJseVN0YXRlcz86IFNjZW5hcmlvU3ViQXNzZW1ibHlTdGF0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvU3ViQXNzZW1ibHlTdGF0ZSB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgYXBwcm92ZXJTdGF0ZXM/OiBTY2VuYXJpb0Fzc2VtYmx5QXBwcm92ZXJTdGF0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvQXNzZW1ibHlBcHByb3ZlclN0YXRlIHtcbiAgc3RhdGU/OiBUcENsYWltQXBwcm92ZXJTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHBiaz86IEtleU5vZGU7XG4gIHJlY2VpdmVyRGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPFNjZW5hcmlvUmVjZWl2ZXJEaXJlY3RvcnlOb2RlPjtcbiAgcmVjZWl2ZXJGaWxlcz86IENvbm5lY3Rpb248U2NlbmFyaW9SZWNlaXZlckZpbGVOb2RlPjtcbiAgdHA/OiBUcE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9SZWNlaXZlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBiaz86IEtleU5vZGU7XG59XG5cbmV4cG9ydCB0eXBlIFJlY2VpdmVyRGlyZWN0b3J5QWNjZXNzUm9sZSA9IEFjY2Vzc1JvbGVDaG9pY2U7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9SZWNlaXZlckl0ZW1Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICByZWNlaXZlcj86IFNoYXJlZFNjZW5hcmlvUmVjZWl2ZXJOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgYWNjZXNzUm9sZT86IFJlY2VpdmVyRGlyZWN0b3J5QWNjZXNzUm9sZTtcbiAgd3JhcHBlZEl0ZW1LZXk/OiBzdHJpbmc7XG4gIGl0ZW1LZXk/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvUmVjZWl2ZXJEaXJlY3RvcnlOb2RlXG4gIGV4dGVuZHMgU2NlbmFyaW9SZWNlaXZlckl0ZW1Ob2RlIHtcbiAgZGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVyRmlsZU5vZGUgZXh0ZW5kcyBTY2VuYXJpb1JlY2VpdmVySXRlbU5vZGUge1xuICBmaWxlPzogRmlsZU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9DbGFpbWFudE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHRwPzogVHBOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN1YmplY3Q/OiBVc2VyTm9kZTtcbiAgc3RhdGU/OiBTY2VuYXJpb1N0YXRlO1xuICB0cD86IFRwTm9kZTtcbiAgYXNDbGFpbWFudD86IFNjZW5hcmlvQ2xhaW1hbnROb2RlO1xuICBhc1JlY2VpdmVyPzogU2NlbmFyaW9SZWNlaXZlck5vZGU7XG4gIGFzc2VtYmx5PzogU2hhcmVkVHBBc3NlbWJseU5vZGU7XG4gIHNoYXJlZENsYWltPzogU2hhcmVkU2NlbmFyaW9DbGFpbU5vZGU7XG4gIGFzc2VtYmx5U3RhdGU/OiBTY2VuYXJpb0Fzc2VtYmx5U3RhdGU7XG4gIGxhdGVzdENsYWltPzogU2NlbmFyaW9MYXRlc3RDbGFpbTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBDbGFpbVN0YXRlO1xuICBzaGFyZWRTY2VuYXJpbz86IFNoYXJlZFNjZW5hcmlvTm9kZTtcbiAgaXNDbGFpbWFudD86IGJvb2xlYW47XG4gIGFzQ2xhaW1SZWNlaXZlcj86IFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlck5vZGU7XG4gIGNsYWltOiBTaGFyZWRUcENsYWltTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltQXBwcm92ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICByZWNlaXZlcnM/OiBDb25uZWN0aW9uPFNoYXJlZFNjZW5hcmlvUmVjZWl2ZXJOb2RlPjtcbiAgc3RhdGU/OiBDbGFpbUFwcHJvdmVyU3RhdGU7XG4gIGFwcHJvdmVyPzogVHBBc3NlbWJseUFwcHJvdmVyTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICByZWNlaXZlZD86IERhdGVUaW1lO1xuICBhcHByb3ZhbHM/OiBDb25uZWN0aW9uPFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlZEFwcHJvdmFsTm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVkQXBwcm92YWxOb2RlXG4gIGV4dGVuZHMgTm9kZSxcbiAgICBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVyQ2lwaGVyPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleT86IHN0cmluZztcbiAgcHhrPzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwbGFpbkRhdGE/OiBKU09OU3RyaW5nO1xuICBwbGFpbk1ldGE/OiBKU09OU3RyaW5nO1xuICB0aW1lUmVhZD86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbk1hbmFnZW1lbnRTdGF0ZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgbGFzdFZpZXdlZD86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgZW51bSBMaW5rVHlwZUZpZWxkIHtcbiAgSEFSRCA9ICdIQVJEJyxcbiAgU09GVCA9ICdTT0ZUJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2VuZGVyPzogVXNlck5vZGU7XG4gIHJlY2VpdmVyPzogVXNlck5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNlbmRlclNpZ1Biaz86IEtleU5vZGU7XG4gIHBsYWluTWVzc2FnZT86IHN0cmluZztcbiAgcGxhaW5NZXNzYWdlSnNvbj86IHN0cmluZztcbiAgc2lnbmVkQ2lwaGVyTWVzc2FnZT86IHN0cmluZztcbiAgc2lnbmVkQ2lwaGVyTWVzc2FnZUNsZWFySnNvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NrRmllbGQge1xuICBjcmVhdGVkPzogRGF0ZVRpbWU7XG4gIG1vZGlmaWVkPzogRGF0ZVRpbWU7XG4gIGV4cGlyeVRpbWU/OiBEYXRlVGltZTtcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgc3RhdGU/OiBMb2NrU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyQ29uZmlnIHtcbiAgcmVsYXlDb25uZWN0aW9uTWF4TGltaXQ/OiBudW1iZXI7XG59XG4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUsUUFBUSxDQUFJLFVBQXlCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxDQUFOLElBQVksZUFFWDtBQUZELFdBQVksZUFBZTtJQUN6QiwwQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUI7QUFNRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQXVKRCxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLG1DQUFlLENBQUE7SUFDZixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDaEMsaURBQXVCLENBQUE7SUFDdkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFHakM7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLGlDQUFhLENBQUE7SUFDYixxQ0FBaUIsQ0FBQTtJQUNq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ckIsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLCtDQUFxQixDQUFBO0lBQ3JCLCtDQUFxQixDQUFBO0lBQ3JCLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUF3SUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIERhdGVUaW1lLFxuICBHZW5lcmljU2NhbGFyLFxuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgSlNPTlN0cmluZyxcbiAgTHJFbWFpbCxcbiAgTm9kZSxcbiAgVGltZVN0YW1wZWQsXG59IGZyb20gJy4vZ3JhcGhxbC50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBFZGdlczxUPihjb25uZWN0aW9uOiBDb25uZWN0aW9uPFQ+KSB7XG4gIHJldHVybiBjb25uZWN0aW9uLmVkZ2VzLm1hcCgoZWRnZSkgPT4gZWRnZS5ub2RlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlc05vZGUge1xuICBteVZhdWx0OiBzdHJpbmdbXTtcbiAgdHBWYXVsdDogc3RyaW5nW107XG4gIHNoYXJlVmF1bHQ6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVc2VyRGVsZXRlU3RhdGUge1xuICBSRVFVRVNURUQgPSAnUkVRVUVTVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGVsZXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBVc2VyRGVsZXRlU3RhdGU7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZSB7XG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFuTm9kZSBleHRlbmRzIE5vZGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogSlNPTlN0cmluZztcbiAgc3RhdGU/OiBQbGFuU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBsYW5TdHJpcGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJzY3JpcHRpb25JZD86IHN0cmluZztcbiAgcHJpY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgcGxhbj86IFBsYW5Ob2RlO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RyaXBlPzogVXNlclBsYW5TdHJpcGVOb2RlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RyaXBlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY3VzdG9tZXI/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXNzS2V5UGFyYW1zPzogR2VuZXJpY1NjYWxhcjtcbiAgcGFzc0lkcFBhcmFtcz86IEdlbmVyaWNTY2FsYXI7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFzc0tleXM/OiBQYXNzS2V5Tm9kZVtdO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIHJvb3RLZXk/OiBLZXlOb2RlO1xuICBtYXN0ZXJLZXk/OiBLZXlOb2RlO1xuICBweGs/OiBLZXlOb2RlO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5vZGUgdHlwZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGludGVyZmFjZSBVc2VyTm9kZSBleHRlbmRzIE5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgY29udGFjdENhcmRzPzogQ29ubmVjdGlvbjxDb250YWN0Q2FyZE5vZGU+O1xuICBjdXJyZW50VXNlcktleT86IEN1cnJlbnRVc2VyS2V5Tm9kZTtcbiAgb3duZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgcmVjZWl2ZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgaXNDdXJyZW50VXNlcj86IGJvb2xlYW47XG4gIGhhdmVUcD86IGJvb2xlYW47XG4gIHN0cmlwZT86IFVzZXJTdHJpcGVOb2RlO1xuICB1c2VyUGxhbnM/OiBDb25uZWN0aW9uPFVzZXJQbGFuTm9kZT47XG4gIHVzZXJEZWxldGU/OiBVc2VyRGVsZXRlTm9kZTtcbiAgZmVhdHVyZXM/OiBGZWF0dXJlc05vZGU7XG4gIHVzZXJGZWF0dXJlU3RhdGU/OiBVc2VyRmVhdHVyZVN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJGZWF0dXJlU3RhdGUgZXh0ZW5kcyBUaW1lU3RhbXBlZCB7XG4gIG5vdGlmaWNhdGlvbnNMYXN0Vmlld2VkPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyVGltZSB7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYms/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENhcmROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBvd25lcj86IFVzZXJOb2RlO1xuICBwdWJsaWNEYXRhU2lnPzogc3RyaW5nO1xuICBwdWJsaWNTZWFyY2hhYmxlU2lnPzogc3RyaW5nO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xuICBkZWZhdWx0RnJvbT86IERhdGVUaW1lO1xuICBwdWJsaWNEYXRhPzogc3RyaW5nO1xuICBwdWJsaWNTZWFyY2hhYmxlPzogc3RyaW5nO1xuICBjaXBoZXJEYXRhPzogc3RyaW5nO1xuICBjaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAga2V5PzogS2V5Tm9kZTtcbiAgcGxhaW5EYXRhPzogc3RyaW5nO1xuICBwbGFpbkRhdGFTaWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgYWNjZXNzUm9sZT86IEFjY2Vzc1JvbGVDaG9pY2U7XG4gIHBlcm1pc3Npb25zPzogUGVybWlzc2lvbkNob2ljZVtdO1xuICB0cEFjY2Vzc1JvbGVzPzogQWNjZXNzUm9sZVtdO1xuICBjb25maWRlbnRpYWxpdHk/OiBDb25maWRlbnRpYWxSZXNvdXJjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlOb2RlXG4gIGV4dGVuZHMgTm9kZSxcbiAgICBUaW1lU3RhbXBlZCxcbiAgICBBY2Nlc3NDb250cm9sbGVkUmVzb3VyY2Uge1xuICBwbGFpbk1ldGE/OiBKU09OU3RyaW5nO1xuICBwbGFpbk1ldGFKc29uPzogSlNPTk9iamVjdDtcbiAgY2lwaGVyTWV0YT86IHN0cmluZztcbiAgY2lwaGVyTWV0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGFyY2hpdmVkPzogYm9vbGVhbjtcbiAga2V5SWQ/OiBJRDtcbiAgY2hpbGRGaWxlTGlua3M/OiBDb25uZWN0aW9uPEZpbGVMaW5rTm9kZT47XG4gIGNoaWxkRGlyZWN0b3J5TGlua3M/OiBDb25uZWN0aW9uPERpcmVjdG9yeUxpbmtOb2RlPjtcbiAgcGFyZW50RGlyZWN0b3J5TGlua3M/OiBDb25uZWN0aW9uPERpcmVjdG9yeUxpbmtOb2RlPjtcbiAgblBhcmVudERpcmVjdG9yeUxpbmtzPzogRGlyZWN0b3J5TGlua05vZGVMck5MaXN0O1xuICBuQ2hpbGREaXJlY3RvcnlMaW5rcz86IERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdDtcbiAgbkNoaWxkRmlsZUxpbmtzPzogRmlsZUxpbmtOb2RlTHJOTGlzdDtcbiAgZGVzY2VuZGFudHM/OiBEZXNjZW5kYW50cztcbiAgbG9jaz86IExvY2tGaWVsZDtcbiAgbG9ja1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCwgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgY3VycmVudFZlcnNpb24/OiBGaWxlVmVyc2lvbk5vZGU7XG4gIGFyY2hpdmVkPzogYm9vbGVhbjtcbiAgdmVyc2lvbnM/OiBDb25uZWN0aW9uPEZpbGVWZXJzaW9uTm9kZT47XG4gIGtleUlkPzogSUQ7XG4gIHBhcmVudERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxGaWxlTGlua05vZGU+O1xuICBuUGFyZW50RGlyZWN0b3J5TGlua3M/OiBGaWxlTGlua05vZGVMck5MaXN0O1xuICBsb2NrPzogTG9ja0ZpZWxkO1xuICBsb2NrVmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlMaW5rTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFyZW50RGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgY2hpbGREaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xuICBsaW5rVHlwZT86IExpbmtUeXBlRmllbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUxpbmtOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXJlbnREaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xuICBjaGlsZEZpbGU/OiBGaWxlTm9kZTtcbiAgbGlua1R5cGU/OiBMaW5rVHlwZUZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdCB7XG4gIGxpc3Q/OiBEaXJlY3RvcnlMaW5rTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaW5rTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogRmlsZUxpbmtOb2RlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzY2VuZGFudHMge1xuICBkaXJlY3Rvcmllcz86IENvbm5lY3Rpb248RGlyZWN0b3J5Tm9kZT47XG4gIGZpbGVzPzogQ29ubmVjdGlvbjxGaWxlTm9kZT47XG4gIGRpcmVjdG9yaWVzQ291bnQ/OiBudW1iZXI7XG4gIGZpbGVzQ291bnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIEFjY2Vzc1JvbGVDaG9pY2Uge1xuICBSRUFERVIgPSAnUkVBREVSJyxcbiAgV1JJVEVSID0gJ1dSSVRFUicsXG4gIEFETUlOID0gJ0FETUlOJyxcbiAgREVOWSA9ICdERU5ZJyxcbiAgT1dORVIgPSAnT1dORVInLFxufVxuXG5leHBvcnQgZW51bSBBY2Nlc3NSb2xlTWV0aG9kQ2hvaWNlIHtcbiAgSU5IRVJJVEVEID0gJ0lOSEVSSVRFRCcsXG4gIERJUkVDVCA9ICdESVJFQ1QnLFxufVxuXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uQ2hvaWNlIHtcbiAgQ1JFQVRFID0gJ0NSRUFURScsXG4gIFJFQUQgPSAnUkVBRCcsXG4gIFVQREFURSA9ICdVUERBVEUnLFxuICBERUxFVEUgPSAnREVMRVRFJyxcbiAgU0hBUkUgPSAnU0hBUkUnLFxuICBBUkNISVZFID0gJ0FSQ0hJVkUnLFxuICBBQ0NFU1NfQVJDSElWRUQgPSAnQUNDRVNTX0FSQ0hJVkVEJyxcbiAgVU5BUkNISVZFID0gJ1VOQVJDSElWRScsXG4gIFNFVF9DT05GSURFTlRJQUwgPSAnU0VUX0NPTkZJREVOVElBTCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlkZW50aWFsUmVzb3VyY2Uge1xuICBpc0NvbmZpZGVudGlhbD86IGJvb2xlYW47XG4gIG1ldGhvZD86IEFjY2Vzc1JvbGVNZXRob2RDaG9pY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzUm9sZSB7XG4gIGlzc3Vlcj86IFVzZXJOb2RlO1xuICBzdWJqZWN0PzogVXNlck5vZGU7XG4gIHJvbGU/OiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICBtZXRob2Q/OiBBY2Nlc3NSb2xlTWV0aG9kQ2hvaWNlO1xuICBpbmhlcml0ZWRGcm9tPzogRGlyZWN0b3J5Tm9kZTtcbiAgdHA/OiBUcE5vZGU7XG4gIGlzSXNzdWVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gRmlsZU9wZXJhdGlvbkZpZWxkIHtcbiAgQ1JFQVRFID0gJ0NSRUFURScsXG4gIFJFQUQgPSAnUkVBRCcsXG4gIFVQREFURSA9ICdVUERBVEUnLFxuICBSRVZFUlQgPSAnUkVWRVJUJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVZlcnNpb25Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBmaWxlPzogRmlsZU5vZGU7XG4gIHN0YXRlPzogRmlsZVN0YXRlTm9kZTtcbiAgb3BlcmF0aW9uPzogRmlsZU9wZXJhdGlvbkZpZWxkO1xuICBhdXRob3I/OiBVc2VyTm9kZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVN0YXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIGNpcGhlck1ldGE/OiBzdHJpbmc7XG4gIGNpcGhlck1ldGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBjb250ZW50UmVzb3VyY2U/OiBzdHJpbmc7XG4gIHZlcnNpb25zPzogQ29ubmVjdGlvbjxGaWxlVmVyc2lvbk5vZGU+O1xuICBrZXlJZD86IElEO1xufVxuXG5leHBvcnQgZW51bSBLZXlFeGNoYW5nZU90a1N0YXRlIHtcbiAgT1RLX0lOSVRJQVRFRCA9ICdPVEtfSU5JVElBVEVEJyxcbiAgT1RLX0FDQ0VQVEVEID0gJ09US19BQ0NFUFRFRCcsXG4gIE9US19DT01QTEVURUQgPSAnT1RLX0NPTVBMRVRFRCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENhcmRTaGFyZWRDaXBoZXJEYXRhIHtcbiAgLy8gU2hhcmVkIHJlYWQgYWNjZXNzIGJldHdlZW4gaW5pdGlhdG9yIGFuZCByZXNwb25kZXIuIEJ1dCBvbmx5IHRoZSBpbml0aWF0b3IgaGFzIHdyaXRlIGFjY2Vzcy5cbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbjogSlNPTk9iamVjdDtcbn1cblxuLyoqXG4gKiBUaGUgY29udGVudHMgb2YgdGhlIG9uZS10aW1lIGtleSBjaXBoZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdEtleUNpcGhlckNsZWFySnNvbjIge1xuICAvLyBVc2VkIHRvIGNvbmZpcm0gdG8gdGhlIGluaXRpYXRvciB0aGF0IHRoZSByZXNwb25kZXIgaGFzIGFjY2VzcyB0byB0aGUgb25lLXRpbWUga2V5LlxuICBub25jZTogc3RyaW5nO1xuICAvLyBEYXRhIHNlbnQgZnJvbSBpbml0aWF0b3IgdG8gdGhlIHJlc3BvbmRlclxuICBpbml0aWF0b3I6IHtcbiAgICBvbmVUaW1lUGJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjsgLy8gb25lLXRpbWUgcHVibGljIGVuY3J5cHRpb24ga2V5IHRoZSByZXNwb25kZXIgd2lsbCB1c2UgdG8gc2VuZCBkYXRhIGJhY2sgdG8gdGhlIGluaXRpYXRvclxuICAgIHBiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIHB1YmxpYyBlbmNyeXB0aW9uIGtleVxuICAgIHNpZ1BiazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47IC8vIHB1YmxpYyBzaWduaW5nIGtleVxuICAgIG1lc3NhZ2U/OiBKU09OT2JqZWN0O1xuICAgIGNvbnRhY3RDYXJkPzogQ29udGFjdENhcmRTaGFyZWRDaXBoZXJEYXRhO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV4Y2hhbmdlT3RrTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBLZXlFeGNoYW5nZU90a1N0YXRlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBta1NoYXJlZEtleT86IEtleU5vZGU7XG4gIGluaXRpYXRvclNpZ1B4az86IEtleU5vZGU7XG4gIHJlc3BvbmRlclNpZ1B4az86IEtleU5vZGU7XG4gIGluaXRpYXRvck9uZVRpbWVQYmtDaXBoZXI/OiBzdHJpbmc7XG4gIG90S2V5UGFyYW1zPzogc3RyaW5nO1xuICBvdEtleUNpcGhlcj86IHN0cmluZztcbiAgb3RLZXlDaXBoZXJDbGVhckpzb24/OiBPdEtleUNpcGhlckNsZWFySnNvbjI7XG4gIHJlc3BvbmRlclBia0NpcGhlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gS2V5RXhjaGFuZ2VTdGF0ZSB7XG4gIElOX1BST0dSRVNTID0gJ0lOX1BST0dSRVNTJyxcbiAgQ09NUExFVEVEID0gJ0NPTVBMRVRFRCcsXG4gIERFQ0xJTkVEID0gJ0RFQ0xJTkVEJyxcbiAgQ0FOQ0VMTEVEID0gJ0NBTkNFTExFRCcsXG4gIERFTEVURUQgPSAnREVMRVRFRCcsXG59XG5cbmV4cG9ydCBlbnVtIEtleUV4Y2hhbmdlTW9kZSB7XG4gIE9USyA9ICdPVEsnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV4Y2hhbmdlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgZXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICB0b2tlbj86IHN0cmluZztcbiAgdG9rZW5FeHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHN0YXRlPzogS2V5RXhjaGFuZ2VTdGF0ZTtcbiAgbW9kZT86IEtleUV4Y2hhbmdlTW9kZTtcbiAgaW5pdGlhdG9yPzogVXNlck5vZGU7XG4gIHJlc3BvbmRlcj86IFVzZXJOb2RlO1xuICBpbml0aWF0b3JSb290S2V5Q2lwaGVyPzogc3RyaW5nO1xuICByZXNwb25kZXJSb290S2V5Q2lwaGVyPzogc3RyaW5nO1xuICBpbml0aWF0b3JBY3Rpb25SZXF1aXJlZD86IGJvb2xlYW47XG4gIHJlc3BvbmRlckFjdGlvblJlcXVpcmVkPzogYm9vbGVhbjtcbiAgY3JlYXRlVHA/OiBib29sZWFuO1xuICBvdGs/OiBLZXlFeGNoYW5nZU90a05vZGU7XG4gIGlzSW5pdGlhdG9yPzogYm9vbGVhbjtcbiAgaXNFeHBpcmVkPzogYm9vbGVhbjtcbiAgcmVzcG9uZGVyRW1haWxBZGRyZXNzPzogTHJFbWFpbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRJdGVtcyB7XG4gIGRpcmVjdG9yaWVzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlOb2RlPjtcbiAgZmlsZXM/OiBDb25uZWN0aW9uPEZpbGVOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDb250YWN0Q2FyZE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG93bmVyPzogVXNlck5vZGU7XG4gIHJlY2VpdmVyPzogVXNlck5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBzaGFyZWRDaXBoZXJEYXRhU2lnPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhU2lnUHhrPzogS2V5Tm9kZTtcbiAgb3duZXJDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBvd25lckNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBvd25lcktleT86IEtleU5vZGU7XG4gIG93bmVyUGxhaW5EYXRhPzogc3RyaW5nO1xuICBvd25lclBsYWluRGF0YUpzb24/OiBKU09OT2JqZWN0O1xuICBvd25lclBsYWluRGF0YVNpZz86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJEYXRhPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICByZWNlaXZlcktleT86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclNoYXJlZEtleU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGtleUV4Y2hhbmdlPzogS2V5RXhjaGFuZ2VOb2RlO1xuICB1c2VyPzogVXNlck5vZGU7XG4gIHVzZXJQcms/OiBLZXlOb2RlO1xuICB1c2VyU2lnUHJrPzogS2V5Tm9kZTtcbiAgb3RoZXI/OiBVc2VyTm9kZTtcbiAgb3RoZXJQYms/OiBLZXlOb2RlO1xuICBvdGhlclNpZ1Biaz86IEtleU5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIG1rU2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtQeGs/OiBLZXlOb2RlO1xuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyPzogc3RyaW5nO1xuICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlcj86IHN0cmluZztcbiAgbWtSZXNoYXJlUmVxdWVzdENpcGhlckNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgbWtSZXNoYXJlUmVxdWVzdFNlbnQ/OiBib29sZWFuO1xuICBta1Jlc2hhcmVSZXNwb25zZVNlbnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyU2hhcmVkS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgdXNlcj86IFVzZXJOb2RlO1xuICBvdGhlcj86IFVzZXJOb2RlO1xuICB1c2VyU2hhcmVkS2V5PzogVXNlclNoYXJlZEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB1c2VyPzogVXNlck5vZGU7XG4gIG90aGVyPzogVXNlck5vZGU7XG4gIGN1cnJlbnRVc2VyU2hhcmVkS2V5PzogQ3VycmVudFVzZXJTaGFyZWRLZXlOb2RlO1xuICBpc0NvbXBsZXRlZD86IGJvb2xlYW47XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENvbnRhY3RDYXJkPzogU2hhcmVkQ29udGFjdENhcmROb2RlO1xuICBteUNvbnRhY3RDYXJkPzogU2hhcmVkQ29udGFjdENhcmROb2RlO1xuICBteUl0ZW1zPzogU2hhcmVkSXRlbXM7XG4gIHNoYXJlZEl0ZW1zPzogU2hhcmVkSXRlbXM7XG4gIG15U2NlbmFyaW9zPzogQ29ubmVjdGlvbjxTY2VuYXJpb05vZGU+O1xuICBzaGFyZWRTY2VuYXJpb3M/OiBDb25uZWN0aW9uPFNoYXJlZFNjZW5hcmlvTm9kZT47XG59XG5cbmV4cG9ydCBlbnVtIFRwQXNzZW1ibHlTdGF0ZSB7XG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbiAgRU5BQkxFRCA9ICdFTkFCTEVEJyxcbiAgQ0xBSU1FRCA9ICdDTEFJTUVEJyxcbiAgQVBQUk9WRUQgPSAnQVBQUk9WRUQnLFxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXG4gIEVYUElSRUQgPSAnRVhQSVJFRCcsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBSRVNFVCA9ICdSRVNFVCcsXG59XG5cbmV4cG9ydCBlbnVtIFRwQ2xhaW1TdGF0ZSB7XG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgUkVTRVQgPSAnUkVTRVQnLFxufVxuXG5leHBvcnQgZW51bSBUcENsYWltQXBwcm92ZXJTdGF0ZSB7XG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldEFwcHJvdmFsIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBhcHByb3ZlckVtYWlsPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlcj86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleT86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlDbGVhckpzb24/OiBKU09OT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVyQ2lwaGVyPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Pzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGFwcHJvdmVyRW1haWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlckFwcHJvdmVyIHtcbiAgbmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHN0YXRlPzogVHBDbGFpbUFwcHJvdmVyU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlclN1YkFzc2VtYmx5IHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBhcHByb3ZlcnM/OiBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92ZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyQXNzZW1ibHkge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIHN1YkFzc2VtYmxpZXM/OiBUcFBhc3N3b3JkUmVzZXRVc2VyU3ViQXNzZW1ibHlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZSB7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICByZXNldFVzZXJuYW1lPzogc3RyaW5nO1xuICBzdGF0ZT86IFRwQ2xhaW1TdGF0ZTtcbiAgcGFzc0tleT86IFBhc3NLZXlOb2RlO1xuICBtYXN0ZXJLZXk/OiBLZXlOb2RlO1xuICBweGs/OiBLZXlOb2RlO1xuICBzZXNzaW9uRW5jcnlwdGlvbktleT86IHN0cmluZztcbiAgYXBwcm92YWxzPzogVHBQYXNzd29yZFJlc2V0VXNlckFwcHJvdmFsTm9kZVtdO1xuICBhc3NlbWJseUNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHdyYXBwZWRBc3NlbWJseUtleVZlcmlmaWVyUHJrPzogc3RyaW5nO1xuICBhc3NlbWJseT86IFRwUGFzc3dvcmRSZXNldFVzZXJBc3NlbWJseTtcbiAgcmVxdWVzdEFnYWluQWZ0ZXI/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBhc3NlbWJseT86IFRwQXNzZW1ibHlOb2RlO1xuICByZXF1ZXN0PzogVHBQYXNzd29yZFJlc2V0UmVxdWVzdE5vZGU7XG4gIGFwcGxpZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFJlcXVlc3ROb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IFRwQ2xhaW1TdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcEFzc2VtYmx5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgaWQ/OiBJRDtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBjYW5NZWV0UXVvcnVtPzogYm9vbGVhbjtcbiAgc3ViamVjdEtleT86IEtleU5vZGU7XG4gIHN1YmplY3RDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGFzc2VtYmx5S2V5PzogS2V5Tm9kZTtcbiAgYXNzZW1ibHlDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBhc3NlbWJseUNpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBzdWJBc3NlbWJsaWVzPzogQ29ubmVjdGlvbjxUcFN1YkFzc2VtYmx5Tm9kZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTdWJBc3NlbWJseU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNpbmdsZVJlamVjdD86IGJvb2xlYW47XG4gIHF1b3J1bT86IG51bWJlcjtcbiAgc3ViamVjdENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHN1YmplY3RDaXBoZXJEYXRhQ2xlYXJKc29uPzogc3RyaW5nO1xuICBhcHByb3ZlcnM/OiBDb25uZWN0aW9uPFRwQXNzZW1ibHlBcHByb3Zlck5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwQXNzZW1ibHlBcHByb3Zlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHRwPzogVHBOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwUGFzc3dvcmRSZXNldE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGFzc2VtYmx5PzogU2hhcmVkVHBBc3NlbWJseU5vZGU7XG4gIHRwPzogVHBOb2RlO1xuICBzaGFyZWRSZXF1ZXN0PzogU2hhcmVkVHBQYXNzd29yZFJlc2V0UmVxdWVzdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBBc3NlbWJseU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGFzQXBwcm92ZXJzPzogQ29ubmVjdGlvbjxUcEFzc2VtYmx5QXNBcHByb3Zlck5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwQXNzZW1ibHlBc0FwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY2xhaW0/OiBTaGFyZWRUcENsYWltTm9kZTtcbiAgcHhrPzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcENsYWltTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBUcENsYWltU3RhdGU7XG4gIGFzQ2xhaW1BcHByb3ZlcnM/OiBDb25uZWN0aW9uPFNoYXJlZFRwQ2xhaW1BcHByb3Zlck5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFRwQ2xhaW1BcHByb3Zlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHN0YXRlPzogVHBDbGFpbUFwcHJvdmVyU3RhdGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Pzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICByZWNlaXZlckFwcHJvdmFscz86IENvbm5lY3Rpb248U2hhcmVkVHBDbGFpbVJlY2VpdmVyQXBwcm92YWxOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcENsYWltUmVjZWl2ZXJBcHByb3ZhbE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHB4az86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBlbnVtIExvY2tTdGF0ZSB7XG4gIFVOTE9DS0VEID0gJ1VOTE9DS0VEJyxcbiAgTVVURVhfTE9DS0VEID0gJ01VVEVYX0xPQ0tFRCcsXG59XG5cbmV4cG9ydCBlbnVtIFNjZW5hcmlvU3RhdGUge1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbn1cblxuZXhwb3J0IGVudW0gQ2xhaW1TdGF0ZSB7XG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEVYUElSRUQgPSAnRVhQSVJFRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgUkVTRVQgPSAnUkVTRVQnLFxufVxuXG5leHBvcnQgZW51bSBDbGFpbUFwcHJvdmVyU3RhdGUge1xuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXG4gIFJFSkVDVEVEID0gJ1JFSkVDVEVEJyxcbn1cblxuZXhwb3J0IGVudW0gU2NlbmFyaW9MYXN0Q2xhaW1TdGF0ZSB7XG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgUkVTRVQgPSAnUkVTRVQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvTGF0ZXN0Q2xhaW0ge1xuICBzdGF0ZT86IFNjZW5hcmlvTGFzdENsYWltU3RhdGU7XG4gIGNyZWF0ZWQ/OiBEYXRlVGltZTtcbiAgY2xhaW1BZ2FpbkFmdGVyPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJqZWN0PzogVXNlck5vZGU7XG4gIHN1YmplY3RLZXk/OiBLZXlOb2RlO1xuICBzdWJqZWN0Q2lwaGVyRGF0YT86IHN0cmluZztcbiAgc3ViamVjdENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhc3NlbWJseT86IFRwQXNzZW1ibHlOb2RlO1xuICBzdGF0ZT86IFNjZW5hcmlvU3RhdGU7XG4gIGNsYWltYW50cz86IENvbm5lY3Rpb248U2NlbmFyaW9DbGFpbWFudE5vZGU+O1xuICByZWNlaXZlcnM/OiBDb25uZWN0aW9uPFNjZW5hcmlvUmVjZWl2ZXJOb2RlPjtcbiAgY2xhaW1zPzogQ29ubmVjdGlvbjxTY2VuYXJpb0NsYWltTm9kZT47XG4gIGNsYWltPzogU2NlbmFyaW9DbGFpbU5vZGU7XG4gIGFzc2VtYmx5U3RhdGU/OiBTY2VuYXJpb0Fzc2VtYmx5U3RhdGU7XG4gIGxhdGVzdENsYWltPzogU2NlbmFyaW9MYXRlc3RDbGFpbTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb0NsYWltTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY2xhaW1hbnQ/OiBTY2VuYXJpb0NsYWltYW50Tm9kZTtcbiAgc3RhdGU/OiBDbGFpbVN0YXRlO1xuICBzY2VuYXJpbz86IFNjZW5hcmlvTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb0Fzc2VtYmx5U3RhdGUge1xuICBzaW5nbGVSZWplY3Q/OiBib29sZWFuO1xuICBxdW9ydW0/OiBudW1iZXI7XG4gIHN1YkFzc2VtYmx5U3RhdGVzPzogU2NlbmFyaW9TdWJBc3NlbWJseVN0YXRlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9TdWJBc3NlbWJseVN0YXRlIHtcbiAgc2luZ2xlUmVqZWN0PzogYm9vbGVhbjtcbiAgcXVvcnVtPzogbnVtYmVyO1xuICBhcHByb3ZlclN0YXRlcz86IFNjZW5hcmlvQXNzZW1ibHlBcHByb3ZlclN0YXRlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9Bc3NlbWJseUFwcHJvdmVyU3RhdGUge1xuICBzdGF0ZT86IFRwQ2xhaW1BcHByb3ZlclN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvUmVjZWl2ZXJOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzaGFyZWRDaXBoZXJEYXRhPzogc3RyaW5nO1xuICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgcGJrPzogS2V5Tm9kZTtcbiAgcmVjZWl2ZXJEaXJlY3Rvcmllcz86IENvbm5lY3Rpb248U2NlbmFyaW9SZWNlaXZlckRpcmVjdG9yeU5vZGU+O1xuICByZWNlaXZlckZpbGVzPzogQ29ubmVjdGlvbjxTY2VuYXJpb1JlY2VpdmVyRmlsZU5vZGU+O1xuICB0cD86IFRwTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb1JlY2VpdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGJrPzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IHR5cGUgUmVjZWl2ZXJEaXJlY3RvcnlBY2Nlc3NSb2xlID0gQWNjZXNzUm9sZUNob2ljZTtcblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1JlY2VpdmVySXRlbU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVyPzogU2hhcmVkU2NlbmFyaW9SZWNlaXZlck5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhY2Nlc3NSb2xlPzogUmVjZWl2ZXJEaXJlY3RvcnlBY2Nlc3NSb2xlO1xuICB3cmFwcGVkSXRlbUtleT86IHN0cmluZztcbiAgaXRlbUtleT86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9SZWNlaXZlckRpcmVjdG9yeU5vZGVcbiAgZXh0ZW5kcyBTY2VuYXJpb1JlY2VpdmVySXRlbU5vZGUge1xuICBkaXJlY3Rvcnk/OiBEaXJlY3RvcnlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvUmVjZWl2ZXJGaWxlTm9kZSBleHRlbmRzIFNjZW5hcmlvUmVjZWl2ZXJJdGVtTm9kZSB7XG4gIGZpbGU/OiBGaWxlTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb0NsYWltYW50Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgdHA/OiBUcE5vZGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3ViamVjdD86IFVzZXJOb2RlO1xuICBzdGF0ZT86IFNjZW5hcmlvU3RhdGU7XG4gIHRwPzogVHBOb2RlO1xuICBhc0NsYWltYW50PzogU2NlbmFyaW9DbGFpbWFudE5vZGU7XG4gIGFzUmVjZWl2ZXI/OiBTY2VuYXJpb1JlY2VpdmVyTm9kZTtcbiAgYXNzZW1ibHk/OiBTaGFyZWRUcEFzc2VtYmx5Tm9kZTtcbiAgc2hhcmVkQ2xhaW0/OiBTaGFyZWRTY2VuYXJpb0NsYWltTm9kZTtcbiAgYXNzZW1ibHlTdGF0ZT86IFNjZW5hcmlvQXNzZW1ibHlTdGF0ZTtcbiAgbGF0ZXN0Q2xhaW0/OiBTY2VuYXJpb0xhdGVzdENsYWltO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1Ob2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IENsYWltU3RhdGU7XG4gIHNoYXJlZFNjZW5hcmlvPzogU2hhcmVkU2NlbmFyaW9Ob2RlO1xuICBpc0NsYWltYW50PzogYm9vbGVhbjtcbiAgYXNDbGFpbVJlY2VpdmVyPzogU2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVyTm9kZTtcbiAgY2xhaW06IFNoYXJlZFRwQ2xhaW1Ob2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1BcHByb3Zlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVycz86IENvbm5lY3Rpb248U2hhcmVkU2NlbmFyaW9SZWNlaXZlck5vZGU+O1xuICBzdGF0ZT86IENsYWltQXBwcm92ZXJTdGF0ZTtcbiAgYXBwcm92ZXI/OiBUcEFzc2VtYmx5QXBwcm92ZXJOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlck5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHJlY2VpdmVkPzogRGF0ZVRpbWU7XG4gIGFwcHJvdmFscz86IENvbm5lY3Rpb248U2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVkQXBwcm92YWxOb2RlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZWRBcHByb3ZhbE5vZGVcbiAgZXh0ZW5kcyBOb2RlLFxuICAgIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJDaXBoZXI/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Pzogc3RyaW5nO1xuICBweGs/OiBLZXlOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBsYWluRGF0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHRpbWVSZWFkPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTWFuYWdlbWVudFN0YXRlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBsYXN0Vmlld2VkPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBlbnVtIExpbmtUeXBlRmllbGQge1xuICBIQVJEID0gJ0hBUkQnLFxuICBTT0ZUID0gJ1NPRlQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzZW5kZXI/OiBVc2VyTm9kZTtcbiAgcmVjZWl2ZXI/OiBVc2VyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2VuZGVyU2lnUGJrPzogS2V5Tm9kZTtcbiAgcGxhaW5NZXNzYWdlPzogc3RyaW5nO1xuICBwbGFpbk1lc3NhZ2VKc29uPzogc3RyaW5nO1xuICBzaWduZWRDaXBoZXJNZXNzYWdlPzogc3RyaW5nO1xuICBzaWduZWRDaXBoZXJNZXNzYWdlQ2xlYXJKc29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2tGaWVsZCB7XG4gIGNyZWF0ZWQ/OiBEYXRlVGltZTtcbiAgbW9kaWZpZWQ/OiBEYXRlVGltZTtcbiAgZXhwaXJ5VGltZT86IERhdGVUaW1lO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBzdGF0ZT86IExvY2tTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJDb25maWcge1xuICByZWxheUNvbm5lY3Rpb25NYXhMaW1pdD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -24,4 +24,4 @@ export var RecoveryStatus;
24
24
  RecoveryStatus["NEW_PASSWORD"] = "new-password";
25
25
  RecoveryStatus["OLD_PASSWORD"] = "old-password";
26
26
  })(RecoveryStatus || (RecoveryStatus = {}));
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hdXRoL2F1dGgudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBb0JoRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQUFyRDs7UUFJRSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qix1QkFBdUI7SUFDdkIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FJcEI7QUFFRCxNQUFNLE9BQU8sV0FBVztDQWdCdkI7QUFNRCxNQUFNLE9BQU8sV0FBVztDQUt2QjtBQUVELE1BQU0sT0FBTyxjQUFjO0NBSzFCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FJWDtBQUpELFdBQVksY0FBYztJQUN4QiwrQkFBYSxDQUFBO0lBQ2IsK0NBQTZCLENBQUE7SUFDN0IsK0NBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29nbml0b1VzZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aCc7XG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHtcbiAgSlNPTk9iamVjdCxcbiAgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUsXG4gIFVzZXJEZWxldGVOb2RlLFxufSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgUGFzc0lkcFBhcmFtcywgUGFzc0tleVBhcmFtcyB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgVXNlclBsYW4gfSBmcm9tICcuLi9wbGFuL3BsYW4udHlwZXMnO1xuaW1wb3J0IHsgQ3VycmVudFVzZXJLZXksIE1haW5Db250YWN0Q2FyZCB9IGZyb20gJy4uL3Byb2ZpbGUvcHJvZmlsZS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc0tleUJ1bmRsZSB7XG4gIHBhc3NLZXlQYXJhbXM6IFBhc3NLZXlQYXJhbXM7XG4gIHBhc3NLZXk6IEpXSy5LZXk7XG4gIHBhc3NJZHBQYXJhbXM6IFBhc3NJZHBQYXJhbXM7XG4gIHBhc3NJZHA6IEpXSy5LZXk7XG4gIHBhc3NJZHBWZXJpZmllcjogSldLLktleTtcbiAgd3JhcHBlZFBhc3NJZHBWZXJpZmllclByazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47XG59XG5cbmV4cG9ydCBjbGFzcyBDb2duaXRvQ2hhbGxlbmdlVXNlciBleHRlbmRzIENvZ25pdG9Vc2VyIHtcbiAgcmVjb3ZlcnlTdGF0dXM6IFJlY292ZXJ5U3RhdHVzO1xuICBjaGFsbGVuZ2VOYW1lOiAnU01TX01GQScgfCAnU09GVFdBUkVfVE9LRU5fTUZBJztcbiAgY2hhbGxlbmdlUGFyYW06IEpTT05PYmplY3Q7XG4gIGlzVHBQYXNzd29yZFJlc2V0VXNlciA9IGZhbHNlO1xufVxuXG5leHBvcnQgZW51bSBGZWF0dXJlQWN0aW9uIHtcbiAgLy8gSnVzdCB0aGUgb25lIGZvciBub3dcbiAgQUNDRVNTID0gJ2FjY2VzcycsXG59XG5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlcyB7XG4gIG15VmF1bHQ6IEZlYXR1cmVBY3Rpb25bXTtcbiAgdHBWYXVsdDogRmVhdHVyZUFjdGlvbltdO1xuICBzaGFyZVZhdWx0OiBGZWF0dXJlQWN0aW9uW107XG59XG5cbmV4cG9ydCBjbGFzcyBDdXJyZW50VXNlciB7XG4gIGlkOiBzdHJpbmc7XG4gIHN1Yjogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBjdXJyZW50VXNlcktleTogQ3VycmVudFVzZXJLZXk7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGVtYWlsVmVyaWZpZWQ6IGJvb2xlYW47XG4gIHBob25lOiBzdHJpbmc7XG4gIHBob25lVmVyaWZpZWQ6IGJvb2xlYW47XG4gIGdldEFjY2Vzc0p3dFRva2VuOiAoKSA9PiBzdHJpbmc7XG4gIGNvbnRhY3RDYXJkOiBNYWluQ29udGFjdENhcmQ7XG4gIHVzZXJEZWxldGU/OiBVc2VyRGVsZXRlTm9kZTtcbiAgdXNlclBsYW5zOiBVc2VyUGxhbltdO1xuICBmZWF0dXJlczogRmVhdHVyZXM7XG4gIGhhc1RQVmF1bHRBY2Nlc3M6IGJvb2xlYW47XG4gIHNlc3Npb25FbmNyeXB0aW9uS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlciBleHRlbmRzIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlIHtcbiAgc3ViOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dpblJlc3VsdCB7XG4gIGhhc0NoYWxsZW5nZTogYm9vbGVhbjtcbiAgY2hhbGxlbmdlPzogQ29nbml0b0NoYWxsZW5nZVVzZXI7XG4gIHVzZXI/OiBDdXJyZW50VXNlcjtcbiAgcmVzZXRVc2VyPzogVHBQYXNzd29yZFJlc2V0VXNlck5vZGU7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWdpc3RlclJlc3VsdCB7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBwcmVTaWduVXBUb2tlbjogc3RyaW5nO1xuICB1c2VyU3ViOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFJlY292ZXJ5U3RhdHVzIHtcbiAgTk9ORSA9ICdub25lJyxcbiAgTkVXX1BBU1NXT1JEID0gJ25ldy1wYXNzd29yZCcsXG4gIE9MRF9QQVNTV09SRCA9ICdvbGQtcGFzc3dvcmQnLFxufVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hdXRoL2F1dGgudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBb0JoRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQUFyRDs7UUFJRSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qix1QkFBdUI7SUFDdkIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FJcEI7QUFFRCxNQUFNLE9BQU8sV0FBVztDQWV2QjtBQU1ELE1BQU0sT0FBTyxXQUFXO0NBS3ZCO0FBRUQsTUFBTSxPQUFPLGNBQWM7Q0FLMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3hCLCtCQUFhLENBQUE7SUFDYiwrQ0FBNkIsQ0FBQTtJQUM3QiwrQ0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2duaXRvVXNlciB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQge1xuICBKU09OT2JqZWN0LFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZSxcbiAgVXNlckRlbGV0ZU5vZGUsXG59IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBQYXNzSWRwUGFyYW1zLCBQYXNzS2V5UGFyYW1zIH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBVc2VyUGxhbiB9IGZyb20gJy4uL3BsYW4vcGxhbi50eXBlcyc7XG5pbXBvcnQgeyBDdXJyZW50VXNlcktleSwgTWFpbkNvbnRhY3RDYXJkIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXNzS2V5QnVuZGxlIHtcbiAgcGFzc0tleVBhcmFtczogUGFzc0tleVBhcmFtcztcbiAgcGFzc0tleTogSldLLktleTtcbiAgcGFzc0lkcFBhcmFtczogUGFzc0lkcFBhcmFtcztcbiAgcGFzc0lkcDogSldLLktleTtcbiAgcGFzc0lkcFZlcmlmaWVyOiBKV0suS2V5O1xuICB3cmFwcGVkUGFzc0lkcFZlcmlmaWVyUHJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0Pjtcbn1cblxuZXhwb3J0IGNsYXNzIENvZ25pdG9DaGFsbGVuZ2VVc2VyIGV4dGVuZHMgQ29nbml0b1VzZXIge1xuICByZWNvdmVyeVN0YXR1czogUmVjb3ZlcnlTdGF0dXM7XG4gIGNoYWxsZW5nZU5hbWU6ICdTTVNfTUZBJyB8ICdTT0ZUV0FSRV9UT0tFTl9NRkEnO1xuICBjaGFsbGVuZ2VQYXJhbTogSlNPTk9iamVjdDtcbiAgaXNUcFBhc3N3b3JkUmVzZXRVc2VyID0gZmFsc2U7XG59XG5cbmV4cG9ydCBlbnVtIEZlYXR1cmVBY3Rpb24ge1xuICAvLyBKdXN0IHRoZSBvbmUgZm9yIG5vd1xuICBBQ0NFU1MgPSAnYWNjZXNzJyxcbn1cblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVzIHtcbiAgbXlWYXVsdDogRmVhdHVyZUFjdGlvbltdO1xuICB0cFZhdWx0OiBGZWF0dXJlQWN0aW9uW107XG4gIHNoYXJlVmF1bHQ6IEZlYXR1cmVBY3Rpb25bXTtcbn1cblxuZXhwb3J0IGNsYXNzIEN1cnJlbnRVc2VyIHtcbiAgaWQ6IHN0cmluZztcbiAgc3ViOiBzdHJpbmc7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIGN1cnJlbnRVc2VyS2V5OiBDdXJyZW50VXNlcktleTtcbiAgZW1haWw6IHN0cmluZztcbiAgZW1haWxWZXJpZmllZDogYm9vbGVhbjtcbiAgcGhvbmU6IHN0cmluZztcbiAgcGhvbmVWZXJpZmllZDogYm9vbGVhbjtcbiAgY29udGFjdENhcmQ6IE1haW5Db250YWN0Q2FyZDtcbiAgdXNlckRlbGV0ZT86IFVzZXJEZWxldGVOb2RlO1xuICB1c2VyUGxhbnM6IFVzZXJQbGFuW107XG4gIGZlYXR1cmVzOiBGZWF0dXJlcztcbiAgaGFzVFBWYXVsdEFjY2VzczogYm9vbGVhbjtcbiAgc2Vzc2lvbkVuY3J5cHRpb25LZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyIGV4dGVuZHMgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUge1xuICBzdWI6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIExvZ2luUmVzdWx0IHtcbiAgaGFzQ2hhbGxlbmdlOiBib29sZWFuO1xuICBjaGFsbGVuZ2U/OiBDb2duaXRvQ2hhbGxlbmdlVXNlcjtcbiAgdXNlcj86IEN1cnJlbnRVc2VyO1xuICByZXNldFVzZXI/OiBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyUmVzdWx0IHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHByZVNpZ25VcFRva2VuOiBzdHJpbmc7XG4gIHVzZXJTdWI6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gUmVjb3ZlcnlTdGF0dXMge1xuICBOT05FID0gJ25vbmUnLFxuICBORVdfUEFTU1dPUkQgPSAnbmV3LXBhc3N3b3JkJyxcbiAgT0xEX1BBU1NXT1JEID0gJ29sZC1wYXNzd29yZCcsXG59XG4iXX0=
@@ -41,6 +41,11 @@ import * as i13 from "../tp-password-reset/tp-password-reset.controller";
41
41
  export const initialiseAuth = (authService) => {
42
42
  return () => authService.initialise();
43
43
  };
44
+ export function getAccessJwtToken(auth) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ return (yield auth.currentSession()).getAccessToken().getJwtToken();
47
+ });
48
+ }
44
49
  export class LifeReadyAuthService {
45
50
  constructor(config, auth, keyFactory, keyService, profileService, keyGraphService, passwordService, idleService, lrGraphQL, tpPasswordResetProcessorService, persistService, encryptionService, assemblyController) {
46
51
  this.config = config;
@@ -67,6 +72,11 @@ export class LifeReadyAuthService {
67
72
  Hub.listen('auth', (data) => this.hubSubject.next(data.payload));
68
73
  });
69
74
  }
75
+ getAccessJwtToken() {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ return getAccessJwtToken(this.auth);
78
+ });
79
+ }
70
80
  importPassword(plainPassword) {
71
81
  return this.keyFactory.importPassword(plainPassword);
72
82
  }
@@ -232,10 +242,7 @@ export class LifeReadyAuthService {
232
242
  handlePasswordRecovery(user) {
233
243
  return __awaiter(this, void 0, void 0, function* () {
234
244
  if (user.recoveryStatus !== RecoveryStatus.NONE) {
235
- const jwtToken = user
236
- .getSignInUserSession()
237
- .getAccessToken()
238
- .getJwtToken();
245
+ const jwtToken = yield this.getAccessJwtToken();
239
246
  yield this.passwordService.changePasswordComplete(jwtToken, user.recoveryStatus === RecoveryStatus.NEW_PASSWORD);
240
247
  }
241
248
  });
@@ -294,7 +301,6 @@ export class LifeReadyAuthService {
294
301
  sub: this.getUserAttribute('sub', userAttributes),
295
302
  username: currentUser.username,
296
303
  currentUserKey: currentUser.currentUserKey,
297
- getAccessJwtToken: () => cognitoUser.getSignInUserSession().getAccessToken().getJwtToken(),
298
304
  email: this.getUserAttribute('email', userAttributes),
299
305
  emailVerified: this.getUserAttribute('email_verified', userAttributes) === 'true',
300
306
  phone: this.getUserAttribute('phone_number', userAttributes),
@@ -495,4 +501,4 @@ LifeReadyAuthService.ctorParameters = () => [
495
501
  { type: EncryptionService },
496
502
  { type: TpPasswordResetAssemblyController }
497
503
  ];
498
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsWUFBWSxFQUEyQixNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQs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QUUsQ0FBQyxDQUFDO1lBRWhFLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDaEMsU0FBUyxDQUFDLFNBQVM7aUJBQ2hCLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDakUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FDNUIsR0FBRyxFQUNILFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FDMUMsQ0FDRixDQUNKLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQUE7Ozs7WUExb0JGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQVdJLE1BQU0sU0FBQyxTQUFTO1lBckVaLFNBQVM7WUFVVCxpQkFBaUI7WUFFakIsVUFBVTtZQUtWLGNBQWM7WUFOZCxlQUFlO1lBSWYsZUFBZTtZQU5mLFdBQVc7WUFKWCxnQkFBZ0I7WUFDaEIsK0JBQStCO1lBVS9CLGNBQWM7WUFSZCxpQkFBaUI7WUFlakIsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvZ25pdG9Vc2VyIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgnO1xuaW1wb3J0IHsgQXV0aENsYXNzIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgvbGliLWVzbS9BdXRoJztcbmltcG9ydCB7IEh1YiB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9jb3JlJztcbmltcG9ydCB7IENvZ25pdG9Vc2VyQXR0cmlidXRlIH0gZnJvbSAnYW1hem9uLWNvZ25pdG8taWRlbnRpdHktanMnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExyR3JhcGhRTFNlcnZpY2UsIExyTXV0YXRpb24gfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBUcFBhc3N3b3JkUmVzZXRQcm9jZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL3F1ZXJ5LXByb2Nlc3Nvci90cC1wYXNzd29yZC1yZXNldC1wcm9jZXNzb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBUcENsYWltU3RhdGUsIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWRsZVNlcnZpY2UgfSBmcm9tICcuLi9pZGxlL2lkbGUuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IFBhc3NJZHBQYXJhbXMgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IExpZmVSZWFkeUNvbmZpZywgTFJfQ09ORklHIH0gZnJvbSAnLi4vbGlmZS1yZWFkeS5jb25maWcnO1xuaW1wb3J0IHsgUGFzc3dvcmRTZXJ2aWNlIH0gZnJvbSAnLi4vcGFzc3dvcmQvcGFzc3dvcmQuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzaXN0U2VydmljZSB9IGZyb20gJy4uL3BlcnNpc3QvcGVyc2lzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFzc3dvcmRDaGFuZ2VTdGF0dXMgfSBmcm9tICcuLi9wcm9maWxlL3Byb2ZpbGUudHlwZXMnO1xuaW1wb3J0IHtcbiAgVFBfUEFTU1dPUkRfUkVTRVRfQ0xJRU5UX05PTkNFX0xFTkdUSCxcbiAgVFBfUEFTU1dPUkRfUkVTRVRfVVNFUk5BTUVfU1VGRklYLFxufSBmcm9tICcuLi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC5jb25zdGFudHMnO1xuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0QXNzZW1ibHlDb250cm9sbGVyIH0gZnJvbSAnLi4vdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQuY29udHJvbGxlcic7XG5pbXBvcnQge1xuICBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uLFxuICBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbn0gZnJvbSAnLi4vdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQuZ3FsJztcbmltcG9ydCB7IFRwUGFzc3dvcmRSZXNldFVzZXJRdWVyeSB9IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LnByaXZhdGUuZ3FsJztcbmltcG9ydCB7XG4gIExyQmFkUmVxdWVzdEV4Y2VwdGlvbixcbiAgTHJCYWRTdGF0ZUV4Y2VwdGlvbixcbiAgTHJDb25jdXJyZW50QWNjZXNzRXhjZXB0aW9uLFxuICBMckV4Y2VwdGlvbixcbn0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IFNldFNlc3Npb25FbmNyeXB0aW9uS2V5TXV0YXRpb24gfSBmcm9tICcuL2F1dGguZ3FsJztcbmltcG9ydCB7XG4gIENvZ25pdG9DaGFsbGVuZ2VVc2VyLFxuICBDdXJyZW50VXNlcixcbiAgRmVhdHVyZXMsXG4gIExvZ2luUmVzdWx0LFxuICBSZWNvdmVyeVN0YXR1cyxcbiAgVHBQYXNzd29yZFJlc2V0VXNlcixcbn0gZnJvbSAnLi9hdXRoLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxpc2VBdXRoID0gKGF1dGhTZXJ2aWNlOiBMaWZlUmVhZHlBdXRoU2VydmljZSkgPT4ge1xuICByZXR1cm4gKCkgPT4gYXV0aFNlcnZpY2UuaW5pdGlhbGlzZSgpO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbk9wdGlvbnMge1xuICB0cFBhc3N3b3JkUmVzZXRBdXRvQ29tcGxldGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBMb2dvdXRMaXN0ZW5lciA9ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGlmZVJlYWR5QXV0aFNlcnZpY2Uge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcml2YXRlIGh1YlN1YmplY3Q6IFJlcGxheVN1YmplY3Q8YW55PiA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG4gIHByaXZhdGUgY3VycmVudFVzZXI6IEN1cnJlbnRVc2VyO1xuICBwcml2YXRlIGN1cnJlbnRSZXNldFVzZXI6IFRwUGFzc3dvcmRSZXNldFVzZXI7XG4gIC8vIENvdWxkIHVzZSByeGpzIG9ic2VydmFibGVzIGhlcmUuIEJ1dCB0cnlpbmcgdG8gaGF2ZSBrYy1jbGllbnQgdXNlIGFzIGxpdHRsZSBhbmd1bGFyXG4gIC8vIGZlYXR1cmVzIGFzIHBvc3NpYmxlLiBSeGpzIGlzIG5vdCB1c2VkIGFueXdoZXJlIGVsc2UgaW4ga2MtY2xpZW50LlxuICBwcml2YXRlIGxvZ291dExpc3RlbmVycyA9IG5ldyBTZXQ8TG9nb3V0TGlzdGVuZXI+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMUl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoQ2xhc3MsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9maWxlU2VydmljZTogUHJvZmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaFNlcnZpY2U6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIHBhc3N3b3JkU2VydmljZTogUGFzc3dvcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaWRsZVNlcnZpY2U6IElkbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbHJHcmFwaFFMOiBMckdyYXBoUUxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZTogVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZSxcbiAgICBwcml2YXRlIHBlcnNpc3RTZXJ2aWNlOiBQZXJzaXN0U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFzc2VtYmx5Q29udHJvbGxlcjogVHBQYXNzd29yZFJlc2V0QXNzZW1ibHlDb250cm9sbGVyXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGlzZSgpIHtcbiAgICBIdWIubGlzdGVuKCdhdXRoJywgKGRhdGEpID0+IHRoaXMuaHViU3ViamVjdC5uZXh0KGRhdGEucGF5bG9hZCkpO1xuICB9XG5cbiAgaW1wb3J0UGFzc3dvcmQocGxhaW5QYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxDcnlwdG9LZXk+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlGYWN0b3J5LmltcG9ydFBhc3N3b3JkKHBsYWluUGFzc3dvcmQpO1xuICB9XG5cbiAgYWRkTG9nb3V0TGlzdGVuZXIoY2FsbGJhY2s6IExvZ291dExpc3RlbmVyKSB7XG4gICAgdGhpcy5sb2dvdXRMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlbW92ZUxvZ291dExpc3RlbmVyKGNhbGxiYWNrOiBMb2dvdXRMaXN0ZW5lcikge1xuICAgIHRoaXMubG9nb3V0TGlzdGVuZXJzLmRlbGV0ZShjYWxsYmFjayk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZ2luSWRwSW1wbChcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5LFxuICAgIHBhc3NJZHBQYXJhbXM6IFBhc3NJZHBQYXJhbXMsXG4gICAgcmVjb3ZlcnlTdGF0dXM6IFJlY292ZXJ5U3RhdHVzXG4gICk6IFByb21pc2U8Q29nbml0b0NoYWxsZW5nZVVzZXI+IHtcbiAgICBjb25zdCBwYXNzSWRwUmVzdWx0ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NJZHAoe1xuICAgICAgcGFzc3dvcmQsXG4gICAgICAuLi5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIFVzZSB0aGUgZGVyaXZlZCBwYXNzd29yZCB0byBzaWduaW4gd2l0aCBjb2duaXRvXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMuYXV0aC5zaWduSW4oXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKHBhc3NJZHBSZXN1bHQuandrKVxuICAgICk7XG5cbiAgICB1c2VyLnJlY292ZXJ5U3RhdHVzID0gcmVjb3ZlcnlTdGF0dXM7XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9naW5JZHAoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleVxuICApOiBQcm9taXNlPENvZ25pdG9DaGFsbGVuZ2VVc2VyPiB7XG4gICAgLy8gRG93bmxvYWQgdGhlIHNhbHQgbmVlZGVkIHRvIGRlcml2ZSB0aGUgUGFzc0lkcFxuICAgIGNvbnN0IHBhc3NJZHBBcGlSZXN1bHQgPSBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldFBhc3NJZHBQYXJhbXMoXG4gICAgICBlbWFpbE9yUGhvbmVcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgcGFzc0lkcEFwaVJlc3VsdC5wYXNzd29yZENoYW5nZVN0YXR1cyA9PT0gUGFzc3dvcmRDaGFuZ2VTdGF0dXMuSW5Qcm9ncmVzc1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IExyQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbignQSBwYXNzd29yZCBjaGFuZ2UgaXMgaW4gcHJvZ3Jlc3MnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwYXNzSWRwQXBpUmVzdWx0LnBhc3N3b3JkQ2hhbmdlU3RhdHVzID09PSBQYXNzd29yZENoYW5nZVN0YXR1cy5SZWNvdmVyeVxuICAgICkge1xuICAgICAgY29uc29sZS5sb2coJ0luIHJlY292ZXJ5IG1vZGUuJyk7XG4gICAgICAvLyBMZXQncyBzYXkgd2UgZG9uJ3Qga25vdyBpZiB0aGUgcGFzc3dvcmQgaXMgdGhlIG5ldyBvbmUgb3IgdGhlIG9sZCBvbmUuIFdlIGp1c3QgaGF2ZSB0byB0cnkgYm90aC5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvZ2luSWRwSW1wbChcbiAgICAgICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgcGFzc0lkcEFwaVJlc3VsdC5uZXdQYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRFxuICAgICAgICApO1xuICAgICAgICAvLyBOZXcgcGFzc3dvcmQgd29ya2VkLiBMZXQncyBzZXQgdG8gdGhlIGN1cnJlbnQgcGFzc3dvcmRcblxuICAgICAgICAvLyAtLVBvdGVudGlhbCBGYWlsdXJlIFBvaW50IDEtLVxuICAgICAgICAvLyBpZiBjaGFuZ2VQYXNzd29yZENvbXBsZXRlKCkgZG9lc24ndCBnZXQgY2FsbGVkLCB0aGVuIGl0IHNob3VsZCByZW1haW5cblxuICAgICAgICBjb25zb2xlLmxvZygnTmV3IHBhc3N3b3JkIHdvcmtzIScpO1xuXG4gICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSnVzdCBidWJibGUgdXAgYW55IG90aGVyIHR5cGUgb2YgZXJyb3IuXG4gICAgICAgIGlmIChlcnJvci5jb2RlICE9PSAnTm90QXV0aG9yaXplZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICAvLyBwYXNzLCB0cnkgYWdhaW4gYXNzdW1pbmcgaXQncyB0aGUgb2xkIHBhc3N3b3JkXG4gICAgICB9XG5cbiAgICAgIC8vIE5vdyBhc3N1bWUgaXQncyB0aGUgcHJldmlvdXMgcGFzc3dvcmQuIEFueSBleGNlcHRpb24gaXMgYWxsb3dlZCB0byBidWJibGUgdXAuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgZW1haWxPclBob25lLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICAgICAgUmVjb3ZlcnlTdGF0dXMuT0xEX1BBU1NXT1JEXG4gICAgICAgICk7XG4gICAgICAgIC8vIE9sZCBwYXNzd29yZCB3b3JrZWQuXG4gICAgICAgIGNvbnNvbGUubG9nKCdPbGQgcGFzc3dvcmQgd29ya3MhJyk7XG5cbiAgICAgICAgcmV0dXJuIHVzZXI7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBKdXN0IGJ1YmJsZSB1cCBhbnkgb3RoZXIgdHlwZSBvZiBlcnJvci5cbiAgICAgICAgdGhyb3cgZXJyb3IuY29kZSA9PT0gJ05vdEF1dGhvcml6ZWRFeGNlcHRpb24nXG4gICAgICAgICAgPyBuZXcgTHJCYWRSZXF1ZXN0RXhjZXB0aW9uKFxuICAgICAgICAgICAgICAnVGhlIHBhc3N3b3JkIGNoYW5nZSByZXF1ZXN0IHdhcyBpbnRlcnJ1cHRlZCwgcGxlYXNlIHRyeSB0byBsb2dpbiB3aXRoIGJvdGggeW91ciBuZXcgYW5kIG9sZCBwYXNzd29yZCdcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGVycm9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyeSBhZ2FpbnN0IGFzIHRoZSBUUCBwYXNzd29yZCByZXNldCBhY2NvdW50XG4gICAgaWYgKHBhc3NJZHBBcGlSZXN1bHQudHBQYXNzd29yZFJlc2V0KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUUCBwYXNzd29yZCByZXNldCBpcyBpbiBwcm9jZXNzLiBXZSBuZWVkIHRvIHRyeSB0aGUgcGFzc3dvcmQgYWdhaW5zdCBib3RoXG4gICAgICAgIC8vIG9yaWdpbmFsIGFjY291bnQgYW5kIHRoZSBuZXcgcmVzZXQgYWNjb3VudC5cbiAgICAgICAgY29uc3QgcmVzZXQgPSBwYXNzSWRwQXBpUmVzdWx0LnRwUGFzc3dvcmRSZXNldDtcbiAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgcmVzZXQucmVzZXRVc2VybmFtZSxcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICByZXNldC5wYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5PTkVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0LmlzVHBQYXNzd29yZFJlc2V0VXNlciA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBjb250aW51ZSwgdHJ5IGFnYWluIGFzIHJlZ3VsYXIgdXNlci5cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMb2dpbiBhcyByZWd1bGFyIHVzZXJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICBwYXNzd29yZCxcbiAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICBSZWNvdmVyeVN0YXR1cy5OT05FXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTZXNzaW9uRW5jcnlwdGlvbktleSgpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICBpZiAoIWlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnN0IG1zZyA9XG4gICAgICAgICAgJ1lvdSBzaG91bGQgbm90IHNldCBkaXNhYmxlU2Vzc2lvbkVuY3J5cHRpb25LZXk9VHJ1ZSBpbiBtb2RlIHByb2QuIEl0IGRlZmF1bHRzIHRvIGZhbHNlLic7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IobXNnKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1lvdSBoYXZlIHNldCBkaXNhYmxlU2Vzc2lvbkVuY3J5cHRpb25LZXk9VHJ1ZS4gTWFrZSBzdXJlIG5vdCB0byBkbyB0aGlzIGluIHByb2QgbW9kZS4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNldCB0aGUgc2Vzc2lvbiBrZXkgdG8gYSBuZXcgZW5jcnlwdGlvbiBrZXkgZm9yIHRoaXMgc2Vzc2lvblxuICAgICAgY29uc3Qgc2Vzc2lvbkVuY3J5cHRpb25LZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgICAgbmV3IExyTXV0YXRpb24oe1xuICAgICAgICAgIG11dGF0aW9uOiBTZXRTZXNzaW9uRW5jcnlwdGlvbktleU11dGF0aW9uLFxuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgc2Vzc2lvbkVuY3J5cHRpb25LZXk6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5LnRvSlNPTih0cnVlKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIGluY2x1ZGVLZXlHcmFwaDogZmFsc2UsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIHRoaXMucGVyc2lzdFNlcnZpY2Uuc2V0U2VydmVyU2Vzc2lvbkVuY3J5cHRpb25LZXkoc2Vzc2lvbkVuY3J5cHRpb25LZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVQb3N0QXV0aChjb2duaXRvVXNlcjogQ29nbml0b0NoYWxsZW5nZVVzZXIpIHtcbiAgICBhd2FpdCB0aGlzLmhhbmRsZVBhc3N3b3JkUmVjb3ZlcnkoY29nbml0b1VzZXIpO1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlU2Vzc2lvbkVuY3J5cHRpb25LZXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbihcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5LFxuICAgIHsgdHBQYXNzd29yZFJlc2V0QXV0b0NvbXBsZXRlID0gdHJ1ZSB9OiBMb2dpbk9wdGlvbnMgPSB7fVxuICApIHtcbiAgICBsZXQgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luSW1wbChlbWFpbE9yUGhvbmUsIHBhc3N3b3JkKTtcblxuICAgIGlmIChcbiAgICAgIHRwUGFzc3dvcmRSZXNldEF1dG9Db21wbGV0ZSAmJlxuICAgICAgbG9naW5SZXN1bHQucmVzZXRVc2VyPy5zdGF0ZSA9PT0gVHBDbGFpbVN0YXRlLkFQUFJPVkVEXG4gICAgKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbXBsZXRlUmVxdWVzdChwYXNzd29yZCk7XG4gICAgICBsb2dpblJlc3VsdCA9IGF3YWl0IHRoaXMubG9naW5JbXBsKGVtYWlsT3JQaG9uZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIHJldHVybiBsb2dpblJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbkltcGwoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleVxuICApOiBQcm9taXNlPExvZ2luUmVzdWx0PiB7XG4gICAgYXdhaXQgdGhpcy5sb2dvdXQoKTtcbiAgICBjb25zdCBjb2duaXRvVXNlciA9IGF3YWl0IHRoaXMubG9naW5JZHAoZW1haWxPclBob25lLCBwYXNzd29yZCk7XG5cbiAgICAvLyB0b2RvOiBNZWV0IE1GQSBjaGFsbGVuZ2VzLlxuICAgIGlmIChbJ1NNU19NRkEnLCAnU09GVFdBUkVfVE9LRU5fTUZBJ10uaW5jbHVkZXMoY29nbml0b1VzZXIuY2hhbGxlbmdlTmFtZSkpIHtcbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogdHJ1ZSwgY2hhbGxlbmdlOiBjb2duaXRvVXNlciB9O1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUG9zdEF1dGgoY29nbml0b1VzZXIpO1xuXG4gICAgaWYgKGNvZ25pdG9Vc2VyLmlzVHBQYXNzd29yZFJlc2V0VXNlcikge1xuICAgICAgLy8gQXNzdW1pbmcgdGhlcmUgaXMgbm8gTUZBIG9uIHRoZSBUUCByZXNldCB1c2VyLlxuICAgICAgY29uc3QgcmVzZXRVc2VyID0gYXdhaXQgdGhpcy5sb2FkUmVzZXRVc2VyKHBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogZmFsc2UsIHJlc2V0VXNlciB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihjb2duaXRvVXNlciwgcGFzc3dvcmQpO1xuICAgICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5zdGFydCgpOyAvLyBSdW4gaWRsZVNlcnZpY2Ugd2hlbmV2ZXIgdXNlciBpcyBsb2dnZWQgaW4uXG4gICAgICByZXR1cm4geyBoYXNDaGFsbGVuZ2U6IGZhbHNlLCB1c2VyIH07XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETyA8QVo+IFdlIG5lZWQgdG8gaGFuZGxlIHRoZSBpc1RwUGFzc3dvcmRSZXNldFVzZXI9VHJ1ZSBjYXNlIGhlcmUgYWZ0ZXIgTUZBIGFzIHdlbGwuXG4gIHB1YmxpYyBhc3luYyB2ZXJpZnlMb2dpbihcbiAgICBjaGFsbGVuZ2U6IENvZ25pdG9DaGFsbGVuZ2VVc2VyLFxuICAgIHBhc3N3b3JkOiBDcnlwdG9LZXksXG4gICAgcmVtZW1iZXJNZTogYm9vbGVhbixcbiAgICBjb2RlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGF3YWl0IHRoaXMuYXV0aC5jb25maXJtU2lnbkluKGNoYWxsZW5nZSwgY29kZSwgY2hhbGxlbmdlLmNoYWxsZW5nZU5hbWUpO1xuXG4gICAgLy8gVE9ETzogdGhpcy5hdXRoLmNvbmZpcm1TaWduSW4oKSBjb3VsZCByZXR1cm4gYW5vdGhlciBjaGFsbGVuZ2UuXG5cbiAgICBjb25zdCBjb2duaXRvVXNlcjogQ29nbml0b1VzZXIgPSBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmhhbmRsZVBvc3RBdXRoKGNoYWxsZW5nZSk7XG5cbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihjb2duaXRvVXNlciwgcGFzc3dvcmQpO1xuXG4gICAgaWYgKHJlbWVtYmVyTWUpIHtcbiAgICAgIGNvZ25pdG9Vc2VyLnNldERldmljZVN0YXR1c1JlbWVtYmVyZWQoe1xuICAgICAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0sXG4gICAgICAgIG9uRmFpbHVyZTogKGUpID0+IGNvbnNvbGUuZXJyb3IoZSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVBhc3N3b3JkUmVjb3ZlcnkodXNlcjogQ29nbml0b0NoYWxsZW5nZVVzZXIpIHtcbiAgICBpZiAodXNlci5yZWNvdmVyeVN0YXR1cyAhPT0gUmVjb3ZlcnlTdGF0dXMuTk9ORSkge1xuICAgICAgY29uc3Qgand0VG9rZW4gPSB1c2VyXG4gICAgICAgIC5nZXRTaWduSW5Vc2VyU2Vzc2lvbigpXG4gICAgICAgIC5nZXRBY2Nlc3NUb2tlbigpXG4gICAgICAgIC5nZXRKd3RUb2tlbigpO1xuICAgICAgYXdhaXQgdGhpcy5wYXNzd29yZFNlcnZpY2UuY2hhbmdlUGFzc3dvcmRDb21wbGV0ZShcbiAgICAgICAgand0VG9rZW4sXG4gICAgICAgIHVzZXIucmVjb3ZlcnlTdGF0dXMgPT09IFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRVc2VyT3JSZXNldFVzZXIoXG4gICAgcmVsb2FkID0gZmFsc2VcbiAgKTogUHJvbWlzZTxDdXJyZW50VXNlciB8IFRwUGFzc3dvcmRSZXNldFVzZXI+IHtcbiAgICBjb25zdCBjb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcblxuICAgIGlmIChjb2duaXRvVXNlci5nZXRVc2VybmFtZSgpLmVuZHNXaXRoKFRQX1BBU1NXT1JEX1JFU0VUX1VTRVJOQU1FX1NVRkZJWCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlc2V0VXNlcihyZWxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRVc2VyKHJlbG9hZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0UmVzZXRVc2VyKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyPiB7XG4gICAgaWYgKCFyZWxvYWQgJiYgdGhpcy5jdXJyZW50UmVzZXRVc2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50UmVzZXRVc2VyO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFJlc2V0VXNlciA9IGF3YWl0IHRoaXMubG9hZFJlc2V0VXNlcigpO1xuXG4gICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5zdGFydCgpOyAvLyBSdW4gaWRsZVNlcnZpY2Ugd2hlbmV2ZXIgdXNlciBpcyBsb2dnZWQgaW4uXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UmVzZXRVc2VyO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXNlcihyZWxvYWQgPSBmYWxzZSk6IFByb21pc2U8Q3VycmVudFVzZXI+IHtcbiAgICBpZiAoIXJlbG9hZCAmJiB0aGlzLmN1cnJlbnRVc2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlcjtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50VXNlciA9IGF3YWl0IHRoaXMubG9hZFVzZXIoXG4gICAgICBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKClcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKCdTdGFydGluZyBpZGxlIHNlcnZpY2UuJyk7XG4gICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5zdGFydCgpOyAvLyBSdW4gaWRsZVNlcnZpY2Ugd2hlbmV2ZXIgdXNlciBpcyBsb2dnZWQgaW4uXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFVzZXI7XG4gIH1cblxuICBwcml2YXRlIG1hcFRQVmF1bHRBY2Nlc3MoZmVhdHVyZXM/OiBGZWF0dXJlcyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRwVmF1bHRGZWF0dXJlID0gZmVhdHVyZXM/LnRwVmF1bHQ7XG4gICAgcmV0dXJuIChcbiAgICAgIHRwVmF1bHRGZWF0dXJlPy5sZW5ndGggPiAwICYmXG4gICAgICB0cFZhdWx0RmVhdHVyZS5zb21lKChmZWF0dXJlKSA9PiBmZWF0dXJlLnRvVXBwZXJDYXNlKCkgPT09ICdBQ0NFU1MnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRVc2VyKFxuICAgIGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlcixcbiAgICBwYXNzd29yZD86IENyeXB0b0tleVxuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyPiB7XG4gICAgY29uc3QgeyBjdXJyZW50VXNlciwgY29udGFjdENhcmQsIHVzZXJQbGFucyB9ID1cbiAgICAgIGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKTtcblxuICAgIGlmIChjdXJyZW50VXNlci5zZXNzaW9uRW5jcnlwdGlvbktleSkge1xuICAgICAgdGhpcy5wZXJzaXN0U2VydmljZS5zZXRTZXJ2ZXJTZXNzaW9uRW5jcnlwdGlvbktleShcbiAgICAgICAgYXdhaXQgSldLLmFzS2V5KGN1cnJlbnRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyQXR0cmlidXRlcyA9IGF3YWl0IHRoaXMuYXV0aC51c2VyQXR0cmlidXRlcyhjb2duaXRvVXNlcik7XG5cbiAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHBhc3NLZXkgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzS2V5KHtcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAuLi5jdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5wYXNzS2V5LnBhc3NLZXlQYXJhbXMsXG4gICAgICAgIH0pXG4gICAgICApLmp3aztcblxuICAgICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5wZXJzaXN0TWFzdGVyS2V5KFxuICAgICAgICBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS51bndyYXBXaXRoUGFzc0tleShcbiAgICAgICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5wYXNzS2V5LmlkLFxuICAgICAgICAgIHBhc3NLZXksXG4gICAgICAgICAgY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkubWFzdGVyS2V5LmlkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnBvcHVsYXRlS2V5cyhjdXJyZW50VXNlci5jdXJyZW50VXNlcktleSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGN1cnJlbnRVc2VyLmlkLFxuICAgICAgc3ViOiB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ3N1YicsIHVzZXJBdHRyaWJ1dGVzKSxcbiAgICAgIHVzZXJuYW1lOiBjdXJyZW50VXNlci51c2VybmFtZSxcbiAgICAgIGN1cnJlbnRVc2VyS2V5OiBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleSxcbiAgICAgIGdldEFjY2Vzc0p3dFRva2VuOiAoKSA9PlxuICAgICAgICBjb2duaXRvVXNlci5nZXRTaWduSW5Vc2VyU2Vzc2lvbigpLmdldEFjY2Vzc1Rva2VuKCkuZ2V0Snd0VG9rZW4oKSxcbiAgICAgIGVtYWlsOiB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ2VtYWlsJywgdXNlckF0dHJpYnV0ZXMpLFxuICAgICAgZW1haWxWZXJpZmllZDpcbiAgICAgICAgdGhpcy5nZXRVc2VyQXR0cmlidXRlKCdlbWFpbF92ZXJpZmllZCcsIHVzZXJBdHRyaWJ1dGVzKSA9PT0gJ3RydWUnLFxuICAgICAgcGhvbmU6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgncGhvbmVfbnVtYmVyJywgdXNlckF0dHJpYnV0ZXMpLFxuICAgICAgcGhvbmVWZXJpZmllZDpcbiAgICAgICAgdGhpcy5nZXRVc2VyQXR0cmlidXRlKCdwaG9uZV9udW1iZXJfdmVyaWZpZWQnLCB1c2VyQXR0cmlidXRlcykgPT09XG4gICAgICAgICd0cnVlJyxcbiAgICAgIGNvbnRhY3RDYXJkOiB7XG4gICAgICAgIC4uLihhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmRlY3J5cHRDb250YWN0Q2FyZChjb250YWN0Q2FyZCkpLFxuICAgICAgfSxcbiAgICAgIHVzZXJEZWxldGU6IGN1cnJlbnRVc2VyLnVzZXJEZWxldGUsXG4gICAgICB1c2VyUGxhbnMsXG4gICAgICBoYXNUUFZhdWx0QWNjZXNzOiB0aGlzLm1hcFRQVmF1bHRBY2Nlc3MoY3VycmVudFVzZXIuZmVhdHVyZXMpLFxuICAgICAgZmVhdHVyZXM6IGN1cnJlbnRVc2VyLmZlYXR1cmVzLFxuICAgICAgc2Vzc2lvbkVuY3J5cHRpb25LZXk6IGN1cnJlbnRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgd2F0Y2hBdXRoKCkge1xuICAgIHJldHVybiB0aGlzLmh1YlN1YmplY3Q7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIE5vdGlmeSBhbGwgbGlzdGVuZXJzIHRvIGNsZWFuIHVwLlxuICAgIGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLmxvZ291dExpc3RlbmVyc10ubWFwKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSkpO1xuXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IG51bGw7XG4gICAgdGhpcy5rZXlTZXJ2aWNlLnB1cmdlS2V5cygpO1xuICAgIHRoaXMua2V5R3JhcGhTZXJ2aWNlLnB1cmdlS2V5cygpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuYXV0aC5zaWduT3V0KCksIHRoaXMucHJvZmlsZVNlcnZpY2Uuc2lnbk91dCgpXSk7XG4gIH1cblxuICBwcml2YXRlIGdldFVzZXJBdHRyaWJ1dGUoXG4gICAgYXR0cmlidXRlTmFtZTogc3RyaW5nLFxuICAgIHVzZXJBdHRyaWJ1dGVzOiBDb2duaXRvVXNlckF0dHJpYnV0ZVtdXG4gICkge1xuICAgIGNvbnN0IHVzZXJBdHRyaWJ1dGUgPSB1c2VyQXR0cmlidXRlcy5maW5kKFxuICAgICAgKHgpID0+IHguZ2V0TmFtZSgpID09PSBhdHRyaWJ1dGVOYW1lXG4gICAgKTtcblxuICAgIHJldHVybiB1c2VyQXR0cmlidXRlID8gdXNlckF0dHJpYnV0ZS5nZXRWYWx1ZSgpIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2FkUmVzZXRVc2VyKFxuICAgIHBhc3N3b3JkPzogQ3J5cHRvS2V5XG4gICk6IFByb21pc2U8VHBQYXNzd29yZFJlc2V0VXNlcj4ge1xuICAgIGNvbnN0IHsgdHBQYXNzd29yZFJlc2V0VXNlcjogcmVzZXRVc2VyIH0gPSBhd2FpdCB0aGlzLmxyR3JhcGhRTC5xdWVyeSh7XG4gICAgICBxdWVyeTogVHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5LFxuICAgIH0pO1xuXG4gICAgaWYgKHJlc2V0VXNlci5zZXNzaW9uRW5jcnlwdGlvbktleSkge1xuICAgICAgdGhpcy5wZXJzaXN0U2VydmljZS5zZXRTZXJ2ZXJTZXNzaW9uRW5jcnlwdGlvbktleShcbiAgICAgICAgYXdhaXQgSldLLmFzS2V5KHJlc2V0VXNlci5zZXNzaW9uRW5jcnlwdGlvbktleSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHRoZSBrZXlzXG4gICAgaWYgKHBhc3N3b3JkKSB7XG4gICAgICBjb25zdCBwYXNzS2V5ID0gKFxuICAgICAgICBhd2FpdCB0aGlzLmtleUZhY3RvcnkuZGVyaXZlUGFzc0tleSh7XG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgLi4ucmVzZXRVc2VyLnBhc3NLZXkucGFzc0tleVBhcmFtcyxcbiAgICAgICAgfSlcbiAgICAgICkuandrO1xuXG4gICAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnBlcnNpc3RNYXN0ZXJLZXkoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnVud3JhcFdpdGhQYXNzS2V5KFxuICAgICAgICAgIHJlc2V0VXNlci5wYXNzS2V5LmlkLFxuICAgICAgICAgIHBhc3NLZXksXG4gICAgICAgICAgcmVzZXRVc2VyLm1hc3RlcktleS5pZFxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMua2V5U2VydmljZS5wb3B1bGF0ZUtleXMoe1xuICAgICAgcGFzc0tleToge1xuICAgICAgICBpZDogcmVzZXRVc2VyLnBhc3NLZXkuaWQsXG4gICAgICB9LFxuICAgICAgbWFzdGVyS2V5OiB7XG4gICAgICAgIGlkOiByZXNldFVzZXIubWFzdGVyS2V5LmlkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHVzZXJBdHRyaWJ1dGVzID0gYXdhaXQgdGhpcy5hdXRoLnVzZXJBdHRyaWJ1dGVzKFxuICAgICAgYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpXG4gICAgKTtcbiAgICBjb25zdCBzdWIgPSB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ3N1YicsIHVzZXJBdHRyaWJ1dGVzKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi4oYXdhaXQgdGhpcy50cFBhc3N3b3JkUmVzZXRQcm9jZXNzb3JTZXJ2aWNlLnByb2Nlc3NUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZShcbiAgICAgICAgcmVzZXRVc2VyXG4gICAgICApKSxcbiAgICAgIHN1YixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlZnJlc2hBY2Nlc3NUb2tlbigpIHtcbiAgICBjb25zdCBjb2duaXRvVXNlcjogQ29nbml0b1VzZXIgPSBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKCk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gY29nbml0b1VzZXIuZ2V0U2lnbkluVXNlclNlc3Npb24oKS5nZXRSZWZyZXNoVG9rZW4oKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb2duaXRvVXNlci5yZWZyZXNoU2Vzc2lvbihyZWZyZXNoVG9rZW4sIChlcnIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlZnJlc2hpbmcgdG9rZW46ICcsIGVycik7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1Rva2VuIHJlZnJlc2ggY29tcGxldGUnKTtcbiAgICAgICAgICByZXNvbHZlKDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlUmVxdWVzdChuZXdQYXNzd29yZDogQ3J5cHRvS2V5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVzZXRVc2VyID0gYXdhaXQgdGhpcy5nZXRSZXNldFVzZXIodHJ1ZSk7XG5cbiAgICBpZiAocmVzZXRVc2VyLnN0YXRlICE9PSBUcENsYWltU3RhdGUuQVBQUk9WRUQpIHtcbiAgICAgIHRocm93IG5ldyBMckJhZFN0YXRlRXhjZXB0aW9uKFxuICAgICAgICAnUGFzc3dvcmQgcmVzZXQgcmVxdWVzdCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFByZXBhcmUgYWxsIG1hdGVyaWFscyB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIGVycm9ycy5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGFzc2VtYmx5S2V5ID0gYXdhaXQgdGhpcy5yZWNvdmVyQXNzZW1ibHlLZXkocmVzZXRVc2VyKTtcblxuICAgIGNvbnN0IHsgcm9vdEtleSB9ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgYXNzZW1ibHlLZXksXG4gICAgICByZXNldFVzZXIuYXNzZW1ibHlDaXBoZXJEYXRhXG4gICAgKTtcblxuICAgIC8vIE1ha2luZyBzdXJlIGl0J3MgYSB2YWxpZCBrZXkuXG4gICAgY29uc3Qgcm9vdEtleUp3ayA9IGF3YWl0IEpXSy5hc0tleShyb290S2V5KTtcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLmdldEtleShyZXNldFVzZXIubWFzdGVyS2V5LmlkKTtcblxuICAgIGNvbnN0IG1hc3RlcktleVdyYXBwZWRSb290S2V5ID1cbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICBtYXN0ZXJLZXkuandrLFxuICAgICAgICByb290S2V5SndrLnRvSlNPTih0cnVlKVxuICAgICAgKTtcblxuICAgIC8vIFRoZSBuZXcgcGFzc3dvcmRcbiAgICBjb25zdCBuZXdQYXNzSWRwUmVzdWx0ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NJZHAoe1xuICAgICAgcGFzc3dvcmQ6IG5ld1Bhc3N3b3JkLFxuICAgICAgLi4ucmVzZXRVc2VyLnBhc3NLZXkucGFzc0lkcFBhcmFtcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IG5ld0lkcFBhc3N3b3JkID0gdGhpcy5wYXNzd29yZFNlcnZpY2UuZ2V0UGFzc0lkcFN0cmluZyhcbiAgICAgIG5ld1Bhc3NJZHBSZXN1bHQuandrXG4gICAgKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gR2V0IGFzc2VtYmx5IGtleSBjaGFsbGVuZ2VcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGNoYWxsZW5nZSA9IChcbiAgICAgIGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFxuICAgICAgICBuZXcgTHJNdXRhdGlvbih7XG4gICAgICAgICAgbXV0YXRpb246IENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7fSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIGluY2x1ZGVLZXlHcmFwaDogZmFsc2UsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICApLmNyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2UuY2hhbGxlbmdlO1xuXG4gICAgLy8gU2lnbiB0aGUgY2hhbGxlbmdlXG4gICAgLy8gR2VuZXJhdGUgYSBjbGllbnQgc2lkZSBub25jZSB0aGF0J3Mgbm8gaW4gdGhlIHNlcnZlcidzIGNvbnRyb2wuXG4gICAgY2hhbGxlbmdlLmNsaWVudE5vbmNlID0gdGhpcy5rZXlGYWN0b3J5LnJhbmRvbVN0cmluZyhcbiAgICAgIFRQX1BBU1NXT1JEX1JFU0VUX0NMSUVOVF9OT05DRV9MRU5HVEhcbiAgICApO1xuXG4gICAgY29uc3QgYXNzZW1ibHlLZXlWZXJpZmllclByayA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIGFzc2VtYmx5S2V5LFxuICAgICAgcmVzZXRVc2VyLndyYXBwZWRBc3NlbWJseUtleVZlcmlmaWVyUHJrXG4gICAgKTtcbiAgICBjb25zdCBzaWduZWRDaGFsbGVuZ2UgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oXG4gICAgICBhc3NlbWJseUtleVZlcmlmaWVyUHJrLFxuICAgICAgY2hhbGxlbmdlXG4gICAgKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQ2hhbmdlIHBhc3N3b3JkIGZvciB0aGUgb3JpZ2luYWwgdXNlclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgdGVtcElkcFBhc3N3b3JkID0gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICBzaWduZWRDaGFsbGVuZ2U6IEpTT04uc3RyaW5naWZ5KHNpZ25lZENoYWxsZW5nZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgaW5jbHVkZUtleUdyYXBoOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICkucHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0LmlkcFBhc3N3b3JkO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBMb2dpbiBhcyB0aGUgb3JpZ2luYWwgdXNlciB1c2luZyBuZXcgdGVtcG9yYXJ5IHBhc3N3b3JkXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgb3JpZ2luYWwgYWNjb3VudCdzIHBhc3N3b3JkIGhhcyBiZWVuIGNoYW5nZWRcbiAgICAvLyB0byBhIHRlbXBvcmFyeSBwYXNzd29yZC4gSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIGZvciB0aGUgdXNlclxuICAgIC8vIHRvIHVzZSB0aGUgb3JpZ2luYWwgcGFzc3dvcmQgdG8gbG9naW4uIEFueSBzdWNjZXNzZnVsIGxvZ2luXG4gICAgLy8gY2FuIG9ubHkgYmUgdXNpbmcgdGhlIHRlbXBvcmFyeSBwYXNzd29yZC4gU28gaXQncyBzYWZlIHRvIGFzc3VtZVxuICAgIC8vIHRoYXQgd2Ugd2FudCB0byBcImNvbXBsZXRlXCIgdGhlIHBhc3N3b3JkIHJlc2V0LlxuXG4gICAgLy8gVGhlIG1heWJlIDJGQSBzbyB3ZSBsaXN0ZW4gZm9yIHRoZSBhdXRoIGV2ZW50IGZyb20gQW1wbGlmeS5cbiAgICBjb25zdCByZXRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gYXN5bmMgKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEucGF5bG9hZC5ldmVudCAhPT0gJ3NpZ25JbicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBIdWIucmVtb3ZlKCdhdXRoJywgbGlzdGVuZXIpO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuYXV0aC5zaWduSW4ocmVzZXRVc2VyLnVzZXJuYW1lLCBuZXdJZHBQYXNzd29yZCk7XG5cbiAgICAgICAgLy8gU3dpdGNoIG92ZXIgdG8gdGhlIG5ldyBzZXQgb2Yga2V5c1xuICAgICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgICAgICBuZXcgTHJNdXRhdGlvbih7XG4gICAgICAgICAgICBtdXRhdGlvbjogQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICBtYXN0ZXJLZXlXcmFwcGVkUm9vdEtleSxcbiAgICAgICAgICAgICAgICBtYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmlkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH07XG5cbiAgICAgIEh1Yi5saXN0ZW4oJ2F1dGgnLCBsaXN0ZW5lcik7XG4gICAgfSk7XG5cbiAgICAvLyBTaWduaW4gYXMgdGhlIG9yaWdpbmFsIHVzZXIuIFBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0IHRvIHRlbXBvcmFyeSBvbmUuIEl0IHNob3VsZCByZXR1cm5cbiAgICAvLyB3aXRoIE5FV19QQVNTV09SRF9SRVFVSVJFRFxuICAgIGxldCB1c2VyID0gYXdhaXQgdGhpcy5hdXRoLnNpZ25JbihyZXNldFVzZXIudXNlcm5hbWUsIHRlbXBJZHBQYXNzd29yZCwge1xuICAgICAgbm9Qcm94eTogJ3RydWUnLFxuICAgIH0pO1xuXG4gICAgaWYgKHVzZXIuY2hhbGxlbmdlTmFtZSAhPT0gJ05FV19QQVNTV09SRF9SRVFVSVJFRCcpIHtcbiAgICAgIHRocm93IG5ldyBMckV4Y2VwdGlvbih7XG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgJ0ludGVybmFsIGVycm9yLiBFeHBlY3RpbmcgQ29nbml0byB0byBoYXZlIGRvbmUgYSBwYXNzd29yZCByZXNldCBhZnRlciBjYWxsIHRvIFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLicsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBTZXQgbmV3IHBhc3N3b3JkIG9uIElkcFxuICAgIC8vIHRoZSBhd3NGZXRjaCgpIGZ1bmN0aW9uIHBhc3NlcyBORVdfUEFTU1dPUkRfUkVRVUlSRUQgZGlyZWN0bHkgdG8gQVdTIHdpdGhvdXRcbiAgICAvLyBnb2luZyB0aHJvdWdoIHRoZSBwcm94eS5cbiAgICB1c2VyID0gYXdhaXQgdGhpcy5hdXRoLmNvbXBsZXRlTmV3UGFzc3dvcmQodXNlciwgbmV3SWRwUGFzc3dvcmQsIHt9KTtcblxuICAgIHJldHVybiByZXRQcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWNvdmVyQXNzZW1ibHlLZXkoXG4gICAgcmVzZXRVc2VyOiBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZVxuICApOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRLZXkocmVzZXRVc2VyLnB4ay5pZCk7XG5cbiAgICBjb25zdCBwYXJ0aWFscyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcmVzZXRVc2VyLmFwcHJvdmFsc1xuICAgICAgICAuZmlsdGVyKChhcHByb3ZhbCkgPT4gISFhcHByb3ZhbC5yZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleSlcbiAgICAgICAgLm1hcCgoYXBwcm92YWwpID0+XG4gICAgICAgICAgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgICAgICAgcHJrLFxuICAgICAgICAgICAgYXBwcm92YWwucmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuYXNzZW1ibHlDb250cm9sbGVyLnJlY292ZXJBc3NlbWJseUtleShwYXJ0aWFscyk7XG4gIH1cbn1cbiJdfQ==
504
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsWUFBWSxFQUEyQixNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQs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QzlCLFNBQWtDOztZQUVsQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNoQyxTQUFTLENBQUMsU0FBUztpQkFDaEIsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdDQUFnQyxDQUFDO2lCQUNqRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUM1QixHQUFHLEVBQ0gsUUFBUSxDQUFDLGdDQUFnQyxDQUMxQyxDQUNGLENBQ0osQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELENBQUM7S0FBQTs7OztZQXpvQkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBV0ksTUFBTSxTQUFDLFNBQVM7WUF6RVosU0FBUztZQVVULGlCQUFpQjtZQUVqQixVQUFVO1lBS1YsY0FBYztZQU5kLGVBQWU7WUFJZixlQUFlO1lBTmYsV0FBVztZQUpYLGdCQUFnQjtZQUNoQiwrQkFBK0I7WUFVL0IsY0FBYztZQVJkLGlCQUFpQjtZQWVqQixpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29nbml0b1VzZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aCc7XG5pbXBvcnQgeyBBdXRoQ2xhc3MgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aC9saWItZXNtL0F1dGgnO1xuaW1wb3J0IHsgSHViIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2NvcmUnO1xuaW1wb3J0IHsgQ29nbml0b1VzZXJBdHRyaWJ1dGUgfSBmcm9tICdhbWF6b24tY29nbml0by1pZGVudGl0eS1qcyc7XG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTHJHcmFwaFFMU2VydmljZSwgTHJNdXRhdGlvbiB9IGZyb20gJy4uL2FwaS9sci1ncmFwaHFsJztcbmltcG9ydCB7IFRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvcXVlcnktcHJvY2Vzc29yL3RwLXBhc3N3b3JkLXJlc2V0LXByb2Nlc3Nvci5zZXJ2aWNlJztcbmltcG9ydCB7IFRwQ2xhaW1TdGF0ZSwgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9lbmNyeXB0aW9uL2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJZGxlU2VydmljZSB9IGZyb20gJy4uL2lkbGUvaWRsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFzc0lkcFBhcmFtcyB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgTGlmZVJlYWR5Q29uZmlnLCBMUl9DT05GSUcgfSBmcm9tICcuLi9saWZlLXJlYWR5LmNvbmZpZyc7XG5pbXBvcnQgeyBQYXNzd29yZFNlcnZpY2UgfSBmcm9tICcuLi9wYXNzd29yZC9wYXNzd29yZC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcGVyc2lzdC9wZXJzaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuLi9wcm9maWxlL3Byb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQYXNzd29yZENoYW5nZVN0YXR1cyB9IGZyb20gJy4uL3Byb2ZpbGUvcHJvZmlsZS50eXBlcyc7XG5pbXBvcnQge1xuICBUUF9QQVNTV09SRF9SRVNFVF9DTElFTlRfTk9OQ0VfTEVOR1RILFxuICBUUF9QQVNTV09SRF9SRVNFVF9VU0VSTkFNRV9TVUZGSVgsXG59IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBUcFBhc3N3b3JkUmVzZXRBc3NlbWJseUNvbnRyb2xsZXIgfSBmcm9tICcuLi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC5jb250cm9sbGVyJztcbmltcG9ydCB7XG4gIENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxuICBDcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlTXV0YXRpb24sXG4gIFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxufSBmcm9tICcuLi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC5ncWwnO1xuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5IH0gZnJvbSAnLi4vdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQucHJpdmF0ZS5ncWwnO1xuaW1wb3J0IHtcbiAgTHJCYWRSZXF1ZXN0RXhjZXB0aW9uLFxuICBMckJhZFN0YXRlRXhjZXB0aW9uLFxuICBMckNvbmN1cnJlbnRBY2Nlc3NFeGNlcHRpb24sXG4gIExyRXhjZXB0aW9uLFxufSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgU2V0U2Vzc2lvbkVuY3J5cHRpb25LZXlNdXRhdGlvbiB9IGZyb20gJy4vYXV0aC5ncWwnO1xuaW1wb3J0IHtcbiAgQ29nbml0b0NoYWxsZW5nZVVzZXIsXG4gIEN1cnJlbnRVc2VyLFxuICBGZWF0dXJlcyxcbiAgTG9naW5SZXN1bHQsXG4gIFJlY292ZXJ5U3RhdHVzLFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyLFxufSBmcm9tICcuL2F1dGgudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGlzZUF1dGggPSAoYXV0aFNlcnZpY2U6IExpZmVSZWFkeUF1dGhTZXJ2aWNlKSA9PiB7XG4gIHJldHVybiAoKSA9PiBhdXRoU2VydmljZS5pbml0aWFsaXNlKCk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIHRwUGFzc3dvcmRSZXNldEF1dG9Db21wbGV0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIExvZ291dExpc3RlbmVyID0gKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY2Nlc3NKd3RUb2tlbihhdXRoOiBBdXRoQ2xhc3MpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gKGF3YWl0IGF1dGguY3VycmVudFNlc3Npb24oKSkuZ2V0QWNjZXNzVG9rZW4oKS5nZXRKd3RUb2tlbigpO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGlmZVJlYWR5QXV0aFNlcnZpY2Uge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcml2YXRlIGh1YlN1YmplY3Q6IFJlcGxheVN1YmplY3Q8YW55PiA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG4gIHByaXZhdGUgY3VycmVudFVzZXI6IEN1cnJlbnRVc2VyO1xuICBwcml2YXRlIGN1cnJlbnRSZXNldFVzZXI6IFRwUGFzc3dvcmRSZXNldFVzZXI7XG4gIC8vIENvdWxkIHVzZSByeGpzIG9ic2VydmFibGVzIGhlcmUuIEJ1dCB0cnlpbmcgdG8gaGF2ZSBrYy1jbGllbnQgdXNlIGFzIGxpdHRsZSBhbmd1bGFyXG4gIC8vIGZlYXR1cmVzIGFzIHBvc3NpYmxlLiBSeGpzIGlzIG5vdCB1c2VkIGFueXdoZXJlIGVsc2UgaW4ga2MtY2xpZW50LlxuICBwcml2YXRlIGxvZ291dExpc3RlbmVycyA9IG5ldyBTZXQ8TG9nb3V0TGlzdGVuZXI+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMUl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoQ2xhc3MsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9maWxlU2VydmljZTogUHJvZmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaFNlcnZpY2U6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIHBhc3N3b3JkU2VydmljZTogUGFzc3dvcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaWRsZVNlcnZpY2U6IElkbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbHJHcmFwaFFMOiBMckdyYXBoUUxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZTogVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZSxcbiAgICBwcml2YXRlIHBlcnNpc3RTZXJ2aWNlOiBQZXJzaXN0U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFzc2VtYmx5Q29udHJvbGxlcjogVHBQYXNzd29yZFJlc2V0QXNzZW1ibHlDb250cm9sbGVyXG4gICkge31cblxuICBhc3luYyBpbml0aWFsaXNlKCkge1xuICAgIEh1Yi5saXN0ZW4oJ2F1dGgnLCAoZGF0YSkgPT4gdGhpcy5odWJTdWJqZWN0Lm5leHQoZGF0YS5wYXlsb2FkKSk7XG4gIH1cblxuICBhc3luYyBnZXRBY2Nlc3NKd3RUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBnZXRBY2Nlc3NKd3RUb2tlbih0aGlzLmF1dGgpO1xuICB9XG5cbiAgaW1wb3J0UGFzc3dvcmQocGxhaW5QYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxDcnlwdG9LZXk+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlGYWN0b3J5LmltcG9ydFBhc3N3b3JkKHBsYWluUGFzc3dvcmQpO1xuICB9XG5cbiAgYWRkTG9nb3V0TGlzdGVuZXIoY2FsbGJhY2s6IExvZ291dExpc3RlbmVyKSB7XG4gICAgdGhpcy5sb2dvdXRMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlbW92ZUxvZ291dExpc3RlbmVyKGNhbGxiYWNrOiBMb2dvdXRMaXN0ZW5lcikge1xuICAgIHRoaXMubG9nb3V0TGlzdGVuZXJzLmRlbGV0ZShjYWxsYmFjayk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZ2luSWRwSW1wbChcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5LFxuICAgIHBhc3NJZHBQYXJhbXM6IFBhc3NJZHBQYXJhbXMsXG4gICAgcmVjb3ZlcnlTdGF0dXM6IFJlY292ZXJ5U3RhdHVzXG4gICk6IFByb21pc2U8Q29nbml0b0NoYWxsZW5nZVVzZXI+IHtcbiAgICBjb25zdCBwYXNzSWRwUmVzdWx0ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NJZHAoe1xuICAgICAgcGFzc3dvcmQsXG4gICAgICAuLi5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIFVzZSB0aGUgZGVyaXZlZCBwYXNzd29yZCB0byBzaWduaW4gd2l0aCBjb2duaXRvXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMuYXV0aC5zaWduSW4oXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKHBhc3NJZHBSZXN1bHQuandrKVxuICAgICk7XG5cbiAgICB1c2VyLnJlY292ZXJ5U3RhdHVzID0gcmVjb3ZlcnlTdGF0dXM7XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9naW5JZHAoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleVxuICApOiBQcm9taXNlPENvZ25pdG9DaGFsbGVuZ2VVc2VyPiB7XG4gICAgLy8gRG93bmxvYWQgdGhlIHNhbHQgbmVlZGVkIHRvIGRlcml2ZSB0aGUgUGFzc0lkcFxuICAgIGNvbnN0IHBhc3NJZHBBcGlSZXN1bHQgPSBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldFBhc3NJZHBQYXJhbXMoXG4gICAgICBlbWFpbE9yUGhvbmVcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgcGFzc0lkcEFwaVJlc3VsdC5wYXNzd29yZENoYW5nZVN0YXR1cyA9PT0gUGFzc3dvcmRDaGFuZ2VTdGF0dXMuSW5Qcm9ncmVzc1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IExyQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbignQSBwYXNzd29yZCBjaGFuZ2UgaXMgaW4gcHJvZ3Jlc3MnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwYXNzSWRwQXBpUmVzdWx0LnBhc3N3b3JkQ2hhbmdlU3RhdHVzID09PSBQYXNzd29yZENoYW5nZVN0YXR1cy5SZWNvdmVyeVxuICAgICkge1xuICAgICAgY29uc29sZS5sb2coJ0luIHJlY292ZXJ5IG1vZGUuJyk7XG4gICAgICAvLyBMZXQncyBzYXkgd2UgZG9uJ3Qga25vdyBpZiB0aGUgcGFzc3dvcmQgaXMgdGhlIG5ldyBvbmUgb3IgdGhlIG9sZCBvbmUuIFdlIGp1c3QgaGF2ZSB0byB0cnkgYm90aC5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvZ2luSWRwSW1wbChcbiAgICAgICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgcGFzc0lkcEFwaVJlc3VsdC5uZXdQYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRFxuICAgICAgICApO1xuICAgICAgICAvLyBOZXcgcGFzc3dvcmQgd29ya2VkLiBMZXQncyBzZXQgdG8gdGhlIGN1cnJlbnQgcGFzc3dvcmRcblxuICAgICAgICAvLyAtLVBvdGVudGlhbCBGYWlsdXJlIFBvaW50IDEtLVxuICAgICAgICAvLyBpZiBjaGFuZ2VQYXNzd29yZENvbXBsZXRlKCkgZG9lc24ndCBnZXQgY2FsbGVkLCB0aGVuIGl0IHNob3VsZCByZW1haW5cblxuICAgICAgICBjb25zb2xlLmxvZygnTmV3IHBhc3N3b3JkIHdvcmtzIScpO1xuXG4gICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSnVzdCBidWJibGUgdXAgYW55IG90aGVyIHR5cGUgb2YgZXJyb3IuXG4gICAgICAgIGlmIChlcnJvci5jb2RlICE9PSAnTm90QXV0aG9yaXplZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICAvLyBwYXNzLCB0cnkgYWdhaW4gYXNzdW1pbmcgaXQncyB0aGUgb2xkIHBhc3N3b3JkXG4gICAgICB9XG5cbiAgICAgIC8vIE5vdyBhc3N1bWUgaXQncyB0aGUgcHJldmlvdXMgcGFzc3dvcmQuIEFueSBleGNlcHRpb24gaXMgYWxsb3dlZCB0byBidWJibGUgdXAuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgZW1haWxPclBob25lLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICAgICAgUmVjb3ZlcnlTdGF0dXMuT0xEX1BBU1NXT1JEXG4gICAgICAgICk7XG4gICAgICAgIC8vIE9sZCBwYXNzd29yZCB3b3JrZWQuXG4gICAgICAgIGNvbnNvbGUubG9nKCdPbGQgcGFzc3dvcmQgd29ya3MhJyk7XG5cbiAgICAgICAgcmV0dXJuIHVzZXI7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBKdXN0IGJ1YmJsZSB1cCBhbnkgb3RoZXIgdHlwZSBvZiBlcnJvci5cbiAgICAgICAgdGhyb3cgZXJyb3IuY29kZSA9PT0gJ05vdEF1dGhvcml6ZWRFeGNlcHRpb24nXG4gICAgICAgICAgPyBuZXcgTHJCYWRSZXF1ZXN0RXhjZXB0aW9uKFxuICAgICAgICAgICAgICAnVGhlIHBhc3N3b3JkIGNoYW5nZSByZXF1ZXN0IHdhcyBpbnRlcnJ1cHRlZCwgcGxlYXNlIHRyeSB0byBsb2dpbiB3aXRoIGJvdGggeW91ciBuZXcgYW5kIG9sZCBwYXNzd29yZCdcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGVycm9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyeSBhZ2FpbnN0IGFzIHRoZSBUUCBwYXNzd29yZCByZXNldCBhY2NvdW50XG4gICAgaWYgKHBhc3NJZHBBcGlSZXN1bHQudHBQYXNzd29yZFJlc2V0KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUUCBwYXNzd29yZCByZXNldCBpcyBpbiBwcm9jZXNzLiBXZSBuZWVkIHRvIHRyeSB0aGUgcGFzc3dvcmQgYWdhaW5zdCBib3RoXG4gICAgICAgIC8vIG9yaWdpbmFsIGFjY291bnQgYW5kIHRoZSBuZXcgcmVzZXQgYWNjb3VudC5cbiAgICAgICAgY29uc3QgcmVzZXQgPSBwYXNzSWRwQXBpUmVzdWx0LnRwUGFzc3dvcmRSZXNldDtcbiAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgcmVzZXQucmVzZXRVc2VybmFtZSxcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICByZXNldC5wYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5PTkVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0LmlzVHBQYXNzd29yZFJlc2V0VXNlciA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBjb250aW51ZSwgdHJ5IGFnYWluIGFzIHJlZ3VsYXIgdXNlci5cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMb2dpbiBhcyByZWd1bGFyIHVzZXJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICBwYXNzd29yZCxcbiAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICBSZWNvdmVyeVN0YXR1cy5OT05FXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTZXNzaW9uRW5jcnlwdGlvbktleSgpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICBpZiAoIWlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnN0IG1zZyA9XG4gICAgICAgICAgJ1lvdSBzaG91bGQgbm90IHNldCBkaXNhYmxlU2Vzc2lvbkVuY3J5cHRpb25LZXk9VHJ1ZSBpbiBtb2RlIHByb2QuIEl0IGRlZmF1bHRzIHRvIGZhbHNlLic7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IobXNnKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1lvdSBoYXZlIHNldCBkaXNhYmxlU2Vzc2lvbkVuY3J5cHRpb25LZXk9VHJ1ZS4gTWFrZSBzdXJlIG5vdCB0byBkbyB0aGlzIGluIHByb2QgbW9kZS4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNldCB0aGUgc2Vzc2lvbiBrZXkgdG8gYSBuZXcgZW5jcnlwdGlvbiBrZXkgZm9yIHRoaXMgc2Vzc2lvblxuICAgICAgY29uc3Qgc2Vzc2lvbkVuY3J5cHRpb25LZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgICAgbmV3IExyTXV0YXRpb24oe1xuICAgICAgICAgIG11dGF0aW9uOiBTZXRTZXNzaW9uRW5jcnlwdGlvbktleU11dGF0aW9uLFxuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgc2Vzc2lvbkVuY3J5cHRpb25LZXk6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5LnRvSlNPTih0cnVlKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIGluY2x1ZGVLZXlHcmFwaDogZmFsc2UsXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIHRoaXMucGVyc2lzdFNlcnZpY2Uuc2V0U2VydmVyU2Vzc2lvbkVuY3J5cHRpb25LZXkoc2Vzc2lvbkVuY3J5cHRpb25LZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVQb3N0QXV0aChjb2duaXRvVXNlcjogQ29nbml0b0NoYWxsZW5nZVVzZXIpIHtcbiAgICBhd2FpdCB0aGlzLmhhbmRsZVBhc3N3b3JkUmVjb3ZlcnkoY29nbml0b1VzZXIpO1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlU2Vzc2lvbkVuY3J5cHRpb25LZXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbihcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5LFxuICAgIHsgdHBQYXNzd29yZFJlc2V0QXV0b0NvbXBsZXRlID0gdHJ1ZSB9OiBMb2dpbk9wdGlvbnMgPSB7fVxuICApIHtcbiAgICBsZXQgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luSW1wbChlbWFpbE9yUGhvbmUsIHBhc3N3b3JkKTtcblxuICAgIGlmIChcbiAgICAgIHRwUGFzc3dvcmRSZXNldEF1dG9Db21wbGV0ZSAmJlxuICAgICAgbG9naW5SZXN1bHQucmVzZXRVc2VyPy5zdGF0ZSA9PT0gVHBDbGFpbVN0YXRlLkFQUFJPVkVEXG4gICAgKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbXBsZXRlUmVxdWVzdChwYXNzd29yZCk7XG4gICAgICBsb2dpblJlc3VsdCA9IGF3YWl0IHRoaXMubG9naW5JbXBsKGVtYWlsT3JQaG9uZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIHJldHVybiBsb2dpblJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbkltcGwoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleVxuICApOiBQcm9taXNlPExvZ2luUmVzdWx0PiB7XG4gICAgYXdhaXQgdGhpcy5sb2dvdXQoKTtcbiAgICBjb25zdCBjb2duaXRvVXNlciA9IGF3YWl0IHRoaXMubG9naW5JZHAoZW1haWxPclBob25lLCBwYXNzd29yZCk7XG5cbiAgICAvLyB0b2RvOiBNZWV0IE1GQSBjaGFsbGVuZ2VzLlxuICAgIGlmIChbJ1NNU19NRkEnLCAnU09GVFdBUkVfVE9LRU5fTUZBJ10uaW5jbHVkZXMoY29nbml0b1VzZXIuY2hhbGxlbmdlTmFtZSkpIHtcbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogdHJ1ZSwgY2hhbGxlbmdlOiBjb2duaXRvVXNlciB9O1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUG9zdEF1dGgoY29nbml0b1VzZXIpO1xuXG4gICAgaWYgKGNvZ25pdG9Vc2VyLmlzVHBQYXNzd29yZFJlc2V0VXNlcikge1xuICAgICAgLy8gQXNzdW1pbmcgdGhlcmUgaXMgbm8gTUZBIG9uIHRoZSBUUCByZXNldCB1c2VyLlxuICAgICAgY29uc3QgcmVzZXRVc2VyID0gYXdhaXQgdGhpcy5sb2FkUmVzZXRVc2VyKHBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogZmFsc2UsIHJlc2V0VXNlciB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihjb2duaXRvVXNlciwgcGFzc3dvcmQpO1xuICAgICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5zdGFydCgpOyAvLyBSdW4gaWRsZVNlcnZpY2Ugd2hlbmV2ZXIgdXNlciBpcyBsb2dnZWQgaW4uXG4gICAgICByZXR1cm4geyBoYXNDaGFsbGVuZ2U6IGZhbHNlLCB1c2VyIH07XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETyA8QVo+IFdlIG5lZWQgdG8gaGFuZGxlIHRoZSBpc1RwUGFzc3dvcmRSZXNldFVzZXI9VHJ1ZSBjYXNlIGhlcmUgYWZ0ZXIgTUZBIGFzIHdlbGwuXG4gIHB1YmxpYyBhc3luYyB2ZXJpZnlMb2dpbihcbiAgICBjaGFsbGVuZ2U6IENvZ25pdG9DaGFsbGVuZ2VVc2VyLFxuICAgIHBhc3N3b3JkOiBDcnlwdG9LZXksXG4gICAgcmVtZW1iZXJNZTogYm9vbGVhbixcbiAgICBjb2RlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGF3YWl0IHRoaXMuYXV0aC5jb25maXJtU2lnbkluKGNoYWxsZW5nZSwgY29kZSwgY2hhbGxlbmdlLmNoYWxsZW5nZU5hbWUpO1xuXG4gICAgLy8gVE9ETzogdGhpcy5hdXRoLmNvbmZpcm1TaWduSW4oKSBjb3VsZCByZXR1cm4gYW5vdGhlciBjaGFsbGVuZ2UuXG5cbiAgICBjb25zdCBjb2duaXRvVXNlcjogQ29nbml0b1VzZXIgPSBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmhhbmRsZVBvc3RBdXRoKGNoYWxsZW5nZSk7XG5cbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihjb2duaXRvVXNlciwgcGFzc3dvcmQpO1xuXG4gICAgaWYgKHJlbWVtYmVyTWUpIHtcbiAgICAgIGNvZ25pdG9Vc2VyLnNldERldmljZVN0YXR1c1JlbWVtYmVyZWQoe1xuICAgICAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0sXG4gICAgICAgIG9uRmFpbHVyZTogKGUpID0+IGNvbnNvbGUuZXJyb3IoZSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVBhc3N3b3JkUmVjb3ZlcnkodXNlcjogQ29nbml0b0NoYWxsZW5nZVVzZXIpIHtcbiAgICBpZiAodXNlci5yZWNvdmVyeVN0YXR1cyAhPT0gUmVjb3ZlcnlTdGF0dXMuTk9ORSkge1xuICAgICAgY29uc3Qgand0VG9rZW4gPSBhd2FpdCB0aGlzLmdldEFjY2Vzc0p3dFRva2VuKCk7XG4gICAgICBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jaGFuZ2VQYXNzd29yZENvbXBsZXRlKFxuICAgICAgICBqd3RUb2tlbixcbiAgICAgICAgdXNlci5yZWNvdmVyeVN0YXR1cyA9PT0gUmVjb3ZlcnlTdGF0dXMuTkVXX1BBU1NXT1JEXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJPclJlc2V0VXNlcihcbiAgICByZWxvYWQgPSBmYWxzZVxuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyIHwgVHBQYXNzd29yZFJlc2V0VXNlcj4ge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpO1xuXG4gICAgaWYgKGNvZ25pdG9Vc2VyLmdldFVzZXJuYW1lKCkuZW5kc1dpdGgoVFBfUEFTU1dPUkRfUkVTRVRfVVNFUk5BTUVfU1VGRklYKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzZXRVc2VyKHJlbG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFVzZXIocmVsb2FkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRSZXNldFVzZXIocmVsb2FkID0gZmFsc2UpOiBQcm9taXNlPFRwUGFzc3dvcmRSZXNldFVzZXI+IHtcbiAgICBpZiAoIXJlbG9hZCAmJiB0aGlzLmN1cnJlbnRSZXNldFVzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNldFVzZXI7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50UmVzZXRVc2VyID0gYXdhaXQgdGhpcy5sb2FkUmVzZXRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNldFVzZXI7XG4gIH1cblxuICBhc3luYyBnZXRVc2VyKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGlmICghcmVsb2FkICYmIHRoaXMuY3VycmVudFVzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRVc2VyO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihcbiAgICAgIGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKVxuICAgICk7XG4gICAgY29uc29sZS5sb2coJ1N0YXJ0aW5nIGlkbGUgc2VydmljZS4nKTtcbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVFBWYXVsdEFjY2VzcyhmZWF0dXJlcz86IEZlYXR1cmVzKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdHBWYXVsdEZlYXR1cmUgPSBmZWF0dXJlcz8udHBWYXVsdDtcbiAgICByZXR1cm4gKFxuICAgICAgdHBWYXVsdEZlYXR1cmU/Lmxlbmd0aCA+IDAgJiZcbiAgICAgIHRwVmF1bHRGZWF0dXJlLnNvbWUoKGZlYXR1cmUpID0+IGZlYXR1cmUudG9VcHBlckNhc2UoKSA9PT0gJ0FDQ0VTUycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFVzZXIoXG4gICAgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyLFxuICAgIHBhc3N3b3JkPzogQ3J5cHRvS2V5XG4gICk6IFByb21pc2U8Q3VycmVudFVzZXI+IHtcbiAgICBjb25zdCB7IGN1cnJlbnRVc2VyLCBjb250YWN0Q2FyZCwgdXNlclBsYW5zIH0gPVxuICAgICAgYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuXG4gICAgaWYgKGN1cnJlbnRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkoY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJBdHRyaWJ1dGVzID0gYXdhaXQgdGhpcy5hdXRoLnVzZXJBdHRyaWJ1dGVzKGNvZ25pdG9Vc2VyKTtcblxuICAgIGlmIChwYXNzd29yZCkge1xuICAgICAgY29uc3QgcGFzc0tleSA9IChcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NLZXkoe1xuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIC4uLmN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LnBhc3NLZXkucGFzc0tleVBhcmFtcyxcbiAgICAgICAgfSlcbiAgICAgICkuandrO1xuXG4gICAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnBlcnNpc3RNYXN0ZXJLZXkoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnVud3JhcFdpdGhQYXNzS2V5KFxuICAgICAgICAgIGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5tYXN0ZXJLZXkuaWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UucG9wdWxhdGVLZXlzKGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5KTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogY3VycmVudFVzZXIuaWQsXG4gICAgICBzdWI6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnc3ViJywgdXNlckF0dHJpYnV0ZXMpLFxuICAgICAgdXNlcm5hbWU6IGN1cnJlbnRVc2VyLnVzZXJuYW1lLFxuICAgICAgY3VycmVudFVzZXJLZXk6IGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LFxuICAgICAgZW1haWw6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnZW1haWwnLCB1c2VyQXR0cmlidXRlcyksXG4gICAgICBlbWFpbFZlcmlmaWVkOlxuICAgICAgICB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ2VtYWlsX3ZlcmlmaWVkJywgdXNlckF0dHJpYnV0ZXMpID09PSAndHJ1ZScsXG4gICAgICBwaG9uZTogdGhpcy5nZXRVc2VyQXR0cmlidXRlKCdwaG9uZV9udW1iZXInLCB1c2VyQXR0cmlidXRlcyksXG4gICAgICBwaG9uZVZlcmlmaWVkOlxuICAgICAgICB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ3Bob25lX251bWJlcl92ZXJpZmllZCcsIHVzZXJBdHRyaWJ1dGVzKSA9PT1cbiAgICAgICAgJ3RydWUnLFxuICAgICAgY29udGFjdENhcmQ6IHtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZGVjcnlwdENvbnRhY3RDYXJkKGNvbnRhY3RDYXJkKSksXG4gICAgICB9LFxuICAgICAgdXNlckRlbGV0ZTogY3VycmVudFVzZXIudXNlckRlbGV0ZSxcbiAgICAgIHVzZXJQbGFucyxcbiAgICAgIGhhc1RQVmF1bHRBY2Nlc3M6IHRoaXMubWFwVFBWYXVsdEFjY2VzcyhjdXJyZW50VXNlci5mZWF0dXJlcyksXG4gICAgICBmZWF0dXJlczogY3VycmVudFVzZXIuZmVhdHVyZXMsXG4gICAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyB3YXRjaEF1dGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHViU3ViamVjdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dvdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gTm90aWZ5IGFsbCBsaXN0ZW5lcnMgdG8gY2xlYW4gdXAuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnRoaXMubG9nb3V0TGlzdGVuZXJzXS5tYXAoKGNhbGxiYWNrKSA9PiBjYWxsYmFjaygpKSk7XG5cbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gbnVsbDtcbiAgICB0aGlzLmtleVNlcnZpY2UucHVyZ2VLZXlzKCk7XG4gICAgdGhpcy5rZXlHcmFwaFNlcnZpY2UucHVyZ2VLZXlzKCk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChbdGhpcy5hdXRoLnNpZ25PdXQoKSwgdGhpcy5wcm9maWxlU2VydmljZS5zaWduT3V0KCldKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VXNlckF0dHJpYnV0ZShcbiAgICBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcsXG4gICAgdXNlckF0dHJpYnV0ZXM6IENvZ25pdG9Vc2VyQXR0cmlidXRlW11cbiAgKSB7XG4gICAgY29uc3QgdXNlckF0dHJpYnV0ZSA9IHVzZXJBdHRyaWJ1dGVzLmZpbmQoXG4gICAgICAoeCkgPT4geC5nZXROYW1lKCkgPT09IGF0dHJpYnV0ZU5hbWVcbiAgICApO1xuXG4gICAgcmV0dXJuIHVzZXJBdHRyaWJ1dGUgPyB1c2VyQXR0cmlidXRlLmdldFZhbHVlKCkgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWRSZXNldFVzZXIoXG4gICAgcGFzc3dvcmQ/OiBDcnlwdG9LZXlcbiAgKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyPiB7XG4gICAgY29uc3QgeyB0cFBhc3N3b3JkUmVzZXRVc2VyOiByZXNldFVzZXIgfSA9IGF3YWl0IHRoaXMubHJHcmFwaFFMLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnksXG4gICAgfSk7XG5cbiAgICBpZiAocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGtleXNcbiAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHBhc3NLZXkgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzS2V5KHtcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzS2V5UGFyYW1zLFxuICAgICAgICB9KVxuICAgICAgKS5qd2s7XG5cbiAgICAgIGF3YWl0IHRoaXMuaWRsZVNlcnZpY2UucGVyc2lzdE1hc3RlcktleShcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UudW53cmFwV2l0aFBhc3NLZXkoXG4gICAgICAgICAgcmVzZXRVc2VyLnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICByZXNldFVzZXIubWFzdGVyS2V5LmlkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5rZXlTZXJ2aWNlLnBvcHVsYXRlS2V5cyh7XG4gICAgICBwYXNzS2V5OiB7XG4gICAgICAgIGlkOiByZXNldFVzZXIucGFzc0tleS5pZCxcbiAgICAgIH0sXG4gICAgICBtYXN0ZXJLZXk6IHtcbiAgICAgICAgaWQ6IHJlc2V0VXNlci5tYXN0ZXJLZXkuaWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgdXNlckF0dHJpYnV0ZXMgPSBhd2FpdCB0aGlzLmF1dGgudXNlckF0dHJpYnV0ZXMoXG4gICAgICBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKClcbiAgICApO1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnc3ViJywgdXNlckF0dHJpYnV0ZXMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihhd2FpdCB0aGlzLnRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2UucHJvY2Vzc1RwUGFzc3dvcmRSZXNldFVzZXJOb2RlKFxuICAgICAgICByZXNldFVzZXJcbiAgICAgICkpLFxuICAgICAgc3ViLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVmcmVzaEFjY2Vzc1Rva2VuKCkge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcbiAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBjb2duaXRvVXNlci5nZXRTaWduSW5Vc2VyU2Vzc2lvbigpLmdldFJlZnJlc2hUb2tlbigpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvZ25pdG9Vc2VyLnJlZnJlc2hTZXNzaW9uKHJlZnJlc2hUb2tlbiwgKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVmcmVzaGluZyB0b2tlbjogJywgZXJyKTtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnVG9rZW4gcmVmcmVzaCBjb21wbGV0ZScpO1xuICAgICAgICAgIHJlc29sdmUoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVSZXF1ZXN0KG5ld1Bhc3N3b3JkOiBDcnlwdG9LZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXNldFVzZXIgPSBhd2FpdCB0aGlzLmdldFJlc2V0VXNlcih0cnVlKTtcblxuICAgIGlmIChyZXNldFVzZXIuc3RhdGUgIT09IFRwQ2xhaW1TdGF0ZS5BUFBST1ZFRCkge1xuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdQYXNzd29yZCByZXNldCByZXF1ZXN0IGhhcyBub3QgYmVlbiBhcHByb3ZlZC4nXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gUHJlcGFyZSBhbGwgbWF0ZXJpYWxzIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gZXJyb3JzLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgYXNzZW1ibHlLZXkgPSBhd2FpdCB0aGlzLnJlY292ZXJBc3NlbWJseUtleShyZXNldFVzZXIpO1xuXG4gICAgY29uc3QgeyByb290S2V5IH0gPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICBhc3NlbWJseUtleSxcbiAgICAgIHJlc2V0VXNlci5hc3NlbWJseUNpcGhlckRhdGFcbiAgICApO1xuXG4gICAgLy8gTWFraW5nIHN1cmUgaXQncyBhIHZhbGlkIGtleS5cbiAgICBjb25zdCByb290S2V5SndrID0gYXdhaXQgSldLLmFzS2V5KHJvb3RLZXkpO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UuZ2V0S2V5KHJlc2V0VXNlci5tYXN0ZXJLZXkuaWQpO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5V3JhcHBlZFJvb3RLZXkgPVxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICAgIHJvb3RLZXlKd2sudG9KU09OKHRydWUpXG4gICAgICApO1xuXG4gICAgLy8gVGhlIG5ldyBwYXNzd29yZFxuICAgIGNvbnN0IG5ld1Bhc3NJZHBSZXN1bHQgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuZGVyaXZlUGFzc0lkcCh7XG4gICAgICBwYXNzd29yZDogbmV3UGFzc3dvcmQsXG4gICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbmV3SWRwUGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKFxuICAgICAgbmV3UGFzc0lkcFJlc3VsdC5qd2tcbiAgICApO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBHZXQgYXNzZW1ibHkga2V5IGNoYWxsZW5nZVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgY2hhbGxlbmdlID0gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uLFxuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgaW5wdXQ6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgaW5jbHVkZUtleUdyYXBoOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICkuY3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZS5jaGFsbGVuZ2U7XG5cbiAgICAvLyBTaWduIHRoZSBjaGFsbGVuZ2VcbiAgICAvLyBHZW5lcmF0ZSBhIGNsaWVudCBzaWRlIG5vbmNlIHRoYXQncyBubyBpbiB0aGUgc2VydmVyJ3MgY29udHJvbC5cbiAgICBjaGFsbGVuZ2UuY2xpZW50Tm9uY2UgPSB0aGlzLmtleUZhY3RvcnkucmFuZG9tU3RyaW5nKFxuICAgICAgVFBfUEFTU1dPUkRfUkVTRVRfQ0xJRU5UX05PTkNFX0xFTkdUSFxuICAgICk7XG5cbiAgICBjb25zdCBhc3NlbWJseUtleVZlcmlmaWVyUHJrID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgYXNzZW1ibHlLZXksXG4gICAgICByZXNldFVzZXIud3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmtcbiAgICApO1xuICAgIGNvbnN0IHNpZ25lZENoYWxsZW5nZSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihcbiAgICAgIGFzc2VtYmx5S2V5VmVyaWZpZXJQcmssXG4gICAgICBjaGFsbGVuZ2VcbiAgICApO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBDaGFuZ2UgcGFzc3dvcmQgZm9yIHRoZSBvcmlnaW5hbCB1c2VyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCB0ZW1wSWRwUGFzc3dvcmQgPSAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgICAgbmV3IExyTXV0YXRpb24oe1xuICAgICAgICAgIG11dGF0aW9uOiBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIHNpZ25lZENoYWxsZW5nZTogSlNPTi5zdHJpbmdpZnkoc2lnbmVkQ2hhbGxlbmdlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICApXG4gICAgKS5wcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3QuaWRwUGFzc3dvcmQ7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIExvZ2luIGFzIHRoZSBvcmlnaW5hbCB1c2VyIHVzaW5nIG5ldyB0ZW1wb3JhcnkgcGFzc3dvcmRcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvcmlnaW5hbCBhY2NvdW50J3MgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZFxuICAgIC8vIHRvIGEgdGVtcG9yYXJ5IHBhc3N3b3JkLiBJdCBpcyBubyBsb25nZXIgcG9zc2libGUgZm9yIHRoZSB1c2VyXG4gICAgLy8gdG8gdXNlIHRoZSBvcmlnaW5hbCBwYXNzd29yZCB0byBsb2dpbi4gQW55IHN1Y2Nlc3NmdWwgbG9naW5cbiAgICAvLyBjYW4gb25seSBiZSB1c2luZyB0aGUgdGVtcG9yYXJ5IHBhc3N3b3JkLiBTbyBpdCdzIHNhZmUgdG8gYXNzdW1lXG4gICAgLy8gdGhhdCB3ZSB3YW50IHRvIFwiY29tcGxldGVcIiB0aGUgcGFzc3dvcmQgcmVzZXQuXG5cbiAgICAvLyBUaGUgbWF5YmUgMkZBIHNvIHdlIGxpc3RlbiBmb3IgdGhlIGF1dGggZXZlbnQgZnJvbSBBbXBsaWZ5LlxuICAgIGNvbnN0IHJldFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSBhc3luYyAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5wYXlsb2FkLmV2ZW50ICE9PSAnc2lnbkluJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIEh1Yi5yZW1vdmUoJ2F1dGgnLCBsaXN0ZW5lcik7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5hdXRoLnNpZ25JbihyZXNldFVzZXIudXNlcm5hbWUsIG5ld0lkcFBhc3N3b3JkKTtcblxuICAgICAgICAvLyBTd2l0Y2ggb3ZlciB0byB0aGUgbmV3IHNldCBvZiBrZXlzXG4gICAgICAgIGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFxuICAgICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICAgIG11dGF0aW9uOiBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgIG1hc3RlcktleVdyYXBwZWRSb290S2V5LFxuICAgICAgICAgICAgICAgIG1hc3RlcktleUlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcblxuICAgICAgSHViLmxpc3RlbignYXV0aCcsIGxpc3RlbmVyKTtcbiAgICB9KTtcblxuICAgIC8vIFNpZ25pbiBhcyB0aGUgb3JpZ2luYWwgdXNlci4gUGFzc3dvcmQgaGFzIGJlZW4gcmVzZXQgdG8gdGVtcG9yYXJ5IG9uZS4gSXQgc2hvdWxkIHJldHVyblxuICAgIC8vIHdpdGggTkVXX1BBU1NXT1JEX1JFUVVJUkVEXG4gICAgbGV0IHVzZXIgPSBhd2FpdCB0aGlzLmF1dGguc2lnbkluKHJlc2V0VXNlci51c2VybmFtZSwgdGVtcElkcFBhc3N3b3JkLCB7XG4gICAgICBub1Byb3h5OiAndHJ1ZScsXG4gICAgfSk7XG5cbiAgICBpZiAodXNlci5jaGFsbGVuZ2VOYW1lICE9PSAnTkVXX1BBU1NXT1JEX1JFUVVJUkVEJykge1xuICAgICAgdGhyb3cgbmV3IExyRXhjZXB0aW9uKHtcbiAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAnSW50ZXJuYWwgZXJyb3IuIEV4cGVjdGluZyBDb2duaXRvIHRvIGhhdmUgZG9uZSBhIHBhc3N3b3JkIHJlc2V0IGFmdGVyIGNhbGwgdG8gUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24uJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFNldCBuZXcgcGFzc3dvcmQgb24gSWRwXG4gICAgLy8gdGhlIGF3c0ZldGNoKCkgZnVuY3Rpb24gcGFzc2VzIE5FV19QQVNTV09SRF9SRVFVSVJFRCBkaXJlY3RseSB0byBBV1Mgd2l0aG91dFxuICAgIC8vIGdvaW5nIHRocm91Z2ggdGhlIHByb3h5LlxuICAgIHVzZXIgPSBhd2FpdCB0aGlzLmF1dGguY29tcGxldGVOZXdQYXNzd29yZCh1c2VyLCBuZXdJZHBQYXNzd29yZCwge30pO1xuXG4gICAgcmV0dXJuIHJldFByb21pc2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlY292ZXJBc3NlbWJseUtleShcbiAgICByZXNldFVzZXI6IFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlXG4gICk6IFByb21pc2U8SldLLktleT4ge1xuICAgIGNvbnN0IHByayA9IGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLmdldEtleShyZXNldFVzZXIucHhrLmlkKTtcblxuICAgIGNvbnN0IHBhcnRpYWxzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICByZXNldFVzZXIuYXBwcm92YWxzXG4gICAgICAgIC5maWx0ZXIoKGFwcHJvdmFsKSA9PiAhIWFwcHJvdmFsLnJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5KVxuICAgICAgICAubWFwKChhcHByb3ZhbCkgPT5cbiAgICAgICAgICB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgICAgICBwcmssXG4gICAgICAgICAgICBhcHByb3ZhbC5yZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5hc3NlbWJseUNvbnRyb2xsZXIucmVjb3ZlckFzc2VtYmx5S2V5KHBhcnRpYWxzKTtcbiAgfVxufVxuIl19
@@ -21,11 +21,12 @@ export class FileUploadService {
21
21
  downloadEncryptedFile2(fileStateNodeId) {
22
22
  return __awaiter(this, void 0, void 0, function* () {
23
23
  const url = `${this.config.apiUrl}files/download/?file_state_node_id=${fileStateNodeId}`;
24
+ const jwt = yield this.lrAuth.getAccessJwtToken();
24
25
  const content = yield this.http
25
26
  .get(url, {
26
27
  responseType: 'text',
27
28
  headers: {
28
- Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
29
+ Authorization: `Bearer ${jwt}`,
29
30
  },
30
31
  })
31
32
  .toPromise();
@@ -49,10 +50,11 @@ export class FileUploadService {
49
50
  const { encryptedContent, fileName } = options;
50
51
  const formData = new FormData();
51
52
  formData.append('content', new Blob([encryptedContent]), fileName);
53
+ const jwt = yield this.lrAuth.getAccessJwtToken();
52
54
  const { content_resource } = yield this.http
53
55
  .post(`${this.config.apiUrl}files/upload/`, formData, {
54
56
  headers: {
55
- Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
57
+ Authorization: `Bearer ${jwt}`,
56
58
  },
57
59
  })
58
60
  .toPromise();
@@ -71,4 +73,4 @@ FileUploadService.ctorParameters = () => [
71
73
  { type: HttpClient },
72
74
  { type: LifeReadyAuthService }
73
75
  ];
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFtQixTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFNbEUsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUM2QixNQUF1QixFQUMxQyxJQUFnQixFQUNoQixNQUE0QjtRQUZULFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQzFDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7SUFDbkMsQ0FBQztJQUVFLHFCQUFxQixDQUFDLGVBQXVCOztZQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDO0tBQUE7SUFFSyxzQkFBc0IsQ0FBQyxlQUF1Qjs7WUFDbEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLGVBQWUsRUFBRSxDQUFDO1lBRXpGLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUk7aUJBQzVCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLE9BQU8sRUFBRTtvQkFDUCxhQUFhLEVBQUUsVUFBVSxDQUN2QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQzVCLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtpQkFDeEI7YUFDRixDQUFDO2lCQUNELFNBQVMsRUFBRSxDQUFDO1lBRWYsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRUssUUFBUSxDQUFDLElBQVU7O1lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7b0JBQ25CLDZEQUE2RDtvQkFDN0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFxQixDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQztnQkFDRixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFSyxtQkFBbUIsQ0FDdkIsT0FBbUM7O1lBRW5DLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUVuRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUN6QyxJQUFJLENBQ0gsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sZUFBZSxFQUNwQyxRQUFRLEVBQ1I7Z0JBQ0UsT0FBTyxFQUFFO29CQUNQLGFBQWEsRUFBRSxVQUFVLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO2lCQUN4QjthQUNGLENBQ0Y7aUJBQ0EsU0FBUyxFQUFFLENBQUM7WUFFZixPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUM7S0FBQTs7OztZQWpFRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs0Q0FHSSxNQUFNLFNBQUMsU0FBUztZQVpaLFVBQVU7WUFHVixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKU09OT2JqZWN0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IExpZmVSZWFkeUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBMaWZlUmVhZHlDb25maWcsIExSX0NPTkZJRyB9IGZyb20gJy4uL2xpZmUtcmVhZHkuY29uZmlnJztcbmltcG9ydCB7IFVwbG9hZEVuY3J5cHRlZEZpbGVPcHRpb25zIH0gZnJvbSAnLi9maWxlLXVwbG9hZC50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTFJfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogTGlmZVJlYWR5Q29uZmlnLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGxyQXV0aDogTGlmZVJlYWR5QXV0aFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZShmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8SlNPTk9iamVjdD4ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IHRoaXMuZG93bmxvYWRFbmNyeXB0ZWRGaWxlMihmaWxlU3RhdGVOb2RlSWQpKTtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZTIoZmlsZVN0YXRlTm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuY29uZmlnLmFwaVVybH1maWxlcy9kb3dubG9hZC8/ZmlsZV9zdGF0ZV9ub2RlX2lkPSR7ZmlsZVN0YXRlTm9kZUlkfWA7XG5cbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwge1xuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHsoXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxyQXV0aC5nZXRVc2VyKClcbiAgICAgICAgICApLmdldEFjY2Vzc0p3dFRva2VuKCl9YCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGFzeW5jIGxvYWRGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEFycmF5QnVmZmVyPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIE9LIHRvIHR5cGUgY2FzdCBoZXJlIHNpbmNlIHdlIGFyZSB1c2luZyByZWFkQXNBcnJheUJ1ZmZlci5cbiAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGxvYWRFbmNyeXB0ZWRGaWxlKFxuICAgIG9wdGlvbnM6IFVwbG9hZEVuY3J5cHRlZEZpbGVPcHRpb25zXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBlbmNyeXB0ZWRDb250ZW50LCBmaWxlTmFtZSB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb250ZW50JywgbmV3IEJsb2IoW2VuY3J5cHRlZENvbnRlbnRdKSwgZmlsZU5hbWUpO1xuXG4gICAgY29uc3QgeyBjb250ZW50X3Jlc291cmNlIH0gPSBhd2FpdCB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHsgY29udGVudF9yZXNvdXJjZSB9PihcbiAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpVXJsfWZpbGVzL3VwbG9hZC9gLFxuICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHsoXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMubHJBdXRoLmdldFVzZXIoKVxuICAgICAgICAgICAgKS5nZXRBY2Nlc3NKd3RUb2tlbigpfWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnRfcmVzb3VyY2U7XG4gIH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFtQixTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFNbEUsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUM2QixNQUF1QixFQUMxQyxJQUFnQixFQUNoQixNQUE0QjtRQUZULFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQzFDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7SUFDbkMsQ0FBQztJQUVFLHFCQUFxQixDQUFDLGVBQXVCOztZQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDO0tBQUE7SUFFSyxzQkFBc0IsQ0FBQyxlQUF1Qjs7WUFDbEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLGVBQWUsRUFBRSxDQUFDO1lBRXpGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBRWxELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUk7aUJBQzVCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLE9BQU8sRUFBRTtvQkFDUCxhQUFhLEVBQUUsVUFBVSxHQUFHLEVBQUU7aUJBQy9CO2FBQ0YsQ0FBQztpQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUVmLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtJQUVLLFFBQVEsQ0FBQyxJQUFVOztZQUN2QixPQUFPLElBQUksT0FBTyxDQUFjLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUNuQiw2REFBNkQ7b0JBQzdELE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBcUIsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUssbUJBQW1CLENBQ3ZCLE9BQW1DOztZQUVuQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBRS9DLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7WUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFbkUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFFbEQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSTtpQkFDekMsSUFBSSxDQUNILEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsRUFDcEMsUUFBUSxFQUNSO2dCQUNFLE9BQU8sRUFBRTtvQkFDUCxhQUFhLEVBQUUsVUFBVSxHQUFHLEVBQUU7aUJBQy9CO2FBQ0YsQ0FDRjtpQkFDQSxTQUFTLEVBQUUsQ0FBQztZQUVmLE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQztLQUFBOzs7O1lBakVGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQUdJLE1BQU0sU0FBQyxTQUFTO1lBWlosVUFBVTtZQUdWLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgTGlmZVJlYWR5QXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2xpZmUtcmVhZHktYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IExpZmVSZWFkeUNvbmZpZywgTFJfQ09ORklHIH0gZnJvbSAnLi4vbGlmZS1yZWFkeS5jb25maWcnO1xuaW1wb3J0IHsgVXBsb2FkRW5jcnlwdGVkRmlsZU9wdGlvbnMgfSBmcm9tICcuL2ZpbGUtdXBsb2FkLnR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMUl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbHJBdXRoOiBMaWZlUmVhZHlBdXRoU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgZG93bmxvYWRFbmNyeXB0ZWRGaWxlKGZpbGVTdGF0ZU5vZGVJZDogc3RyaW5nKTogUHJvbWlzZTxKU09OT2JqZWN0PiB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoYXdhaXQgdGhpcy5kb3dubG9hZEVuY3J5cHRlZEZpbGUyKGZpbGVTdGF0ZU5vZGVJZCkpO1xuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRFbmNyeXB0ZWRGaWxlMihmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfWZpbGVzL2Rvd25sb2FkLz9maWxlX3N0YXRlX25vZGVfaWQ9JHtmaWxlU3RhdGVOb2RlSWR9YDtcblxuICAgIGNvbnN0IGp3dCA9IGF3YWl0IHRoaXMubHJBdXRoLmdldEFjY2Vzc0p3dFRva2VuKCk7XG5cbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwge1xuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtqd3R9YCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGFzeW5jIGxvYWRGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEFycmF5QnVmZmVyPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIE9LIHRvIHR5cGUgY2FzdCBoZXJlIHNpbmNlIHdlIGFyZSB1c2luZyByZWFkQXNBcnJheUJ1ZmZlci5cbiAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyKTtcbiAgICAgIH07XG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGxvYWRFbmNyeXB0ZWRGaWxlKFxuICAgIG9wdGlvbnM6IFVwbG9hZEVuY3J5cHRlZEZpbGVPcHRpb25zXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBlbmNyeXB0ZWRDb250ZW50LCBmaWxlTmFtZSB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb250ZW50JywgbmV3IEJsb2IoW2VuY3J5cHRlZENvbnRlbnRdKSwgZmlsZU5hbWUpO1xuXG4gICAgY29uc3Qgand0ID0gYXdhaXQgdGhpcy5sckF1dGguZ2V0QWNjZXNzSnd0VG9rZW4oKTtcblxuICAgIGNvbnN0IHsgY29udGVudF9yZXNvdXJjZSB9ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAucG9zdDx7IGNvbnRlbnRfcmVzb3VyY2UgfT4oXG4gICAgICAgIGAke3RoaXMuY29uZmlnLmFwaVVybH1maWxlcy91cGxvYWQvYCxcbiAgICAgICAgZm9ybURhdGEsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7and0fWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnRfcmVzb3VyY2U7XG4gIH1cbn1cbiJdfQ==