@lifeready/core 5.0.3 → 5.0.5

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.
@@ -135,4 +135,4 @@ export var PlanStateField;
135
135
  PlanStateField["CANCELLED"] = "CANCELLED";
136
136
  PlanStateField["EXPIRED"] = "EXPIRED";
137
137
  })(PlanStateField || (PlanStateField = {}));
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUsUUFBUSxDQUFJLFVBQXlCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxDQUFOLElBQVksZUFFWDtBQUZELFdBQVksZUFBZTtJQUN6QiwwQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUI7QUFNRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQTRKRCxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLG1DQUFlLENBQUE7SUFDZixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDaEMsaURBQXVCLENBQUE7SUFDdkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFHakM7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLGlDQUFhLENBQUE7SUFDYixxQ0FBaUIsQ0FBQTtJQUNq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ckIsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLCtDQUFxQixDQUFBO0lBQ3JCLCtDQUFxQixDQUFBO0lBQ3JCLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUF3SUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQXVHRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLHlDQUF1QixDQUFBO0lBQ3ZCLG1DQUFpQixDQUFBO0lBQ2pCLHlDQUF1QixDQUFBO0lBQ3ZCLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIERhdGVUaW1lLFxuICBHZW5lcmljU2NhbGFyLFxuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgSlNPTlN0cmluZyxcbiAgTHJFbWFpbCxcbiAgTm9kZSxcbiAgVGltZVN0YW1wZWQsXG59IGZyb20gJy4vZ3JhcGhxbC50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBFZGdlczxUPihjb25uZWN0aW9uOiBDb25uZWN0aW9uPFQ+KSB7XG4gIHJldHVybiBjb25uZWN0aW9uLmVkZ2VzLm1hcCgoZWRnZSkgPT4gZWRnZS5ub2RlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlc05vZGUge1xuICBteVZhdWx0Pzogc3RyaW5nW107XG4gIHRwVmF1bHQ/OiBzdHJpbmdbXTtcbiAgc2hhcmVWYXVsdD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVc2VyRGVsZXRlU3RhdGUge1xuICBSRVFVRVNURUQgPSAnUkVRVUVTVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGVsZXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBVc2VyRGVsZXRlU3RhdGU7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZSB7XG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFuTm9kZSBleHRlbmRzIE5vZGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogSlNPTlN0cmluZztcbiAgc3RhdGU/OiBQbGFuU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBsYW5TdHJpcGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJzY3JpcHRpb25JZD86IHN0cmluZztcbiAgcHJpY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgcGxhbj86IFBsYW5Ob2RlO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RyaXBlPzogVXNlclBsYW5TdHJpcGVOb2RlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RyaXBlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY3VzdG9tZXI/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXNzS2V5UGFyYW1zPzogR2VuZXJpY1NjYWxhcjtcbiAgcGFzc0lkcFBhcmFtcz86IEdlbmVyaWNTY2FsYXI7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFzc0tleXM/OiBQYXNzS2V5Tm9kZVtdO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIHJvb3RLZXk/OiBLZXlOb2RlO1xuICBtYXN0ZXJLZXk/OiBLZXlOb2RlO1xuICBweGs/OiBLZXlOb2RlO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5vZGUgdHlwZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGludGVyZmFjZSBVc2VyTm9kZSBleHRlbmRzIE5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgY29udGFjdENhcmRzPzogQ29ubmVjdGlvbjxDb250YWN0Q2FyZE5vZGU+O1xuICBjdXJyZW50VXNlcktleT86IEN1cnJlbnRVc2VyS2V5Tm9kZTtcbiAgb3duZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgcmVjZWl2ZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgaXNDdXJyZW50VXNlcj86IGJvb2xlYW47XG4gIGhhdmVUcD86IGJvb2xlYW47XG4gIHN0cmlwZT86IFVzZXJTdHJpcGVOb2RlO1xuICB1c2VyUGxhbnM/OiBDb25uZWN0aW9uPFVzZXJQbGFuTm9kZT47XG4gIHVzZXJEZWxldGU/OiBVc2VyRGVsZXRlTm9kZTtcbiAgZmVhdHVyZXM/OiBGZWF0dXJlc05vZGU7XG4gIGZlYXR1cmVTdGF0ZT86IFVzZXJGZWF0dXJlU3RhdGU7XG4gIHNlc3Npb25FbmNyeXB0aW9uS2V5Pzogc3RyaW5nO1xuICBwbGFucz86IElzc3VlZFBsYW5Ob2RlW107XG4gIHBheW1lbnRNZXRob2RzPzogUGF5bWVudE1ldGhvZE5vZGVbXTtcbiAgYmlsbGluZ0hpc3Rvcnk/OiBCaWxsaW5nRmllbGRbXTtcbiAgYXZhaWxhYmxlUGxhbnM/OiBBdmFpbGFibGVQbGFuRmllbGRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRmVhdHVyZVN0YXRlIGV4dGVuZHMgVGltZVN0YW1wZWQge1xuICBub3RpZmljYXRpb25zTGFzdFZpZXdlZD86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlclRpbWUge1xuICB0aW1lc3RhbXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGJrPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3RDYXJkTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgb3duZXI/OiBVc2VyTm9kZTtcbiAgcHVibGljRGF0YVNpZz86IHN0cmluZztcbiAgcHVibGljU2VhcmNoYWJsZVNpZz86IHN0cmluZztcbiAgc2lnUHhrPzogS2V5Tm9kZTtcbiAgZGVmYXVsdEZyb20/OiBEYXRlVGltZTtcbiAgcHVibGljRGF0YT86IHN0cmluZztcbiAgcHVibGljU2VhcmNoYWJsZT86IHN0cmluZztcbiAgY2lwaGVyRGF0YT86IHN0cmluZztcbiAgY2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGtleT86IEtleU5vZGU7XG4gIHBsYWluRGF0YT86IHN0cmluZztcbiAgcGxhaW5EYXRhU2lnPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2Vzc0NvbnRyb2xsZWRSZXNvdXJjZSB7XG4gIGFjY2Vzc1JvbGU/OiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICBwZXJtaXNzaW9ucz86IFBlcm1pc3Npb25DaG9pY2VbXTtcbiAgdHBBY2Nlc3NSb2xlcz86IEFjY2Vzc1JvbGVbXTtcbiAgY29uZmlkZW50aWFsaXR5PzogQ29uZmlkZW50aWFsUmVzb3VyY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5Tm9kZVxuICBleHRlbmRzIE5vZGUsXG4gICAgVGltZVN0YW1wZWQsXG4gICAgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIGNpcGhlck1ldGE/OiBzdHJpbmc7XG4gIGNpcGhlck1ldGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhcmNoaXZlZD86IGJvb2xlYW47XG4gIGtleUlkPzogSUQ7XG4gIGNoaWxkRmlsZUxpbmtzPzogQ29ubmVjdGlvbjxGaWxlTGlua05vZGU+O1xuICBjaGlsZERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlMaW5rTm9kZT47XG4gIHBhcmVudERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlMaW5rTm9kZT47XG4gIG5QYXJlbnREaXJlY3RvcnlMaW5rcz86IERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdDtcbiAgbkNoaWxkRGlyZWN0b3J5TGlua3M/OiBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Q7XG4gIG5DaGlsZEZpbGVMaW5rcz86IEZpbGVMaW5rTm9kZUxyTkxpc3Q7XG4gIGRlc2NlbmRhbnRzPzogRGVzY2VuZGFudHM7XG4gIGxvY2s/OiBMb2NrRmllbGQ7XG4gIGxvY2tWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQsIEFjY2Vzc0NvbnRyb2xsZWRSZXNvdXJjZSB7XG4gIGN1cnJlbnRWZXJzaW9uPzogRmlsZVZlcnNpb25Ob2RlO1xuICBhcmNoaXZlZD86IGJvb2xlYW47XG4gIHZlcnNpb25zPzogQ29ubmVjdGlvbjxGaWxlVmVyc2lvbk5vZGU+O1xuICBrZXlJZD86IElEO1xuICBwYXJlbnREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RmlsZUxpbmtOb2RlPjtcbiAgblBhcmVudERpcmVjdG9yeUxpbmtzPzogRmlsZUxpbmtOb2RlTHJOTGlzdDtcbiAgbG9jaz86IExvY2tGaWVsZDtcbiAgbG9ja1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5TGlua05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBhcmVudERpcmVjdG9yeT86IERpcmVjdG9yeU5vZGU7XG4gIGNoaWxkRGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgbGlua1R5cGU/OiBMaW5rVHlwZUZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaW5rTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFyZW50RGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgY2hpbGRGaWxlPzogRmlsZU5vZGU7XG4gIGxpbmtUeXBlPzogTGlua1R5cGVGaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogRGlyZWN0b3J5TGlua05vZGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlTGlua05vZGVMck5MaXN0IHtcbiAgbGlzdD86IEZpbGVMaW5rTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NlbmRhbnRzIHtcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xuICBkaXJlY3Rvcmllc0NvdW50PzogbnVtYmVyO1xuICBmaWxlc0NvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBBY2Nlc3NSb2xlQ2hvaWNlIHtcbiAgUkVBREVSID0gJ1JFQURFUicsXG4gIFdSSVRFUiA9ICdXUklURVInLFxuICBBRE1JTiA9ICdBRE1JTicsXG4gIERFTlkgPSAnREVOWScsXG4gIE9XTkVSID0gJ09XTkVSJyxcbn1cblxuZXhwb3J0IGVudW0gQWNjZXNzUm9sZU1ldGhvZENob2ljZSB7XG4gIElOSEVSSVRFRCA9ICdJTkhFUklURUQnLFxuICBESVJFQ1QgPSAnRElSRUNUJyxcbn1cblxuZXhwb3J0IGVudW0gUGVybWlzc2lvbkNob2ljZSB7XG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIFNIQVJFID0gJ1NIQVJFJyxcbiAgQVJDSElWRSA9ICdBUkNISVZFJyxcbiAgQUNDRVNTX0FSQ0hJVkVEID0gJ0FDQ0VTU19BUkNISVZFRCcsXG4gIFVOQVJDSElWRSA9ICdVTkFSQ0hJVkUnLFxuICBTRVRfQ09ORklERU5USUFMID0gJ1NFVF9DT05GSURFTlRJQUwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZGVudGlhbFJlc291cmNlIHtcbiAgaXNDb25maWRlbnRpYWw/OiBib29sZWFuO1xuICBtZXRob2Q/OiBBY2Nlc3NSb2xlTWV0aG9kQ2hvaWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2Vzc1JvbGUge1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbiAgc3ViamVjdD86IFVzZXJOb2RlO1xuICByb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgbWV0aG9kPzogQWNjZXNzUm9sZU1ldGhvZENob2ljZTtcbiAgaW5oZXJpdGVkRnJvbT86IERpcmVjdG9yeU5vZGU7XG4gIHRwPzogVHBOb2RlO1xuICBpc0lzc3Vlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEZpbGVPcGVyYXRpb25GaWVsZCB7XG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgUkVWRVJUID0gJ1JFVkVSVCcsXG4gIERFTEVURSA9ICdERUxFVEUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVWZXJzaW9uTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgZmlsZT86IEZpbGVOb2RlO1xuICBzdGF0ZT86IEZpbGVTdGF0ZU5vZGU7XG4gIG9wZXJhdGlvbj86IEZpbGVPcGVyYXRpb25GaWVsZDtcbiAgYXV0aG9yPzogVXNlck5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTdGF0ZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YUpzb24/OiBKU09OT2JqZWN0O1xuICBjaXBoZXJNZXRhPzogc3RyaW5nO1xuICBjaXBoZXJNZXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgY29udGVudFJlc291cmNlPzogc3RyaW5nO1xuICB2ZXJzaW9ucz86IENvbm5lY3Rpb248RmlsZVZlcnNpb25Ob2RlPjtcbiAga2V5SWQ/OiBJRDtcbn1cblxuZXhwb3J0IGVudW0gS2V5RXhjaGFuZ2VPdGtTdGF0ZSB7XG4gIE9US19JTklUSUFURUQgPSAnT1RLX0lOSVRJQVRFRCcsXG4gIE9US19BQ0NFUFRFRCA9ICdPVEtfQUNDRVBURUQnLFxuICBPVEtfQ09NUExFVEVEID0gJ09US19DT01QTEVURUQnLFxufVxuXG4vLyBUaGVzZSBmaWVsZHMgYXJlIG5vdCBvcHRpb25hbCBiZWNhdXNlIHRoZXkgYXJlIG5vdCB3aXRoaW4gdGhlIHVzZXIncyBjb250cm9sIHRvIHNlbGVjdCBpbiBhIGdxbCBxdWVyeS5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENhcmRTaGFyZWRDaXBoZXJEYXRhIHtcbiAgLy8gU2hhcmVkIHJlYWQgYWNjZXNzIGJldHdlZW4gaW5pdGlhdG9yIGFuZCByZXNwb25kZXIuIEJ1dCBvbmx5IHRoZSBpbml0aWF0b3IgaGFzIHdyaXRlIGFjY2Vzcy5cbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbjogSlNPTk9iamVjdDtcbn1cblxuLyoqXG4gKiBUaGUgY29udGVudHMgb2YgdGhlIG9uZS10aW1lIGtleSBjaXBoZXJcbiAqIFRoZXNlIGZpZWxkcyBhcmUgbm90IG9wdGlvbmFsIGJlY2F1c2UgdGhleSBhcmUgbm90IHdpdGhpbiB0aGUgdXNlcidzIGNvbnRyb2wgdG8gc2VsZWN0IGluIGEgZ3FsIHF1ZXJ5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE90S2V5Q2lwaGVyQ2xlYXJKc29uMiB7XG4gIC8vIFVzZWQgdG8gY29uZmlybSB0byB0aGUgaW5pdGlhdG9yIHRoYXQgdGhlIHJlc3BvbmRlciBoYXMgYWNjZXNzIHRvIHRoZSBvbmUtdGltZSBrZXkuXG4gIG5vbmNlOiBzdHJpbmc7XG4gIC8vIERhdGEgc2VudCBmcm9tIGluaXRpYXRvciB0byB0aGUgcmVzcG9uZGVyXG4gIGluaXRpYXRvcjoge1xuICAgIG9uZVRpbWVQYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+OyAvLyBvbmUtdGltZSBwdWJsaWMgZW5jcnlwdGlvbiBrZXkgdGhlIHJlc3BvbmRlciB3aWxsIHVzZSB0byBzZW5kIGRhdGEgYmFjayB0byB0aGUgaW5pdGlhdG9yXG4gICAgcGJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjsgLy8gcHVibGljIGVuY3J5cHRpb24ga2V5XG4gICAgc2lnUGJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjsgLy8gcHVibGljIHNpZ25pbmcga2V5XG4gICAgbWVzc2FnZT86IEpTT05PYmplY3Q7XG4gICAgY29udGFjdENhcmQ/OiBDb250YWN0Q2FyZFNoYXJlZENpcGhlckRhdGE7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5RXhjaGFuZ2VPdGtOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IEtleUV4Y2hhbmdlT3RrU3RhdGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIG1rU2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgaW5pdGlhdG9yU2lnUHhrPzogS2V5Tm9kZTtcbiAgcmVzcG9uZGVyU2lnUHhrPzogS2V5Tm9kZTtcbiAgaW5pdGlhdG9yT25lVGltZVBia0NpcGhlcj86IHN0cmluZztcbiAgb3RLZXlQYXJhbXM/OiBzdHJpbmc7XG4gIG90S2V5Q2lwaGVyPzogc3RyaW5nO1xuICBvdEtleUNpcGhlckNsZWFySnNvbj86IE90S2V5Q2lwaGVyQ2xlYXJKc29uMjtcbiAgcmVzcG9uZGVyUGJrQ2lwaGVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBLZXlFeGNoYW5nZVN0YXRlIHtcbiAgSU5fUFJPR1JFU1MgPSAnSU5fUFJPR1JFU1MnLFxuICBDT01QTEVURUQgPSAnQ09NUExFVEVEJyxcbiAgREVDTElORUQgPSAnREVDTElORUQnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgREVMRVRFRCA9ICdERUxFVEVEJyxcbn1cblxuZXhwb3J0IGVudW0gS2V5RXhjaGFuZ2VNb2RlIHtcbiAgT1RLID0gJ09USycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5RXhjaGFuZ2VOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBleHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHRva2VuPzogc3RyaW5nO1xuICB0b2tlbkV4cGlyeVRpbWU/OiBEYXRlVGltZTtcbiAgc3RhdGU/OiBLZXlFeGNoYW5nZVN0YXRlO1xuICBtb2RlPzogS2V5RXhjaGFuZ2VNb2RlO1xuICBpbml0aWF0b3I/OiBVc2VyTm9kZTtcbiAgcmVzcG9uZGVyPzogVXNlck5vZGU7XG4gIGluaXRpYXRvclJvb3RLZXlDaXBoZXI/OiBzdHJpbmc7XG4gIHJlc3BvbmRlclJvb3RLZXlDaXBoZXI/OiBzdHJpbmc7XG4gIGluaXRpYXRvckFjdGlvblJlcXVpcmVkPzogYm9vbGVhbjtcbiAgcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWQ/OiBib29sZWFuO1xuICBjcmVhdGVUcD86IGJvb2xlYW47XG4gIG90az86IEtleUV4Y2hhbmdlT3RrTm9kZTtcbiAgaXNJbml0aWF0b3I/OiBib29sZWFuO1xuICBpc0V4cGlyZWQ/OiBib29sZWFuO1xuICByZXNwb25kZXJFbWFpbEFkZHJlc3M/OiBMckVtYWlsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZEl0ZW1zIHtcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENvbnRhY3RDYXJkTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgb3duZXI/OiBVc2VyTm9kZTtcbiAgcmVjZWl2ZXI/OiBVc2VyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlckRhdGFTaWc/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFTaWdQeGs/OiBLZXlOb2RlO1xuICBvd25lckNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIG93bmVyQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIG93bmVyS2V5PzogS2V5Tm9kZTtcbiAgb3duZXJQbGFpbkRhdGE/OiBzdHJpbmc7XG4gIG93bmVyUGxhaW5EYXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIG93bmVyUGxhaW5EYXRhU2lnPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyS2V5PzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU2hhcmVkS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAga2V5RXhjaGFuZ2U/OiBLZXlFeGNoYW5nZU5vZGU7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgdXNlclByaz86IEtleU5vZGU7XG4gIHVzZXJTaWdQcms/OiBLZXlOb2RlO1xuICBvdGhlcj86IFVzZXJOb2RlO1xuICBvdGhlclBiaz86IEtleU5vZGU7XG4gIG90aGVyU2lnUGJrPzogS2V5Tm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtTaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBta1B4az86IEtleU5vZGU7XG4gIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXI/OiBzdHJpbmc7XG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyPzogc3RyaW5nO1xuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBta1Jlc2hhcmVSZXF1ZXN0U2VudD86IGJvb2xlYW47XG4gIG1rUmVzaGFyZVJlc3BvbnNlU2VudD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFVzZXJTaGFyZWRLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB1c2VyPzogVXNlck5vZGU7XG4gIG90aGVyPzogVXNlck5vZGU7XG4gIHVzZXJTaGFyZWRLZXk/OiBVc2VyU2hhcmVkS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgb3RoZXI/OiBVc2VyTm9kZTtcbiAgY3VycmVudFVzZXJTaGFyZWRLZXk/OiBDdXJyZW50VXNlclNoYXJlZEtleU5vZGU7XG4gIGlzQ29tcGxldGVkPzogYm9vbGVhbjtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ29udGFjdENhcmQ/OiBTaGFyZWRDb250YWN0Q2FyZE5vZGU7XG4gIG15Q29udGFjdENhcmQ/OiBTaGFyZWRDb250YWN0Q2FyZE5vZGU7XG4gIG15SXRlbXM/OiBTaGFyZWRJdGVtcztcbiAgdGhlaXJJdGVtcz86IFNoYXJlZEl0ZW1zO1xuICBteVNjZW5hcmlvcz86IENvbm5lY3Rpb248U2NlbmFyaW9Ob2RlPjtcbiAgc2hhcmVkU2NlbmFyaW9zPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb05vZGU+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/OiBDbGFpbVN0YXRlO1xuICBzaGFyZWRTY2VuYXJpbz86IFNoYXJlZFNjZW5hcmlvTm9kZTtcbiAgaXNDbGFpbWFudD86IGJvb2xlYW47XG4gIGFzQ2xhaW1SZWNlaXZlcj86IFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlck5vZGU7XG4gIGNsYWltPzogU2hhcmVkVHBDbGFpbU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbUFwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJzPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb1JlY2VpdmVyTm9kZT47XG4gIHN0YXRlPzogQ2xhaW1BcHByb3ZlclN0YXRlO1xuICBhcHByb3Zlcj86IFRwQXNzZW1ibHlBcHByb3Zlck5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZWQ/OiBEYXRlVGltZTtcbiAgYXBwcm92YWxzPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZWRBcHByb3ZhbE5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlZEFwcHJvdmFsTm9kZVxuICBleHRlbmRzIE5vZGUsXG4gICAgVGltZVN0YW1wZWQge1xuICByZWNlaXZlckNpcGhlcj86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHB4az86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGxhaW5EYXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgdGltZVJlYWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25NYW5hZ2VtZW50U3RhdGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGxhc3RWaWV3ZWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGVudW0gTGlua1R5cGVGaWVsZCB7XG4gIEhBUkQgPSAnSEFSRCcsXG4gIFNPRlQgPSAnU09GVCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNlbmRlcj86IFVzZXJOb2RlO1xuICByZWNlaXZlcj86IFVzZXJOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzZW5kZXJTaWdQYms/OiBLZXlOb2RlO1xuICBwbGFpbk1lc3NhZ2U/OiBzdHJpbmc7XG4gIHBsYWluTWVzc2FnZUpzb24/OiBzdHJpbmc7XG4gIHNpZ25lZENpcGhlck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNpZ25lZENpcGhlck1lc3NhZ2VDbGVhckpzb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9ja0ZpZWxkIHtcbiAgY3JlYXRlZD86IERhdGVUaW1lO1xuICBtb2RpZmllZD86IERhdGVUaW1lO1xuICBleHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHN0YXRlPzogTG9ja1N0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckNvbmZpZyB7XG4gIHJlbGF5Q29ubmVjdGlvbk1heExpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJsZVBsYW5GaWVsZCB7XG4gIGlzc3VlclVpZD86IHN0cmluZztcbiAgcGxhblVpZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHByaWNlT3B0aW9ucz86IFByaWNlT3B0aW9uRmllbGRbXTtcbiAgdHJpYWw/OiBUcmlhbFBlcmlvZEZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlT3B0aW9uRmllbGQge1xuICBwcmljZUlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYW1vdW50PzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgaW50ZXJ2YWxVbml0Pzogc3RyaW5nO1xuICBpbnRlcnZhbENvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWFsUGVyaW9kRmllbGQge1xuICB5ZWFycz86IG51bWJlcjtcbiAgbW9udGhzPzogbnVtYmVyO1xuICB3ZWVrcz86IG51bWJlcjtcbiAgZGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q2FwdHVyZUZpZWxkIHtcbiAgc3RyaXBlSW50ZW50SWQ/OiBzdHJpbmc7XG4gIHN0cmlwZUNsaWVudFNlY3JldD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50TWV0aG9kTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY2FyZD86IFBheW1lbnRDYXJkRmllbGQ7XG4gIGludm9pY2U/OiBQYXltZW50SW52b2ljZUZpZWxkO1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRDYXJkRmllbGQge1xuICBicmFuZD86IHN0cmluZztcbiAgbGFzdEZvdXJEaWdpdHM/OiBzdHJpbmc7XG4gIGV4cGlyeVllYXI/OiBudW1iZXI7XG4gIGV4cGlyeU1vbnRoPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRJbnZvaWNlRmllbGQge1xuICBlbWFpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9tb3Rpb25hbENvZGVGaWVsZCB7XG4gIGFtb3VudE9mZj86IG51bWJlcjtcbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIHBlcmNlbnRPZmY/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogc3RyaW5nO1xuICBkdXJhdGlvbkluTW9udGhzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcmlvZEZpZWxkIHtcbiAgc3RhcnQ/OiBEYXRlVGltZTtcbiAgZW5kPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVkUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjdXJyZW50U3RhdGVzPzogSXNzdWVkUGxhblN0YXRlTm9kZVtdO1xuICBjdXJyZW50UGVyaW9kPzogUGVyaW9kRmllbGQ7XG4gIGN1cnJlbnRQcmljZU9wdGlvbj86IFByaWNlT3B0aW9uRmllbGQ7XG4gIHVwY29taW5nSW52b2ljZT86IEJpbGxpbmdGaWVsZDtcbiAgYWx0ZXJuYXRpdmVQcmljZU9wdGlvbnM/OiBQcmljZU9wdGlvbkZpZWxkW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVkUGxhblN0YXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcGVyaW9kRW5kPzogRGF0ZVRpbWU7XG4gIHN0YXRlPzogUGxhblN0YXRlRmllbGQ7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZUZpZWxkIHtcbiAgVFJJQUxMSU5HID0gJ1RSSUFMTElORycsXG4gIEFDVElWRSA9ICdBQ1RJVkUnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgRVhQSVJFRCA9ICdFWFBJUkVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaWxsaW5nRmllbGQge1xuICBpbnZvaWNlTnVtYmVyPzogc3RyaW5nO1xuICB0b3RhbD86IG51bWJlcjtcbiAgYW1vdW50RHVlPzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgZG9jdW1lbnRVcmw/OiBzdHJpbmc7XG4gIHN0YXR1cz86IHN0cmluZztcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcGVyaW9kRW5kPzogRGF0ZVRpbWU7XG4gIGZpbmFsaXNlZEF0PzogRGF0ZVRpbWU7XG4gIHBhaWRBdD86IERhdGVUaW1lO1xuICBwYWlkPzogYm9vbGVhbjtcbiAgbmV4dFBheW1lbnRBdHRlbXB0PzogRGF0ZVRpbWU7XG59XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hcGkvdHlwZXMvbHItZ3JhcGhxbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUsUUFBUSxDQUFJLFVBQXlCO0lBQ25ELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsTUFBTSxDQUFOLElBQVksZUFFWDtBQUZELFdBQVksZUFBZTtJQUN6QiwwQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsZUFBZSxLQUFmLGVBQWUsUUFFMUI7QUFNRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQTRKRCxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLG1DQUFlLENBQUE7SUFDZixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLHNCQUdYO0FBSEQsV0FBWSxzQkFBc0I7SUFDaEMsaURBQXVCLENBQUE7SUFDdkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFHakM7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLGlDQUFhLENBQUE7SUFDYixxQ0FBaUIsQ0FBQTtJQUNq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ckIsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLCtDQUFxQixDQUFBO0lBQ3JCLCtDQUFxQixDQUFBO0lBQ3JCLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUF3SUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQXdHRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLHlDQUF1QixDQUFBO0lBQ3ZCLG1DQUFpQixDQUFBO0lBQ2pCLHlDQUF1QixDQUFBO0lBQ3ZCLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIERhdGVUaW1lLFxuICBHZW5lcmljU2NhbGFyLFxuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgSlNPTlN0cmluZyxcbiAgTHJFbWFpbCxcbiAgTm9kZSxcbiAgVGltZVN0YW1wZWQsXG59IGZyb20gJy4vZ3JhcGhxbC50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBFZGdlczxUPihjb25uZWN0aW9uOiBDb25uZWN0aW9uPFQ+KSB7XG4gIHJldHVybiBjb25uZWN0aW9uLmVkZ2VzLm1hcCgoZWRnZSkgPT4gZWRnZS5ub2RlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlc05vZGUge1xuICBteVZhdWx0Pzogc3RyaW5nW107XG4gIHRwVmF1bHQ/OiBzdHJpbmdbXTtcbiAgc2hhcmVWYXVsdD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVc2VyRGVsZXRlU3RhdGUge1xuICBSRVFVRVNURUQgPSAnUkVRVUVTVEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGVsZXRlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgc3RhdGU/OiBVc2VyRGVsZXRlU3RhdGU7XG59XG5cbmV4cG9ydCBlbnVtIFBsYW5TdGF0ZSB7XG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFuTm9kZSBleHRlbmRzIE5vZGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogSlNPTlN0cmluZztcbiAgc3RhdGU/OiBQbGFuU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclBsYW5TdHJpcGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdWJzY3JpcHRpb25JZD86IHN0cmluZztcbiAgcHJpY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgcGxhbj86IFBsYW5Ob2RlO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RyaXBlPzogVXNlclBsYW5TdHJpcGVOb2RlO1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RyaXBlTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY3VzdG9tZXI/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwYXNzS2V5UGFyYW1zPzogR2VuZXJpY1NjYWxhcjtcbiAgcGFzc0lkcFBhcmFtcz86IEdlbmVyaWNTY2FsYXI7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms/OiBHZW5lcmljU2NhbGFyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRVc2VyS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFzc0tleXM/OiBQYXNzS2V5Tm9kZVtdO1xuICBwYXNzS2V5PzogUGFzc0tleU5vZGU7XG4gIHJvb3RLZXk/OiBLZXlOb2RlO1xuICBtYXN0ZXJLZXk/OiBLZXlOb2RlO1xuICBweGs/OiBLZXlOb2RlO1xuICBzaWdQeGs/OiBLZXlOb2RlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE5vZGUgdHlwZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGludGVyZmFjZSBVc2VyTm9kZSBleHRlbmRzIE5vZGUge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgY29udGFjdENhcmRzPzogQ29ubmVjdGlvbjxDb250YWN0Q2FyZE5vZGU+O1xuICBjdXJyZW50VXNlcktleT86IEN1cnJlbnRVc2VyS2V5Tm9kZTtcbiAgb3duZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgcmVjZWl2ZWRDb250YWN0Q2FyZD86IFNoYXJlZENvbnRhY3RDYXJkTm9kZTtcbiAgaXNDdXJyZW50VXNlcj86IGJvb2xlYW47XG4gIGhhdmVUcD86IGJvb2xlYW47XG4gIHN0cmlwZT86IFVzZXJTdHJpcGVOb2RlO1xuICB1c2VyUGxhbnM/OiBDb25uZWN0aW9uPFVzZXJQbGFuTm9kZT47XG4gIHVzZXJEZWxldGU/OiBVc2VyRGVsZXRlTm9kZTtcbiAgZmVhdHVyZXM/OiBGZWF0dXJlc05vZGU7XG4gIGZlYXR1cmVTdGF0ZT86IFVzZXJGZWF0dXJlU3RhdGU7XG4gIHNlc3Npb25FbmNyeXB0aW9uS2V5Pzogc3RyaW5nO1xuICBwbGFucz86IElzc3VlZFBsYW5Ob2RlW107XG4gIHBheW1lbnRNZXRob2RzPzogUGF5bWVudE1ldGhvZE5vZGVbXTtcbiAgYmlsbGluZ0hpc3Rvcnk/OiBCaWxsaW5nRmllbGRbXTtcbiAgYXZhaWxhYmxlUGxhbnM/OiBBdmFpbGFibGVQbGFuRmllbGRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRmVhdHVyZVN0YXRlIGV4dGVuZHMgVGltZVN0YW1wZWQge1xuICBub3RpZmljYXRpb25zTGFzdFZpZXdlZD86IERhdGVUaW1lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlclRpbWUge1xuICB0aW1lc3RhbXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGJrPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3RDYXJkTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgb3duZXI/OiBVc2VyTm9kZTtcbiAgcHVibGljRGF0YVNpZz86IHN0cmluZztcbiAgcHVibGljU2VhcmNoYWJsZVNpZz86IHN0cmluZztcbiAgc2lnUHhrPzogS2V5Tm9kZTtcbiAgZGVmYXVsdEZyb20/OiBEYXRlVGltZTtcbiAgcHVibGljRGF0YT86IHN0cmluZztcbiAgcHVibGljU2VhcmNoYWJsZT86IHN0cmluZztcbiAgY2lwaGVyRGF0YT86IHN0cmluZztcbiAgY2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIGtleT86IEtleU5vZGU7XG4gIHBsYWluRGF0YT86IHN0cmluZztcbiAgcGxhaW5EYXRhU2lnPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2Vzc0NvbnRyb2xsZWRSZXNvdXJjZSB7XG4gIGFjY2Vzc1JvbGU/OiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICBwZXJtaXNzaW9ucz86IFBlcm1pc3Npb25DaG9pY2VbXTtcbiAgdHBBY2Nlc3NSb2xlcz86IEFjY2Vzc1JvbGVbXTtcbiAgY29uZmlkZW50aWFsaXR5PzogQ29uZmlkZW50aWFsUmVzb3VyY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5Tm9kZVxuICBleHRlbmRzIE5vZGUsXG4gICAgVGltZVN0YW1wZWQsXG4gICAgQWNjZXNzQ29udHJvbGxlZFJlc291cmNlIHtcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIGNpcGhlck1ldGE/OiBzdHJpbmc7XG4gIGNpcGhlck1ldGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBhcmNoaXZlZD86IGJvb2xlYW47XG4gIGtleUlkPzogSUQ7XG4gIGNoaWxkRmlsZUxpbmtzPzogQ29ubmVjdGlvbjxGaWxlTGlua05vZGU+O1xuICBjaGlsZERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlMaW5rTm9kZT47XG4gIHBhcmVudERpcmVjdG9yeUxpbmtzPzogQ29ubmVjdGlvbjxEaXJlY3RvcnlMaW5rTm9kZT47XG4gIG5QYXJlbnREaXJlY3RvcnlMaW5rcz86IERpcmVjdG9yeUxpbmtOb2RlTHJOTGlzdDtcbiAgbkNoaWxkRGlyZWN0b3J5TGlua3M/OiBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Q7XG4gIG5DaGlsZEZpbGVMaW5rcz86IEZpbGVMaW5rTm9kZUxyTkxpc3Q7XG4gIGRlc2NlbmRhbnRzPzogRGVzY2VuZGFudHM7XG4gIGxvY2s/OiBMb2NrRmllbGQ7XG4gIGxvY2tWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQsIEFjY2Vzc0NvbnRyb2xsZWRSZXNvdXJjZSB7XG4gIGN1cnJlbnRWZXJzaW9uPzogRmlsZVZlcnNpb25Ob2RlO1xuICBhcmNoaXZlZD86IGJvb2xlYW47XG4gIHZlcnNpb25zPzogQ29ubmVjdGlvbjxGaWxlVmVyc2lvbk5vZGU+O1xuICBrZXlJZD86IElEO1xuICBwYXJlbnREaXJlY3RvcnlMaW5rcz86IENvbm5lY3Rpb248RmlsZUxpbmtOb2RlPjtcbiAgblBhcmVudERpcmVjdG9yeUxpbmtzPzogRmlsZUxpbmtOb2RlTHJOTGlzdDtcbiAgbG9jaz86IExvY2tGaWVsZDtcbiAgbG9ja1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0b3J5TGlua05vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBhcmVudERpcmVjdG9yeT86IERpcmVjdG9yeU5vZGU7XG4gIGNoaWxkRGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgbGlua1R5cGU/OiBMaW5rVHlwZUZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaW5rTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGFyZW50RGlyZWN0b3J5PzogRGlyZWN0b3J5Tm9kZTtcbiAgY2hpbGRGaWxlPzogRmlsZU5vZGU7XG4gIGxpbmtUeXBlPzogTGlua1R5cGVGaWVsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlMaW5rTm9kZUxyTkxpc3Qge1xuICBsaXN0PzogRGlyZWN0b3J5TGlua05vZGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlTGlua05vZGVMck5MaXN0IHtcbiAgbGlzdD86IEZpbGVMaW5rTm9kZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NlbmRhbnRzIHtcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xuICBkaXJlY3Rvcmllc0NvdW50PzogbnVtYmVyO1xuICBmaWxlc0NvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBBY2Nlc3NSb2xlQ2hvaWNlIHtcbiAgUkVBREVSID0gJ1JFQURFUicsXG4gIFdSSVRFUiA9ICdXUklURVInLFxuICBBRE1JTiA9ICdBRE1JTicsXG4gIERFTlkgPSAnREVOWScsXG4gIE9XTkVSID0gJ09XTkVSJyxcbn1cblxuZXhwb3J0IGVudW0gQWNjZXNzUm9sZU1ldGhvZENob2ljZSB7XG4gIElOSEVSSVRFRCA9ICdJTkhFUklURUQnLFxuICBESVJFQ1QgPSAnRElSRUNUJyxcbn1cblxuZXhwb3J0IGVudW0gUGVybWlzc2lvbkNob2ljZSB7XG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgREVMRVRFID0gJ0RFTEVURScsXG4gIFNIQVJFID0gJ1NIQVJFJyxcbiAgQVJDSElWRSA9ICdBUkNISVZFJyxcbiAgQUNDRVNTX0FSQ0hJVkVEID0gJ0FDQ0VTU19BUkNISVZFRCcsXG4gIFVOQVJDSElWRSA9ICdVTkFSQ0hJVkUnLFxuICBTRVRfQ09ORklERU5USUFMID0gJ1NFVF9DT05GSURFTlRJQUwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZGVudGlhbFJlc291cmNlIHtcbiAgaXNDb25maWRlbnRpYWw/OiBib29sZWFuO1xuICBtZXRob2Q/OiBBY2Nlc3NSb2xlTWV0aG9kQ2hvaWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2Vzc1JvbGUge1xuICBpc3N1ZXI/OiBVc2VyTm9kZTtcbiAgc3ViamVjdD86IFVzZXJOb2RlO1xuICByb2xlPzogQWNjZXNzUm9sZUNob2ljZTtcbiAgbWV0aG9kPzogQWNjZXNzUm9sZU1ldGhvZENob2ljZTtcbiAgaW5oZXJpdGVkRnJvbT86IERpcmVjdG9yeU5vZGU7XG4gIHRwPzogVHBOb2RlO1xuICBpc0lzc3Vlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIEZpbGVPcGVyYXRpb25GaWVsZCB7XG4gIENSRUFURSA9ICdDUkVBVEUnLFxuICBSRUFEID0gJ1JFQUQnLFxuICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgUkVWRVJUID0gJ1JFVkVSVCcsXG4gIERFTEVURSA9ICdERUxFVEUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVWZXJzaW9uTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgZmlsZT86IEZpbGVOb2RlO1xuICBzdGF0ZT86IEZpbGVTdGF0ZU5vZGU7XG4gIG9wZXJhdGlvbj86IEZpbGVPcGVyYXRpb25GaWVsZDtcbiAgYXV0aG9yPzogVXNlck5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTdGF0ZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHBsYWluTWV0YT86IEpTT05TdHJpbmc7XG4gIHBsYWluTWV0YUpzb24/OiBKU09OT2JqZWN0O1xuICBjaXBoZXJNZXRhPzogc3RyaW5nO1xuICBjaXBoZXJNZXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgY29udGVudFJlc291cmNlPzogc3RyaW5nO1xuICB2ZXJzaW9ucz86IENvbm5lY3Rpb248RmlsZVZlcnNpb25Ob2RlPjtcbiAga2V5SWQ/OiBJRDtcbn1cblxuZXhwb3J0IGVudW0gS2V5RXhjaGFuZ2VPdGtTdGF0ZSB7XG4gIE9US19JTklUSUFURUQgPSAnT1RLX0lOSVRJQVRFRCcsXG4gIE9US19BQ0NFUFRFRCA9ICdPVEtfQUNDRVBURUQnLFxuICBPVEtfQ09NUExFVEVEID0gJ09US19DT01QTEVURUQnLFxufVxuXG4vLyBUaGVzZSBmaWVsZHMgYXJlIG5vdCBvcHRpb25hbCBiZWNhdXNlIHRoZXkgYXJlIG5vdCB3aXRoaW4gdGhlIHVzZXIncyBjb250cm9sIHRvIHNlbGVjdCBpbiBhIGdxbCBxdWVyeS5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENhcmRTaGFyZWRDaXBoZXJEYXRhIHtcbiAgLy8gU2hhcmVkIHJlYWQgYWNjZXNzIGJldHdlZW4gaW5pdGlhdG9yIGFuZCByZXNwb25kZXIuIEJ1dCBvbmx5IHRoZSBpbml0aWF0b3IgaGFzIHdyaXRlIGFjY2Vzcy5cbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbjogSlNPTk9iamVjdDtcbn1cblxuLyoqXG4gKiBUaGUgY29udGVudHMgb2YgdGhlIG9uZS10aW1lIGtleSBjaXBoZXJcbiAqIFRoZXNlIGZpZWxkcyBhcmUgbm90IG9wdGlvbmFsIGJlY2F1c2UgdGhleSBhcmUgbm90IHdpdGhpbiB0aGUgdXNlcidzIGNvbnRyb2wgdG8gc2VsZWN0IGluIGEgZ3FsIHF1ZXJ5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE90S2V5Q2lwaGVyQ2xlYXJKc29uMiB7XG4gIC8vIFVzZWQgdG8gY29uZmlybSB0byB0aGUgaW5pdGlhdG9yIHRoYXQgdGhlIHJlc3BvbmRlciBoYXMgYWNjZXNzIHRvIHRoZSBvbmUtdGltZSBrZXkuXG4gIG5vbmNlOiBzdHJpbmc7XG4gIC8vIERhdGEgc2VudCBmcm9tIGluaXRpYXRvciB0byB0aGUgcmVzcG9uZGVyXG4gIGluaXRpYXRvcjoge1xuICAgIG9uZVRpbWVQYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+OyAvLyBvbmUtdGltZSBwdWJsaWMgZW5jcnlwdGlvbiBrZXkgdGhlIHJlc3BvbmRlciB3aWxsIHVzZSB0byBzZW5kIGRhdGEgYmFjayB0byB0aGUgaW5pdGlhdG9yXG4gICAgcGJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjsgLy8gcHVibGljIGVuY3J5cHRpb24ga2V5XG4gICAgc2lnUGJrOiBSZWNvcmQ8c3RyaW5nLCBKU09OT2JqZWN0PjsgLy8gcHVibGljIHNpZ25pbmcga2V5XG4gICAgbWVzc2FnZT86IEpTT05PYmplY3Q7XG4gICAgY29udGFjdENhcmQ/OiBDb250YWN0Q2FyZFNoYXJlZENpcGhlckRhdGE7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5RXhjaGFuZ2VPdGtOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBzdGF0ZT86IEtleUV4Y2hhbmdlT3RrU3RhdGU7XG4gIHNoYXJlZEtleT86IEtleU5vZGU7XG4gIG1rU2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgaW5pdGlhdG9yU2lnUHhrPzogS2V5Tm9kZTtcbiAgcmVzcG9uZGVyU2lnUHhrPzogS2V5Tm9kZTtcbiAgaW5pdGlhdG9yT25lVGltZVBia0NpcGhlcj86IHN0cmluZztcbiAgb3RLZXlQYXJhbXM/OiBzdHJpbmc7XG4gIG90S2V5Q2lwaGVyPzogc3RyaW5nO1xuICBvdEtleUNpcGhlckNsZWFySnNvbj86IE90S2V5Q2lwaGVyQ2xlYXJKc29uMjtcbiAgcmVzcG9uZGVyUGJrQ2lwaGVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBLZXlFeGNoYW5nZVN0YXRlIHtcbiAgSU5fUFJPR1JFU1MgPSAnSU5fUFJPR1JFU1MnLFxuICBDT01QTEVURUQgPSAnQ09NUExFVEVEJyxcbiAgREVDTElORUQgPSAnREVDTElORUQnLFxuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcbiAgREVMRVRFRCA9ICdERUxFVEVEJyxcbn1cblxuZXhwb3J0IGVudW0gS2V5RXhjaGFuZ2VNb2RlIHtcbiAgT1RLID0gJ09USycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5RXhjaGFuZ2VOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBleHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHRva2VuPzogc3RyaW5nO1xuICB0b2tlbkV4cGlyeVRpbWU/OiBEYXRlVGltZTtcbiAgc3RhdGU/OiBLZXlFeGNoYW5nZVN0YXRlO1xuICBtb2RlPzogS2V5RXhjaGFuZ2VNb2RlO1xuICBpbml0aWF0b3I/OiBVc2VyTm9kZTtcbiAgcmVzcG9uZGVyPzogVXNlck5vZGU7XG4gIGluaXRpYXRvclJvb3RLZXlDaXBoZXI/OiBzdHJpbmc7XG4gIHJlc3BvbmRlclJvb3RLZXlDaXBoZXI/OiBzdHJpbmc7XG4gIGluaXRpYXRvckFjdGlvblJlcXVpcmVkPzogYm9vbGVhbjtcbiAgcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWQ/OiBib29sZWFuO1xuICBjcmVhdGVUcD86IGJvb2xlYW47XG4gIG90az86IEtleUV4Y2hhbmdlT3RrTm9kZTtcbiAgaXNJbml0aWF0b3I/OiBib29sZWFuO1xuICBpc0V4cGlyZWQ/OiBib29sZWFuO1xuICByZXNwb25kZXJFbWFpbEFkZHJlc3M/OiBMckVtYWlsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZEl0ZW1zIHtcbiAgZGlyZWN0b3JpZXM/OiBDb25uZWN0aW9uPERpcmVjdG9yeU5vZGU+O1xuICBmaWxlcz86IENvbm5lY3Rpb248RmlsZU5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENvbnRhY3RDYXJkTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgb3duZXI/OiBVc2VyTm9kZTtcbiAgcmVjZWl2ZXI/OiBVc2VyTm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ2lwaGVyRGF0YT86IHN0cmluZztcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHNoYXJlZENpcGhlckRhdGFTaWc/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFTaWdQeGs/OiBLZXlOb2RlO1xuICBvd25lckNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIG93bmVyQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIG93bmVyS2V5PzogS2V5Tm9kZTtcbiAgb3duZXJQbGFpbkRhdGE/OiBzdHJpbmc7XG4gIG93bmVyUGxhaW5EYXRhSnNvbj86IEpTT05PYmplY3Q7XG4gIG93bmVyUGxhaW5EYXRhU2lnPzogc3RyaW5nO1xuICByZWNlaXZlckNpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHJlY2VpdmVyQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG4gIHJlY2VpdmVyS2V5PzogS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU2hhcmVkS2V5Tm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAga2V5RXhjaGFuZ2U/OiBLZXlFeGNoYW5nZU5vZGU7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgdXNlclByaz86IEtleU5vZGU7XG4gIHVzZXJTaWdQcms/OiBLZXlOb2RlO1xuICBvdGhlcj86IFVzZXJOb2RlO1xuICBvdGhlclBiaz86IEtleU5vZGU7XG4gIG90aGVyU2lnUGJrPzogS2V5Tm9kZTtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgbWtTaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBta1B4az86IEtleU5vZGU7XG4gIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXI/OiBzdHJpbmc7XG4gIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyPzogc3RyaW5nO1xuICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyQ2xlYXJKc29uPzogSlNPTk9iamVjdDtcbiAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBta1Jlc2hhcmVSZXF1ZXN0U2VudD86IGJvb2xlYW47XG4gIG1rUmVzaGFyZVJlc3BvbnNlU2VudD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFVzZXJTaGFyZWRLZXlOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICB1c2VyPzogVXNlck5vZGU7XG4gIG90aGVyPzogVXNlck5vZGU7XG4gIHVzZXJTaGFyZWRLZXk/OiBVc2VyU2hhcmVkS2V5Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcE5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHVzZXI/OiBVc2VyTm9kZTtcbiAgb3RoZXI/OiBVc2VyTm9kZTtcbiAgY3VycmVudFVzZXJTaGFyZWRLZXk/OiBDdXJyZW50VXNlclNoYXJlZEtleU5vZGU7XG4gIGlzQ29tcGxldGVkPzogYm9vbGVhbjtcbiAgc2hhcmVkS2V5PzogS2V5Tm9kZTtcbiAgc2hhcmVkQ29udGFjdENhcmQ/OiBTaGFyZWRDb250YWN0Q2FyZE5vZGU7XG4gIG15Q29udGFjdENhcmQ/OiBTaGFyZWRDb250YWN0Q2FyZE5vZGU7XG4gIG15SXRlbXM/OiBTaGFyZWRJdGVtcztcbiAgdGhlaXJJdGVtcz86IFNoYXJlZEl0ZW1zO1xuICBteVNjZW5hcmlvcz86IENvbm5lY3Rpb248U2NlbmFyaW9Ob2RlPjtcbiAgc2hhcmVkU2NlbmFyaW9zPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb05vZGU+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/OiBDbGFpbVN0YXRlO1xuICBzaGFyZWRTY2VuYXJpbz86IFNoYXJlZFNjZW5hcmlvTm9kZTtcbiAgaXNDbGFpbWFudD86IGJvb2xlYW47XG4gIGFzQ2xhaW1SZWNlaXZlcj86IFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlck5vZGU7XG4gIGNsYWltPzogU2hhcmVkVHBDbGFpbU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbUFwcHJvdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZXJzPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb1JlY2VpdmVyTm9kZT47XG4gIHN0YXRlPzogQ2xhaW1BcHByb3ZlclN0YXRlO1xuICBhcHByb3Zlcj86IFRwQXNzZW1ibHlBcHByb3Zlck5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbVJlY2VpdmVyTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcmVjZWl2ZWQ/OiBEYXRlVGltZTtcbiAgYXBwcm92YWxzPzogQ29ubmVjdGlvbjxTaGFyZWRTY2VuYXJpb0NsYWltUmVjZWl2ZWRBcHByb3ZhbE5vZGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1SZWNlaXZlZEFwcHJvdmFsTm9kZVxuICBleHRlbmRzIE5vZGUsXG4gICAgVGltZVN0YW1wZWQge1xuICByZWNlaXZlckNpcGhlcj86IHN0cmluZztcbiAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk/OiBzdHJpbmc7XG4gIHB4az86IEtleU5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgcGxhaW5EYXRhPzogSlNPTlN0cmluZztcbiAgcGxhaW5NZXRhPzogSlNPTlN0cmluZztcbiAgdGltZVJlYWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25NYW5hZ2VtZW50U3RhdGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIGxhc3RWaWV3ZWQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGVudW0gTGlua1R5cGVGaWVsZCB7XG4gIEhBUkQgPSAnSEFSRCcsXG4gIFNPRlQgPSAnU09GVCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIHNlbmRlcj86IFVzZXJOb2RlO1xuICByZWNlaXZlcj86IFVzZXJOb2RlO1xuICBzaGFyZWRLZXk/OiBLZXlOb2RlO1xuICBzZW5kZXJTaWdQYms/OiBLZXlOb2RlO1xuICBwbGFpbk1lc3NhZ2U/OiBzdHJpbmc7XG4gIHBsYWluTWVzc2FnZUpzb24/OiBzdHJpbmc7XG4gIHNpZ25lZENpcGhlck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNpZ25lZENpcGhlck1lc3NhZ2VDbGVhckpzb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9ja0ZpZWxkIHtcbiAgY3JlYXRlZD86IERhdGVUaW1lO1xuICBtb2RpZmllZD86IERhdGVUaW1lO1xuICBleHBpcnlUaW1lPzogRGF0ZVRpbWU7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHN0YXRlPzogTG9ja1N0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckNvbmZpZyB7XG4gIHJlbGF5Q29ubmVjdGlvbk1heExpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJsZVBsYW5GaWVsZCB7XG4gIGlzc3VlclVpZD86IHN0cmluZztcbiAgcGxhblVpZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHByaWNlT3B0aW9ucz86IFByaWNlT3B0aW9uRmllbGRbXTtcbiAgdHJpYWw/OiBUcmlhbFBlcmlvZEZpZWxkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlT3B0aW9uRmllbGQge1xuICBwcmljZUlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYW1vdW50PzogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgaW50ZXJ2YWxVbml0Pzogc3RyaW5nO1xuICBpbnRlcnZhbENvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWFsUGVyaW9kRmllbGQge1xuICB5ZWFycz86IG51bWJlcjtcbiAgbW9udGhzPzogbnVtYmVyO1xuICB3ZWVrcz86IG51bWJlcjtcbiAgZGF5cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q2FwdHVyZUZpZWxkIHtcbiAgc3RyaXBlSW50ZW50SWQ/OiBzdHJpbmc7XG4gIHN0cmlwZUNsaWVudFNlY3JldD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50TWV0aG9kTm9kZSBleHRlbmRzIE5vZGUsIFRpbWVTdGFtcGVkIHtcbiAgY2FyZD86IFBheW1lbnRDYXJkRmllbGQ7XG4gIGludm9pY2U/OiBQYXltZW50SW52b2ljZUZpZWxkO1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRDYXJkRmllbGQge1xuICBicmFuZD86IHN0cmluZztcbiAgbGFzdEZvdXJEaWdpdHM/OiBzdHJpbmc7XG4gIGV4cGlyeVllYXI/OiBudW1iZXI7XG4gIGV4cGlyeU1vbnRoPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRJbnZvaWNlRmllbGQge1xuICBlbWFpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9tb3Rpb25hbENvZGVGaWVsZCB7XG4gIGFtb3VudE9mZj86IG51bWJlcjtcbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIHBlcmNlbnRPZmY/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogc3RyaW5nO1xuICBkdXJhdGlvbkluTW9udGhzPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcmlvZEZpZWxkIHtcbiAgc3RhcnQ/OiBEYXRlVGltZTtcbiAgZW5kPzogRGF0ZVRpbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVkUGxhbk5vZGUgZXh0ZW5kcyBOb2RlLCBUaW1lU3RhbXBlZCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjdXJyZW50U3RhdGVzPzogSXNzdWVkUGxhblN0YXRlTm9kZVtdO1xuICBjdXJyZW50UGVyaW9kPzogUGVyaW9kRmllbGQ7XG4gIGN1cnJlbnRQcmljZU9wdGlvbj86IFByaWNlT3B0aW9uRmllbGQ7XG4gIHVwY29taW5nSW52b2ljZT86IEJpbGxpbmdGaWVsZDtcbiAgYWx0ZXJuYXRpdmVQcmljZU9wdGlvbnM/OiBQcmljZU9wdGlvbkZpZWxkW107XG4gIHNjaGVkdWxlZFByaWNlQ2hhbmdlcz86IFByaWNlQ2hhbmdlRmllbGRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc3N1ZWRQbGFuU3RhdGVOb2RlIGV4dGVuZHMgTm9kZSwgVGltZVN0YW1wZWQge1xuICBwZXJpb2RTdGFydD86IERhdGVUaW1lO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgc3RhdGU/OiBQbGFuU3RhdGVGaWVsZDtcbn1cblxuZXhwb3J0IGVudW0gUGxhblN0YXRlRmllbGQge1xuICBUUklBTExJTkcgPSAnVFJJQUxMSU5HJyxcbiAgQUNUSVZFID0gJ0FDVElWRScsXG4gIENBTkNFTExFRCA9ICdDQU5DRUxMRUQnLFxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbGxpbmdGaWVsZCB7XG4gIGludm9pY2VOdW1iZXI/OiBzdHJpbmc7XG4gIHRvdGFsPzogbnVtYmVyO1xuICBhbW91bnREdWU/OiBudW1iZXI7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBkb2N1bWVudFVybD86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBwZXJpb2RTdGFydD86IERhdGVUaW1lO1xuICBwZXJpb2RFbmQ/OiBEYXRlVGltZTtcbiAgZmluYWxpc2VkQXQ/OiBEYXRlVGltZTtcbiAgcGFpZEF0PzogRGF0ZVRpbWU7XG4gIHBhaWQ/OiBib29sZWFuO1xuICBuZXh0UGF5bWVudEF0dGVtcHQ/OiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmljZUNoYW5nZUZpZWxkIHtcbiAgcGVyaW9kU3RhcnQ/OiBEYXRlVGltZTtcbiAgcHJpY2VPcHRpb24/OiBQcmljZU9wdGlvbkZpZWxkO1xufVxuIl19
@@ -17,4 +17,4 @@ export var RecoveryStatus;
17
17
  RecoveryStatus["NEW_PASSWORD"] = "new-password";
18
18
  RecoveryStatus["OLD_PASSWORD"] = "old-password";
19
19
  })(RecoveryStatus || (RecoveryStatus = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hdXRoL2F1dGgudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBd0JoRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQUFyRDs7UUFJRSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FldkI7QUFNRCxNQUFNLE9BQU8sV0FBVztDQUt2QjtBQUVELE1BQU0sT0FBTyxjQUFjO0NBSzFCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FJWDtBQUpELFdBQVksY0FBYztJQUN4QiwrQkFBYSxDQUFBO0lBQ2IsK0NBQTZCLENBQUE7SUFDN0IsK0NBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29nbml0b1VzZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aCc7XG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHtcbiAgSlNPTk9iamVjdCxcbiAgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUsXG4gIFVzZXJEZWxldGVOb2RlLFxufSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgUGFzc0lkcFBhcmFtcywgUGFzc0tleVBhcmFtcyB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgVXNlclBsYW4gfSBmcm9tICcuLi9wbGFuL3BsYW4udHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3VycmVudFVzZXJLZXksXG4gIEZlYXR1cmVzLFxuICBNYWluQ29udGFjdENhcmQsXG59IGZyb20gJy4uL3Byb2ZpbGUvcHJvZmlsZS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc0tleUJ1bmRsZSB7XG4gIHBhc3NLZXlQYXJhbXM6IFBhc3NLZXlQYXJhbXM7XG4gIHBhc3NLZXk6IEpXSy5LZXk7XG4gIHBhc3NJZHBQYXJhbXM6IFBhc3NJZHBQYXJhbXM7XG4gIHBhc3NJZHA6IEpXSy5LZXk7XG4gIHBhc3NJZHBWZXJpZmllcjogSldLLktleTtcbiAgd3JhcHBlZFBhc3NJZHBWZXJpZmllclByazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47XG59XG5cbmV4cG9ydCBjbGFzcyBDb2duaXRvQ2hhbGxlbmdlVXNlciBleHRlbmRzIENvZ25pdG9Vc2VyIHtcbiAgcmVjb3ZlcnlTdGF0dXM6IFJlY292ZXJ5U3RhdHVzO1xuICBjaGFsbGVuZ2VOYW1lOiAnU01TX01GQScgfCAnU09GVFdBUkVfVE9LRU5fTUZBJztcbiAgY2hhbGxlbmdlUGFyYW06IEpTT05PYmplY3Q7XG4gIGlzVHBQYXNzd29yZFJlc2V0VXNlciA9IGZhbHNlO1xufVxuXG5leHBvcnQgY2xhc3MgQ3VycmVudFVzZXIge1xuICBpZDogc3RyaW5nO1xuICBzdWI6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgY3VycmVudFVzZXJLZXk6IEN1cnJlbnRVc2VyS2V5O1xuICBlbWFpbDogc3RyaW5nO1xuICBlbWFpbFZlcmlmaWVkOiBib29sZWFuO1xuICBwaG9uZTogc3RyaW5nO1xuICBwaG9uZVZlcmlmaWVkOiBib29sZWFuO1xuICBjb250YWN0Q2FyZDogTWFpbkNvbnRhY3RDYXJkO1xuICB1c2VyRGVsZXRlPzogVXNlckRlbGV0ZU5vZGU7XG4gIHVzZXJQbGFuczogVXNlclBsYW5bXTtcbiAgZmVhdHVyZXM6IEZlYXR1cmVzO1xuICBoYXNUUFZhdWx0QWNjZXNzOiBib29sZWFuO1xuICBzZXNzaW9uRW5jcnlwdGlvbktleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldFVzZXIgZXh0ZW5kcyBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZSB7XG4gIHN1Yjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTG9naW5SZXN1bHQge1xuICBoYXNDaGFsbGVuZ2U6IGJvb2xlYW47XG4gIGNoYWxsZW5nZT86IENvZ25pdG9DaGFsbGVuZ2VVc2VyO1xuICB1c2VyPzogQ3VycmVudFVzZXI7XG4gIHJlc2V0VXNlcj86IFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlO1xufVxuXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJSZXN1bHQge1xuICB1c2VybmFtZTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgcHJlU2lnblVwVG9rZW46IHN0cmluZztcbiAgdXNlclN1Yjogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBSZWNvdmVyeVN0YXR1cyB7XG4gIE5PTkUgPSAnbm9uZScsXG4gIE5FV19QQVNTV09SRCA9ICduZXctcGFzc3dvcmQnLFxuICBPTERfUEFTU1dPUkQgPSAnb2xkLXBhc3N3b3JkJyxcbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hdXRoL2F1dGgudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBeUJoRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQUFyRDs7UUFJRSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FnQnZCO0FBTUQsTUFBTSxPQUFPLFdBQVc7Q0FLdkI7QUFFRCxNQUFNLE9BQU8sY0FBYztDQUsxQjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsK0JBQWEsQ0FBQTtJQUNiLCtDQUE2QixDQUFBO0lBQzdCLCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZ25pdG9Vc2VyIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7XG4gIEpTT05PYmplY3QsXG4gIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlLFxuICBVc2VyRGVsZXRlTm9kZSxcbn0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnLi4vYXBpL3R5cGVzL2dyYXBocWwudHlwZXMnO1xuaW1wb3J0IHsgUGFzc0lkcFBhcmFtcywgUGFzc0tleVBhcmFtcyB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgVXNlclBsYW4gfSBmcm9tICcuLi9wbGFuL3BsYW4udHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3VycmVudFVzZXJLZXksXG4gIEZlYXR1cmVzLFxuICBNYWluQ29udGFjdENhcmQsXG59IGZyb20gJy4uL3Byb2ZpbGUvcHJvZmlsZS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc0tleUJ1bmRsZSB7XG4gIHBhc3NLZXlQYXJhbXM6IFBhc3NLZXlQYXJhbXM7XG4gIHBhc3NLZXk6IEpXSy5LZXk7XG4gIHBhc3NJZHBQYXJhbXM6IFBhc3NJZHBQYXJhbXM7XG4gIHBhc3NJZHA6IEpXSy5LZXk7XG4gIHBhc3NJZHBWZXJpZmllcjogSldLLktleTtcbiAgd3JhcHBlZFBhc3NJZHBWZXJpZmllclByazogUmVjb3JkPHN0cmluZywgSlNPTk9iamVjdD47XG59XG5cbmV4cG9ydCBjbGFzcyBDb2duaXRvQ2hhbGxlbmdlVXNlciBleHRlbmRzIENvZ25pdG9Vc2VyIHtcbiAgcmVjb3ZlcnlTdGF0dXM6IFJlY292ZXJ5U3RhdHVzO1xuICBjaGFsbGVuZ2VOYW1lOiAnU01TX01GQScgfCAnU09GVFdBUkVfVE9LRU5fTUZBJztcbiAgY2hhbGxlbmdlUGFyYW06IEpTT05PYmplY3Q7XG4gIGlzVHBQYXNzd29yZFJlc2V0VXNlciA9IGZhbHNlO1xufVxuXG5leHBvcnQgY2xhc3MgQ3VycmVudFVzZXIge1xuICBpZDogc3RyaW5nO1xuICBzdWI6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgY3VycmVudFVzZXJLZXk6IEN1cnJlbnRVc2VyS2V5O1xuICBlbWFpbDogc3RyaW5nO1xuICBlbWFpbFZlcmlmaWVkOiBib29sZWFuO1xuICBwaG9uZTogc3RyaW5nO1xuICBwaG9uZVZlcmlmaWVkOiBib29sZWFuO1xuICBjb250YWN0Q2FyZDogTWFpbkNvbnRhY3RDYXJkO1xuICB1c2VyRGVsZXRlPzogVXNlckRlbGV0ZU5vZGU7XG4gIHVzZXJQbGFuczogVXNlclBsYW5bXTtcbiAgZmVhdHVyZXM6IEZlYXR1cmVzO1xuICBoYXNUUFZhdWx0QWNjZXNzOiBib29sZWFuO1xuICBzZXNzaW9uRW5jcnlwdGlvbktleTogc3RyaW5nO1xuICBkYXRlSm9pbmVkOiBEYXRlVGltZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRVc2VyIGV4dGVuZHMgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUge1xuICBzdWI6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIExvZ2luUmVzdWx0IHtcbiAgaGFzQ2hhbGxlbmdlOiBib29sZWFuO1xuICBjaGFsbGVuZ2U/OiBDb2duaXRvQ2hhbGxlbmdlVXNlcjtcbiAgdXNlcj86IEN1cnJlbnRVc2VyO1xuICByZXNldFVzZXI/OiBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZTtcbn1cblxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyUmVzdWx0IHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHByZVNpZ25VcFRva2VuOiBzdHJpbmc7XG4gIHVzZXJTdWI6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gUmVjb3ZlcnlTdGF0dXMge1xuICBOT05FID0gJ25vbmUnLFxuICBORVdfUEFTU1dPUkQgPSAnbmV3LXBhc3N3b3JkJyxcbiAgT0xEX1BBU1NXT1JEID0gJ29sZC1wYXNzd29yZCcsXG59XG4iXX0=
@@ -127,6 +127,7 @@ export class LifeReadyAuthService {
127
127
  hasTPVaultAccess: this.mapTPVaultAccess(currentUser.features),
128
128
  features: currentUser.features,
129
129
  sessionEncryptionKey: currentUser.sessionEncryptionKey,
130
+ dateJoined: currentUser.dateJoined,
130
131
  };
131
132
  });
132
133
  }
@@ -371,6 +372,7 @@ export class LifeReadyAuthService {
371
372
  hasTPVaultAccess: this.mapTPVaultAccess(currentUser.features),
372
373
  features: currentUser.features,
373
374
  sessionEncryptionKey: currentUser.sessionEncryptionKey,
375
+ dateJoined: currentUser.dateJoined,
374
376
  };
375
377
  });
376
378
  }
@@ -563,4 +565,4 @@ LifeReadyAuthService.ctorParameters = () => [
563
565
  { type: TpPasswordResetAssemblyController },
564
566
  { type: HttpClient }
565
567
  ];
566
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBMkIsTUFBTSxjQUFjLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsT0FBTyxFQUFZLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxP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LENBQUMsRUFBRSxDQUFDLENBQUM7WUFFaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNoQyxTQUFTLENBQUMsU0FBUztpQkFDaEIsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdDQUFnQyxDQUFDO2lCQUNqRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUM1QixHQUFHLEVBQ0gsUUFBUSxDQUFDLGdDQUFnQyxDQUMxQyxDQUNGLENBQ0osQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELENBQUM7S0FBQTs7OztZQWh1QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBV0ksTUFBTSxTQUFDLFNBQVM7WUFyRVosU0FBUztZQVVULGlCQUFpQjtZQUVqQixVQUFVO1lBS1YsY0FBYztZQU5kLGVBQWU7WUFJZixlQUFlO1lBTmYsV0FBVztZQUpYLGdCQUFnQjtZQUNoQiwrQkFBK0I7WUFVL0IsY0FBYztZQVJkLGlCQUFpQjtZQWVqQixpQ0FBaUM7WUExQmpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvZ25pdG9Vc2VyIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgnO1xuaW1wb3J0IHsgQXV0aENsYXNzIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgvbGliLWVzbS9BdXRoJztcbmltcG9ydCB7IEh1YiB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9jb3JlJztcbmltcG9ydCB7IENvZ25pdG9Vc2VyQXR0cmlidXRlIH0gZnJvbSAnYW1hem9uLWNvZ25pdG8taWRlbnRpdHktanMnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExyR3JhcGhRTFNlcnZpY2UsIExyTXV0YXRpb24gfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBUcFBhc3N3b3JkUmVzZXRQcm9jZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL3F1ZXJ5LXByb2Nlc3Nvci90cC1wYXNzd29yZC1yZXNldC1wcm9jZXNzb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBUcENsYWltU3RhdGUsIFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWRsZVNlcnZpY2UgfSBmcm9tICcuLi9pZGxlL2lkbGUuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IFBhc3NJZHBQYXJhbXMgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IEtjQ29uZmlnLCBLQ19DT05GSUcgfSBmcm9tICcuLi9saWZlLXJlYWR5LmNvbmZpZyc7XG5pbXBvcnQgeyBQYXNzd29yZFNlcnZpY2UgfSBmcm9tICcuLi9wYXNzd29yZC9wYXNzd29yZC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcGVyc2lzdC9wZXJzaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuLi9wcm9maWxlL3Byb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlcywgUGFzc3dvcmRDaGFuZ2VTdGF0dXMgfSBmcm9tICcuLi9wcm9maWxlL3Byb2ZpbGUudHlwZXMnO1xuaW1wb3J0IHtcbiAgVFBfUEFTU1dPUkRfUkVTRVRfQ0xJRU5UX05PTkNFX0xFTkdUSCxcbiAgVFBfUEFTU1dPUkRfUkVTRVRfVVNFUk5BTUVfU1VGRklYLFxufSBmcm9tICcuLi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC5jb25zdGFudHMnO1xuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0QXNzZW1ibHlDb250cm9sbGVyIH0gZnJvbSAnLi4vdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQuY29udHJvbGxlcic7XG5pbXBvcnQge1xuICBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uLFxuICBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbn0gZnJvbSAnLi4vdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQuZ3FsJztcbmltcG9ydCB7IFRwUGFzc3dvcmRSZXNldFVzZXJRdWVyeSB9IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LnByaXZhdGUuZ3FsJztcbmltcG9ydCB7XG4gIEtjQmFkUmVxdWVzdEV4Y2VwdGlvbixcbiAgS2NCYWRTdGF0ZUV4Y2VwdGlvbixcbiAgS2NDb25jdXJyZW50QWNjZXNzRXhjZXB0aW9uLFxuICBLY0ludGVybmFsRXJyb3JFeGNlcHRpb24sXG59IGZyb20gJy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBnZXRBY2Nlc3NKd3RUb2tlbiB9IGZyb20gJy4uL19jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgU2V0U2Vzc2lvbkVuY3J5cHRpb25LZXlNdXRhdGlvbiB9IGZyb20gJy4vYXV0aC5ncWwnO1xuaW1wb3J0IHtcbiAgQ29nbml0b0NoYWxsZW5nZVVzZXIsXG4gIEN1cnJlbnRVc2VyLFxuICBMb2dpblJlc3VsdCxcbiAgUmVjb3ZlcnlTdGF0dXMsXG4gIFRwUGFzc3dvcmRSZXNldFVzZXIsXG59IGZyb20gJy4vYXV0aC50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsaXNlQXV0aCA9IChhdXRoU2VydmljZTogTGlmZVJlYWR5QXV0aFNlcnZpY2UpID0+IHtcbiAgcmV0dXJuICgpID0+IGF1dGhTZXJ2aWNlLmluaXRpYWxpc2UoKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5PcHRpb25zIHtcbiAgdHBQYXNzd29yZFJlc2V0QXV0b0NvbXBsZXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgTG9nb3V0TGlzdGVuZXIgPSAoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExpZmVSZWFkeUF1dGhTZXJ2aWNlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHJpdmF0ZSBodWJTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PGFueT4gPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuICBwcml2YXRlIGN1cnJlbnRVc2VyOiBDdXJyZW50VXNlcjtcbiAgcHJpdmF0ZSBjdXJyZW50UmVzZXRVc2VyOiBUcFBhc3N3b3JkUmVzZXRVc2VyO1xuICAvLyBDb3VsZCB1c2UgcnhqcyBvYnNlcnZhYmxlcyBoZXJlLiBCdXQgdHJ5aW5nIHRvIGhhdmUga2MtY2xpZW50IHVzZSBhcyBsaXR0bGUgYW5ndWxhclxuICAvLyBmZWF0dXJlcyBhcyBwb3NzaWJsZS4gUnhqcyBpcyBub3QgdXNlZCBhbnl3aGVyZSBlbHNlIGluIGtjLWNsaWVudC5cbiAgcHJpdmF0ZSBsb2dvdXRMaXN0ZW5lcnMgPSBuZXcgU2V0PExvZ291dExpc3RlbmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoS0NfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogS2NDb25maWcsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoQ2xhc3MsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9maWxlU2VydmljZTogUHJvZmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaFNlcnZpY2U6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIHBhc3N3b3JkU2VydmljZTogUGFzc3dvcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaWRsZVNlcnZpY2U6IElkbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbHJHcmFwaFFMOiBMckdyYXBoUUxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZTogVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZSxcbiAgICBwcml2YXRlIHBlcnNpc3RTZXJ2aWNlOiBQZXJzaXN0U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFzc2VtYmx5Q29udHJvbGxlcjogVHBQYXNzd29yZFJlc2V0QXNzZW1ibHlDb250cm9sbGVyLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICApIHtcbiAgICBpZiAoIWlzRGV2TW9kZSgpKSB7XG4gICAgICBpZiAodGhpcy5jb25maWcuZGVidWcgIT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgS2NCYWRSZXF1ZXN0RXhjZXB0aW9uKFxuICAgICAgICAgICdJbiBwcm9kdWN0aW9uIG1vZGUsIFwiY29uZmlnLmRlYnVnXCIgbXVzdCBiZSBzZXQgdG8gbnVsbCdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXNlKCkge1xuICAgIEh1Yi5saXN0ZW4oJ2F1dGgnLCAoZGF0YSkgPT4gdGhpcy5odWJTdWJqZWN0Lm5leHQoZGF0YS5wYXlsb2FkKSk7XG4gIH1cblxuICBwdWJsaWMgZGVidWdMb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogQ3J5cHRvS2V5KSB7XG4gICAgLy8gVGhpcyB3aWxsIGZhaWwgaWYgZGVidWcgaXMgbnVsbC4gQnV0IHdoZW4gZGVidWcgaXMgbnVsbCwgdGhpcyBmdW5jdGlvblxuICAgIC8vIHNob3VsZCBub3QgYmUgY2FsbGVkLlxuICAgIHRoaXMuY29uZmlnLmRlYnVnLnVzZXJuYW1lID0gdXNlcm5hbWU7XG5cbiAgICByZXR1cm4gdGhpcy5kZWJ1Z0xvYWRVc2VyKHBhc3N3b3JkKTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBMb2dpbiB1c2luZyB0aGUgc2VydmVyIHNpZGUgc2Vzc2lvbiBtZXRob2QuXG4gICAqL1xuICBwcml2YXRlIGRlYnVnTG9naW5Vc2luZ1Nlc3Npb24odXNlcm5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoXG4gICAgICAgIHRoaXMuY29uZmlnLmFwaVVybCArXG4gICAgICAgICAgJ2RlYnVnX29ubHkvdXNlcnMvbG9naW4vP3VzZXJuYW1lPScgK1xuICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudCh1c2VybmFtZSksXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBOb24tb2J2aW91cyBhbGVydDogaWYgeW91IHdhbnQgdGhlIGNvb2tpZXMgdG8gYmUgc2V0LCB5b3UgbXVzdCB1c2UgdGhlXG4gICAgICAgICAgLy8gXCJ3aXRoQ3JlZGVudGlhbHNcIiBoZWFkZXIuIEkgd291bGQgaGF2ZSB0aG91Z2h0IHRoZSB3aXRoQ3JlZGVudGlhbHMgaGVhZGVyXG4gICAgICAgICAgLy8gaXMgb25seSB1c2VkIHRvIHNlbmQgdGhlIGNvb2tpZXMgd2l0aCB0aGUgcmVxdWVzdHMuIEJ1dCwgaWYgeW91IGRvbid0IGluY2x1ZGVcbiAgICAgICAgICAvLyB0aGUgXCJ3aXRoQ3JlZGVudGlhbHNcIiBoZWFkZXIsIHRoZSBjb29raWVzIGluIHRoZSByZXNwb25zZSBET0VTIE5PVCBnZXQgc2V0IVxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoL2lzc3Vlcy8zODYjaXNzdWVjb21tZW50LTI0MzIyOTM4OFxuICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkZWJ1Z0xvYWRVc2VyKHBhc3N3b3JkOiBDcnlwdG9LZXkpOiBQcm9taXNlPEN1cnJlbnRVc2VyPiB7XG4gICAgY29uc3QgeyBjdXJyZW50VXNlciwgY29udGFjdENhcmQsIHVzZXJQbGFucyB9ID1cbiAgICAgIGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKTtcblxuICAgIC8vIERlYnVnIG1vZGUgY2FuIG5vdCBkZWFsIHdpdGggc2Vzc2lvbiBlbmNyeXB0aW9uIGtleSB5ZXQuXG4gICAgLy8gTk8gU0VTU0lPTiBFTkNSWVBUSU9OIEtFWS5cblxuICAgIGNvbnN0IHBhc3NLZXkgPSAoXG4gICAgICBhd2FpdCB0aGlzLmtleUZhY3RvcnkuZGVyaXZlUGFzc0tleSh7XG4gICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAuLi5jdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5wYXNzS2V5LnBhc3NLZXlQYXJhbXMsXG4gICAgICB9KVxuICAgICkuandrO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UudW53cmFwV2l0aFBhc3NLZXkoXG4gICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5wYXNzS2V5LmlkLFxuICAgICAgcGFzc0tleSxcbiAgICAgIGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5Lm1hc3RlcktleS5pZFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnBlcnNpc3RNYXN0ZXJLZXkobWFzdGVyS2V5KTtcblxuICAgIGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnBvcHVsYXRlS2V5cyhjdXJyZW50VXNlci5jdXJyZW50VXNlcktleSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGN1cnJlbnRVc2VyLmlkLFxuICAgICAgc3ViOiAnREVCVUdfTU9ERScsXG4gICAgICB1c2VybmFtZTogY3VycmVudFVzZXIudXNlcm5hbWUsXG4gICAgICBjdXJyZW50VXNlcktleTogY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXksXG4gICAgICBlbWFpbDogJ0RFQlVHX01PREUnLFxuICAgICAgZW1haWxWZXJpZmllZDogZmFsc2UsXG4gICAgICBwaG9uZTogJ0RFQlVHX01PREUnLFxuICAgICAgcGhvbmVWZXJpZmllZDogZmFsc2UsXG4gICAgICBjb250YWN0Q2FyZDoge1xuICAgICAgICAuLi4oYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS5kZWNyeXB0Q29udGFjdENhcmQoY29udGFjdENhcmQpKSxcbiAgICAgIH0sXG4gICAgICB1c2VyRGVsZXRlOiBjdXJyZW50VXNlci51c2VyRGVsZXRlLFxuICAgICAgdXNlclBsYW5zLFxuICAgICAgaGFzVFBWYXVsdEFjY2VzczogdGhpcy5tYXBUUFZhdWx0QWNjZXNzKGN1cnJlbnRVc2VyLmZlYXR1cmVzKSxcbiAgICAgIGZlYXR1cmVzOiBjdXJyZW50VXNlci5mZWF0dXJlcyxcbiAgICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5OiBjdXJyZW50VXNlci5zZXNzaW9uRW5jcnlwdGlvbktleSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZ2V0QWNjZXNzSnd0VG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gZ2V0QWNjZXNzSnd0VG9rZW4odGhpcy5hdXRoKTtcbiAgfVxuXG4gIGltcG9ydFBhc3N3b3JkKHBsYWluUGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8Q3J5cHRvS2V5PiB7XG4gICAgcmV0dXJuIHRoaXMua2V5RmFjdG9yeS5pbXBvcnRQYXNzd29yZChwbGFpblBhc3N3b3JkKTtcbiAgfVxuXG4gIGFkZExvZ291dExpc3RlbmVyKGNhbGxiYWNrOiBMb2dvdXRMaXN0ZW5lcikge1xuICAgIHRoaXMubG9nb3V0TGlzdGVuZXJzLmFkZChjYWxsYmFjayk7XG4gIH1cblxuICByZW1vdmVMb2dvdXRMaXN0ZW5lcihjYWxsYmFjazogTG9nb3V0TGlzdGVuZXIpIHtcbiAgICB0aGlzLmxvZ291dExpc3RlbmVycy5kZWxldGUoY2FsbGJhY2spO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2dpbklkcEltcGwoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleSxcbiAgICBwYXNzSWRwUGFyYW1zOiBQYXNzSWRwUGFyYW1zLFxuICAgIHJlY292ZXJ5U3RhdHVzOiBSZWNvdmVyeVN0YXR1c1xuICApOiBQcm9taXNlPENvZ25pdG9DaGFsbGVuZ2VVc2VyPiB7XG4gICAgY29uc3QgcGFzc0lkcFJlc3VsdCA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzSWRwKHtcbiAgICAgIHBhc3N3b3JkLFxuICAgICAgLi4ucGFzc0lkcFBhcmFtcyxcbiAgICB9KTtcbiAgICAvLyBVc2UgdGhlIGRlcml2ZWQgcGFzc3dvcmQgdG8gc2lnbmluIHdpdGggY29nbml0b1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmF1dGguc2lnbkluKFxuICAgICAgZW1haWxPclBob25lLFxuICAgICAgdGhpcy5wYXNzd29yZFNlcnZpY2UuZ2V0UGFzc0lkcFN0cmluZyhwYXNzSWRwUmVzdWx0Lmp3aylcbiAgICApO1xuXG4gICAgdXNlci5yZWNvdmVyeVN0YXR1cyA9IHJlY292ZXJ5U3RhdHVzO1xuXG4gICAgcmV0dXJuIHVzZXI7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZ2luSWRwKFxuICAgIGVtYWlsT3JQaG9uZTogc3RyaW5nLFxuICAgIHBhc3N3b3JkOiBDcnlwdG9LZXlcbiAgKTogUHJvbWlzZTxDb2duaXRvQ2hhbGxlbmdlVXNlcj4ge1xuICAgIC8vIERvd25sb2FkIHRoZSBzYWx0IG5lZWRlZCB0byBkZXJpdmUgdGhlIFBhc3NJZHBcbiAgICBjb25zdCBwYXNzSWRwQXBpUmVzdWx0ID0gYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS5nZXRQYXNzSWRwUGFyYW1zKFxuICAgICAgZW1haWxPclBob25lXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgIHBhc3NJZHBBcGlSZXN1bHQucGFzc3dvcmRDaGFuZ2VTdGF0dXMgPT09IFBhc3N3b3JkQ2hhbmdlU3RhdHVzLkluUHJvZ3Jlc3NcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBLY0NvbmN1cnJlbnRBY2Nlc3NFeGNlcHRpb24oJ0EgcGFzc3dvcmQgY2hhbmdlIGlzIGluIHByb2dyZXNzJyk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcGFzc0lkcEFwaVJlc3VsdC5wYXNzd29yZENoYW5nZVN0YXR1cyA9PT0gUGFzc3dvcmRDaGFuZ2VTdGF0dXMuUmVjb3ZlcnlcbiAgICApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdJbiByZWNvdmVyeSBtb2RlLicpO1xuICAgICAgLy8gTGV0J3Mgc2F5IHdlIGRvbid0IGtub3cgaWYgdGhlIHBhc3N3b3JkIGlzIHRoZSBuZXcgb25lIG9yIHRoZSBvbGQgb25lLiBXZSBqdXN0IGhhdmUgdG8gdHJ5IGJvdGguXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgZW1haWxPclBob25lLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIHBhc3NJZHBBcGlSZXN1bHQubmV3UGFzc0lkcFBhcmFtcyxcbiAgICAgICAgICBSZWNvdmVyeVN0YXR1cy5ORVdfUEFTU1dPUkRcbiAgICAgICAgKTtcbiAgICAgICAgLy8gTmV3IHBhc3N3b3JkIHdvcmtlZC4gTGV0J3Mgc2V0IHRvIHRoZSBjdXJyZW50IHBhc3N3b3JkXG5cbiAgICAgICAgLy8gLS1Qb3RlbnRpYWwgRmFpbHVyZSBQb2ludCAxLS1cbiAgICAgICAgLy8gaWYgY2hhbmdlUGFzc3dvcmRDb21wbGV0ZSgpIGRvZXNuJ3QgZ2V0IGNhbGxlZCwgdGhlbiBpdCBzaG91bGQgcmVtYWluXG5cbiAgICAgICAgY29uc29sZS5sb2coJ05ldyBwYXNzd29yZCB3b3JrcyEnKTtcblxuICAgICAgICByZXR1cm4gdXNlcjtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIEp1c3QgYnViYmxlIHVwIGFueSBvdGhlciB0eXBlIG9mIGVycm9yLlxuICAgICAgICBpZiAoZXJyb3IuY29kZSAhPT0gJ05vdEF1dGhvcml6ZWRFeGNlcHRpb24nKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcGFzcywgdHJ5IGFnYWluIGFzc3VtaW5nIGl0J3MgdGhlIG9sZCBwYXNzd29yZFxuICAgICAgfVxuXG4gICAgICAvLyBOb3cgYXNzdW1lIGl0J3MgdGhlIHByZXZpb3VzIHBhc3N3b3JkLiBBbnkgZXhjZXB0aW9uIGlzIGFsbG93ZWQgdG8gYnViYmxlIHVwLlxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMubG9naW5JZHBJbXBsKFxuICAgICAgICAgIGVtYWlsT3JQaG9uZSxcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICBwYXNzSWRwQXBpUmVzdWx0LmN1cnJlbnRQYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk9MRF9QQVNTV09SRFxuICAgICAgICApO1xuICAgICAgICAvLyBPbGQgcGFzc3dvcmQgd29ya2VkLlxuICAgICAgICBjb25zb2xlLmxvZygnT2xkIHBhc3N3b3JkIHdvcmtzIScpO1xuXG4gICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSnVzdCBidWJibGUgdXAgYW55IG90aGVyIHR5cGUgb2YgZXJyb3IuXG4gICAgICAgIHRocm93IGVycm9yLmNvZGUgPT09ICdOb3RBdXRob3JpemVkRXhjZXB0aW9uJ1xuICAgICAgICAgID8gbmV3IEtjQmFkUmVxdWVzdEV4Y2VwdGlvbihcbiAgICAgICAgICAgICAgJ1RoZSBwYXNzd29yZCBjaGFuZ2UgcmVxdWVzdCB3YXMgaW50ZXJydXB0ZWQsIHBsZWFzZSB0cnkgdG8gbG9naW4gd2l0aCBib3RoIHlvdXIgbmV3IGFuZCBvbGQgcGFzc3dvcmQnXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUcnkgYWdhaW5zdCBhcyB0aGUgVFAgcGFzc3dvcmQgcmVzZXQgYWNjb3VudFxuICAgIGlmIChwYXNzSWRwQXBpUmVzdWx0LnRwUGFzc3dvcmRSZXNldCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVFAgcGFzc3dvcmQgcmVzZXQgaXMgaW4gcHJvY2Vzcy4gV2UgbmVlZCB0byB0cnkgdGhlIHBhc3N3b3JkIGFnYWluc3QgYm90aFxuICAgICAgICAvLyBvcmlnaW5hbCBhY2NvdW50IGFuZCB0aGUgbmV3IHJlc2V0IGFjY291bnQuXG4gICAgICAgIGNvbnN0IHJlc2V0ID0gcGFzc0lkcEFwaVJlc3VsdC50cFBhc3N3b3JkUmVzZXQ7XG4gICAgICAgIGNvbnN0IHJldCA9IGF3YWl0IHRoaXMubG9naW5JZHBJbXBsKFxuICAgICAgICAgIHJlc2V0LnJlc2V0VXNlcm5hbWUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgcmVzZXQucGFzc0lkcFBhcmFtcyxcbiAgICAgICAgICBSZWNvdmVyeVN0YXR1cy5OT05FXG4gICAgICAgICk7XG4gICAgICAgIHJldC5pc1RwUGFzc3dvcmRSZXNldFVzZXIgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gY29udGludWUsIHRyeSBhZ2FpbiBhcyByZWd1bGFyIHVzZXIuXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTG9naW4gYXMgcmVndWxhciB1c2VyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9naW5JZHBJbXBsKFxuICAgICAgZW1haWxPclBob25lLFxuICAgICAgcGFzc3dvcmQsXG4gICAgICBwYXNzSWRwQXBpUmVzdWx0LmN1cnJlbnRQYXNzSWRwUGFyYW1zLFxuICAgICAgUmVjb3ZlcnlTdGF0dXMuTk9ORVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVNlc3Npb25FbmNyeXB0aW9uS2V5KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5kaXNhYmxlU2Vzc2lvbkVuY3J5cHRpb25LZXkpIHtcbiAgICAgIGlmICghaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc3QgbXNnID1cbiAgICAgICAgICAnWW91IHNob3VsZCBub3Qgc2V0IGRpc2FibGVTZXNzaW9uRW5jcnlwdGlvbktleT1UcnVlIGluIG1vZGUgcHJvZC4gSXQgZGVmYXVsdHMgdG8gZmFsc2UuJztcbiAgICAgICAgY29uc29sZS5lcnJvcihtc2cpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnWW91IGhhdmUgc2V0IGRpc2FibGVTZXNzaW9uRW5jcnlwdGlvbktleT1UcnVlLiBNYWtlIHN1cmUgbm90IHRvIGRvIHRoaXMgaW4gcHJvZCBtb2RlLidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2V0IHRoZSBzZXNzaW9uIGtleSB0byBhIG5ldyBlbmNyeXB0aW9uIGtleSBmb3IgdGhpcyBzZXNzaW9uXG4gICAgICBjb25zdCBzZXNzaW9uRW5jcnlwdGlvbktleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcbiAgICAgIGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFxuICAgICAgICBuZXcgTHJNdXRhdGlvbih7XG4gICAgICAgICAgbXV0YXRpb246IFNldFNlc3Npb25FbmNyeXB0aW9uS2V5TXV0YXRpb24sXG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgc2Vzc2lvbkVuY3J5cHRpb25LZXkudG9KU09OKHRydWUpXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgaW5jbHVkZUtleUdyYXBoOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgdGhpcy5wZXJzaXN0U2VydmljZS5zZXRTZXJ2ZXJTZXNzaW9uRW5jcnlwdGlvbktleShzZXNzaW9uRW5jcnlwdGlvbktleSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVQb3N0QXV0aChjb2duaXRvVXNlcjogQ29nbml0b0NoYWxsZW5nZVVzZXIpIHtcbiAgICBhd2FpdCB0aGlzLmhhbmRsZVBhc3N3b3JkUmVjb3ZlcnkoY29nbml0b1VzZXIpO1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlU2Vzc2lvbkVuY3J5cHRpb25LZXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbihcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5LFxuICAgIHsgdHBQYXNzd29yZFJlc2V0QXV0b0NvbXBsZXRlID0gdHJ1ZSB9OiBMb2dpbk9wdGlvbnMgPSB7fVxuICApIHtcbiAgICBsZXQgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luSW1wbChlbWFpbE9yUGhvbmUsIHBhc3N3b3JkKTtcblxuICAgIGlmIChcbiAgICAgIHRwUGFzc3dvcmRSZXNldEF1dG9Db21wbGV0ZSAmJlxuICAgICAgbG9naW5SZXN1bHQucmVzZXRVc2VyPy5zdGF0ZSA9PT0gVHBDbGFpbVN0YXRlLkFQUFJPVkVEXG4gICAgKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbXBsZXRlUmVxdWVzdChwYXNzd29yZCk7XG4gICAgICBsb2dpblJlc3VsdCA9IGF3YWl0IHRoaXMubG9naW5JbXBsKGVtYWlsT3JQaG9uZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIHJldHVybiBsb2dpblJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbkltcGwoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleVxuICApOiBQcm9taXNlPExvZ2luUmVzdWx0PiB7XG4gICAgYXdhaXQgdGhpcy5sb2dvdXQoKTtcbiAgICBjb25zdCBjb2duaXRvVXNlciA9IGF3YWl0IHRoaXMubG9naW5JZHAoZW1haWxPclBob25lLCBwYXNzd29yZCk7XG5cbiAgICAvLyB0b2RvOiBNZWV0IE1GQSBjaGFsbGVuZ2VzLlxuICAgIGlmIChbJ1NNU19NRkEnLCAnU09GVFdBUkVfVE9LRU5fTUZBJ10uaW5jbHVkZXMoY29nbml0b1VzZXIuY2hhbGxlbmdlTmFtZSkpIHtcbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogdHJ1ZSwgY2hhbGxlbmdlOiBjb2duaXRvVXNlciB9O1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUG9zdEF1dGgoY29nbml0b1VzZXIpO1xuXG4gICAgaWYgKGNvZ25pdG9Vc2VyLmlzVHBQYXNzd29yZFJlc2V0VXNlcikge1xuICAgICAgLy8gQXNzdW1pbmcgdGhlcmUgaXMgbm8gTUZBIG9uIHRoZSBUUCByZXNldCB1c2VyLlxuICAgICAgY29uc3QgcmVzZXRVc2VyID0gYXdhaXQgdGhpcy5sb2FkUmVzZXRVc2VyKHBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogZmFsc2UsIHJlc2V0VXNlciB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihjb2duaXRvVXNlciwgcGFzc3dvcmQpO1xuICAgICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5zdGFydCgpOyAvLyBSdW4gaWRsZVNlcnZpY2Ugd2hlbmV2ZXIgdXNlciBpcyBsb2dnZWQgaW4uXG4gICAgICByZXR1cm4geyBoYXNDaGFsbGVuZ2U6IGZhbHNlLCB1c2VyIH07XG4gICAgfVxuICB9XG5cbiAgLy8gVE9ETyA8QVo+IFdlIG5lZWQgdG8gaGFuZGxlIHRoZSBpc1RwUGFzc3dvcmRSZXNldFVzZXI9VHJ1ZSBjYXNlIGhlcmUgYWZ0ZXIgTUZBIGFzIHdlbGwuXG4gIHB1YmxpYyBhc3luYyB2ZXJpZnlMb2dpbihcbiAgICBjaGFsbGVuZ2U6IENvZ25pdG9DaGFsbGVuZ2VVc2VyLFxuICAgIHBhc3N3b3JkOiBDcnlwdG9LZXksXG4gICAgcmVtZW1iZXJNZTogYm9vbGVhbixcbiAgICBjb2RlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGF3YWl0IHRoaXMuYXV0aC5jb25maXJtU2lnbkluKGNoYWxsZW5nZSwgY29kZSwgY2hhbGxlbmdlLmNoYWxsZW5nZU5hbWUpO1xuXG4gICAgLy8gVE9ETzogdGhpcy5hdXRoLmNvbmZpcm1TaWduSW4oKSBjb3VsZCByZXR1cm4gYW5vdGhlciBjaGFsbGVuZ2UuXG5cbiAgICBjb25zdCBjb2duaXRvVXNlcjogQ29nbml0b1VzZXIgPSBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmhhbmRsZVBvc3RBdXRoKGNoYWxsZW5nZSk7XG5cbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihjb2duaXRvVXNlciwgcGFzc3dvcmQpO1xuXG4gICAgaWYgKHJlbWVtYmVyTWUpIHtcbiAgICAgIGNvZ25pdG9Vc2VyLnNldERldmljZVN0YXR1c1JlbWVtYmVyZWQoe1xuICAgICAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0sXG4gICAgICAgIG9uRmFpbHVyZTogKGUpID0+IGNvbnNvbGUuZXJyb3IoZSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVBhc3N3b3JkUmVjb3ZlcnkodXNlcjogQ29nbml0b0NoYWxsZW5nZVVzZXIpIHtcbiAgICBpZiAodXNlci5yZWNvdmVyeVN0YXR1cyAhPT0gUmVjb3ZlcnlTdGF0dXMuTk9ORSkge1xuICAgICAgYXdhaXQgdGhpcy5wYXNzd29yZFNlcnZpY2UuY2hhbmdlUGFzc3dvcmRDb21wbGV0ZSh7XG4gICAgICAgIHVzZU5ld1Bhc3N3b3JkOiB1c2VyLnJlY292ZXJ5U3RhdHVzID09PSBSZWNvdmVyeVN0YXR1cy5ORVdfUEFTU1dPUkQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRVc2VyT3JSZXNldFVzZXIoXG4gICAgcmVsb2FkID0gZmFsc2VcbiAgKTogUHJvbWlzZTxDdXJyZW50VXNlciB8IFRwUGFzc3dvcmRSZXNldFVzZXI+IHtcbiAgICBjb25zdCBjb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcblxuICAgIGlmIChjb2duaXRvVXNlci5nZXRVc2VybmFtZSgpLmVuZHNXaXRoKFRQX1BBU1NXT1JEX1JFU0VUX1VTRVJOQU1FX1NVRkZJWCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFJlc2V0VXNlcihyZWxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRVc2VyKHJlbG9hZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0UmVzZXRVc2VyKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyPiB7XG4gICAgaWYgKCFyZWxvYWQgJiYgdGhpcy5jdXJyZW50UmVzZXRVc2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50UmVzZXRVc2VyO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFJlc2V0VXNlciA9IGF3YWl0IHRoaXMubG9hZFJlc2V0VXNlcigpO1xuXG4gICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5zdGFydCgpOyAvLyBSdW4gaWRsZVNlcnZpY2Ugd2hlbmV2ZXIgdXNlciBpcyBsb2dnZWQgaW4uXG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UmVzZXRVc2VyO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXNlcihyZWxvYWQgPSBmYWxzZSk6IFByb21pc2U8Q3VycmVudFVzZXI+IHtcbiAgICBpZiAoIXJlbG9hZCAmJiB0aGlzLmN1cnJlbnRVc2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlcjtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50VXNlciA9IGF3YWl0IHRoaXMubG9hZFVzZXIoXG4gICAgICBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKClcbiAgICApO1xuICAgIGNvbnNvbGUubG9nKCdTdGFydGluZyBpZGxlIHNlcnZpY2UuJyk7XG4gICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5zdGFydCgpOyAvLyBSdW4gaWRsZVNlcnZpY2Ugd2hlbmV2ZXIgdXNlciBpcyBsb2dnZWQgaW4uXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFVzZXI7XG4gIH1cblxuICBwcml2YXRlIG1hcFRQVmF1bHRBY2Nlc3MoZmVhdHVyZXM/OiBGZWF0dXJlcyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRwVmF1bHRGZWF0dXJlID0gZmVhdHVyZXM/LnRwVmF1bHQ7XG4gICAgcmV0dXJuIChcbiAgICAgIHRwVmF1bHRGZWF0dXJlPy5sZW5ndGggPiAwICYmXG4gICAgICB0cFZhdWx0RmVhdHVyZS5zb21lKChmZWF0dXJlKSA9PiBmZWF0dXJlLnRvVXBwZXJDYXNlKCkgPT09ICdBQ0NFU1MnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRVc2VyKFxuICAgIGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlcixcbiAgICBwYXNzd29yZD86IENyeXB0b0tleVxuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyPiB7XG4gICAgY29uc3QgeyBjdXJyZW50VXNlciwgY29udGFjdENhcmQsIHVzZXJQbGFucyB9ID1cbiAgICAgIGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKTtcblxuICAgIGlmIChjdXJyZW50VXNlci5zZXNzaW9uRW5jcnlwdGlvbktleSkge1xuICAgICAgdGhpcy5wZXJzaXN0U2VydmljZS5zZXRTZXJ2ZXJTZXNzaW9uRW5jcnlwdGlvbktleShcbiAgICAgICAgYXdhaXQgSldLLmFzS2V5KGN1cnJlbnRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyQXR0cmlidXRlcyA9IGF3YWl0IHRoaXMuYXV0aC51c2VyQXR0cmlidXRlcyhjb2duaXRvVXNlcik7XG5cbiAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHBhc3NLZXkgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzS2V5KHtcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAuLi5jdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5wYXNzS2V5LnBhc3NLZXlQYXJhbXMsXG4gICAgICAgIH0pXG4gICAgICApLmp3aztcblxuICAgICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5wZXJzaXN0TWFzdGVyS2V5KFxuICAgICAgICBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS51bndyYXBXaXRoUGFzc0tleShcbiAgICAgICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5wYXNzS2V5LmlkLFxuICAgICAgICAgIHBhc3NLZXksXG4gICAgICAgICAgY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkubWFzdGVyS2V5LmlkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnBvcHVsYXRlS2V5cyhjdXJyZW50VXNlci5jdXJyZW50VXNlcktleSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGN1cnJlbnRVc2VyLmlkLFxuICAgICAgc3ViOiB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ3N1YicsIHVzZXJBdHRyaWJ1dGVzKSxcbiAgICAgIHVzZXJuYW1lOiBjdXJyZW50VXNlci51c2VybmFtZSxcbiAgICAgIGN1cnJlbnRVc2VyS2V5OiBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleSxcbiAgICAgIGVtYWlsOiB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ2VtYWlsJywgdXNlckF0dHJpYnV0ZXMpLFxuICAgICAgZW1haWxWZXJpZmllZDpcbiAgICAgICAgdGhpcy5nZXRVc2VyQXR0cmlidXRlKCdlbWFpbF92ZXJpZmllZCcsIHVzZXJBdHRyaWJ1dGVzKSA9PT0gJ3RydWUnLFxuICAgICAgcGhvbmU6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgncGhvbmVfbnVtYmVyJywgdXNlckF0dHJpYnV0ZXMpLFxuICAgICAgcGhvbmVWZXJpZmllZDpcbiAgICAgICAgdGhpcy5nZXRVc2VyQXR0cmlidXRlKCdwaG9uZV9udW1iZXJfdmVyaWZpZWQnLCB1c2VyQXR0cmlidXRlcykgPT09XG4gICAgICAgICd0cnVlJyxcbiAgICAgIGNvbnRhY3RDYXJkOiB7XG4gICAgICAgIC4uLihhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmRlY3J5cHRDb250YWN0Q2FyZChjb250YWN0Q2FyZCkpLFxuICAgICAgfSxcbiAgICAgIHVzZXJEZWxldGU6IGN1cnJlbnRVc2VyLnVzZXJEZWxldGUsXG4gICAgICB1c2VyUGxhbnMsXG4gICAgICBoYXNUUFZhdWx0QWNjZXNzOiB0aGlzLm1hcFRQVmF1bHRBY2Nlc3MoY3VycmVudFVzZXIuZmVhdHVyZXMpLFxuICAgICAgZmVhdHVyZXM6IGN1cnJlbnRVc2VyLmZlYXR1cmVzLFxuICAgICAgc2Vzc2lvbkVuY3J5cHRpb25LZXk6IGN1cnJlbnRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgd2F0Y2hBdXRoKCkge1xuICAgIHJldHVybiB0aGlzLmh1YlN1YmplY3Q7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIE5vdGlmeSBhbGwgbGlzdGVuZXJzIHRvIGNsZWFuIHVwLlxuICAgIGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLmxvZ291dExpc3RlbmVyc10ubWFwKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSkpO1xuXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IG51bGw7XG4gICAgdGhpcy5rZXlTZXJ2aWNlLnB1cmdlS2V5cygpO1xuICAgIHRoaXMua2V5R3JhcGhTZXJ2aWNlLnB1cmdlS2V5cygpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuYXV0aC5zaWduT3V0KCksIHRoaXMucHJvZmlsZVNlcnZpY2Uuc2lnbk91dCgpXSk7XG5cbiAgICBpZiAodGhpcy5jb25maWcuZGVidWc/LnVzZXJuYW1lKSB7XG4gICAgICB0aGlzLmNvbmZpZy5kZWJ1Zy51c2VybmFtZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRVc2VyQXR0cmlidXRlKFxuICAgIGF0dHJpYnV0ZU5hbWU6IHN0cmluZyxcbiAgICB1c2VyQXR0cmlidXRlczogQ29nbml0b1VzZXJBdHRyaWJ1dGVbXVxuICApIHtcbiAgICBjb25zdCB1c2VyQXR0cmlidXRlID0gdXNlckF0dHJpYnV0ZXMuZmluZChcbiAgICAgICh4KSA9PiB4LmdldE5hbWUoKSA9PT0gYXR0cmlidXRlTmFtZVxuICAgICk7XG5cbiAgICByZXR1cm4gdXNlckF0dHJpYnV0ZSA/IHVzZXJBdHRyaWJ1dGUuZ2V0VmFsdWUoKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRSZXNldFVzZXIoXG4gICAgcGFzc3dvcmQ/OiBDcnlwdG9LZXlcbiAgKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyPiB7XG4gICAgY29uc3QgeyB0cFBhc3N3b3JkUmVzZXRVc2VyOiByZXNldFVzZXIgfSA9IGF3YWl0IHRoaXMubHJHcmFwaFFMLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnksXG4gICAgfSk7XG5cbiAgICBpZiAocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGtleXNcbiAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHBhc3NLZXkgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzS2V5KHtcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzS2V5UGFyYW1zLFxuICAgICAgICB9KVxuICAgICAgKS5qd2s7XG5cbiAgICAgIGF3YWl0IHRoaXMuaWRsZVNlcnZpY2UucGVyc2lzdE1hc3RlcktleShcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UudW53cmFwV2l0aFBhc3NLZXkoXG4gICAgICAgICAgcmVzZXRVc2VyLnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICByZXNldFVzZXIubWFzdGVyS2V5LmlkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5rZXlTZXJ2aWNlLnBvcHVsYXRlS2V5cyh7XG4gICAgICBwYXNzS2V5OiB7XG4gICAgICAgIGlkOiByZXNldFVzZXIucGFzc0tleS5pZCxcbiAgICAgIH0sXG4gICAgICBtYXN0ZXJLZXk6IHtcbiAgICAgICAgaWQ6IHJlc2V0VXNlci5tYXN0ZXJLZXkuaWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgdXNlckF0dHJpYnV0ZXMgPSBhd2FpdCB0aGlzLmF1dGgudXNlckF0dHJpYnV0ZXMoXG4gICAgICBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKClcbiAgICApO1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnc3ViJywgdXNlckF0dHJpYnV0ZXMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihhd2FpdCB0aGlzLnRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2UucHJvY2Vzc1RwUGFzc3dvcmRSZXNldFVzZXJOb2RlKFxuICAgICAgICByZXNldFVzZXJcbiAgICAgICkpLFxuICAgICAgc3ViLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVmcmVzaEFjY2Vzc1Rva2VuKCkge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcbiAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBjb2duaXRvVXNlci5nZXRTaWduSW5Vc2VyU2Vzc2lvbigpLmdldFJlZnJlc2hUb2tlbigpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvZ25pdG9Vc2VyLnJlZnJlc2hTZXNzaW9uKHJlZnJlc2hUb2tlbiwgKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVmcmVzaGluZyB0b2tlbjogJywgZXJyKTtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnVG9rZW4gcmVmcmVzaCBjb21wbGV0ZScpO1xuICAgICAgICAgIHJlc29sdmUoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVSZXF1ZXN0KG5ld1Bhc3N3b3JkOiBDcnlwdG9LZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXNldFVzZXIgPSBhd2FpdCB0aGlzLmdldFJlc2V0VXNlcih0cnVlKTtcblxuICAgIGlmIChyZXNldFVzZXIuc3RhdGUgIT09IFRwQ2xhaW1TdGF0ZS5BUFBST1ZFRCkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdQYXNzd29yZCByZXNldCByZXF1ZXN0IGhhcyBub3QgYmVlbiBhcHByb3ZlZC4nXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gUHJlcGFyZSBhbGwgbWF0ZXJpYWxzIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gZXJyb3JzLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgYXNzZW1ibHlLZXkgPSBhd2FpdCB0aGlzLnJlY292ZXJBc3NlbWJseUtleShyZXNldFVzZXIpO1xuXG4gICAgY29uc3QgeyByb290S2V5IH0gPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICBhc3NlbWJseUtleSxcbiAgICAgIHJlc2V0VXNlci5hc3NlbWJseUNpcGhlckRhdGFcbiAgICApO1xuXG4gICAgLy8gTWFraW5nIHN1cmUgaXQncyBhIHZhbGlkIGtleS5cbiAgICBjb25zdCByb290S2V5SndrID0gYXdhaXQgSldLLmFzS2V5KHJvb3RLZXkpO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UuZ2V0S2V5KHJlc2V0VXNlci5tYXN0ZXJLZXkuaWQpO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5V3JhcHBlZFJvb3RLZXkgPVxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICAgIHJvb3RLZXlKd2sudG9KU09OKHRydWUpXG4gICAgICApO1xuXG4gICAgLy8gVGhlIG5ldyBwYXNzd29yZFxuICAgIGNvbnN0IG5ld1Bhc3NJZHBSZXN1bHQgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuZGVyaXZlUGFzc0lkcCh7XG4gICAgICBwYXNzd29yZDogbmV3UGFzc3dvcmQsXG4gICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbmV3SWRwUGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKFxuICAgICAgbmV3UGFzc0lkcFJlc3VsdC5qd2tcbiAgICApO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBHZXQgYXNzZW1ibHkga2V5IGNoYWxsZW5nZVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgY2hhbGxlbmdlID0gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uLFxuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgaW5wdXQ6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgaW5jbHVkZUtleUdyYXBoOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICkuY3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZS5jaGFsbGVuZ2U7XG5cbiAgICAvLyBTaWduIHRoZSBjaGFsbGVuZ2VcbiAgICAvLyBHZW5lcmF0ZSBhIGNsaWVudCBzaWRlIG5vbmNlIHRoYXQncyBubyBpbiB0aGUgc2VydmVyJ3MgY29udHJvbC5cbiAgICBjaGFsbGVuZ2UuY2xpZW50Tm9uY2UgPSB0aGlzLmtleUZhY3RvcnkucmFuZG9tU3RyaW5nKFxuICAgICAgVFBfUEFTU1dPUkRfUkVTRVRfQ0xJRU5UX05PTkNFX0xFTkdUSFxuICAgICk7XG5cbiAgICBjb25zdCBhc3NlbWJseUtleVZlcmlmaWVyUHJrID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgYXNzZW1ibHlLZXksXG4gICAgICByZXNldFVzZXIud3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmtcbiAgICApO1xuICAgIGNvbnN0IHNpZ25lZENoYWxsZW5nZSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihcbiAgICAgIGFzc2VtYmx5S2V5VmVyaWZpZXJQcmssXG4gICAgICBjaGFsbGVuZ2VcbiAgICApO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBDaGFuZ2UgcGFzc3dvcmQgZm9yIHRoZSBvcmlnaW5hbCB1c2VyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCB0ZW1wSWRwUGFzc3dvcmQgPSAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgICAgbmV3IExyTXV0YXRpb24oe1xuICAgICAgICAgIG11dGF0aW9uOiBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIHNpZ25lZENoYWxsZW5nZTogSlNPTi5zdHJpbmdpZnkoc2lnbmVkQ2hhbGxlbmdlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICApXG4gICAgKS5wcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3QuaWRwUGFzc3dvcmQ7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIExvZ2luIGFzIHRoZSBvcmlnaW5hbCB1c2VyIHVzaW5nIG5ldyB0ZW1wb3JhcnkgcGFzc3dvcmRcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvcmlnaW5hbCBhY2NvdW50J3MgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZFxuICAgIC8vIHRvIGEgdGVtcG9yYXJ5IHBhc3N3b3JkLiBJdCBpcyBubyBsb25nZXIgcG9zc2libGUgZm9yIHRoZSB1c2VyXG4gICAgLy8gdG8gdXNlIHRoZSBvcmlnaW5hbCBwYXNzd29yZCB0byBsb2dpbi4gQW55IHN1Y2Nlc3NmdWwgbG9naW5cbiAgICAvLyBjYW4gb25seSBiZSB1c2luZyB0aGUgdGVtcG9yYXJ5IHBhc3N3b3JkLiBTbyBpdCdzIHNhZmUgdG8gYXNzdW1lXG4gICAgLy8gdGhhdCB3ZSB3YW50IHRvIFwiY29tcGxldGVcIiB0aGUgcGFzc3dvcmQgcmVzZXQuXG5cbiAgICAvLyBUaGUgbWF5YmUgMkZBIHNvIHdlIGxpc3RlbiBmb3IgdGhlIGF1dGggZXZlbnQgZnJvbSBBbXBsaWZ5LlxuICAgIGNvbnN0IHJldFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSBhc3luYyAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5wYXlsb2FkLmV2ZW50ICE9PSAnc2lnbkluJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIEh1Yi5yZW1vdmUoJ2F1dGgnLCBsaXN0ZW5lcik7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5hdXRoLnNpZ25JbihyZXNldFVzZXIudXNlcm5hbWUsIG5ld0lkcFBhc3N3b3JkKTtcblxuICAgICAgICAvLyBTd2l0Y2ggb3ZlciB0byB0aGUgbmV3IHNldCBvZiBrZXlzXG4gICAgICAgIGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFxuICAgICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICAgIG11dGF0aW9uOiBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgIG1hc3RlcktleVdyYXBwZWRSb290S2V5LFxuICAgICAgICAgICAgICAgIG1hc3RlcktleUlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcblxuICAgICAgSHViLmxpc3RlbignYXV0aCcsIGxpc3RlbmVyKTtcbiAgICB9KTtcblxuICAgIC8vIFNpZ25pbiBhcyB0aGUgb3JpZ2luYWwgdXNlci4gUGFzc3dvcmQgaGFzIGJlZW4gcmVzZXQgdG8gdGVtcG9yYXJ5IG9uZS4gSXQgc2hvdWxkIHJldHVyblxuICAgIC8vIHdpdGggTkVXX1BBU1NXT1JEX1JFUVVJUkVEXG4gICAgbGV0IHVzZXIgPSBhd2FpdCB0aGlzLmF1dGguc2lnbkluKHJlc2V0VXNlci51c2VybmFtZSwgdGVtcElkcFBhc3N3b3JkLCB7XG4gICAgICBub1Byb3h5OiAndHJ1ZScsXG4gICAgfSk7XG5cbiAgICBpZiAodXNlci5jaGFsbGVuZ2VOYW1lICE9PSAnTkVXX1BBU1NXT1JEX1JFUVVJUkVEJykge1xuICAgICAgdGhyb3cgbmV3IEtjSW50ZXJuYWxFcnJvckV4Y2VwdGlvbihcbiAgICAgICAgJ0V4cGVjdGluZyBDb2duaXRvIHRvIGhhdmUgZG9uZSBhIHBhc3N3b3JkIHJlc2V0IGFmdGVyIGNhbGwgdG8gUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24uJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgbmV3IHBhc3N3b3JkIG9uIElkcFxuICAgIC8vIHRoZSBhd3NGZXRjaCgpIGZ1bmN0aW9uIHBhc3NlcyBORVdfUEFTU1dPUkRfUkVRVUlSRUQgZGlyZWN0bHkgdG8gQVdTIHdpdGhvdXRcbiAgICAvLyBnb2luZyB0aHJvdWdoIHRoZSBwcm94eS5cbiAgICB1c2VyID0gYXdhaXQgdGhpcy5hdXRoLmNvbXBsZXRlTmV3UGFzc3dvcmQodXNlciwgbmV3SWRwUGFzc3dvcmQsIHt9KTtcblxuICAgIHJldHVybiByZXRQcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWNvdmVyQXNzZW1ibHlLZXkoXG4gICAgcmVzZXRVc2VyOiBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZVxuICApOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRLZXkocmVzZXRVc2VyLnB4ay5pZCk7XG5cbiAgICBjb25zdCBwYXJ0aWFscyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcmVzZXRVc2VyLmFwcHJvdmFsc1xuICAgICAgICAuZmlsdGVyKChhcHByb3ZhbCkgPT4gISFhcHByb3ZhbC5yZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleSlcbiAgICAgICAgLm1hcCgoYXBwcm92YWwpID0+XG4gICAgICAgICAgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgICAgICAgcHJrLFxuICAgICAgICAgICAgYXBwcm92YWwucmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuYXNzZW1ibHlDb250cm9sbGVyLnJlY292ZXJBc3NlbWJseUtleShwYXJ0aWFscyk7XG4gIH1cbn1cbiJdfQ==
568
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBMkIsTUFBTSxjQUFjLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsT0FBTyxFQUFZLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxP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TUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWhFLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDaEMsU0FBUyxDQUFDLFNBQVM7aUJBQ2hCLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDakUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FDNUIsR0FBRyxFQUNILFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FDMUMsQ0FDRixDQUNKLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQUE7Ozs7WUFsdUJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQVdJLE1BQU0sU0FBQyxTQUFTO1lBckVaLFNBQVM7WUFVVCxpQkFBaUI7WUFFakIsVUFBVTtZQUtWLGNBQWM7WUFOZCxlQUFlO1lBSWYsZUFBZTtZQU5mLFdBQVc7WUFKWCxnQkFBZ0I7WUFDaEIsK0JBQStCO1lBVS9CLGNBQWM7WUFSZCxpQkFBaUI7WUFlakIsaUNBQWlDO1lBMUJqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2duaXRvVXNlciB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBIdWIgfSBmcm9tICdAYXdzLWFtcGxpZnkvY29yZSc7XG5pbXBvcnQgeyBDb2duaXRvVXNlckF0dHJpYnV0ZSB9IGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMckdyYXBoUUxTZXJ2aWNlLCBMck11dGF0aW9uIH0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0UHJvY2Vzc29yU2VydmljZSB9IGZyb20gJy4uL2FwaS9xdWVyeS1wcm9jZXNzb3IvdHAtcGFzc3dvcmQtcmVzZXQtcHJvY2Vzc29yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHBDbGFpbVN0YXRlLCBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElkbGVTZXJ2aWNlIH0gZnJvbSAnLi4vaWRsZS9pZGxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBQYXNzSWRwUGFyYW1zIH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBLY0NvbmZpZywgS0NfQ09ORklHIH0gZnJvbSAnLi4vbGlmZS1yZWFkeS5jb25maWcnO1xuaW1wb3J0IHsgUGFzc3dvcmRTZXJ2aWNlIH0gZnJvbSAnLi4vcGFzc3dvcmQvcGFzc3dvcmQuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzaXN0U2VydmljZSB9IGZyb20gJy4uL3BlcnNpc3QvcGVyc2lzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2ZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmVhdHVyZXMsIFBhc3N3b3JkQ2hhbmdlU3RhdHVzIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7XG4gIFRQX1BBU1NXT1JEX1JFU0VUX0NMSUVOVF9OT05DRV9MRU5HVEgsXG4gIFRQX1BBU1NXT1JEX1JFU0VUX1VTRVJOQU1FX1NVRkZJWCxcbn0gZnJvbSAnLi4vdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQuY29uc3RhbnRzJztcbmltcG9ydCB7IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlciB9IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LmNvbnRyb2xsZXInO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG4gIENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvbixcbiAgUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXG59IGZyb20gJy4uL3RwLXBhc3N3b3JkLXJlc2V0L3RwLXBhc3N3b3JkLXJlc2V0LmdxbCc7XG5pbXBvcnQgeyBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnkgfSBmcm9tICcuLi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC5wcml2YXRlLmdxbCc7XG5pbXBvcnQge1xuICBLY0JhZFJlcXVlc3RFeGNlcHRpb24sXG4gIEtjQmFkU3RhdGVFeGNlcHRpb24sXG4gIEtjQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbixcbiAgS2NJbnRlcm5hbEVycm9yRXhjZXB0aW9uLFxufSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgZ2V0QWNjZXNzSnd0VG9rZW4gfSBmcm9tICcuLi9fY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IFNldFNlc3Npb25FbmNyeXB0aW9uS2V5TXV0YXRpb24gfSBmcm9tICcuL2F1dGguZ3FsJztcbmltcG9ydCB7XG4gIENvZ25pdG9DaGFsbGVuZ2VVc2VyLFxuICBDdXJyZW50VXNlcixcbiAgTG9naW5SZXN1bHQsXG4gIFJlY292ZXJ5U3RhdHVzLFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyLFxufSBmcm9tICcuL2F1dGgudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGlzZUF1dGggPSAoYXV0aFNlcnZpY2U6IExpZmVSZWFkeUF1dGhTZXJ2aWNlKSA9PiB7XG4gIHJldHVybiAoKSA9PiBhdXRoU2VydmljZS5pbml0aWFsaXNlKCk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIHRwUGFzc3dvcmRSZXNldEF1dG9Db21wbGV0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIExvZ291dExpc3RlbmVyID0gKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMaWZlUmVhZHlBdXRoU2VydmljZSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHByaXZhdGUgaHViU3ViamVjdDogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigxKTtcbiAgcHJpdmF0ZSBjdXJyZW50VXNlcjogQ3VycmVudFVzZXI7XG4gIHByaXZhdGUgY3VycmVudFJlc2V0VXNlcjogVHBQYXNzd29yZFJlc2V0VXNlcjtcbiAgLy8gQ291bGQgdXNlIHJ4anMgb2JzZXJ2YWJsZXMgaGVyZS4gQnV0IHRyeWluZyB0byBoYXZlIGtjLWNsaWVudCB1c2UgYXMgbGl0dGxlIGFuZ3VsYXJcbiAgLy8gZmVhdHVyZXMgYXMgcG9zc2libGUuIFJ4anMgaXMgbm90IHVzZWQgYW55d2hlcmUgZWxzZSBpbiBrYy1jbGllbnQuXG4gIHByaXZhdGUgbG9nb3V0TGlzdGVuZXJzID0gbmV3IFNldDxMb2dvdXRMaXN0ZW5lcj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEtDX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEtjQ29uZmlnLFxuICAgIHByaXZhdGUgYXV0aDogQXV0aENsYXNzLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGhTZXJ2aWNlOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcbiAgICBwcml2YXRlIGlkbGVTZXJ2aWNlOiBJZGxlU2VydmljZSxcbiAgICBwcml2YXRlIGxyR3JhcGhRTDogTHJHcmFwaFFMU2VydmljZSxcbiAgICBwcml2YXRlIHRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2U6IFRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJzaXN0U2VydmljZTogUGVyc2lzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhc3NlbWJseUNvbnRyb2xsZXI6IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7XG4gICAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmRlYnVnICE9IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEtjQmFkUmVxdWVzdEV4Y2VwdGlvbihcbiAgICAgICAgICAnSW4gcHJvZHVjdGlvbiBtb2RlLCBcImNvbmZpZy5kZWJ1Z1wiIG11c3QgYmUgc2V0IHRvIG51bGwnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGlzZSgpIHtcbiAgICBIdWIubGlzdGVuKCdhdXRoJywgKGRhdGEpID0+IHRoaXMuaHViU3ViamVjdC5uZXh0KGRhdGEucGF5bG9hZCkpO1xuICB9XG5cbiAgcHVibGljIGRlYnVnTG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IENyeXB0b0tleSkge1xuICAgIC8vIFRoaXMgd2lsbCBmYWlsIGlmIGRlYnVnIGlzIG51bGwuIEJ1dCB3aGVuIGRlYnVnIGlzIG51bGwsIHRoaXMgZnVuY3Rpb25cbiAgICAvLyBzaG91bGQgbm90IGJlIGNhbGxlZC5cbiAgICB0aGlzLmNvbmZpZy5kZWJ1Zy51c2VybmFtZSA9IHVzZXJuYW1lO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVidWdMb2FkVXNlcihwYXNzd29yZCk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogTG9naW4gdXNpbmcgdGhlIHNlcnZlciBzaWRlIHNlc3Npb24gbWV0aG9kLlxuICAgKi9cbiAgcHJpdmF0ZSBkZWJ1Z0xvZ2luVXNpbmdTZXNzaW9uKHVzZXJuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KFxuICAgICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgK1xuICAgICAgICAgICdkZWJ1Z19vbmx5L3VzZXJzL2xvZ2luLz91c2VybmFtZT0nICtcbiAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQodXNlcm5hbWUpLFxuICAgICAgICB7XG4gICAgICAgICAgLy8gTm9uLW9idmlvdXMgYWxlcnQ6IGlmIHlvdSB3YW50IHRoZSBjb29raWVzIHRvIGJlIHNldCwgeW91IG11c3QgdXNlIHRoZVxuICAgICAgICAgIC8vIFwid2l0aENyZWRlbnRpYWxzXCIgaGVhZGVyLiBJIHdvdWxkIGhhdmUgdGhvdWdodCB0aGUgd2l0aENyZWRlbnRpYWxzIGhlYWRlclxuICAgICAgICAgIC8vIGlzIG9ubHkgdXNlZCB0byBzZW5kIHRoZSBjb29raWVzIHdpdGggdGhlIHJlcXVlc3RzLiBCdXQsIGlmIHlvdSBkb24ndCBpbmNsdWRlXG4gICAgICAgICAgLy8gdGhlIFwid2l0aENyZWRlbnRpYWxzXCIgaGVhZGVyLCB0aGUgY29va2llcyBpbiB0aGUgcmVzcG9uc2UgRE9FUyBOT1QgZ2V0IHNldCFcbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi9mZXRjaC9pc3N1ZXMvMzg2I2lzc3VlY29tbWVudC0yNDMyMjkzODhcbiAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGVidWdMb2FkVXNlcihwYXNzd29yZDogQ3J5cHRvS2V5KTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGNvbnN0IHsgY3VycmVudFVzZXIsIGNvbnRhY3RDYXJkLCB1c2VyUGxhbnMgfSA9XG4gICAgICBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk7XG5cbiAgICAvLyBEZWJ1ZyBtb2RlIGNhbiBub3QgZGVhbCB3aXRoIHNlc3Npb24gZW5jcnlwdGlvbiBrZXkgeWV0LlxuICAgIC8vIE5PIFNFU1NJT04gRU5DUllQVElPTiBLRVkuXG5cbiAgICBjb25zdCBwYXNzS2V5ID0gKFxuICAgICAgYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NLZXkoe1xuICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgLi4uY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkucGFzc0tleS5wYXNzS2V5UGFyYW1zLFxuICAgICAgfSlcbiAgICApLmp3aztcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnVud3JhcFdpdGhQYXNzS2V5KFxuICAgICAgY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkucGFzc0tleS5pZCxcbiAgICAgIHBhc3NLZXksXG4gICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5tYXN0ZXJLZXkuaWRcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5pZGxlU2VydmljZS5wZXJzaXN0TWFzdGVyS2V5KG1hc3RlcktleSk7XG5cbiAgICBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5wb3B1bGF0ZUtleXMoY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBjdXJyZW50VXNlci5pZCxcbiAgICAgIHN1YjogJ0RFQlVHX01PREUnLFxuICAgICAgdXNlcm5hbWU6IGN1cnJlbnRVc2VyLnVzZXJuYW1lLFxuICAgICAgY3VycmVudFVzZXJLZXk6IGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LFxuICAgICAgZW1haWw6ICdERUJVR19NT0RFJyxcbiAgICAgIGVtYWlsVmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgcGhvbmU6ICdERUJVR19NT0RFJyxcbiAgICAgIHBob25lVmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgY29udGFjdENhcmQ6IHtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZGVjcnlwdENvbnRhY3RDYXJkKGNvbnRhY3RDYXJkKSksXG4gICAgICB9LFxuICAgICAgdXNlckRlbGV0ZTogY3VycmVudFVzZXIudXNlckRlbGV0ZSxcbiAgICAgIHVzZXJQbGFucyxcbiAgICAgIGhhc1RQVmF1bHRBY2Nlc3M6IHRoaXMubWFwVFBWYXVsdEFjY2VzcyhjdXJyZW50VXNlci5mZWF0dXJlcyksXG4gICAgICBmZWF0dXJlczogY3VycmVudFVzZXIuZmVhdHVyZXMsXG4gICAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgICBkYXRlSm9pbmVkOiBjdXJyZW50VXNlci5kYXRlSm9pbmVkLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXRBY2Nlc3NKd3RUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBnZXRBY2Nlc3NKd3RUb2tlbih0aGlzLmF1dGgpO1xuICB9XG5cbiAgaW1wb3J0UGFzc3dvcmQocGxhaW5QYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxDcnlwdG9LZXk+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlGYWN0b3J5LmltcG9ydFBhc3N3b3JkKHBsYWluUGFzc3dvcmQpO1xuICB9XG5cbiAgYWRkTG9nb3V0TGlzdGVuZXIoY2FsbGJhY2s6IExvZ291dExpc3RlbmVyKSB7XG4gICAgdGhpcy5sb2dvdXRMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlbW92ZUxvZ291dExpc3RlbmVyKGNhbGxiYWNrOiBMb2dvdXRMaXN0ZW5lcikge1xuICAgIHRoaXMubG9nb3V0TGlzdGVuZXJzLmRlbGV0ZShjYWxsYmFjayk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZ2luSWRwSW1wbChcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5LFxuICAgIHBhc3NJZHBQYXJhbXM6IFBhc3NJZHBQYXJhbXMsXG4gICAgcmVjb3ZlcnlTdGF0dXM6IFJlY292ZXJ5U3RhdHVzXG4gICk6IFByb21pc2U8Q29nbml0b0NoYWxsZW5nZVVzZXI+IHtcbiAgICBjb25zdCBwYXNzSWRwUmVzdWx0ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NJZHAoe1xuICAgICAgcGFzc3dvcmQsXG4gICAgICAuLi5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIFVzZSB0aGUgZGVyaXZlZCBwYXNzd29yZCB0byBzaWduaW4gd2l0aCBjb2duaXRvXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMuYXV0aC5zaWduSW4oXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKHBhc3NJZHBSZXN1bHQuandrKVxuICAgICk7XG5cbiAgICB1c2VyLnJlY292ZXJ5U3RhdHVzID0gcmVjb3ZlcnlTdGF0dXM7XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9naW5JZHAoXG4gICAgZW1haWxPclBob25lOiBzdHJpbmcsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleVxuICApOiBQcm9taXNlPENvZ25pdG9DaGFsbGVuZ2VVc2VyPiB7XG4gICAgLy8gRG93bmxvYWQgdGhlIHNhbHQgbmVlZGVkIHRvIGRlcml2ZSB0aGUgUGFzc0lkcFxuICAgIGNvbnN0IHBhc3NJZHBBcGlSZXN1bHQgPSBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldFBhc3NJZHBQYXJhbXMoXG4gICAgICBlbWFpbE9yUGhvbmVcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgcGFzc0lkcEFwaVJlc3VsdC5wYXNzd29yZENoYW5nZVN0YXR1cyA9PT0gUGFzc3dvcmRDaGFuZ2VTdGF0dXMuSW5Qcm9ncmVzc1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEtjQ29uY3VycmVudEFjY2Vzc0V4Y2VwdGlvbignQSBwYXNzd29yZCBjaGFuZ2UgaXMgaW4gcHJvZ3Jlc3MnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwYXNzSWRwQXBpUmVzdWx0LnBhc3N3b3JkQ2hhbmdlU3RhdHVzID09PSBQYXNzd29yZENoYW5nZVN0YXR1cy5SZWNvdmVyeVxuICAgICkge1xuICAgICAgY29uc29sZS5sb2coJ0luIHJlY292ZXJ5IG1vZGUuJyk7XG4gICAgICAvLyBMZXQncyBzYXkgd2UgZG9uJ3Qga25vdyBpZiB0aGUgcGFzc3dvcmQgaXMgdGhlIG5ldyBvbmUgb3IgdGhlIG9sZCBvbmUuIFdlIGp1c3QgaGF2ZSB0byB0cnkgYm90aC5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvZ2luSWRwSW1wbChcbiAgICAgICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgcGFzc0lkcEFwaVJlc3VsdC5uZXdQYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRFxuICAgICAgICApO1xuICAgICAgICAvLyBOZXcgcGFzc3dvcmQgd29ya2VkLiBMZXQncyBzZXQgdG8gdGhlIGN1cnJlbnQgcGFzc3dvcmRcblxuICAgICAgICAvLyAtLVBvdGVudGlhbCBGYWlsdXJlIFBvaW50IDEtLVxuICAgICAgICAvLyBpZiBjaGFuZ2VQYXNzd29yZENvbXBsZXRlKCkgZG9lc24ndCBnZXQgY2FsbGVkLCB0aGVuIGl0IHNob3VsZCByZW1haW5cblxuICAgICAgICBjb25zb2xlLmxvZygnTmV3IHBhc3N3b3JkIHdvcmtzIScpO1xuXG4gICAgICAgIHJldHVybiB1c2VyO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSnVzdCBidWJibGUgdXAgYW55IG90aGVyIHR5cGUgb2YgZXJyb3IuXG4gICAgICAgIGlmIChlcnJvci5jb2RlICE9PSAnTm90QXV0aG9yaXplZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICAvLyBwYXNzLCB0cnkgYWdhaW4gYXNzdW1pbmcgaXQncyB0aGUgb2xkIHBhc3N3b3JkXG4gICAgICB9XG5cbiAgICAgIC8vIE5vdyBhc3N1bWUgaXQncyB0aGUgcHJldmlvdXMgcGFzc3dvcmQuIEFueSBleGNlcHRpb24gaXMgYWxsb3dlZCB0byBidWJibGUgdXAuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgZW1haWxPclBob25lLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICAgICAgUmVjb3ZlcnlTdGF0dXMuT0xEX1BBU1NXT1JEXG4gICAgICAgICk7XG4gICAgICAgIC8vIE9sZCBwYXNzd29yZCB3b3JrZWQuXG4gICAgICAgIGNvbnNvbGUubG9nKCdPbGQgcGFzc3dvcmQgd29ya3MhJyk7XG5cbiAgICAgICAgcmV0dXJuIHVzZXI7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBKdXN0IGJ1YmJsZSB1cCBhbnkgb3RoZXIgdHlwZSBvZiBlcnJvci5cbiAgICAgICAgdGhyb3cgZXJyb3IuY29kZSA9PT0gJ05vdEF1dGhvcml6ZWRFeGNlcHRpb24nXG4gICAgICAgICAgPyBuZXcgS2NCYWRSZXF1ZXN0RXhjZXB0aW9uKFxuICAgICAgICAgICAgICAnVGhlIHBhc3N3b3JkIGNoYW5nZSByZXF1ZXN0IHdhcyBpbnRlcnJ1cHRlZCwgcGxlYXNlIHRyeSB0byBsb2dpbiB3aXRoIGJvdGggeW91ciBuZXcgYW5kIG9sZCBwYXNzd29yZCdcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGVycm9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRyeSBhZ2FpbnN0IGFzIHRoZSBUUCBwYXNzd29yZCByZXNldCBhY2NvdW50XG4gICAgaWYgKHBhc3NJZHBBcGlSZXN1bHQudHBQYXNzd29yZFJlc2V0KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUUCBwYXNzd29yZCByZXNldCBpcyBpbiBwcm9jZXNzLiBXZSBuZWVkIHRvIHRyeSB0aGUgcGFzc3dvcmQgYWdhaW5zdCBib3RoXG4gICAgICAgIC8vIG9yaWdpbmFsIGFjY291bnQgYW5kIHRoZSBuZXcgcmVzZXQgYWNjb3VudC5cbiAgICAgICAgY29uc3QgcmVzZXQgPSBwYXNzSWRwQXBpUmVzdWx0LnRwUGFzc3dvcmRSZXNldDtcbiAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICAgICAgcmVzZXQucmVzZXRVc2VybmFtZSxcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICByZXNldC5wYXNzSWRwUGFyYW1zLFxuICAgICAgICAgIFJlY292ZXJ5U3RhdHVzLk5PTkVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0LmlzVHBQYXNzd29yZFJlc2V0VXNlciA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBjb250aW51ZSwgdHJ5IGFnYWluIGFzIHJlZ3VsYXIgdXNlci5cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMb2dpbiBhcyByZWd1bGFyIHVzZXJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2dpbklkcEltcGwoXG4gICAgICBlbWFpbE9yUGhvbmUsXG4gICAgICBwYXNzd29yZCxcbiAgICAgIHBhc3NJZHBBcGlSZXN1bHQuY3VycmVudFBhc3NJZHBQYXJhbXMsXG4gICAgICBSZWNvdmVyeVN0YXR1cy5OT05FXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU2Vzc2lvbkVuY3J5cHRpb25LZXkoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRpc2FibGVTZXNzaW9uRW5jcnlwdGlvbktleSkge1xuICAgICAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zdCBtc2cgPVxuICAgICAgICAgICdZb3Ugc2hvdWxkIG5vdCBzZXQgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PVRydWUgaW4gbW9kZSBwcm9kLiBJdCBkZWZhdWx0cyB0byBmYWxzZS4nO1xuICAgICAgICBjb25zb2xlLmVycm9yKG1zZyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdZb3UgaGF2ZSBzZXQgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PVRydWUuIE1ha2Ugc3VyZSBub3QgdG8gZG8gdGhpcyBpbiBwcm9kIG1vZGUuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTZXQgdGhlIHNlc3Npb24ga2V5IHRvIGEgbmV3IGVuY3J5cHRpb24ga2V5IGZvciB0aGlzIHNlc3Npb25cbiAgICAgIGNvbnN0IHNlc3Npb25FbmNyeXB0aW9uS2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogU2V0U2Vzc2lvbkVuY3J5cHRpb25LZXlNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIHNlc3Npb25FbmNyeXB0aW9uS2V5OiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICBzZXNzaW9uRW5jcnlwdGlvbktleS50b0pTT04odHJ1ZSlcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KHNlc3Npb25FbmNyeXB0aW9uS2V5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVBvc3RBdXRoKGNvZ25pdG9Vc2VyOiBDb2duaXRvQ2hhbGxlbmdlVXNlcikge1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlUGFzc3dvcmRSZWNvdmVyeShjb2duaXRvVXNlcik7XG4gICAgYXdhaXQgdGhpcy5oYW5kbGVTZXNzaW9uRW5jcnlwdGlvbktleSgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luKFxuICAgIGVtYWlsT3JQaG9uZTogc3RyaW5nLFxuICAgIHBhc3N3b3JkOiBDcnlwdG9LZXksXG4gICAgeyB0cFBhc3N3b3JkUmVzZXRBdXRvQ29tcGxldGUgPSB0cnVlIH06IExvZ2luT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIGxldCBsb2dpblJlc3VsdCA9IGF3YWl0IHRoaXMubG9naW5JbXBsKGVtYWlsT3JQaG9uZSwgcGFzc3dvcmQpO1xuXG4gICAgaWYgKFxuICAgICAgdHBQYXNzd29yZFJlc2V0QXV0b0NvbXBsZXRlICYmXG4gICAgICBsb2dpblJlc3VsdC5yZXNldFVzZXI/LnN0YXRlID09PSBUcENsYWltU3RhdGUuQVBQUk9WRURcbiAgICApIHtcbiAgICAgIGF3YWl0IHRoaXMuY29tcGxldGVSZXF1ZXN0KHBhc3N3b3JkKTtcbiAgICAgIGxvZ2luUmVzdWx0ID0gYXdhaXQgdGhpcy5sb2dpbkltcGwoZW1haWxPclBob25lLCBwYXNzd29yZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvZ2luUmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luSW1wbChcbiAgICBlbWFpbE9yUGhvbmU6IHN0cmluZyxcbiAgICBwYXNzd29yZDogQ3J5cHRvS2V5XG4gICk6IFByb21pc2U8TG9naW5SZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZ291dCgpO1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5sb2dpbklkcChlbWFpbE9yUGhvbmUsIHBhc3N3b3JkKTtcblxuICAgIC8vIHRvZG86IE1lZXQgTUZBIGNoYWxsZW5nZXMuXG4gICAgaWYgKFsnU01TX01GQScsICdTT0ZUV0FSRV9UT0tFTl9NRkEnXS5pbmNsdWRlcyhjb2duaXRvVXNlci5jaGFsbGVuZ2VOYW1lKSkge1xuICAgICAgcmV0dXJuIHsgaGFzQ2hhbGxlbmdlOiB0cnVlLCBjaGFsbGVuZ2U6IGNvZ25pdG9Vc2VyIH07XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5oYW5kbGVQb3N0QXV0aChjb2duaXRvVXNlcik7XG5cbiAgICBpZiAoY29nbml0b1VzZXIuaXNUcFBhc3N3b3JkUmVzZXRVc2VyKSB7XG4gICAgICAvLyBBc3N1bWluZyB0aGVyZSBpcyBubyBNRkEgb24gdGhlIFRQIHJlc2V0IHVzZXIuXG4gICAgICBjb25zdCByZXNldFVzZXIgPSBhd2FpdCB0aGlzLmxvYWRSZXNldFVzZXIocGFzc3dvcmQpO1xuICAgICAgcmV0dXJuIHsgaGFzQ2hhbGxlbmdlOiBmYWxzZSwgcmVzZXRVc2VyIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvYWRVc2VyKGNvZ25pdG9Vc2VyLCBwYXNzd29yZCk7XG4gICAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cbiAgICAgIHJldHVybiB7IGhhc0NoYWxsZW5nZTogZmFsc2UsIHVzZXIgfTtcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPIDxBWj4gV2UgbmVlZCB0byBoYW5kbGUgdGhlIGlzVHBQYXNzd29yZFJlc2V0VXNlcj1UcnVlIGNhc2UgaGVyZSBhZnRlciBNRkEgYXMgd2VsbC5cbiAgcHVibGljIGFzeW5jIHZlcmlmeUxvZ2luKFxuICAgIGNoYWxsZW5nZTogQ29nbml0b0NoYWxsZW5nZVVzZXIsXG4gICAgcGFzc3dvcmQ6IENyeXB0b0tleSxcbiAgICByZW1lbWJlck1lOiBib29sZWFuLFxuICAgIGNvZGU6IHN0cmluZ1xuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyPiB7XG4gICAgYXdhaXQgdGhpcy5hdXRoLmNvbmZpcm1TaWduSW4oY2hhbGxlbmdlLCBjb2RlLCBjaGFsbGVuZ2UuY2hhbGxlbmdlTmFtZSk7XG5cbiAgICAvLyBUT0RPOiB0aGlzLmF1dGguY29uZmlybVNpZ25JbigpIGNvdWxkIHJldHVybiBhbm90aGVyIGNoYWxsZW5nZS5cblxuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcblxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUG9zdEF1dGgoY2hhbGxlbmdlKTtcblxuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmxvYWRVc2VyKGNvZ25pdG9Vc2VyLCBwYXNzd29yZCk7XG5cbiAgICBpZiAocmVtZW1iZXJNZSkge1xuICAgICAgY29nbml0b1VzZXIuc2V0RGV2aWNlU3RhdHVzUmVtZW1iZXJlZCh7XG4gICAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSxcbiAgICAgICAgb25GYWlsdXJlOiAoZSkgPT4gY29uc29sZS5lcnJvcihlKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlUGFzc3dvcmRSZWNvdmVyeSh1c2VyOiBDb2duaXRvQ2hhbGxlbmdlVXNlcikge1xuICAgIGlmICh1c2VyLnJlY292ZXJ5U3RhdHVzICE9PSBSZWNvdmVyeVN0YXR1cy5OT05FKSB7XG4gICAgICBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jaGFuZ2VQYXNzd29yZENvbXBsZXRlKHtcbiAgICAgICAgdXNlTmV3UGFzc3dvcmQ6IHVzZXIucmVjb3ZlcnlTdGF0dXMgPT09IFJlY292ZXJ5U3RhdHVzLk5FV19QQVNTV09SRCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJPclJlc2V0VXNlcihcbiAgICByZWxvYWQgPSBmYWxzZVxuICApOiBQcm9taXNlPEN1cnJlbnRVc2VyIHwgVHBQYXNzd29yZFJlc2V0VXNlcj4ge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpO1xuXG4gICAgaWYgKGNvZ25pdG9Vc2VyLmdldFVzZXJuYW1lKCkuZW5kc1dpdGgoVFBfUEFTU1dPUkRfUkVTRVRfVVNFUk5BTUVfU1VGRklYKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVzZXRVc2VyKHJlbG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFVzZXIocmVsb2FkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRSZXNldFVzZXIocmVsb2FkID0gZmFsc2UpOiBQcm9taXNlPFRwUGFzc3dvcmRSZXNldFVzZXI+IHtcbiAgICBpZiAoIXJlbG9hZCAmJiB0aGlzLmN1cnJlbnRSZXNldFVzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNldFVzZXI7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50UmVzZXRVc2VyID0gYXdhaXQgdGhpcy5sb2FkUmVzZXRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNldFVzZXI7XG4gIH1cblxuICBhc3luYyBnZXRVc2VyKHJlbG9hZCA9IGZhbHNlKTogUHJvbWlzZTxDdXJyZW50VXNlcj4ge1xuICAgIGlmICghcmVsb2FkICYmIHRoaXMuY3VycmVudFVzZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRVc2VyO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gYXdhaXQgdGhpcy5sb2FkVXNlcihcbiAgICAgIGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKVxuICAgICk7XG4gICAgY29uc29sZS5sb2coJ1N0YXJ0aW5nIGlkbGUgc2VydmljZS4nKTtcbiAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnN0YXJ0KCk7IC8vIFJ1biBpZGxlU2VydmljZSB3aGVuZXZlciB1c2VyIGlzIGxvZ2dlZCBpbi5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVFBWYXVsdEFjY2VzcyhmZWF0dXJlcz86IEZlYXR1cmVzKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdHBWYXVsdEZlYXR1cmUgPSBmZWF0dXJlcz8udHBWYXVsdDtcbiAgICByZXR1cm4gKFxuICAgICAgdHBWYXVsdEZlYXR1cmU/Lmxlbmd0aCA+IDAgJiZcbiAgICAgIHRwVmF1bHRGZWF0dXJlLnNvbWUoKGZlYXR1cmUpID0+IGZlYXR1cmUudG9VcHBlckNhc2UoKSA9PT0gJ0FDQ0VTUycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFVzZXIoXG4gICAgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyLFxuICAgIHBhc3N3b3JkPzogQ3J5cHRvS2V5XG4gICk6IFByb21pc2U8Q3VycmVudFVzZXI+IHtcbiAgICBjb25zdCB7IGN1cnJlbnRVc2VyLCBjb250YWN0Q2FyZCwgdXNlclBsYW5zIH0gPVxuICAgICAgYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuXG4gICAgaWYgKGN1cnJlbnRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkoY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJBdHRyaWJ1dGVzID0gYXdhaXQgdGhpcy5hdXRoLnVzZXJBdHRyaWJ1dGVzKGNvZ25pdG9Vc2VyKTtcblxuICAgIGlmIChwYXNzd29yZCkge1xuICAgICAgY29uc3QgcGFzc0tleSA9IChcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZVBhc3NLZXkoe1xuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIC4uLmN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LnBhc3NLZXkucGFzc0tleVBhcmFtcyxcbiAgICAgICAgfSlcbiAgICAgICkuandrO1xuXG4gICAgICBhd2FpdCB0aGlzLmlkbGVTZXJ2aWNlLnBlcnNpc3RNYXN0ZXJLZXkoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLnVud3JhcFdpdGhQYXNzS2V5KFxuICAgICAgICAgIGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICBjdXJyZW50VXNlci5jdXJyZW50VXNlcktleS5tYXN0ZXJLZXkuaWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UucG9wdWxhdGVLZXlzKGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5KTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogY3VycmVudFVzZXIuaWQsXG4gICAgICBzdWI6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnc3ViJywgdXNlckF0dHJpYnV0ZXMpLFxuICAgICAgdXNlcm5hbWU6IGN1cnJlbnRVc2VyLnVzZXJuYW1lLFxuICAgICAgY3VycmVudFVzZXJLZXk6IGN1cnJlbnRVc2VyLmN1cnJlbnRVc2VyS2V5LFxuICAgICAgZW1haWw6IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnZW1haWwnLCB1c2VyQXR0cmlidXRlcyksXG4gICAgICBlbWFpbFZlcmlmaWVkOlxuICAgICAgICB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ2VtYWlsX3ZlcmlmaWVkJywgdXNlckF0dHJpYnV0ZXMpID09PSAndHJ1ZScsXG4gICAgICBwaG9uZTogdGhpcy5nZXRVc2VyQXR0cmlidXRlKCdwaG9uZV9udW1iZXInLCB1c2VyQXR0cmlidXRlcyksXG4gICAgICBwaG9uZVZlcmlmaWVkOlxuICAgICAgICB0aGlzLmdldFVzZXJBdHRyaWJ1dGUoJ3Bob25lX251bWJlcl92ZXJpZmllZCcsIHVzZXJBdHRyaWJ1dGVzKSA9PT1cbiAgICAgICAgJ3RydWUnLFxuICAgICAgY29udGFjdENhcmQ6IHtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZGVjcnlwdENvbnRhY3RDYXJkKGNvbnRhY3RDYXJkKSksXG4gICAgICB9LFxuICAgICAgdXNlckRlbGV0ZTogY3VycmVudFVzZXIudXNlckRlbGV0ZSxcbiAgICAgIHVzZXJQbGFucyxcbiAgICAgIGhhc1RQVmF1bHRBY2Nlc3M6IHRoaXMubWFwVFBWYXVsdEFjY2VzcyhjdXJyZW50VXNlci5mZWF0dXJlcyksXG4gICAgICBmZWF0dXJlczogY3VycmVudFVzZXIuZmVhdHVyZXMsXG4gICAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogY3VycmVudFVzZXIuc2Vzc2lvbkVuY3J5cHRpb25LZXksXG4gICAgICBkYXRlSm9pbmVkOiBjdXJyZW50VXNlci5kYXRlSm9pbmVkLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgd2F0Y2hBdXRoKCkge1xuICAgIHJldHVybiB0aGlzLmh1YlN1YmplY3Q7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIE5vdGlmeSBhbGwgbGlzdGVuZXJzIHRvIGNsZWFuIHVwLlxuICAgIGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLmxvZ291dExpc3RlbmVyc10ubWFwKChjYWxsYmFjaykgPT4gY2FsbGJhY2soKSkpO1xuXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IG51bGw7XG4gICAgdGhpcy5rZXlTZXJ2aWNlLnB1cmdlS2V5cygpO1xuICAgIHRoaXMua2V5R3JhcGhTZXJ2aWNlLnB1cmdlS2V5cygpO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuYXV0aC5zaWduT3V0KCksIHRoaXMucHJvZmlsZVNlcnZpY2Uuc2lnbk91dCgpXSk7XG5cbiAgICBpZiAodGhpcy5jb25maWcuZGVidWc/LnVzZXJuYW1lKSB7XG4gICAgICB0aGlzLmNvbmZpZy5kZWJ1Zy51c2VybmFtZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRVc2VyQXR0cmlidXRlKFxuICAgIGF0dHJpYnV0ZU5hbWU6IHN0cmluZyxcbiAgICB1c2VyQXR0cmlidXRlczogQ29nbml0b1VzZXJBdHRyaWJ1dGVbXVxuICApIHtcbiAgICBjb25zdCB1c2VyQXR0cmlidXRlID0gdXNlckF0dHJpYnV0ZXMuZmluZChcbiAgICAgICh4KSA9PiB4LmdldE5hbWUoKSA9PT0gYXR0cmlidXRlTmFtZVxuICAgICk7XG5cbiAgICByZXR1cm4gdXNlckF0dHJpYnV0ZSA/IHVzZXJBdHRyaWJ1dGUuZ2V0VmFsdWUoKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRSZXNldFVzZXIoXG4gICAgcGFzc3dvcmQ/OiBDcnlwdG9LZXlcbiAgKTogUHJvbWlzZTxUcFBhc3N3b3JkUmVzZXRVc2VyPiB7XG4gICAgY29uc3QgeyB0cFBhc3N3b3JkUmVzZXRVc2VyOiByZXNldFVzZXIgfSA9IGF3YWl0IHRoaXMubHJHcmFwaFFMLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBUcFBhc3N3b3JkUmVzZXRVc2VyUXVlcnksXG4gICAgfSk7XG5cbiAgICBpZiAocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aGlzLnBlcnNpc3RTZXJ2aWNlLnNldFNlcnZlclNlc3Npb25FbmNyeXB0aW9uS2V5KFxuICAgICAgICBhd2FpdCBKV0suYXNLZXkocmVzZXRVc2VyLnNlc3Npb25FbmNyeXB0aW9uS2V5KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGtleXNcbiAgICBpZiAocGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHBhc3NLZXkgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzS2V5KHtcbiAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzS2V5UGFyYW1zLFxuICAgICAgICB9KVxuICAgICAgKS5qd2s7XG5cbiAgICAgIGF3YWl0IHRoaXMuaWRsZVNlcnZpY2UucGVyc2lzdE1hc3RlcktleShcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UudW53cmFwV2l0aFBhc3NLZXkoXG4gICAgICAgICAgcmVzZXRVc2VyLnBhc3NLZXkuaWQsXG4gICAgICAgICAgcGFzc0tleSxcbiAgICAgICAgICByZXNldFVzZXIubWFzdGVyS2V5LmlkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5rZXlTZXJ2aWNlLnBvcHVsYXRlS2V5cyh7XG4gICAgICBwYXNzS2V5OiB7XG4gICAgICAgIGlkOiByZXNldFVzZXIucGFzc0tleS5pZCxcbiAgICAgIH0sXG4gICAgICBtYXN0ZXJLZXk6IHtcbiAgICAgICAgaWQ6IHJlc2V0VXNlci5tYXN0ZXJLZXkuaWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgdXNlckF0dHJpYnV0ZXMgPSBhd2FpdCB0aGlzLmF1dGgudXNlckF0dHJpYnV0ZXMoXG4gICAgICBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKClcbiAgICApO1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuZ2V0VXNlckF0dHJpYnV0ZSgnc3ViJywgdXNlckF0dHJpYnV0ZXMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihhd2FpdCB0aGlzLnRwUGFzc3dvcmRSZXNldFByb2Nlc3NvclNlcnZpY2UucHJvY2Vzc1RwUGFzc3dvcmRSZXNldFVzZXJOb2RlKFxuICAgICAgICByZXNldFVzZXJcbiAgICAgICkpLFxuICAgICAgc3ViLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVmcmVzaEFjY2Vzc1Rva2VuKCkge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcbiAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBjb2duaXRvVXNlci5nZXRTaWduSW5Vc2VyU2Vzc2lvbigpLmdldFJlZnJlc2hUb2tlbigpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvZ25pdG9Vc2VyLnJlZnJlc2hTZXNzaW9uKHJlZnJlc2hUb2tlbiwgKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVmcmVzaGluZyB0b2tlbjogJywgZXJyKTtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnVG9rZW4gcmVmcmVzaCBjb21wbGV0ZScpO1xuICAgICAgICAgIHJlc29sdmUoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVSZXF1ZXN0KG5ld1Bhc3N3b3JkOiBDcnlwdG9LZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXNldFVzZXIgPSBhd2FpdCB0aGlzLmdldFJlc2V0VXNlcih0cnVlKTtcblxuICAgIGlmIChyZXNldFVzZXIuc3RhdGUgIT09IFRwQ2xhaW1TdGF0ZS5BUFBST1ZFRCkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdQYXNzd29yZCByZXNldCByZXF1ZXN0IGhhcyBub3QgYmVlbiBhcHByb3ZlZC4nXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gUHJlcGFyZSBhbGwgbWF0ZXJpYWxzIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gZXJyb3JzLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgYXNzZW1ibHlLZXkgPSBhd2FpdCB0aGlzLnJlY292ZXJBc3NlbWJseUtleShyZXNldFVzZXIpO1xuXG4gICAgY29uc3QgeyByb290S2V5IH0gPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICBhc3NlbWJseUtleSxcbiAgICAgIHJlc2V0VXNlci5hc3NlbWJseUNpcGhlckRhdGFcbiAgICApO1xuXG4gICAgLy8gTWFraW5nIHN1cmUgaXQncyBhIHZhbGlkIGtleS5cbiAgICBjb25zdCByb290S2V5SndrID0gYXdhaXQgSldLLmFzS2V5KHJvb3RLZXkpO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UuZ2V0S2V5KHJlc2V0VXNlci5tYXN0ZXJLZXkuaWQpO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5V3JhcHBlZFJvb3RLZXkgPVxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICAgIHJvb3RLZXlKd2sudG9KU09OKHRydWUpXG4gICAgICApO1xuXG4gICAgLy8gVGhlIG5ldyBwYXNzd29yZFxuICAgIGNvbnN0IG5ld1Bhc3NJZHBSZXN1bHQgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuZGVyaXZlUGFzc0lkcCh7XG4gICAgICBwYXNzd29yZDogbmV3UGFzc3dvcmQsXG4gICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzSWRwUGFyYW1zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbmV3SWRwUGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKFxuICAgICAgbmV3UGFzc0lkcFJlc3VsdC5qd2tcbiAgICApO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBHZXQgYXNzZW1ibHkga2V5IGNoYWxsZW5nZVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgY2hhbGxlbmdlID0gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICBtdXRhdGlvbjogQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uLFxuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgaW5wdXQ6IHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgaW5jbHVkZUtleUdyYXBoOiBmYWxzZSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICkuY3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZS5jaGFsbGVuZ2U7XG5cbiAgICAvLyBTaWduIHRoZSBjaGFsbGVuZ2VcbiAgICAvLyBHZW5lcmF0ZSBhIGNsaWVudCBzaWRlIG5vbmNlIHRoYXQncyBubyBpbiB0aGUgc2VydmVyJ3MgY29udHJvbC5cbiAgICBjaGFsbGVuZ2UuY2xpZW50Tm9uY2UgPSB0aGlzLmtleUZhY3RvcnkucmFuZG9tU3RyaW5nKFxuICAgICAgVFBfUEFTU1dPUkRfUkVTRVRfQ0xJRU5UX05PTkNFX0xFTkdUSFxuICAgICk7XG5cbiAgICBjb25zdCBhc3NlbWJseUtleVZlcmlmaWVyUHJrID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgYXNzZW1ibHlLZXksXG4gICAgICByZXNldFVzZXIud3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmtcbiAgICApO1xuICAgIGNvbnN0IHNpZ25lZENoYWxsZW5nZSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihcbiAgICAgIGFzc2VtYmx5S2V5VmVyaWZpZXJQcmssXG4gICAgICBjaGFsbGVuZ2VcbiAgICApO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBDaGFuZ2UgcGFzc3dvcmQgZm9yIHRoZSBvcmlnaW5hbCB1c2VyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCB0ZW1wSWRwUGFzc3dvcmQgPSAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShcbiAgICAgICAgbmV3IExyTXV0YXRpb24oe1xuICAgICAgICAgIG11dGF0aW9uOiBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIHNpZ25lZENoYWxsZW5nZTogSlNPTi5zdHJpbmdpZnkoc2lnbmVkQ2hhbGxlbmdlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICApXG4gICAgKS5wcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3QuaWRwUGFzc3dvcmQ7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIExvZ2luIGFzIHRoZSBvcmlnaW5hbCB1c2VyIHVzaW5nIG5ldyB0ZW1wb3JhcnkgcGFzc3dvcmRcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvcmlnaW5hbCBhY2NvdW50J3MgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZFxuICAgIC8vIHRvIGEgdGVtcG9yYXJ5IHBhc3N3b3JkLiBJdCBpcyBubyBsb25nZXIgcG9zc2libGUgZm9yIHRoZSB1c2VyXG4gICAgLy8gdG8gdXNlIHRoZSBvcmlnaW5hbCBwYXNzd29yZCB0byBsb2dpbi4gQW55IHN1Y2Nlc3NmdWwgbG9naW5cbiAgICAvLyBjYW4gb25seSBiZSB1c2luZyB0aGUgdGVtcG9yYXJ5IHBhc3N3b3JkLiBTbyBpdCdzIHNhZmUgdG8gYXNzdW1lXG4gICAgLy8gdGhhdCB3ZSB3YW50IHRvIFwiY29tcGxldGVcIiB0aGUgcGFzc3dvcmQgcmVzZXQuXG5cbiAgICAvLyBUaGUgbWF5YmUgMkZBIHNvIHdlIGxpc3RlbiBmb3IgdGhlIGF1dGggZXZlbnQgZnJvbSBBbXBsaWZ5LlxuICAgIGNvbnN0IHJldFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSBhc3luYyAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5wYXlsb2FkLmV2ZW50ICE9PSAnc2lnbkluJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIEh1Yi5yZW1vdmUoJ2F1dGgnLCBsaXN0ZW5lcik7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5hdXRoLnNpZ25JbihyZXNldFVzZXIudXNlcm5hbWUsIG5ld0lkcFBhc3N3b3JkKTtcblxuICAgICAgICAvLyBTd2l0Y2ggb3ZlciB0byB0aGUgbmV3IHNldCBvZiBrZXlzXG4gICAgICAgIGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFxuICAgICAgICAgIG5ldyBMck11dGF0aW9uKHtcbiAgICAgICAgICAgIG11dGF0aW9uOiBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgIG1hc3RlcktleVdyYXBwZWRSb290S2V5LFxuICAgICAgICAgICAgICAgIG1hc3RlcktleUlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcblxuICAgICAgSHViLmxpc3RlbignYXV0aCcsIGxpc3RlbmVyKTtcbiAgICB9KTtcblxuICAgIC8vIFNpZ25pbiBhcyB0aGUgb3JpZ2luYWwgdXNlci4gUGFzc3dvcmQgaGFzIGJlZW4gcmVzZXQgdG8gdGVtcG9yYXJ5IG9uZS4gSXQgc2hvdWxkIHJldHVyblxuICAgIC8vIHdpdGggTkVXX1BBU1NXT1JEX1JFUVVJUkVEXG4gICAgbGV0IHVzZXIgPSBhd2FpdCB0aGlzLmF1dGguc2lnbkluKHJlc2V0VXNlci51c2VybmFtZSwgdGVtcElkcFBhc3N3b3JkLCB7XG4gICAgICBub1Byb3h5OiAndHJ1ZScsXG4gICAgfSk7XG5cbiAgICBpZiAodXNlci5jaGFsbGVuZ2VOYW1lICE9PSAnTkVXX1BBU1NXT1JEX1JFUVVJUkVEJykge1xuICAgICAgdGhyb3cgbmV3IEtjSW50ZXJuYWxFcnJvckV4Y2VwdGlvbihcbiAgICAgICAgJ0V4cGVjdGluZyBDb2duaXRvIHRvIGhhdmUgZG9uZSBhIHBhc3N3b3JkIHJlc2V0IGFmdGVyIGNhbGwgdG8gUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24uJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgbmV3IHBhc3N3b3JkIG9uIElkcFxuICAgIC8vIHRoZSBhd3NGZXRjaCgpIGZ1bmN0aW9uIHBhc3NlcyBORVdfUEFTU1dPUkRfUkVRVUlSRUQgZGlyZWN0bHkgdG8gQVdTIHdpdGhvdXRcbiAgICAvLyBnb2luZyB0aHJvdWdoIHRoZSBwcm94eS5cbiAgICB1c2VyID0gYXdhaXQgdGhpcy5hdXRoLmNvbXBsZXRlTmV3UGFzc3dvcmQodXNlciwgbmV3SWRwUGFzc3dvcmQsIHt9KTtcblxuICAgIHJldHVybiByZXRQcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWNvdmVyQXNzZW1ibHlLZXkoXG4gICAgcmVzZXRVc2VyOiBUcFBhc3N3b3JkUmVzZXRVc2VyTm9kZVxuICApOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRLZXkocmVzZXRVc2VyLnB4ay5pZCk7XG5cbiAgICBjb25zdCBwYXJ0aWFscyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcmVzZXRVc2VyLmFwcHJvdmFsc1xuICAgICAgICAuZmlsdGVyKChhcHByb3ZhbCkgPT4gISFhcHByb3ZhbC5yZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleSlcbiAgICAgICAgLm1hcCgoYXBwcm92YWwpID0+XG4gICAgICAgICAgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgICAgICAgcHJrLFxuICAgICAgICAgICAgYXBwcm92YWwucmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuYXNzZW1ibHlDb250cm9sbGVyLnJlY292ZXJBc3NlbWJseUtleShwYXJ0aWFscyk7XG4gIH1cbn1cbiJdfQ==