@lifeready/core 8.0.1 → 8.0.3
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.
- package/bundles/lifeready-core.umd.js +247 -183
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +1 -1
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/queries.gql.js +2 -149
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +5 -3
- package/esm2015/lib/api/types/lr-graphql.types.js +11 -11
- package/esm2015/lib/item/item.gql.private.js +7 -7
- package/esm2015/lib/item/item.service.js +10 -10
- package/esm2015/lib/key/key-graph.service.js +14 -1
- package/esm2015/lib/key/key.types.js +1 -1
- package/esm2015/lib/scenario/scenario.gql.js +1 -1
- package/esm2015/lib/scenario/scenario.private.gql.js +36 -31
- package/esm2015/lib/scenario/scenario.service.js +55 -22
- package/esm2015/lib/scenario/scenario.types.js +1 -1
- package/esm2015/lib/trusted-party/trusted-party.gql.js +35 -35
- package/esm2015/lib/trusted-party/trusted-party.service.js +32 -32
- package/esm2015/lib/trusted-party/trusted-party.types.js +1 -1
- package/fesm2015/lifeready-core.js +195 -289
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/queries.gql.d.ts +0 -6
- package/lib/api/types/lr-graphql.types.d.ts +24 -20
- package/lib/item/item.gql.private.d.ts +6 -6
- package/lib/item/item.service.d.ts +2 -2
- package/lib/key/key.types.d.ts +1 -0
- package/lib/scenario/scenario.gql.d.ts +1 -1
- package/lib/scenario/scenario.service.d.ts +68 -27
- package/lib/scenario/scenario.types.d.ts +1 -1
- package/lib/trusted-party/trusted-party.gql.d.ts +34 -34
- package/lib/trusted-party/trusted-party.service.d.ts +16 -16
- package/lib/trusted-party/trusted-party.types.d.ts +2 -2
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,7 @@ import { LockService } from '../lock/lock.service';
|
|
|
12
12
|
import { KcBadArgumentException } from '../_common/exceptions';
|
|
13
13
|
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
14
14
|
import { ArchiveDirectoryMutation, ArchiveFileMutation, BeginDeleteChildItemLinksWindowMutation, ChangeDirectoryParentsMutation, ChangeFileParentsMutation, CreateDirectoryMutation, CreateFileMutation, DeleteDirectoryMutation, DeleteFileMutation, RevertFileMutation, SetDirectoryConfidentialMutation, SetFileConfidentialMutation, TempDirectoryQuery, UnarchiveDirectoryMutation, UnarchiveFileMutation, UpdateDirectoryMutation, UpdateFileMutation, } from './item.gql';
|
|
15
|
-
import {
|
|
15
|
+
import { DirectoryKeyFromDirectoryShareQuery, DirectoryKeyQuery, FileKeyFromFileShareQuery, FileKeyQuery, FileStateKeyQuery, } from './item.gql.private';
|
|
16
16
|
import * as i0 from "@angular/core";
|
|
17
17
|
import * as i1 from "../file-upload/file-upload.service";
|
|
18
18
|
import * as i2 from "../key/key.service";
|
|
@@ -64,24 +64,24 @@ let ItemService = ItemService_1 = class ItemService extends LrService {
|
|
|
64
64
|
})).file.keyId;
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
|
|
67
|
+
getDirectoryKeyIdFromDirectoryShare(directoryShareId) {
|
|
68
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
69
69
|
return (yield this.query({
|
|
70
|
-
query:
|
|
70
|
+
query: DirectoryKeyFromDirectoryShareQuery,
|
|
71
71
|
variables: {
|
|
72
|
-
id:
|
|
72
|
+
id: directoryShareId,
|
|
73
73
|
},
|
|
74
|
-
})).
|
|
74
|
+
})).directoryShare.item.keyId;
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
getFileKeyIdFromFileShare(fileShareId) {
|
|
78
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
79
79
|
return (yield this.query({
|
|
80
|
-
query:
|
|
80
|
+
query: FileKeyFromFileShareQuery,
|
|
81
81
|
variables: {
|
|
82
|
-
id:
|
|
82
|
+
id: fileShareId,
|
|
83
83
|
},
|
|
84
|
-
})).
|
|
84
|
+
})).fileShare.item.keyId;
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
getDirectoryKey(directoryId, directoryKeyId) {
|
|
@@ -609,4 +609,4 @@ ItemService = ItemService_1 = __decorate([
|
|
|
609
609
|
})
|
|
610
610
|
], ItemService);
|
|
611
611
|
export { ItemService };
|
|
612
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2l0ZW0vaXRlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQix1Q0FBdUMsRUFDdkMsOEJBQThCLEVBQzlCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNuQixN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QXZxQlEscUNBQXlCLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDL0MsNENBQWdDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2RCxNQUFNLEVBQUU7UUFDTjtZQUNFLFFBQVEsRUFBRSxhQUFXLENBQUMseUJBQXlCO1NBQ2hEO0tBQ0Y7Q0FDRixDQUFDLENBQUM7OztZQTVCSixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQW5FOEIsTUFBTTtZQUFoQixRQUFRO1lBS3BCLGlCQUFpQjtZQUdqQixVQUFVO1lBRlYsaUJBQWlCO1lBQ2pCLGVBQWU7WUFHZixXQUFXO1lBTlgsV0FBVzs7QUFnRVAsV0FBVztJQU52QixpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsV0FBVyxDQXlyQnZCO1NBenJCWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IExyTXV0YXRpb24sIExyU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1ncmFwaHFsJztcbmltcG9ydCB7IElELCBKU09OT2JqZWN0LCBMclJlbGF5SWRJbnB1dCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IFBheWxvYWRUeXBlIH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBMb2NrU2VydmljZSB9IGZyb20gJy4uL2xvY2svbG9jay5zZXJ2aWNlJztcbmltcG9ydCB7IEtjQmFkQXJndW1lbnRFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICBBcmNoaXZlRmlsZU11dGF0aW9uLFxuICBCZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93TXV0YXRpb24sXG4gIENoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbixcbiAgQ2hhbmdlRmlsZVBhcmVudHNNdXRhdGlvbixcbiAgQ3JlYXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gIENyZWF0ZUZpbGVNdXRhdGlvbixcbiAgRGVsZXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gIERlbGV0ZUZpbGVNdXRhdGlvbixcbiAgUmV2ZXJ0RmlsZU11dGF0aW9uLFxuICBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxNdXRhdGlvbixcbiAgU2V0RmlsZUNvbmZpZGVudGlhbE11dGF0aW9uLFxuICBUZW1wRGlyZWN0b3J5UXVlcnksXG4gIFVuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICBVbmFyY2hpdmVGaWxlTXV0YXRpb24sXG4gIFVwZGF0ZURpcmVjdG9yeU11dGF0aW9uLFxuICBVcGRhdGVGaWxlTXV0YXRpb24sXG59IGZyb20gJy4vaXRlbS5ncWwnO1xuaW1wb3J0IHtcbiAgRGlyZWN0b3J5S2V5RnJvbVNoYXJlZERpcmVjdG9yeVF1ZXJ5LFxuICBEaXJlY3RvcnlLZXlRdWVyeSxcbiAgRmlsZUtleUZyb21TaGFyZWRGaWxlUXVlcnksXG4gIEZpbGVLZXlRdWVyeSxcbiAgRmlsZVN0YXRlS2V5UXVlcnksXG59IGZyb20gJy4vaXRlbS5ncWwucHJpdmF0ZSc7XG5pbXBvcnQge1xuICBBcmNoaXZlRGlyZWN0b3J5T3B0aW9ucyxcbiAgQmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvd09wdGlvbnMsXG4gIENoYW5nZURpcmVjdG9yeVBhcmVudHNPcHRpb25zLFxuICBDaGFuZ2VGaWxlUGFyZW50c09wdGlvbnMsXG4gIENoYW5nZUl0ZW1QYXJlbnRzT3B0aW9ucyxcbiAgQ3JlYXRlRGlyZWN0b3J5T3B0aW9ucyxcbiAgQ3JlYXRlRGlyZWN0b3J5VHJlZU9wdGlvbnMsXG4gIENyZWF0ZUZpbGVPcHRpb25zLFxuICBEb3dubG9hZEZpbGVDb250ZW50T3B0aW9ucyxcbiAgRmlsZVBhcmVudERpcmVjdG9yeUlucHV0LFxuICBJZEtleVBhaXIsXG4gIFBhcmVudERpcmVjdG9yeUlucHV0LFxuICBQYXJlbnREaXJlY3RvcnlPcHRpb25zLFxuICBQYXJlbnRSb290RGlyZWN0b3J5SW5wdXQsXG4gIFJldmVydEZpbGVPcHRpb25zLFxuICBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxPcHRpb25zLFxuICBTZXRGaWxlQ29uZmlkZW50aWFsT3B0aW9ucyxcbiAgVW5hcmNoaXZlRGlyZWN0b3J5T3B0aW9ucyxcbiAgVXBkYXRlRGlyZWN0b3J5T3B0aW9ucyxcbiAgVXBkYXRlRmlsZU9wdGlvbnMsXG59IGZyb20gJy4vaXRlbS50eXBlcyc7XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJdGVtU2VydmljZSBleHRlbmRzIExyU2VydmljZSB7XG4gIC8vIENhY2hpbmcgdGhlIHRlbXAgZGlyZWN0b3J5LlxuICBwcml2YXRlIHRlbXBEaXJlY3Rvcnk6IElkS2V5UGFpciA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NrU2VydmljZTogTG9ja1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIHRoaXMuYXV0aFNlcnZpY2UuYWRkTG9nb3V0TGlzdGVuZXIoKCkgPT4gdGhpcy5vbkxvZ291dCgpKTtcbiAgfVxuXG4gIHN0YXRpYyBURU1QX0RJUkVDVE9SWV9QTEFJTl9NRVRBID0geyBrY1R5cGU6ICd0ZW1wJyB9O1xuICBzdGF0aWMgVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQV9GSUxURVIgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgZmlsdGVyOiBbXG4gICAgICB7XG4gICAgICAgIGNvbnRhaW5zOiBJdGVtU2VydmljZS5URU1QX0RJUkVDVE9SWV9QTEFJTl9NRVRBLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcblxuICBhc3luYyBkb3dubG9hZEZpbGVDb250ZW50KFxuICAgIG9wdGlvbnM6IERvd25sb2FkRmlsZUNvbnRlbnRPcHRpb25zXG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkU2VydmljZS5kb3dubG9hZEVuY3J5cHRlZEZpbGUoXG4gICAgICBvcHRpb25zLmZpbGVTdGF0ZU5vZGVJZFxuICAgICk7XG5cbiAgICBjb25zdCBmaWxlU3RhdGVLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShcbiAgICAgIG9wdGlvbnMuZmlsZVN0YXRlS2V5SWQsXG4gICAgICAoKSA9PiB0aGlzLmdldEZpbGVTdGF0ZUtleUlkKG9wdGlvbnMuZmlsZVN0YXRlTm9kZUlkKVxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5rZXlHcmFwaC5kZWNyeXB0RnJvbVN0cmluZyhmaWxlU3RhdGVLZXksIGZpbGVDb250ZW50LCB7XG4gICAgICBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuVUlOVF84X0FSUkFZLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGlyZWN0b3J5S2V5SWQoZGlyZWN0b3J5SWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgICBxdWVyeTogRGlyZWN0b3J5S2V5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiBkaXJlY3RvcnlJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5kaXJlY3Rvcnkua2V5SWQ7XG4gIH1cblxuICBhc3luYyBnZXRGaWxlS2V5SWQoZmlsZUlkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IEZpbGVLZXlRdWVyeSxcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgaWQ6IGZpbGVJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5maWxlLmtleUlkO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGlyZWN0b3J5S2V5SWRGcm9tU2hhcmVkRGlyZWN0b3J5KFxuICAgIHNoYXJlZERpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dFxuICApIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBEaXJlY3RvcnlLZXlGcm9tU2hhcmVkRGlyZWN0b3J5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiBzaGFyZWREaXJlY3RvcnlJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS50cFNoYXJlZERpcmVjdG9yeS5pdGVtLmtleUlkO1xuICB9XG5cbiAgYXN5bmMgZ2V0RmlsZUtleUlkRnJvbVNoYXJlZEZpbGUoc2hhcmVkRmlsZUlkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IEZpbGVLZXlGcm9tU2hhcmVkRmlsZVF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZDogc2hhcmVkRmlsZUlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLnRwU2hhcmVkRmlsZS5pdGVtLmtleUlkO1xuICB9XG5cbiAgYXN5bmMgZ2V0RGlyZWN0b3J5S2V5KFxuICAgIGRpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dCxcbiAgICBkaXJlY3RvcnlLZXlJZD86IExyUmVsYXlJZElucHV0XG4gICkge1xuICAgIHJldHVybiB0aGlzLmtleUdyYXBoLmdldEtleShkaXJlY3RvcnlLZXlJZCwgKCkgPT5cbiAgICAgIHRoaXMuZ2V0RGlyZWN0b3J5S2V5SWQoZGlyZWN0b3J5SWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldEZpbGVLZXkoZmlsZUlkOiBMclJlbGF5SWRJbnB1dCwgZmlsZUtleUlkPzogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gdGhpcy5rZXlHcmFwaC5nZXRLZXkoZmlsZUtleUlkLCAoKSA9PiB0aGlzLmdldEZpbGVLZXlJZChmaWxlSWQpKTtcbiAgfVxuXG4gIGNyZWF0ZURpcmVjdG9yeShvcHRpb25zOiBDcmVhdGVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9uczogQ3JlYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZURpcmVjdG9yeShvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVEaXJlY3Rvcnkob3B0aW9uczogVXBkYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBhd2FpdCB0aGlzLnByZXBhcmVVcGRhdGVEaXJlY3Rvcnkob3B0aW9ucyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlRGlyZWN0b3J5KGlkOiBJRCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZURpcmVjdG9yeU11dGF0aW9uKGlkKSk7XG4gIH1cblxuICBkZWxldGVEaXJlY3RvcnlNdXRhdGlvbihpZDogSUQpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IGlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUZpbGUob3B0aW9uczogQ3JlYXRlRmlsZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jcmVhdGVGaWxlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRmlsZU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZUZpbGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZUZpbGUob3B0aW9ucyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRmlsZShvcHRpb25zOiBVcGRhdGVGaWxlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZUZpbGVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVGaWxlTXV0YXRpb24ob3B0aW9uczogVXBkYXRlRmlsZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogYXdhaXQgdGhpcy5wcmVwYXJlVXBkYXRlRmlsZShvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICByZXZlcnRGaWxlKG9wdGlvbnM6IFJldmVydEZpbGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMucmV2ZXJ0RmlsZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHJldmVydEZpbGVNdXRhdGlvbihvcHRpb25zOiBSZXZlcnRGaWxlT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogUmV2ZXJ0RmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBvcHRpb25zLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoaWQ6IElEKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuZGVsZXRlRmlsZU11dGF0aW9uKGlkKSk7XG4gIH1cblxuICBkZWxldGVGaWxlTXV0YXRpb24oaWQ6IElEKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBEZWxldGVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBmaWxlSWQ6IGlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFyY2hpdmVEaXJlY3RvcnkoZGlyZWN0b3J5SWQ6IHN0cmluZywgb3B0aW9uczogQXJjaGl2ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24oZGlyZWN0b3J5SWQsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbihcbiAgICBkaXJlY3RvcnlJZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEFyY2hpdmVEaXJlY3RvcnlPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQsXG4gICAgICAgICAgcmVjdXJzaXZlOiBvcHRpb25zLnJlY3Vyc2l2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhcmNoaXZlRmlsZShmaWxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmFyY2hpdmVGaWxlTXV0YXRpb24oZmlsZUlkKSk7XG4gIH1cblxuICBhcmNoaXZlRmlsZU11dGF0aW9uKGZpbGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBBcmNoaXZlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZmlsZUlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHVuYXJjaGl2ZURpcmVjdG9yeShkaXJlY3RvcnlJZDogc3RyaW5nLCBvcHRpb25zOiBVbmFyY2hpdmVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24oZGlyZWN0b3J5SWQsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIHVuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uKFxuICAgIGRpcmVjdG9yeUlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczogVW5hcmNoaXZlRGlyZWN0b3J5T3B0aW9uc1xuICApIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQsXG4gICAgICAgICAgcmVjdXJzaXZlOiBvcHRpb25zLnJlY3Vyc2l2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1bmFyY2hpdmVGaWxlKGZpbGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudW5hcmNoaXZlRmlsZU11dGF0aW9uKGZpbGVJZCkpO1xuICB9XG5cbiAgdW5hcmNoaXZlRmlsZU11dGF0aW9uKGZpbGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVbmFyY2hpdmVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBmaWxlSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlRGlyZWN0b3J5UGFyZW50cyhvcHRpb25zOiBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBjaGFuZ2VEaXJlY3RvcnlQYXJlbnRzTXV0YXRpb24ob3B0aW9uczogQ2hhbmdlRGlyZWN0b3J5UGFyZW50c09wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogYXdhaXQgdGhpcy5wcmVwYXJlQ2hhbmdlRGlyZWN0b3J5UGFyZW50cyhvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjaGFuZ2VGaWxlUGFyZW50cyhvcHRpb25zOiBDaGFuZ2VGaWxlUGFyZW50c09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZUZpbGVQYXJlbnRzTXV0YXRpb24ob3B0aW9uczogQ2hhbmdlRmlsZVBhcmVudHNPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBhd2FpdCB0aGlzLnByZXBhcmVDaGFuZ2VGaWxlUGFyZW50cyhvcHRpb25zKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBiZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93KFxuICAgIG9wdGlvbnM6IEJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dPcHRpb25zXG4gICkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogU2NoZWR1bGUgY2xlYW51cCBvZiB0aGUgaGFyZCBsaW5rcyBpbiBhIGRpcmVjdG9yeS5cbiAgICogVGhlIHNlcnZlciB3aWxsIGRlbGV0ZSBhbGwgaGFyZCBsaW5rIHdpdGhpbiB0aGUgZGlyZWN0b3J5IHdpdGhpbiBhIHRpbWUgd2luZG93OiBzdGFydGluZyBmcm9tIG5vdyBhbmRcbiAgICogZW5kaW5nIGF0IHJlcXVlc3RXaW5kb3dNcyBhZnRlciBub3cuXG4gICAqIFRoZSBzZXJ2ZXIgZGVjaWRlcyBfd2hlbl8gaXQgd2lsbCBwZXJmb3JtIHRoZSBkZWxldGUuIEl0J3Mgbm90IGd1YXJhbnRlZWQgdGhhdCBpdCB3aWxsIHBlcmZvcm1cbiAgICogdGhlIGRlbGV0ZSBhdCBcIm5vdyArIHJlcXVlc3RXaW5kb3dNc1wiLCBidXQgaXQgd2lsbCBoYXBwZW4gYXQgc29tZSB0aW1lIGFmdGVyIFwibm93ICsgcmVxdWVzdFdpbmRvd01zXCIuXG4gICAqIFRoaXMgYWxsb3dzIG11bHRpcGxlIG92ZXJsYXBwaW5nIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gYW5kIHRoZSBzZXJ2ZXIgYWxsb2NhdGVzIGVub3VnaCBmb3IgZWFjaCByZXF1ZXN0LlxuICAgKiBUaGUgc2VydmVyIGhhcyBhIHNldHRpbmcgdGhhdCBhbGxvd3MgZm9yIGEgbWF4aW11bSB2YWx1ZSBvbiByZXF1ZXN0V2luZG93TXMuIElmIHRoZSByZXF1ZXN0ZWQgdmFsdWVcbiAgICogaXMgbGFyZ2VyIHRoYW4gdGhpcyBtYXhpbXVtLCB0aGUgY2FsbCB3aWxsIGZhaWwuXG4gICAqL1xuICBhc3luYyBiZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93TXV0YXRpb24oXG4gICAgb3B0aW9uczogQmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvd09wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBCZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IG9wdGlvbnMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG1heSByYWlzZSBWRVJTSU9OX01JU01BVENIIGV4Y2VwdGlvbiBpZiB0aGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uXG4gICAqIHdoZW4gbXVsdGlwbGUgY2xpZW50cyB0cnkgdG8gY3JlYXRlIHRoZSB0ZW1wIGRpcmVjdG9yeS5cbiAgICpcbiAgICogVE9ETyBUaGVyZSBpcyBhIHJldHJ5IG1lY2hhbmlzbSBpbiBncmFwaHFsIHdpdGggZXhwb25lbnRpYWwgYmFjayBvZmYgYnV0IHRoYXQncyBpbnRlcm5hbC5cbiAgICogQnV0IG5lZWQgdG8gdXNlIGFuIGV4cG9uZW50aWFsIGJhY2sgb2ZmIGxpYiBpZiB3ZSB3YW50IHRvIHJldHJ5IGhlcmUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBJRCBvZiB0aGUgdGVtcCBkaXJlY3RvcnlcbiAgICpcbiAgICovXG4gIGFzeW5jIGVuc3VyZVRlbXBEaXJlY3RvcnkoKTogUHJvbWlzZTxJZEtleVBhaXI+IHtcbiAgICBpZiAodGhpcy50ZW1wRGlyZWN0b3J5KSB7XG4gICAgICByZXR1cm4gdGhpcy50ZW1wRGlyZWN0b3J5O1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICBxdWVyeTogVGVtcERpcmVjdG9yeVF1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YTogSXRlbVNlcnZpY2UuVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQV9GSUxURVIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKGV4aXN0aW5nLnJvb3REaXJlY3Rvcmllcy5lZGdlcy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgVGhlcmUgaXMgbW9yZSB0aGFuIDEgdGVtcCBkaXJlY3RvcnkgKHBsYWluTWV0YSBmaWx0ZXI6ICR7SXRlbVNlcnZpY2UuVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQV9GSUxURVJ9KWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0aW5nLnJvb3REaXJlY3Rvcmllcy5lZGdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIERvZXNuJ3QgZXhpc3QgeWV0LCBjcmVhdGUgaXRcbiAgICAgIGNvbnN0IGNyZWF0ZURpcmVjdG9yeSA9IGF3YWl0IHRoaXMuY3JlYXRlRGlyZWN0b3J5TXV0YXRpb24oe1xuICAgICAgICBhc1Jvb3REaXJlY3Rvcnk6IHRydWUsXG4gICAgICAgIHBsYWluTWV0YUpzb246IEl0ZW1TZXJ2aWNlLlRFTVBfRElSRUNUT1JZX1BMQUlOX01FVEEsXG4gICAgICB9KTtcblxuICAgICAgLy8gT3B0aW1pc3RpYyBsb2NrIG9uIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICBjb25zdCB1cGRhdGVMb2NrID0gdGhpcy5sb2NrU2VydmljZS51cGRhdGVMb2NrTXV0YXRpb24oe1xuICAgICAgICB2ZXJzaW9uOiBleGlzdGluZy5sb2NrPy52ZXJzaW9uLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEJlY2F1c2UgdGhpcy5tdXRhdGUoKSBvbmx5IGhhbmRsZXMgc2ltcGxlIHR5cGVzIHdlIG5lZWQgdG8gdXNlIHRoZSBtb3JlXG4gICAgICAvLyBhZHZhbmNlZCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZSgpXG4gICAgICBjb25zdCBbY3JlYXRlRGlyZWN0b3J5UmVzdWx0XSA9IGF3YWl0IHRoaXMubHJHcmFwaFFMLmxyTXV0YXRlKFtcbiAgICAgICAgY3JlYXRlRGlyZWN0b3J5LFxuICAgICAgICB1cGRhdGVMb2NrLFxuICAgICAgXSk7XG5cbiAgICAgIGNvbnN0IHsgaWQsIGtleUlkIH0gPSBjcmVhdGVEaXJlY3RvcnlSZXN1bHQuY3JlYXRlRGlyZWN0b3J5LmRpcmVjdG9yeTtcblxuICAgICAgdGhpcy50ZW1wRGlyZWN0b3J5ID0ge1xuICAgICAgICBpZCxcbiAgICAgICAga2V5SWQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZXR1cm4gZXhpc3RpbmcgdGVtcFxuICAgICAgY29uc3QgeyBpZCwga2V5SWQgfSA9IGV4aXN0aW5nLnJvb3REaXJlY3Rvcmllcy5lZGdlc1swXS5ub2RlO1xuXG4gICAgICB0aGlzLnRlbXBEaXJlY3RvcnkgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBrZXlJZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudGVtcERpcmVjdG9yeTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZURpcmVjdG9yeVRyZWUob3B0aW9uczogQ3JlYXRlRGlyZWN0b3J5VHJlZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jcmVhdGVEaXJlY3RvcnlUcmVlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFlvdSBtdXN0IHJ1biB0aGlzIG11dGF0aW9uIHdpdGhpbiB0aGUgdGVtcCBkaXJlY3RvcnkgY2xlYW51cCB3aW5kb3cgb24gdGhlXG4gICAqIHNlcnZlciwgb3RoZXJ3aXNlIHRoZSB0ZW1wIGRpcmVjdG9yeSB3aWxsIGdldCBjbGVhbmVkIHVwLlxuICAgKlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5VHJlZU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZURpcmVjdG9yeVRyZWVPcHRpb25zKSB7XG4gICAgY29uc3QgdGVtcERpciA9IGF3YWl0IHRoaXMuZW5zdXJlVGVtcERpcmVjdG9yeSgpO1xuXG4gICAgLy8gQ2xlYXIgdGhlIHRlbXAgZGlyZWN0b3J5IG9mIHRoZSBvbmVzIHdlIGFyZSBhYm91dCB0byBjcmVhdGUuXG4gICAgLy8gTk9URTogdGhpcyBtdXRhdGlvbiBjYW4gbm90IGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG11dGF0aW9uIHdpdGggdGhlXG4gICAgLy8gdGhlIGNyZWF0ZURpcmVjdG9yeSBtdXRhdGlvbiBiZWNhdXNlIGl0IHVzZXMgdGhlIGN1cnJlbnQgc2VydmVyIHRpbWUgdG9cbiAgICAvLyBjbGVhbiB1cC4gU28gaXQgbXVzdCBzdWNjZXNzZnVsbHkgY29tcGxldGUgYmVmb3JlIHRoZSBjcmVhdGlvbiBvZiB0aGVcbiAgICAvLyBkaXJlY3Rvcmllcy5cbiAgICBhd2FpdCB0aGlzLmJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3coe1xuICAgICAgZGlyZWN0b3J5SWQ6IHRlbXBEaXIuaWQsXG4gICAgICByZXF1ZXN0V2luZG93TXM6IG9wdGlvbnMucmVxdWVzdFdpbmRvd01zLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBkaXJlY3RvcnkgdGhhdCBoYXMgY29udGVudHNcbiAgICBjb25zdCBkaXJlY3RvcnkgPSAoXG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZURpcmVjdG9yeSh7XG4gICAgICAgIGNpcGhlck1ldGFDbGVhckpzb246IG9wdGlvbnMuY2lwaGVyTWV0YUNsZWFySnNvbixcbiAgICAgICAgcGFyZW50RGlyZWN0b3JpZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RvcnlJZDogdGVtcERpci5pZCxcbiAgICAgICAgICAgIHdyYXBwaW5nS2V5SWQ6IHRlbXBEaXIua2V5SWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcGxhaW5NZXRhSnNvbjogb3B0aW9ucy5wbGFpbk1ldGFKc29uLFxuICAgICAgfSlcbiAgICApLmNyZWF0ZURpcmVjdG9yeS5kaXJlY3Rvcnk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIGNvbnRlbnRzXG4gICAgYXdhaXQgb3B0aW9ucy5jcmVhdGVDb250ZW50KHtcbiAgICAgIGlkOiBkaXJlY3RvcnkuaWQsXG4gICAgICBrZXlJZDogZGlyZWN0b3J5LmtleUlkLFxuICAgIH0pO1xuXG4gICAgLy8gVE9ETyBjbGllbnQtc2lkZSBjaGVjayBmb3IgdGltZW91dCBvbiByZXF1ZXN0V2luZG93TXNcbiAgICAvLyBUT0RPIHJldHVybiB0aGUgc2VydmVyIHRpbWUgd2hlcmUgZGVsZXRlIGlzIHNjaGVkdWxlZC4gRXhwaXJhYmxlIG11dGF0aW9uXG5cbiAgICAvLyBSZXR1cm4gdGhlIG11dGF0aW9uIHRoYXQgbW92ZXMgdGhlIGRpcmVjdG9yeSBpbnRvIHRoZSBkc3QgZGlyZWN0b3JpZXNcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VEaXJlY3RvcnlQYXJlbnRzTXV0YXRpb24oe1xuICAgICAgZGlyZWN0b3J5SWQ6IGRpcmVjdG9yeS5pZCxcbiAgICAgIGRpcmVjdG9yeUtleUlkOiBkaXJlY3Rvcnkua2V5SWQsXG4gICAgICBwYXJlbnRzVG9SZW1vdmU6IFt0ZW1wRGlyLmlkXSxcbiAgICAgIHBhcmVudHNUb0FkZDogb3B0aW9ucy5wYXJlbnREaXJlY3RvcmllcyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldEZpbGVDb25maWRlbnRpYWwob3B0aW9uczogU2V0RmlsZUNvbmZpZGVudGlhbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zZXRGaWxlQ29uZmlkZW50aWFsTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgc2V0RmlsZUNvbmZpZGVudGlhbE11dGF0aW9uKG9wdGlvbnM6IFNldEZpbGVDb25maWRlbnRpYWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBTZXRGaWxlQ29uZmlkZW50aWFsTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBmaWxlSWQ6IG9wdGlvbnMuZmlsZUlkLFxuICAgICAgICAgIGNvbmZpZGVudGlhbDogb3B0aW9ucy5jb25maWRlbnRpYWwsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsKG9wdGlvbnM6IFNldERpcmVjdG9yeUNvbmZpZGVudGlhbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zZXREaXJlY3RvcnlDb25maWRlbnRpYWxNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBzZXREaXJlY3RvcnlDb25maWRlbnRpYWxNdXRhdGlvbihcbiAgICBvcHRpb25zOiBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogU2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZDogb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgICAgICBjb25maWRlbnRpYWw6IG9wdGlvbnMuY29uZmlkZW50aWFsLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSGVscGVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlUGFyZW50RGlyZWN0b3J5KFxuICAgIG9wdGlvbnM6IFBhcmVudERpcmVjdG9yeU9wdGlvbnMsXG4gICAgbmV3S2V5OiBKV0suS2V5XG4gICk6IFByb21pc2U8UGFyZW50RGlyZWN0b3J5SW5wdXQ+IHtcbiAgICAvLyBJZiBkaXJlY3RvcnkncyBrZXkgaXMgbm90IGFscmVhZHkgaW4gdGhlIGtleSBncmFwaCwgdGhlbiBuZWVkIHRvXG4gICAgLy8gZmV0Y2ggdGhlIGRpcmVjdG9yeSdzIGtleS5cbiAgICBjb25zdCB3cmFwcGluZ0tleSA9IGF3YWl0IHRoaXMuZ2V0RGlyZWN0b3J5S2V5KFxuICAgICAgb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgIG9wdGlvbnMud3JhcHBpbmdLZXlJZFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlyZWN0b3J5SWQ6IG9wdGlvbnMuZGlyZWN0b3J5SWQsXG4gICAgICB3cmFwcGluZ0tleUlkOiB3cmFwcGluZ0tleS5pZCxcbiAgICAgIHdyYXBwZWRLZXk6IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleSh3cmFwcGluZ0tleSwgbmV3S2V5KSxcbiAgICAgIGxpbmtUeXBlOiBvcHRpb25zLmxpbmtUeXBlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEZpbGVTdGF0ZUtleUlkKGZpbGVTdGF0ZU5vZGVJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBGaWxlU3RhdGVLZXlRdWVyeSxcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgaWQ6IGZpbGVTdGF0ZU5vZGVJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5maWxlU3RhdGUua2V5SWQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDcmVhdGVGaWxlU3RhdGUoXG4gICAgZmlsZUtleTogSldLLktleSxcbiAgICBvcHRpb25zOiBDcmVhdGVGaWxlT3B0aW9ucyB8IFVwZGF0ZUZpbGVPcHRpb25zXG4gICkge1xuICAgIC8vIEVhY2ggdmVyc2lvbiBvZiB0aGUgZmlsZSBpcyBlbmNyeXB0ZWQgdXNpbmcgYSBuZXcga2V5LlxuICAgIGNvbnN0IGZpbGVTdGF0ZUtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcblxuICAgIGNvbnN0IGZpbGVDb250ZW50ID1cbiAgICAgIG9wdGlvbnMuZmlsZSAmJiAoYXdhaXQgdGhpcy5maWxlVXBsb2FkU2VydmljZS5sb2FkRmlsZShvcHRpb25zLmZpbGUpKTtcblxuICAgIGxldCBjb250ZW50UmVzb3VyY2U6IHN0cmluZztcbiAgICBpZiAoZmlsZUNvbnRlbnQpIHtcbiAgICAgIGNvbnN0IGNpcGhlckZpbGVDb250ZW50ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIGZpbGVTdGF0ZUtleSxcbiAgICAgICAgZmlsZUNvbnRlbnRcbiAgICAgICk7XG4gICAgICBpZiAob3B0aW9ucy51cGxvYWQpIHtcbiAgICAgICAgY29udGVudFJlc291cmNlID0gYXdhaXQgb3B0aW9ucy51cGxvYWQoY2lwaGVyRmlsZUNvbnRlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGVudFJlc291cmNlID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkU2VydmljZS51cGxvYWRFbmNyeXB0ZWRGaWxlKHtcbiAgICAgICAgICBlbmNyeXB0ZWRDb250ZW50OiBjaXBoZXJGaWxlQ29udGVudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihhd2FpdCB0aGlzLnByZXBhcmVJdGVtKGZpbGVTdGF0ZUtleSwgb3B0aW9ucykpLFxuICAgICAgd3JhcHBlZFN0YXRlS2V5OiBhd2FpdCB0aGlzLmtleUdyYXBoLndyYXBLZXkoZmlsZUtleSwgZmlsZVN0YXRlS2V5KSxcbiAgICAgIGNvbnRlbnRSZXNvdXJjZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ2hhbmdlSXRlbVBhcmVudHMoXG4gICAgb3B0aW9uczogQ2hhbmdlSXRlbVBhcmVudHNPcHRpb25zLFxuICAgIGl0ZW1LZXk6IEpXSy5LZXlcbiAgKSB7XG4gICAgY29uc3QgcGFyZW50c1RvQWRkID0gb3B0aW9ucy5wYXJlbnRzVG9BZGRcbiAgICAgID8gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgb3B0aW9ucy5wYXJlbnRzVG9BZGQubWFwKCh0KSA9PlxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUGFyZW50RGlyZWN0b3J5KHQsIGl0ZW1LZXkpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICA6IFtdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpcmVjdG9yaWVzVG9SZW1vdmU6IG9wdGlvbnMucGFyZW50c1RvUmVtb3ZlIHx8IFtdLFxuICAgICAgZGlyZWN0b3JpZXNUb0FkZDogcGFyZW50c1RvQWRkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVJdGVtKFxuICAgIGtleTogSldLLktleSxcbiAgICBvcHRpb25zOiB7IHBsYWluTWV0YUpzb24/OiBKU09OT2JqZWN0OyBjaXBoZXJNZXRhQ2xlYXJKc29uPzogSlNPTk9iamVjdCB9XG4gICkge1xuICAgIGNvbnN0IHsgcGxhaW5NZXRhSnNvbiwgY2lwaGVyTWV0YUNsZWFySnNvbiB9ID0gb3B0aW9ucztcblxuICAgIHJldHVybiB7XG4gICAgICBwbGFpbk1ldGE6IHBsYWluTWV0YUpzb24gJiYgSlNPTi5zdHJpbmdpZnkocGxhaW5NZXRhSnNvbiksXG4gICAgICBjaXBoZXJNZXRhOlxuICAgICAgICBjaXBoZXJNZXRhQ2xlYXJKc29uICYmXG4gICAgICAgIChhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhrZXksIGNpcGhlck1ldGFDbGVhckpzb24pKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ3JlYXRlRGlyZWN0b3J5KG9wdGlvbnM6IENyZWF0ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlLZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG4gICAgb3B0aW9ucy5wYXJlbnREaXJlY3RvcmllcyA9IG9wdGlvbnMucGFyZW50RGlyZWN0b3JpZXMgfHwgW107XG4gICAgaWYgKCFvcHRpb25zLmFzUm9vdERpcmVjdG9yeSAmJiAhb3B0aW9ucy5wYXJlbnREaXJlY3Rvcmllcz8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRBcmd1bWVudEV4Y2VwdGlvbihcbiAgICAgICAgJ0EgbmV3IGRpcmVjdG9yeSBtdXN0IGJlIGVpdGhlciBhIHJvb3QgZGlyZWN0b3J5IG9yIGEgc3ViLWRpcmVjdG9yeS4gU28geW91IG11c3QgcHJvdmlkZSBlaXRoZXIgcGFyZW50RGlyZWN0b3JpZXMgb3IgYXNSb290RGlyZWN0b3J5IHBhcmFtZXRlci4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmFzUm9vdERpcmVjdG9yeSAmJiBvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBLY0JhZEFyZ3VtZW50RXhjZXB0aW9uKFxuICAgICAgICAnQSBuZXcgZGlyZWN0b3J5IG11c3QgYmUgZWl0aGVyIGEgcm9vdCBkaXJlY3Rvcnkgb3IgYSBzdWItZGlyZWN0b3J5LiBTbyB5b3UgY2FuIG9ubHkgcHJvdmlkZSBlaXRoZXIgcGFyZW50RGlyZWN0b3JpZXMgb3IgYXNSb290RGlyZWN0b3J5IHBhcmFtZXRlci4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudERpcmVjdG9yaWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzPy5tYXAoKHQpID0+XG4gICAgICAgIHRoaXMucHJlcGFyZVBhcmVudERpcmVjdG9yeSh0LCBkaXJlY3RvcnlLZXkpXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIFRPRE8gdGhpcyBpcyByYXRoZXIgYW4gdW5mb3J0dW5hdGUgbmFtZSwgY2hhbmdlIGl0IHRvIGFzUm9vdERpcmVjdG9yeS5cbiAgICBsZXQgcGFyZW50Um9vdERpcmVjdG9yeTogUGFyZW50Um9vdERpcmVjdG9yeUlucHV0O1xuICAgIGlmIChvcHRpb25zLmFzUm9vdERpcmVjdG9yeSkge1xuICAgICAgY29uc3Qgcm9vdEtleSA9IHRoaXMua2V5U2VydmljZS5jdXJyZW50Um9vdEtleTtcbiAgICAgIHBhcmVudFJvb3REaXJlY3RvcnkgPSB7XG4gICAgICAgIHdyYXBwaW5nS2V5SWQ6IHJvb3RLZXkuaWQsXG4gICAgICAgIHdyYXBwZWRLZXk6IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleShyb290S2V5LCBkaXJlY3RvcnlLZXkpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtSW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVJdGVtKGRpcmVjdG9yeUtleSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaXRlbUlucHV0LFxuICAgICAgcGFyZW50RGlyZWN0b3JpZXMsXG4gICAgICBwYXJlbnRSb290RGlyZWN0b3J5LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVVcGRhdGVEaXJlY3Rvcnkob3B0aW9uczogVXBkYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIGNvbnN0IGRpcmVjdG9yeUtleSA9IGF3YWl0IHRoaXMuZ2V0RGlyZWN0b3J5S2V5KFxuICAgICAgb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgIG9wdGlvbnMuZGlyZWN0b3J5S2V5SWRcbiAgICApO1xuXG4gICAgY29uc3QgaXRlbUlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlSXRlbShkaXJlY3RvcnlLZXkuandrLCBvcHRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pdGVtSW5wdXQsXG4gICAgICBkaXJlY3RvcnlJZDogb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ3JlYXRlRmlsZShvcHRpb25zOiBDcmVhdGVGaWxlT3B0aW9ucykge1xuICAgIGNvbnN0IGZpbGVLZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG5cbiAgICBjb25zdCBwYXJlbnREaXJlY3RvcmllcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgb3B0aW9ucy5wYXJlbnREaXJlY3Rvcmllcy5tYXAoYXN5bmMgKHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBkaXJlY3RvcnlJZCwgd3JhcHBpbmdLZXlJZCwgd3JhcHBlZEtleSB9ID1cbiAgICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVQYXJlbnREaXJlY3RvcnkodCwgZmlsZUtleSk7XG4gICAgICAgIC8vIHJlbWFwIGZyb20gUGFyZW50RGlyZWN0b3J5SW5wdXQgdG8gRmlsZVBhcmVudERpcmVjdG9yeUlucHV0XG4gICAgICAgIC8vIFRPRE8gdGhlIHNlcnZlciBzaG91bGQgcmVhbGx5IGp1c3QgdXNlIHdyYXBwZWRLZXkgaW5zdGVhZCBvZiB3cmFwcGVkRmlsZUtleVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRpcmVjdG9yeUlkLFxuICAgICAgICAgIHdyYXBwaW5nS2V5SWQsXG4gICAgICAgICAgd3JhcHBlZEZpbGVLZXk6IHdyYXBwZWRLZXksXG4gICAgICAgIH0gYXMgRmlsZVBhcmVudERpcmVjdG9yeUlucHV0O1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVGaWxlU3RhdGUoZmlsZUtleSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaW5wdXQsXG4gICAgICBwYXJlbnREaXJlY3RvcmllcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlVXBkYXRlRmlsZShvcHRpb25zOiBVcGRhdGVGaWxlT3B0aW9ucykge1xuICAgIGNvbnN0IGZpbGVLZXkgPSBhd2FpdCB0aGlzLmdldEZpbGVLZXkob3B0aW9ucy5maWxlSWQsIG9wdGlvbnMuZmlsZUtleUlkKTtcbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZUZpbGVTdGF0ZShmaWxlS2V5Lmp3aywgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaW5wdXQsXG4gICAgICBmaWxlSWQ6IG9wdGlvbnMuZmlsZUlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzKFxuICAgIG9wdGlvbnM6IENoYW5nZURpcmVjdG9yeVBhcmVudHNPcHRpb25zXG4gICkge1xuICAgIGNvbnN0IGRpcmVjdG9yeUtleSA9IGF3YWl0IHRoaXMuZ2V0RGlyZWN0b3J5S2V5KFxuICAgICAgb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICAgIG9wdGlvbnMuZGlyZWN0b3J5S2V5SWRcbiAgICApO1xuXG4gICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVDaGFuZ2VJdGVtUGFyZW50cyhcbiAgICAgIG9wdGlvbnMsXG4gICAgICBkaXJlY3RvcnlLZXkuandrXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIGRpcmVjdG9yeUlkOiBvcHRpb25zLmRpcmVjdG9yeUlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDaGFuZ2VGaWxlUGFyZW50cyhvcHRpb25zOiBDaGFuZ2VGaWxlUGFyZW50c09wdGlvbnMpIHtcbiAgICBjb25zdCBmaWxlS2V5ID0gYXdhaXQgdGhpcy5nZXRGaWxlS2V5KG9wdGlvbnMuZmlsZUlkLCBvcHRpb25zLmZpbGVLZXlJZCk7XG5cbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHRoaXMucHJlcGFyZUNoYW5nZUl0ZW1QYXJlbnRzKG9wdGlvbnMsIGZpbGVLZXkuandrKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnB1dCxcbiAgICAgIGZpbGVJZDogb3B0aW9ucy5maWxlSWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgb25Mb2dvdXQoKSB7XG4gICAgLy8gQ2xlYXIgYWxsIGNhY2hlZCBkYXRhLlxuICAgIHRoaXMudGVtcERpcmVjdG9yeSA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
612
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2l0ZW0vaXRlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQix1Q0FBdUMsRUFDdkMsOEJBQThCLEVBQzlCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNuQixN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QlEscUNBQXlCLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDL0MsNENBQWdDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2RCxNQUFNLEVBQUU7UUFDTjtZQUNFLFFBQVEsRUFBRSxhQUFXLENBQUMseUJBQXlCO1NBQ2hEO0tBQ0Y7Q0FDRixDQUFDLENBQUM7OztZQTVCSixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQW5FOEIsTUFBTTtZQUFoQixRQUFRO1lBS3BCLGlCQUFpQjtZQUdqQixVQUFVO1lBRlYsaUJBQWlCO1lBQ2pCLGVBQWU7WUFHZixXQUFXO1lBTlgsV0FBVzs7QUFnRVAsV0FBVztJQU52QixpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsV0FBVyxDQXVyQnZCO1NBdnJCWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IExyTXV0YXRpb24sIExyU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1ncmFwaHFsJztcbmltcG9ydCB7IElELCBKU09OT2JqZWN0LCBMclJlbGF5SWRJbnB1dCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IFBheWxvYWRUeXBlIH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBMb2NrU2VydmljZSB9IGZyb20gJy4uL2xvY2svbG9jay5zZXJ2aWNlJztcbmltcG9ydCB7IEtjQmFkQXJndW1lbnRFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICBBcmNoaXZlRmlsZU11dGF0aW9uLFxuICBCZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93TXV0YXRpb24sXG4gIENoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbixcbiAgQ2hhbmdlRmlsZVBhcmVudHNNdXRhdGlvbixcbiAgQ3JlYXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gIENyZWF0ZUZpbGVNdXRhdGlvbixcbiAgRGVsZXRlRGlyZWN0b3J5TXV0YXRpb24sXG4gIERlbGV0ZUZpbGVNdXRhdGlvbixcbiAgUmV2ZXJ0RmlsZU11dGF0aW9uLFxuICBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxNdXRhdGlvbixcbiAgU2V0RmlsZUNvbmZpZGVudGlhbE11dGF0aW9uLFxuICBUZW1wRGlyZWN0b3J5UXVlcnksXG4gIFVuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uLFxuICBVbmFyY2hpdmVGaWxlTXV0YXRpb24sXG4gIFVwZGF0ZURpcmVjdG9yeU11dGF0aW9uLFxuICBVcGRhdGVGaWxlTXV0YXRpb24sXG59IGZyb20gJy4vaXRlbS5ncWwnO1xuaW1wb3J0IHtcbiAgRGlyZWN0b3J5S2V5RnJvbURpcmVjdG9yeVNoYXJlUXVlcnksXG4gIERpcmVjdG9yeUtleVF1ZXJ5LFxuICBGaWxlS2V5RnJvbUZpbGVTaGFyZVF1ZXJ5LFxuICBGaWxlS2V5UXVlcnksXG4gIEZpbGVTdGF0ZUtleVF1ZXJ5LFxufSBmcm9tICcuL2l0ZW0uZ3FsLnByaXZhdGUnO1xuaW1wb3J0IHtcbiAgQXJjaGl2ZURpcmVjdG9yeU9wdGlvbnMsXG4gIEJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dPcHRpb25zLFxuICBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzT3B0aW9ucyxcbiAgQ2hhbmdlRmlsZVBhcmVudHNPcHRpb25zLFxuICBDaGFuZ2VJdGVtUGFyZW50c09wdGlvbnMsXG4gIENyZWF0ZURpcmVjdG9yeU9wdGlvbnMsXG4gIENyZWF0ZURpcmVjdG9yeVRyZWVPcHRpb25zLFxuICBDcmVhdGVGaWxlT3B0aW9ucyxcbiAgRG93bmxvYWRGaWxlQ29udGVudE9wdGlvbnMsXG4gIEZpbGVQYXJlbnREaXJlY3RvcnlJbnB1dCxcbiAgSWRLZXlQYWlyLFxuICBQYXJlbnREaXJlY3RvcnlJbnB1dCxcbiAgUGFyZW50RGlyZWN0b3J5T3B0aW9ucyxcbiAgUGFyZW50Um9vdERpcmVjdG9yeUlucHV0LFxuICBSZXZlcnRGaWxlT3B0aW9ucyxcbiAgU2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsT3B0aW9ucyxcbiAgU2V0RmlsZUNvbmZpZGVudGlhbE9wdGlvbnMsXG4gIFVuYXJjaGl2ZURpcmVjdG9yeU9wdGlvbnMsXG4gIFVwZGF0ZURpcmVjdG9yeU9wdGlvbnMsXG4gIFVwZGF0ZUZpbGVPcHRpb25zLFxufSBmcm9tICcuL2l0ZW0udHlwZXMnO1xuXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcbn0pXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSXRlbVNlcnZpY2UgZXh0ZW5kcyBMclNlcnZpY2Uge1xuICAvLyBDYWNoaW5nIHRoZSB0ZW1wIGRpcmVjdG9yeS5cbiAgcHJpdmF0ZSB0ZW1wRGlyZWN0b3J5OiBJZEtleVBhaXIgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBmaWxlVXBsb2FkU2VydmljZTogRmlsZVVwbG9hZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9ja1NlcnZpY2U6IExvY2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmFkZExvZ291dExpc3RlbmVyKCgpID0+IHRoaXMub25Mb2dvdXQoKSk7XG4gIH1cblxuICBzdGF0aWMgVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQSA9IHsga2NUeXBlOiAndGVtcCcgfTtcbiAgc3RhdGljIFRFTVBfRElSRUNUT1JZX1BMQUlOX01FVEFfRklMVEVSID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgIGZpbHRlcjogW1xuICAgICAge1xuICAgICAgICBjb250YWluczogSXRlbVNlcnZpY2UuVEVNUF9ESVJFQ1RPUllfUExBSU5fTUVUQSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgYXN5bmMgZG93bmxvYWRGaWxlQ29udGVudChcbiAgICBvcHRpb25zOiBEb3dubG9hZEZpbGVDb250ZW50T3B0aW9uc1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBjb25zdCBmaWxlQ29udGVudCA9IGF3YWl0IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UuZG93bmxvYWRFbmNyeXB0ZWRGaWxlKFxuICAgICAgb3B0aW9ucy5maWxlU3RhdGVOb2RlSWRcbiAgICApO1xuXG4gICAgY29uc3QgZmlsZVN0YXRlS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkoXG4gICAgICBvcHRpb25zLmZpbGVTdGF0ZUtleUlkLFxuICAgICAgKCkgPT4gdGhpcy5nZXRGaWxlU3RhdGVLZXlJZChvcHRpb25zLmZpbGVTdGF0ZU5vZGVJZClcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMua2V5R3JhcGguZGVjcnlwdEZyb21TdHJpbmcoZmlsZVN0YXRlS2V5LCBmaWxlQ29udGVudCwge1xuICAgICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLlVJTlRfOF9BUlJBWSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldERpcmVjdG9yeUtleUlkKGRpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IERpcmVjdG9yeUtleVF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZDogZGlyZWN0b3J5SWQsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICkuZGlyZWN0b3J5LmtleUlkO1xuICB9XG5cbiAgYXN5bmMgZ2V0RmlsZUtleUlkKGZpbGVJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBGaWxlS2V5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiBmaWxlSWQsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICkuZmlsZS5rZXlJZDtcbiAgfVxuXG4gIGFzeW5jIGdldERpcmVjdG9yeUtleUlkRnJvbURpcmVjdG9yeVNoYXJlKGRpcmVjdG9yeVNoYXJlSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgICBxdWVyeTogRGlyZWN0b3J5S2V5RnJvbURpcmVjdG9yeVNoYXJlUXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiBkaXJlY3RvcnlTaGFyZUlkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLmRpcmVjdG9yeVNoYXJlLml0ZW0ua2V5SWQ7XG4gIH1cblxuICBhc3luYyBnZXRGaWxlS2V5SWRGcm9tRmlsZVNoYXJlKGZpbGVTaGFyZUlkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IEZpbGVLZXlGcm9tRmlsZVNoYXJlUXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiBmaWxlU2hhcmVJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5maWxlU2hhcmUuaXRlbS5rZXlJZDtcbiAgfVxuXG4gIGFzeW5jIGdldERpcmVjdG9yeUtleShcbiAgICBkaXJlY3RvcnlJZDogTHJSZWxheUlkSW5wdXQsXG4gICAgZGlyZWN0b3J5S2V5SWQ/OiBMclJlbGF5SWRJbnB1dFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5rZXlHcmFwaC5nZXRLZXkoZGlyZWN0b3J5S2V5SWQsICgpID0+XG4gICAgICB0aGlzLmdldERpcmVjdG9yeUtleUlkKGRpcmVjdG9yeUlkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRGaWxlS2V5KGZpbGVJZDogTHJSZWxheUlkSW5wdXQsIGZpbGVLZXlJZD86IExyUmVsYXlJZElucHV0KSB7XG4gICAgcmV0dXJuIHRoaXMua2V5R3JhcGguZ2V0S2V5KGZpbGVLZXlJZCwgKCkgPT4gdGhpcy5nZXRGaWxlS2V5SWQoZmlsZUlkKSk7XG4gIH1cblxuICBjcmVhdGVEaXJlY3Rvcnkob3B0aW9uczogQ3JlYXRlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNyZWF0ZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZURpcmVjdG9yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVEaXJlY3Rvcnkob3B0aW9ucyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRGlyZWN0b3J5KG9wdGlvbnM6IFVwZGF0ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51cGRhdGVEaXJlY3RvcnlNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVEaXJlY3RvcnlNdXRhdGlvbihvcHRpb25zOiBVcGRhdGVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogYXdhaXQgdGhpcy5wcmVwYXJlVXBkYXRlRGlyZWN0b3J5KG9wdGlvbnMpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZURpcmVjdG9yeShpZDogSUQpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVEaXJlY3RvcnlNdXRhdGlvbihpZCkpO1xuICB9XG5cbiAgZGVsZXRlRGlyZWN0b3J5TXV0YXRpb24oaWQ6IElEKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBEZWxldGVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGRpcmVjdG9yeUlkOiBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVGaWxlKG9wdGlvbnM6IENyZWF0ZUZpbGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlRmlsZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUZpbGVNdXRhdGlvbihvcHRpb25zOiBDcmVhdGVGaWxlT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVGaWxlKG9wdGlvbnMpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUZpbGUob3B0aW9uczogVXBkYXRlRmlsZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51cGRhdGVGaWxlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRmlsZU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZUZpbGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IGF3YWl0IHRoaXMucHJlcGFyZVVwZGF0ZUZpbGUob3B0aW9ucyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmV2ZXJ0RmlsZShvcHRpb25zOiBSZXZlcnRGaWxlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnJldmVydEZpbGVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyByZXZlcnRGaWxlTXV0YXRpb24ob3B0aW9uczogUmV2ZXJ0RmlsZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFJldmVydEZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogb3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVGaWxlKGlkOiBJRCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZUZpbGVNdXRhdGlvbihpZCkpO1xuICB9XG5cbiAgZGVsZXRlRmlsZU11dGF0aW9uKGlkOiBJRCkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZmlsZUlkOiBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhcmNoaXZlRGlyZWN0b3J5KGRpcmVjdG9yeUlkOiBzdHJpbmcsIG9wdGlvbnM6IEFyY2hpdmVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uKGRpcmVjdG9yeUlkLCBvcHRpb25zKSk7XG4gIH1cblxuICBhcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24oXG4gICAgZGlyZWN0b3J5SWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBBcmNoaXZlRGlyZWN0b3J5T3B0aW9uc1xuICApIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGRpcmVjdG9yeUlkLFxuICAgICAgICAgIHJlY3Vyc2l2ZTogb3B0aW9ucy5yZWN1cnNpdmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXJjaGl2ZUZpbGUoZmlsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5hcmNoaXZlRmlsZU11dGF0aW9uKGZpbGVJZCkpO1xuICB9XG5cbiAgYXJjaGl2ZUZpbGVNdXRhdGlvbihmaWxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQXJjaGl2ZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGZpbGVJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB1bmFyY2hpdmVEaXJlY3RvcnkoZGlyZWN0b3J5SWQ6IHN0cmluZywgb3B0aW9uczogVW5hcmNoaXZlRGlyZWN0b3J5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVuYXJjaGl2ZURpcmVjdG9yeU11dGF0aW9uKGRpcmVjdG9yeUlkLCBvcHRpb25zKSk7XG4gIH1cblxuICB1bmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbihcbiAgICBkaXJlY3RvcnlJZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFVuYXJjaGl2ZURpcmVjdG9yeU9wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVbmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGRpcmVjdG9yeUlkLFxuICAgICAgICAgIHJlY3Vyc2l2ZTogb3B0aW9ucy5yZWN1cnNpdmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdW5hcmNoaXZlRmlsZShmaWxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVuYXJjaGl2ZUZpbGVNdXRhdGlvbihmaWxlSWQpKTtcbiAgfVxuXG4gIHVuYXJjaGl2ZUZpbGVNdXRhdGlvbihmaWxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogVW5hcmNoaXZlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZmlsZUlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGNoYW5nZURpcmVjdG9yeVBhcmVudHMob3B0aW9uczogQ2hhbmdlRGlyZWN0b3J5UGFyZW50c09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jaGFuZ2VEaXJlY3RvcnlQYXJlbnRzTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY2hhbmdlRGlyZWN0b3J5UGFyZW50c011dGF0aW9uKG9wdGlvbnM6IENoYW5nZURpcmVjdG9yeVBhcmVudHNPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IGF3YWl0IHRoaXMucHJlcGFyZUNoYW5nZURpcmVjdG9yeVBhcmVudHMob3B0aW9ucyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY2hhbmdlRmlsZVBhcmVudHMob3B0aW9uczogQ2hhbmdlRmlsZVBhcmVudHNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY2hhbmdlRmlsZVBhcmVudHNNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBjaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uKG9wdGlvbnM6IENoYW5nZUZpbGVQYXJlbnRzT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ2hhbmdlRmlsZVBhcmVudHNNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDogYXdhaXQgdGhpcy5wcmVwYXJlQ2hhbmdlRmlsZVBhcmVudHMob3B0aW9ucyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvdyhcbiAgICBvcHRpb25zOiBCZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93T3B0aW9uc1xuICApIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5iZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93TXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjaGVkdWxlIGNsZWFudXAgb2YgdGhlIGhhcmQgbGlua3MgaW4gYSBkaXJlY3RvcnkuXG4gICAqIFRoZSBzZXJ2ZXIgd2lsbCBkZWxldGUgYWxsIGhhcmQgbGluayB3aXRoaW4gdGhlIGRpcmVjdG9yeSB3aXRoaW4gYSB0aW1lIHdpbmRvdzogc3RhcnRpbmcgZnJvbSBub3cgYW5kXG4gICAqIGVuZGluZyBhdCByZXF1ZXN0V2luZG93TXMgYWZ0ZXIgbm93LlxuICAgKiBUaGUgc2VydmVyIGRlY2lkZXMgX3doZW5fIGl0IHdpbGwgcGVyZm9ybSB0aGUgZGVsZXRlLiBJdCdzIG5vdCBndWFyYW50ZWVkIHRoYXQgaXQgd2lsbCBwZXJmb3JtXG4gICAqIHRoZSBkZWxldGUgYXQgXCJub3cgKyByZXF1ZXN0V2luZG93TXNcIiwgYnV0IGl0IHdpbGwgaGFwcGVuIGF0IHNvbWUgdGltZSBhZnRlciBcIm5vdyArIHJlcXVlc3RXaW5kb3dNc1wiLlxuICAgKiBUaGlzIGFsbG93cyBtdWx0aXBsZSBvdmVybGFwcGluZyBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUgc2VydmVyIGFsbG9jYXRlcyBlbm91Z2ggZm9yIGVhY2ggcmVxdWVzdC5cbiAgICogVGhlIHNlcnZlciBoYXMgYSBzZXR0aW5nIHRoYXQgYWxsb3dzIGZvciBhIG1heGltdW0gdmFsdWUgb24gcmVxdWVzdFdpbmRvd01zLiBJZiB0aGUgcmVxdWVzdGVkIHZhbHVlXG4gICAqIGlzIGxhcmdlciB0aGFuIHRoaXMgbWF4aW11bSwgdGhlIGNhbGwgd2lsbCBmYWlsLlxuICAgKi9cbiAgYXN5bmMgYmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvd011dGF0aW9uKFxuICAgIG9wdGlvbnM6IEJlZ2luRGVsZXRlQ2hpbGRJdGVtTGlua3NXaW5kb3dPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQmVnaW5EZWxldGVDaGlsZEl0ZW1MaW5rc1dpbmRvd011dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiBvcHRpb25zLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBtYXkgcmFpc2UgVkVSU0lPTl9NSVNNQVRDSCBleGNlcHRpb24gaWYgdGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvblxuICAgKiB3aGVuIG11bHRpcGxlIGNsaWVudHMgdHJ5IHRvIGNyZWF0ZSB0aGUgdGVtcCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIFRPRE8gVGhlcmUgaXMgYSByZXRyeSBtZWNoYW5pc20gaW4gZ3JhcGhxbCB3aXRoIGV4cG9uZW50aWFsIGJhY2sgb2ZmIGJ1dCB0aGF0J3MgaW50ZXJuYWwuXG4gICAqIEJ1dCBuZWVkIHRvIHVzZSBhbiBleHBvbmVudGlhbCBiYWNrIG9mZiBsaWIgaWYgd2Ugd2FudCB0byByZXRyeSBoZXJlLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgSUQgb2YgdGhlIHRlbXAgZGlyZWN0b3J5XG4gICAqXG4gICAqL1xuICBhc3luYyBlbnN1cmVUZW1wRGlyZWN0b3J5KCk6IFByb21pc2U8SWRLZXlQYWlyPiB7XG4gICAgaWYgKHRoaXMudGVtcERpcmVjdG9yeSkge1xuICAgICAgcmV0dXJuIHRoaXMudGVtcERpcmVjdG9yeTtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgcXVlcnk6IFRlbXBEaXJlY3RvcnlRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwbGFpbk1ldGE6IEl0ZW1TZXJ2aWNlLlRFTVBfRElSRUNUT1JZX1BMQUlOX01FVEFfRklMVEVSLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChleGlzdGluZy5yb290RGlyZWN0b3JpZXMuZWRnZXMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFRoZXJlIGlzIG1vcmUgdGhhbiAxIHRlbXAgZGlyZWN0b3J5IChwbGFpbk1ldGEgZmlsdGVyOiAke0l0ZW1TZXJ2aWNlLlRFTVBfRElSRUNUT1JZX1BMQUlOX01FVEFfRklMVEVSfSlgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChleGlzdGluZy5yb290RGlyZWN0b3JpZXMuZWRnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBEb2Vzbid0IGV4aXN0IHlldCwgY3JlYXRlIGl0XG4gICAgICBjb25zdCBjcmVhdGVEaXJlY3RvcnkgPSBhd2FpdCB0aGlzLmNyZWF0ZURpcmVjdG9yeU11dGF0aW9uKHtcbiAgICAgICAgYXNSb290RGlyZWN0b3J5OiB0cnVlLFxuICAgICAgICBwbGFpbk1ldGFKc29uOiBJdGVtU2VydmljZS5URU1QX0RJUkVDVE9SWV9QTEFJTl9NRVRBLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIE9wdGltaXN0aWMgbG9jayBvbiB0aGUgY3VycmVudCB1c2VyLlxuICAgICAgY29uc3QgdXBkYXRlTG9jayA9IHRoaXMubG9ja1NlcnZpY2UudXBkYXRlTG9ja011dGF0aW9uKHtcbiAgICAgICAgdmVyc2lvbjogZXhpc3RpbmcubG9jaz8udmVyc2lvbixcbiAgICAgIH0pO1xuXG4gICAgICAvLyBCZWNhdXNlIHRoaXMubXV0YXRlKCkgb25seSBoYW5kbGVzIHNpbXBsZSB0eXBlcyB3ZSBuZWVkIHRvIHVzZSB0aGUgbW9yZVxuICAgICAgLy8gYWR2YW5jZWQgdGhpcy5sckdyYXBoUUwubHJNdXRhdGUoKVxuICAgICAgY29uc3QgW2NyZWF0ZURpcmVjdG9yeVJlc3VsdF0gPSBhd2FpdCB0aGlzLmxyR3JhcGhRTC5sck11dGF0ZShbXG4gICAgICAgIGNyZWF0ZURpcmVjdG9yeSxcbiAgICAgICAgdXBkYXRlTG9jayxcbiAgICAgIF0pO1xuXG4gICAgICBjb25zdCB7IGlkLCBrZXlJZCB9ID0gY3JlYXRlRGlyZWN0b3J5UmVzdWx0LmNyZWF0ZURpcmVjdG9yeS5kaXJlY3Rvcnk7XG5cbiAgICAgIHRoaXMudGVtcERpcmVjdG9yeSA9IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGtleUlkLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmV0dXJuIGV4aXN0aW5nIHRlbXBcbiAgICAgIGNvbnN0IHsgaWQsIGtleUlkIH0gPSBleGlzdGluZy5yb290RGlyZWN0b3JpZXMuZWRnZXNbMF0ubm9kZTtcblxuICAgICAgdGhpcy50ZW1wRGlyZWN0b3J5ID0ge1xuICAgICAgICBpZCxcbiAgICAgICAga2V5SWQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRlbXBEaXJlY3Rvcnk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVEaXJlY3RvcnlUcmVlKG9wdGlvbnM6IENyZWF0ZURpcmVjdG9yeVRyZWVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlRGlyZWN0b3J5VHJlZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBZb3UgbXVzdCBydW4gdGhpcyBtdXRhdGlvbiB3aXRoaW4gdGhlIHRlbXAgZGlyZWN0b3J5IGNsZWFudXAgd2luZG93IG9uIHRoZVxuICAgKiBzZXJ2ZXIsIG90aGVyd2lzZSB0aGUgdGVtcCBkaXJlY3Rvcnkgd2lsbCBnZXQgY2xlYW5lZCB1cC5cbiAgICpcbiAgICovXG4gIGFzeW5jIGNyZWF0ZURpcmVjdG9yeVRyZWVNdXRhdGlvbihvcHRpb25zOiBDcmVhdGVEaXJlY3RvcnlUcmVlT3B0aW9ucykge1xuICAgIGNvbnN0IHRlbXBEaXIgPSBhd2FpdCB0aGlzLmVuc3VyZVRlbXBEaXJlY3RvcnkoKTtcblxuICAgIC8vIENsZWFyIHRoZSB0ZW1wIGRpcmVjdG9yeSBvZiB0aGUgb25lcyB3ZSBhcmUgYWJvdXQgdG8gY3JlYXRlLlxuICAgIC8vIE5PVEU6IHRoaXMgbXV0YXRpb24gY2FuIG5vdCBiZSBtZXJnZWQgaW50byBhIHNpbmdsZSBtdXRhdGlvbiB3aXRoIHRoZVxuICAgIC8vIHRoZSBjcmVhdGVEaXJlY3RvcnkgbXV0YXRpb24gYmVjYXVzZSBpdCB1c2VzIHRoZSBjdXJyZW50IHNlcnZlciB0aW1lIHRvXG4gICAgLy8gY2xlYW4gdXAuIFNvIGl0IG11c3Qgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlIGJlZm9yZSB0aGUgY3JlYXRpb24gb2YgdGhlXG4gICAgLy8gZGlyZWN0b3JpZXMuXG4gICAgYXdhaXQgdGhpcy5iZWdpbkRlbGV0ZUNoaWxkSXRlbUxpbmtzV2luZG93KHtcbiAgICAgIGRpcmVjdG9yeUlkOiB0ZW1wRGlyLmlkLFxuICAgICAgcmVxdWVzdFdpbmRvd01zOiBvcHRpb25zLnJlcXVlc3RXaW5kb3dNcyxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSB0aGUgZGlyZWN0b3J5IHRoYXQgaGFzIGNvbnRlbnRzXG4gICAgY29uc3QgZGlyZWN0b3J5ID0gKFxuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVEaXJlY3Rvcnkoe1xuICAgICAgICBjaXBoZXJNZXRhQ2xlYXJKc29uOiBvcHRpb25zLmNpcGhlck1ldGFDbGVhckpzb24sXG4gICAgICAgIHBhcmVudERpcmVjdG9yaWVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0b3J5SWQ6IHRlbXBEaXIuaWQsXG4gICAgICAgICAgICB3cmFwcGluZ0tleUlkOiB0ZW1wRGlyLmtleUlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHBsYWluTWV0YUpzb246IG9wdGlvbnMucGxhaW5NZXRhSnNvbixcbiAgICAgIH0pXG4gICAgKS5jcmVhdGVEaXJlY3RvcnkuZGlyZWN0b3J5O1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBjb250ZW50c1xuICAgIGF3YWl0IG9wdGlvbnMuY3JlYXRlQ29udGVudCh7XG4gICAgICBpZDogZGlyZWN0b3J5LmlkLFxuICAgICAga2V5SWQ6IGRpcmVjdG9yeS5rZXlJZCxcbiAgICB9KTtcblxuICAgIC8vIFRPRE8gY2xpZW50LXNpZGUgY2hlY2sgZm9yIHRpbWVvdXQgb24gcmVxdWVzdFdpbmRvd01zXG4gICAgLy8gVE9ETyByZXR1cm4gdGhlIHNlcnZlciB0aW1lIHdoZXJlIGRlbGV0ZSBpcyBzY2hlZHVsZWQuIEV4cGlyYWJsZSBtdXRhdGlvblxuXG4gICAgLy8gUmV0dXJuIHRoZSBtdXRhdGlvbiB0aGF0IG1vdmVzIHRoZSBkaXJlY3RvcnkgaW50byB0aGUgZHN0IGRpcmVjdG9yaWVzXG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlRGlyZWN0b3J5UGFyZW50c011dGF0aW9uKHtcbiAgICAgIGRpcmVjdG9yeUlkOiBkaXJlY3RvcnkuaWQsXG4gICAgICBkaXJlY3RvcnlLZXlJZDogZGlyZWN0b3J5LmtleUlkLFxuICAgICAgcGFyZW50c1RvUmVtb3ZlOiBbdGVtcERpci5pZF0sXG4gICAgICBwYXJlbnRzVG9BZGQ6IG9wdGlvbnMucGFyZW50RGlyZWN0b3JpZXMsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzZXRGaWxlQ29uZmlkZW50aWFsKG9wdGlvbnM6IFNldEZpbGVDb25maWRlbnRpYWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuc2V0RmlsZUNvbmZpZGVudGlhbE11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHNldEZpbGVDb25maWRlbnRpYWxNdXRhdGlvbihvcHRpb25zOiBTZXRGaWxlQ29uZmlkZW50aWFsT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogU2V0RmlsZUNvbmZpZGVudGlhbE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZmlsZUlkOiBvcHRpb25zLmZpbGVJZCxcbiAgICAgICAgICBjb25maWRlbnRpYWw6IG9wdGlvbnMuY29uZmlkZW50aWFsLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldERpcmVjdG9yeUNvbmZpZGVudGlhbChvcHRpb25zOiBTZXREaXJlY3RvcnlDb25maWRlbnRpYWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuc2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgc2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsTXV0YXRpb24oXG4gICAgb3B0aW9uczogU2V0RGlyZWN0b3J5Q29uZmlkZW50aWFsT3B0aW9uc1xuICApIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFNldERpcmVjdG9yeUNvbmZpZGVudGlhbE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IG9wdGlvbnMuZGlyZWN0b3J5SWQsXG4gICAgICAgICAgY29uZmlkZW50aWFsOiBvcHRpb25zLmNvbmZpZGVudGlhbCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhlbHBlcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZVBhcmVudERpcmVjdG9yeShcbiAgICBvcHRpb25zOiBQYXJlbnREaXJlY3RvcnlPcHRpb25zLFxuICAgIG5ld0tleTogSldLLktleVxuICApOiBQcm9taXNlPFBhcmVudERpcmVjdG9yeUlucHV0PiB7XG4gICAgLy8gSWYgZGlyZWN0b3J5J3Mga2V5IGlzIG5vdCBhbHJlYWR5IGluIHRoZSBrZXkgZ3JhcGgsIHRoZW4gbmVlZCB0b1xuICAgIC8vIGZldGNoIHRoZSBkaXJlY3RvcnkncyBrZXkuXG4gICAgY29uc3Qgd3JhcHBpbmdLZXkgPSBhd2FpdCB0aGlzLmdldERpcmVjdG9yeUtleShcbiAgICAgIG9wdGlvbnMuZGlyZWN0b3J5SWQsXG4gICAgICBvcHRpb25zLndyYXBwaW5nS2V5SWRcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpcmVjdG9yeUlkOiBvcHRpb25zLmRpcmVjdG9yeUlkLFxuICAgICAgd3JhcHBpbmdLZXlJZDogd3JhcHBpbmdLZXkuaWQsXG4gICAgICB3cmFwcGVkS2V5OiBhd2FpdCB0aGlzLmtleUdyYXBoLndyYXBLZXkod3JhcHBpbmdLZXksIG5ld0tleSksXG4gICAgICBsaW5rVHlwZTogb3B0aW9ucy5saW5rVHlwZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRGaWxlU3RhdGVLZXlJZChmaWxlU3RhdGVOb2RlSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgICBxdWVyeTogRmlsZVN0YXRlS2V5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiBmaWxlU3RhdGVOb2RlSWQsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICkuZmlsZVN0YXRlLmtleUlkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ3JlYXRlRmlsZVN0YXRlKFxuICAgIGZpbGVLZXk6IEpXSy5LZXksXG4gICAgb3B0aW9uczogQ3JlYXRlRmlsZU9wdGlvbnMgfCBVcGRhdGVGaWxlT3B0aW9uc1xuICApIHtcbiAgICAvLyBFYWNoIHZlcnNpb24gb2YgdGhlIGZpbGUgaXMgZW5jcnlwdGVkIHVzaW5nIGEgbmV3IGtleS5cbiAgICBjb25zdCBmaWxlU3RhdGVLZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG5cbiAgICBjb25zdCBmaWxlQ29udGVudCA9XG4gICAgICBvcHRpb25zLmZpbGUgJiYgKGF3YWl0IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UubG9hZEZpbGUob3B0aW9ucy5maWxlKSk7XG5cbiAgICBsZXQgY29udGVudFJlc291cmNlOiBzdHJpbmc7XG4gICAgaWYgKGZpbGVDb250ZW50KSB7XG4gICAgICBjb25zdCBjaXBoZXJGaWxlQ29udGVudCA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICBmaWxlU3RhdGVLZXksXG4gICAgICAgIGZpbGVDb250ZW50XG4gICAgICApO1xuICAgICAgaWYgKG9wdGlvbnMudXBsb2FkKSB7XG4gICAgICAgIGNvbnRlbnRSZXNvdXJjZSA9IGF3YWl0IG9wdGlvbnMudXBsb2FkKGNpcGhlckZpbGVDb250ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRlbnRSZXNvdXJjZSA9IGF3YWl0IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UudXBsb2FkRW5jcnlwdGVkRmlsZSh7XG4gICAgICAgICAgZW5jcnlwdGVkQ29udGVudDogY2lwaGVyRmlsZUNvbnRlbnQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi4oYXdhaXQgdGhpcy5wcmVwYXJlSXRlbShmaWxlU3RhdGVLZXksIG9wdGlvbnMpKSxcbiAgICAgIHdyYXBwZWRTdGF0ZUtleTogYXdhaXQgdGhpcy5rZXlHcmFwaC53cmFwS2V5KGZpbGVLZXksIGZpbGVTdGF0ZUtleSksXG4gICAgICBjb250ZW50UmVzb3VyY2UsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNoYW5nZUl0ZW1QYXJlbnRzKFxuICAgIG9wdGlvbnM6IENoYW5nZUl0ZW1QYXJlbnRzT3B0aW9ucyxcbiAgICBpdGVtS2V5OiBKV0suS2V5XG4gICkge1xuICAgIGNvbnN0IHBhcmVudHNUb0FkZCA9IG9wdGlvbnMucGFyZW50c1RvQWRkXG4gICAgICA/IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgIG9wdGlvbnMucGFyZW50c1RvQWRkLm1hcCgodCkgPT5cbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVBhcmVudERpcmVjdG9yeSh0LCBpdGVtS2V5KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgOiBbXTtcblxuICAgIHJldHVybiB7XG4gICAgICBkaXJlY3Rvcmllc1RvUmVtb3ZlOiBvcHRpb25zLnBhcmVudHNUb1JlbW92ZSB8fCBbXSxcbiAgICAgIGRpcmVjdG9yaWVzVG9BZGQ6IHBhcmVudHNUb0FkZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlSXRlbShcbiAgICBrZXk6IEpXSy5LZXksXG4gICAgb3B0aW9uczogeyBwbGFpbk1ldGFKc29uPzogSlNPTk9iamVjdDsgY2lwaGVyTWV0YUNsZWFySnNvbj86IEpTT05PYmplY3QgfVxuICApIHtcbiAgICBjb25zdCB7IHBsYWluTWV0YUpzb24sIGNpcGhlck1ldGFDbGVhckpzb24gfSA9IG9wdGlvbnM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGxhaW5NZXRhOiBwbGFpbk1ldGFKc29uICYmIEpTT04uc3RyaW5naWZ5KHBsYWluTWV0YUpzb24pLFxuICAgICAgY2lwaGVyTWV0YTpcbiAgICAgICAgY2lwaGVyTWV0YUNsZWFySnNvbiAmJlxuICAgICAgICAoYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoa2V5LCBjaXBoZXJNZXRhQ2xlYXJKc29uKSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNyZWF0ZURpcmVjdG9yeShvcHRpb25zOiBDcmVhdGVEaXJlY3RvcnlPcHRpb25zKSB7XG4gICAgY29uc3QgZGlyZWN0b3J5S2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgIG9wdGlvbnMucGFyZW50RGlyZWN0b3JpZXMgPSBvcHRpb25zLnBhcmVudERpcmVjdG9yaWVzIHx8IFtdO1xuICAgIGlmICghb3B0aW9ucy5hc1Jvb3REaXJlY3RvcnkgJiYgIW9wdGlvbnMucGFyZW50RGlyZWN0b3JpZXM/Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkQXJndW1lbnRFeGNlcHRpb24oXG4gICAgICAgICdBIG5ldyBkaXJlY3RvcnkgbXVzdCBiZSBlaXRoZXIgYSByb290IGRpcmVjdG9yeSBvciBhIHN1Yi1kaXJlY3RvcnkuIFNvIHlvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIHBhcmVudERpcmVjdG9yaWVzIG9yIGFzUm9vdERpcmVjdG9yeSBwYXJhbWV0ZXIuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5hc1Jvb3REaXJlY3RvcnkgJiYgb3B0aW9ucy5wYXJlbnREaXJlY3Rvcmllcz8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRBcmd1bWVudEV4Y2VwdGlvbihcbiAgICAgICAgJ0EgbmV3IGRpcmVjdG9yeSBtdXN0IGJlIGVpdGhlciBhIHJvb3QgZGlyZWN0b3J5IG9yIGEgc3ViLWRpcmVjdG9yeS4gU28geW91IGNhbiBvbmx5IHByb3ZpZGUgZWl0aGVyIHBhcmVudERpcmVjdG9yaWVzIG9yIGFzUm9vdERpcmVjdG9yeSBwYXJhbWV0ZXIuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnREaXJlY3RvcmllcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgb3B0aW9ucy5wYXJlbnREaXJlY3Rvcmllcz8ubWFwKCh0KSA9PlxuICAgICAgICB0aGlzLnByZXBhcmVQYXJlbnREaXJlY3RvcnkodCwgZGlyZWN0b3J5S2V5KVxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBUT0RPIHRoaXMgaXMgcmF0aGVyIGFuIHVuZm9ydHVuYXRlIG5hbWUsIGNoYW5nZSBpdCB0byBhc1Jvb3REaXJlY3RvcnkuXG4gICAgbGV0IHBhcmVudFJvb3REaXJlY3Rvcnk6IFBhcmVudFJvb3REaXJlY3RvcnlJbnB1dDtcbiAgICBpZiAob3B0aW9ucy5hc1Jvb3REaXJlY3RvcnkpIHtcbiAgICAgIGNvbnN0IHJvb3RLZXkgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudFJvb3RLZXk7XG4gICAgICBwYXJlbnRSb290RGlyZWN0b3J5ID0ge1xuICAgICAgICB3cmFwcGluZ0tleUlkOiByb290S2V5LmlkLFxuICAgICAgICB3cmFwcGVkS2V5OiBhd2FpdCB0aGlzLmtleUdyYXBoLndyYXBLZXkocm9vdEtleSwgZGlyZWN0b3J5S2V5KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbUlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlSXRlbShkaXJlY3RvcnlLZXksIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLml0ZW1JbnB1dCxcbiAgICAgIHBhcmVudERpcmVjdG9yaWVzLFxuICAgICAgcGFyZW50Um9vdERpcmVjdG9yeSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlVXBkYXRlRGlyZWN0b3J5KG9wdGlvbnM6IFVwZGF0ZURpcmVjdG9yeU9wdGlvbnMpIHtcbiAgICBjb25zdCBkaXJlY3RvcnlLZXkgPSBhd2FpdCB0aGlzLmdldERpcmVjdG9yeUtleShcbiAgICAgIG9wdGlvbnMuZGlyZWN0b3J5SWQsXG4gICAgICBvcHRpb25zLmRpcmVjdG9yeUtleUlkXG4gICAgKTtcblxuICAgIGNvbnN0IGl0ZW1JbnB1dCA9IGF3YWl0IHRoaXMucHJlcGFyZUl0ZW0oZGlyZWN0b3J5S2V5Lmp3aywgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaXRlbUlucHV0LFxuICAgICAgZGlyZWN0b3J5SWQ6IG9wdGlvbnMuZGlyZWN0b3J5SWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNyZWF0ZUZpbGUob3B0aW9uczogQ3JlYXRlRmlsZU9wdGlvbnMpIHtcbiAgICBjb25zdCBmaWxlS2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuXG4gICAgY29uc3QgcGFyZW50RGlyZWN0b3JpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG9wdGlvbnMucGFyZW50RGlyZWN0b3JpZXMubWFwKGFzeW5jICh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZGlyZWN0b3J5SWQsIHdyYXBwaW5nS2V5SWQsIHdyYXBwZWRLZXkgfSA9XG4gICAgICAgICAgYXdhaXQgdGhpcy5wcmVwYXJlUGFyZW50RGlyZWN0b3J5KHQsIGZpbGVLZXkpO1xuICAgICAgICAvLyByZW1hcCBmcm9tIFBhcmVudERpcmVjdG9yeUlucHV0IHRvIEZpbGVQYXJlbnREaXJlY3RvcnlJbnB1dFxuICAgICAgICAvLyBUT0RPIHRoZSBzZXJ2ZXIgc2hvdWxkIHJlYWxseSBqdXN0IHVzZSB3cmFwcGVkS2V5IGluc3RlYWQgb2Ygd3JhcHBlZEZpbGVLZXlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkaXJlY3RvcnlJZCxcbiAgICAgICAgICB3cmFwcGluZ0tleUlkLFxuICAgICAgICAgIHdyYXBwZWRGaWxlS2V5OiB3cmFwcGVkS2V5LFxuICAgICAgICB9IGFzIEZpbGVQYXJlbnREaXJlY3RvcnlJbnB1dDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlQ3JlYXRlRmlsZVN0YXRlKGZpbGVLZXksIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmlucHV0LFxuICAgICAgcGFyZW50RGlyZWN0b3JpZXMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZVVwZGF0ZUZpbGUob3B0aW9uczogVXBkYXRlRmlsZU9wdGlvbnMpIHtcbiAgICBjb25zdCBmaWxlS2V5ID0gYXdhaXQgdGhpcy5nZXRGaWxlS2V5KG9wdGlvbnMuZmlsZUlkLCBvcHRpb25zLmZpbGVLZXlJZCk7XG4gICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVGaWxlU3RhdGUoZmlsZUtleS5qd2ssIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmlucHV0LFxuICAgICAgZmlsZUlkOiBvcHRpb25zLmZpbGVJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ2hhbmdlRGlyZWN0b3J5UGFyZW50cyhcbiAgICBvcHRpb25zOiBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzT3B0aW9uc1xuICApIHtcbiAgICBjb25zdCBkaXJlY3RvcnlLZXkgPSBhd2FpdCB0aGlzLmdldERpcmVjdG9yeUtleShcbiAgICAgIG9wdGlvbnMuZGlyZWN0b3J5SWQsXG4gICAgICBvcHRpb25zLmRpcmVjdG9yeUtleUlkXG4gICAgKTtcblxuICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlQ2hhbmdlSXRlbVBhcmVudHMoXG4gICAgICBvcHRpb25zLFxuICAgICAgZGlyZWN0b3J5S2V5Lmp3a1xuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaW5wdXQsXG4gICAgICBkaXJlY3RvcnlJZDogb3B0aW9ucy5kaXJlY3RvcnlJZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ2hhbmdlRmlsZVBhcmVudHMob3B0aW9uczogQ2hhbmdlRmlsZVBhcmVudHNPcHRpb25zKSB7XG4gICAgY29uc3QgZmlsZUtleSA9IGF3YWl0IHRoaXMuZ2V0RmlsZUtleShvcHRpb25zLmZpbGVJZCwgb3B0aW9ucy5maWxlS2V5SWQpO1xuXG4gICAgY29uc3QgaW5wdXQgPSBhd2FpdCB0aGlzLnByZXBhcmVDaGFuZ2VJdGVtUGFyZW50cyhvcHRpb25zLCBmaWxlS2V5Lmp3ayk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaW5wdXQsXG4gICAgICBmaWxlSWQ6IG9wdGlvbnMuZmlsZUlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG9uTG9nb3V0KCkge1xuICAgIC8vIENsZWFyIGFsbCBjYWNoZWQgZGF0YS5cbiAgICB0aGlzLnRlbXBEaXJlY3RvcnkgPSBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -180,6 +180,19 @@ export class KeyGraphService {
|
|
|
180
180
|
else {
|
|
181
181
|
nextRawKey = yield this.encryptionService.decrypt(wrappingKey, wrappedKey);
|
|
182
182
|
}
|
|
183
|
+
// Handle nested keys. i.e. Enc{K1}{K2}{K3}(raw key 4), where:
|
|
184
|
+
// K1: link.wrappingKey
|
|
185
|
+
// K2: link.nestedWrappingKey[0]
|
|
186
|
+
// K3: link.nestedWrappingKey[1]
|
|
187
|
+
if (link.type == KeyGraphEdgeType.KeyLink) {
|
|
188
|
+
const data = link.data;
|
|
189
|
+
if (data.nestedWrappingKeyIds) {
|
|
190
|
+
for (const nestedWrappingKeyId of data.nestedWrappingKeyIds) {
|
|
191
|
+
const key = yield this.getKey(nestedWrappingKeyId);
|
|
192
|
+
nextRawKey = yield this.encryptionService.decrypt(key.jwk, nextRawKey);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
183
196
|
dstKey.jwk = yield KFS.asKey(nextRawKey);
|
|
184
197
|
dstKey.task = null;
|
|
185
198
|
});
|
|
@@ -298,4 +311,4 @@ KeyGraphService.ctorParameters = () => [
|
|
|
298
311
|
{ type: KeyService },
|
|
299
312
|
{ type: KeyFactoryService }
|
|
300
313
|
];
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWdyYXBoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIva2V5L2tleS1ncmFwaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUd2QixPQUFPLEVBQ0wsS0FBSyxFQUVMLGlCQUFpQixFQUNqQixjQUFjLEdBQ2YsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUNwQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsaUJBQWlCLElBQUksR0FBRyxHQUN6QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUdMLGdCQUFnQixFQUVoQixnQkFBZ0IsRUFHaEIsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDOzs7OztBQVNyQixNQUFNLE9BQU8sZUFBZTtJQUUxQixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLEtBQUs7SUFFTCxZQUNVLGlCQUFvQyxFQUNwQyxVQUFzQixFQUN0QixVQUE2QjtRQUY3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFFckMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLEtBQUss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QU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FDM0MsYUFBYSxFQUNiLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQ2pCLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRWhFLE9BQU87Z0JBQ0wsR0FBRztnQkFDSCxhQUFhO2dCQUNiLFVBQVU7Z0JBQ1YsTUFBTTthQUNQLENBQUM7UUFDSixDQUFDO0tBQUE7Ozs7WUFsVkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFoQ0MsaUJBQWlCO1lBY1YsVUFBVTtZQUhqQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZ3JhcGhsaWIsIHsgR3JhcGggfSBmcm9tICdAZGFncmVqcy9ncmFwaGxpYic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHtcbiAgYXNKd2ssXG4gIERlY3J5cHRPcHRpb25zLFxuICBFbmNyeXB0aW9uU2VydmljZSxcbiAgaXNTeW1tZXRyaWNLZXksXG59IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEtjQmFkQXJndW1lbnRFeGNlcHRpb24sXG4gIEtjQmFkTG9naWNFeGNlcHRpb24sXG4gIEtjQmFkU3RhdGVFeGNlcHRpb24sXG4gIEtjRW5jcnlwdGlvbkV4Y2VwdGlvbixcbiAgS2NOb3RGb3VuZEV4Y2VwdGlvbixcbn0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7XG4gIEtleUZhY3RvcnlTZXJ2aWNlLFxuICBLZXlGYWN0b3J5U2VydmljZSBhcyBLRlMsXG59IGZyb20gJy4va2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlLCBVc2VyS2V5cyB9IGZyb20gJy4va2V5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgS2V5LFxuICBLZXlHcmFwaEVkZ2UsXG4gIEtleUdyYXBoRWRnZVR5cGUsXG4gIEtleUdyYXBoTm9kZSxcbiAgS2V5R3JhcGhOb2RlVHlwZSxcbiAgS2V5R3JhcGhSZXNwb25zZSxcbiAgUGFzc0tleSxcbiAgUGF5bG9hZFR5cGUsXG59IGZyb20gJy4va2V5LnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBHcmFwaEtleSBleHRlbmRzIEtleSB7XG4gIHRhc2s/OiBQcm9taXNlPGFueT47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBLZXlHcmFwaFNlcnZpY2Uge1xuICBwcml2YXRlIGdyYXBoOiBHcmFwaDtcbiAgLy8gcHJpdmF0ZSBrZXlDYWNoZToge1xuICAvLyAgIFtpZDogc3RyaW5nXTogS2V5O1xuICAvLyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucHVyZ2VLZXlzKCk7XG4gIH1cblxuICBwdXJnZUtleXMoKSB7XG4gICAgdGhpcy5ncmFwaCA9IG5ldyBHcmFwaCgpO1xuICAgIC8vIHRoaXMua2V5Q2FjaGUgPSBudWxsO1xuICB9XG5cbiAgYXN5bmMgcG9wdWxhdGVLZXlzKHVzZXJLZXk6IFVzZXJLZXlzKSB7XG4gICAgdGhpcy5rZXlTZXJ2aWNlLnNldEtleXMoe1xuICAgICAgcGFzc0tleTogdXNlcktleS5wYXNzS2V5LFxuICAgICAgbWFzdGVyS2V5OiBhd2FpdCB0aGlzLmtleVNlcnZpY2UubG9hZE1hc3RlcktleSh1c2VyS2V5Lm1hc3RlcktleS5pZCksXG4gICAgICByb290S2V5OiBhd2FpdCB0aGlzLnVud3JhcEtleSh1c2VyS2V5Lm1hc3RlcktleS5pZCwgdXNlcktleS5yb290S2V5LmlkKSxcbiAgICAgIHB4azogYXdhaXQgdGhpcy51bndyYXBLZXkodXNlcktleS5tYXN0ZXJLZXkuaWQsIHVzZXJLZXkucHhrLmlkKSxcbiAgICAgIHNpZ1B4azogYXdhaXQgdGhpcy51bndyYXBLZXkodXNlcktleS5tYXN0ZXJLZXkuaWQsIHVzZXJLZXkuc2lnUHhrLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIGhhc0tleShrZXlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuICEhdGhpcy5ncmFwaC5ub2RlKGtleUlkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZShpZCwgdHlwZSk6IEdyYXBoS2V5IHwgUGFzc0tleSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ3JhcGgubm9kZShpZCk7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICB0aHJvdyBuZXcgS2NOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgYEtleSBncmFwaHMgZG9lcyBub3QgY29udGFpbiBrZXkgaWQ6ICR7aWR9YFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG5vZGUudHlwZSAhPT0gdHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oYEtleSB3aXRoIGlkICR7aWR9IGlzIG5vdCBvZiB0eXBlICR7dHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUuZGF0YTtcbiAgfVxuXG4gIGtleShpZCk6IEdyYXBoS2V5IHtcbiAgICByZXR1cm4gdGhpcy5nZXROb2RlKGlkLCBLZXlHcmFwaE5vZGVUeXBlLktleSk7XG4gIH1cblxuICBwYXNzS2V5KGlkKTogUGFzc0tleSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Tm9kZShpZCwgS2V5R3JhcGhOb2RlVHlwZS5QYXNzS2V5KTtcbiAgfVxuXG4gIGFkZEtleXMoc3JjOiBLZXlHcmFwaFJlc3BvbnNlKSB7XG4gICAgLy8gS2V5c1xuICAgIGlmIChzcmMua2V5cykge1xuICAgICAgLy8gV2hhdCBrZXkgZ3JhcGggcmV0dXJucyBjYW4gbm90IGJlIGN1c3RvbWl6ZWQuIFNvIGtleXMgYXJlIGVzc2VudGlhbGx5IGltbXV0YWJsZS5cbiAgICAgIC8vIFRoZXJlZm9yZSwgaWYgYSBrZXkgZXhpc3RzLCB0aGVyZSdzIG5vIHJlYXNvbiB0byB1cGRhdGUgaXQuXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBzcmMua2V5cykge1xuICAgICAgICAvLyBOb3RlIHVzaW5nIFJlbGF5IGdsb2JhbCBpZCBhbGxvd3MgdXMgdG8gbm90IHdvcnJ5IGFib3V0IGNsYXNoaW5nIG5vZGUgaWRcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzTm9kZShrZXkuaWQpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub2RlOiBLZXlHcmFwaE5vZGUgPSB7XG4gICAgICAgICAgdHlwZTogS2V5R3JhcGhOb2RlVHlwZS5LZXksXG4gICAgICAgICAgZGF0YTogXy5jbG9uZURlZXAoa2V5KSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmdyYXBoLnNldE5vZGUoa2V5LmlkLCBub2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBLZXlMaW5rc1xuICAgIGlmIChzcmMua2V5TGlua3MpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5TGluayBvZiBzcmMua2V5TGlua3MpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzRWRnZShrZXlMaW5rLndyYXBwaW5nS2V5SWQsIGtleUxpbmsua2V5SWQpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlZGdlOiBLZXlHcmFwaEVkZ2UgPSB7XG4gICAgICAgICAgdHlwZTogS2V5R3JhcGhFZGdlVHlwZS5LZXlMaW5rLFxuICAgICAgICAgIGRhdGE6IF8uY2xvbmVEZWVwKGtleUxpbmspLFxuICAgICAgICB9O1xuICAgICAgICAvLyBFZGdlIGdvZXMgZnJvbSB3cmFwcGluZyBrZXkgdG8gd3JhcHBlZCBrZXkuXG4gICAgICAgIHRoaXMuZ3JhcGguc2V0RWRnZShrZXlMaW5rLndyYXBwaW5nS2V5SWQsIGtleUxpbmsua2V5SWQsIGVkZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBhc3NLZXlMaW5rc1xuICAgIGlmIChzcmMucGFzc0tleUxpbmtzKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhc3NLZXlMaW5rIG9mIHNyYy5wYXNzS2V5TGlua3MpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzRWRnZShwYXNzS2V5TGluay5wYXNzS2V5SWQsIHBhc3NLZXlMaW5rLmtleUlkKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWRnZTogS2V5R3JhcGhFZGdlID0ge1xuICAgICAgICAgIHR5cGU6IEtleUdyYXBoRWRnZVR5cGUuUGFzc0tleUxpbmssXG4gICAgICAgICAgZGF0YTogXy5jbG9uZURlZXAocGFzc0tleUxpbmspLFxuICAgICAgICB9O1xuICAgICAgICAvLyBFZGdlIGdvZXMgZnJvbSB3cmFwcGluZyBrZXkgdG8gd3JhcHBlZCBrZXkuXG4gICAgICAgIHRoaXMuZ3JhcGguc2V0RWRnZShwYXNzS2V5TGluay5wYXNzS2V5SWQsIHBhc3NLZXlMaW5rLmtleUlkLCBlZGdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgZ3JhcGggaXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGguIFRoZXNlIGFyZSBsYXppbHkgY2FsY3VsYXRlZC5cbiAgICAvLyB0aGlzLmtleUNhY2hlID0gbnVsbDtcbiAgfVxuXG4gIHRyYWNlUGF0aChkaXN0YW5jZXMsIGtleUlkOiBzdHJpbmcpOiBLZXlHcmFwaEVkZ2VbXSB7XG4gICAgLy8gVGhlIG5vZGUgbGFiZWwgaXMgdGhlIHNhbWUgYXMgdGhlIGlkIG9mIHRoZSBrZXkgbm9kZXMuXG4gICAgY29uc3QgcmV0OiBLZXlHcmFwaEVkZ2VbXSA9IFtdO1xuICAgIGxldCBub2RlID0ga2V5SWQ7XG4gICAgaWYgKCFkaXN0YW5jZXNbbm9kZV0ucHJlZGVjZXNzb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHdoaWxlIChkaXN0YW5jZXNbbm9kZV0ucHJlZGVjZXNzb3IpIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gZGlzdGFuY2VzW25vZGVdLnByZWRlY2Vzc29yO1xuICAgICAgcmV0LnB1c2godGhpcy5ncmFwaC5lZGdlKGNoaWxkLCBub2RlKSk7XG4gICAgICBub2RlID0gY2hpbGQ7XG4gICAgfVxuXG4gICAgLy8gQWZ0ZXIgcmV2ZXJzZSwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIHBhc3NrZXlcbiAgICByZXQucmV2ZXJzZSgpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGdldFBhdGgoa25vd25LZXlJZDogc3RyaW5nLCBrZXlJZDogc3RyaW5nKTogS2V5R3JhcGhFZGdlW10ge1xuICAgIGlmICgha25vd25LZXlJZCB8fCB0eXBlb2Yga25vd25LZXlJZCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBLY0VuY3J5cHRpb25FeGNlcHRpb24oXG4gICAgICAgIGBQYXJhbSBrbm93bktleUlkIHdyb25nIGZvcm1hdDogJHtrbm93bktleUlkfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICgha2V5SWQgfHwgdHlwZW9mIGtleUlkICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEtjRW5jcnlwdGlvbkV4Y2VwdGlvbihgUGFyYW0ga2V5SWQgd3JvbmcgZm9ybWF0OiAke2tleUlkfWApO1xuICAgIH1cblxuICAgIC8vID0+IHsgQTogeyBkaXN0YW5jZTogMCB9LFxuICAgIC8vICAgICAgQjogeyBkaXN0YW5jZTogNiwgcHJlZGVjZXNzb3I6ICdDJyB9LFxuICAgIC8vICAgICAgQzogeyBkaXN0YW5jZTogNCwgcHJlZGVjZXNzb3I6ICdBJyB9LFxuICAgIC8vICAgICAgRDogeyBkaXN0YW5jZTogMiwgcHJlZGVjZXNzb3I6ICdBJyB9LFxuICAgIC8vICAgICAgRTogeyBkaXN0YW5jZTogOCwgcHJlZGVjZXNzb3I6ICdGJyB9LFxuICAgIC8vICAgICAgRjogeyBkaXN0YW5jZTogNCwgcHJlZGVjZXNzb3I6ICdEJyB9IH1cbiAgICBjb25zdCBkaXN0YW5jZXMgPSBncmFwaGxpYi5hbGcuZGlqa3N0cmEodGhpcy5ncmFwaCwga25vd25LZXlJZCk7XG5cbiAgICAvLyBUcmFjZSBwYXRoIGZyb20ga2V5SWQgdG8ga25vd25LZXlJZFxuICAgIHJldHVybiB0aGlzLnRyYWNlUGF0aChkaXN0YW5jZXMsIGtleUlkKTtcbiAgfVxuXG4gIGFzeW5jIGdldEp3a0tleShcbiAgICBrZXlPcklkOiBzdHJpbmcgfCBLZXksXG4gICAgZ2V0S2V5SWRDYWxsYmFjaz86ICgpID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZ1xuICApOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0S2V5KGtleU9ySWQsIGdldEtleUlkQ2FsbGJhY2spKS5qd2s7XG4gIH1cblxuICAvLyBXZSBhc3N1bWUgdGhhdCB3aGVuIGEga2V5SWQgaXMgZmV0Y2hlZCwgdGhlIGtleSBncmFwaFxuICAvLyBmb3IgdGhlIGtleSBpcyBhbHNvIHJldHVybmVkIGFuZCBtZXJnZWQgaW50byB0aGUgY2xpZW50LXNpZGVcbiAgLy8ga2V5IGdyYXBoLiBCeSBpbnNpc3RpbmcgYSBrZXlJZCBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIHRoZVxuICAvLyBhY3R1YWwga2V5IHdlIGVuc3VyZSBrZXktZ3JhcGggaXMgY29uc2lzdGVudC5cbiAgYXN5bmMgZ2V0S2V5KFxuICAgIGtleU9ySWQ6IHN0cmluZyB8IEtleSxcbiAgICBnZXRLZXlJZENhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTxzdHJpbmc+IHwgc3RyaW5nXG4gICk6IFByb21pc2U8S2V5PiB7XG4gICAgbGV0IGtleUlkID0gdHlwZW9mIGtleU9ySWQgPT09ICdzdHJpbmcnID8ga2V5T3JJZCA6IGtleU9ySWQ/LmlkO1xuXG4gICAgaWYgKCF0aGlzLmhhc0tleShrZXlJZCkgJiYgZ2V0S2V5SWRDYWxsYmFjaykge1xuICAgICAgY29uc3Qga2V5SWRGcm9tQ2FsbGJhY2sgPSBhd2FpdCBnZXRLZXlJZENhbGxiYWNrKCk7XG5cbiAgICAgIGlmIChrZXlJZCAhPSBudWxsICYmIGtleUlkICE9IGtleUlkRnJvbUNhbGxiYWNrKSB7XG4gICAgICAgIHRocm93IG5ldyBLY0JhZExvZ2ljRXhjZXB0aW9uKFxuICAgICAgICAgICdSZXF1ZXN0ZWQga2V5SWQgaXMgbm90IGluIHRoZSBrZXkgY2FjaGUsIHNvIGFuIEFQSSByZXF1ZXN0IHdhcyBtYWRlIHRvIHBvcHVsYXRlIHRoZSBrZXkgY2FjaGUuJyArXG4gICAgICAgICAgICAnQnV0IHRoZSBrZXkgcmV0dXJuZWQgYnkgdGhlIEFQSSBkb2VzIE5PVCBtYXRjaCB0aGUgcmVxdWVzdGVkIGtleUlkLicgK1xuICAgICAgICAgICAgJ1RoaXMgaXMgYSBwcm9ncmFtbWluZyBsb2dpYyBlcnJvci4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGtleUlkID0ga2V5SWRGcm9tQ2FsbGJhY2s7XG4gICAgfVxuICAgIC8vIGVsc2UsIGNvbnRpbnVlIGFuZCBsZXQgaXQgZmFpbC5cblxuICAgIGNvbnN0IGtleSA9IHRoaXMua2V5KGtleUlkKTtcbiAgICBpZiAoa2V5Lmp3aykge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudW53cmFwS2V5KHRoaXMua2V5U2VydmljZS5jdXJyZW50TWFzdGVyS2V5LmlkLCBrZXlJZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdW53cmFwTGluayh3cmFwcGluZ0tleSwgbGluaywgZHN0S2V5KSB7XG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IEpTT04ucGFyc2UobGluay5kYXRhLndyYXBwZWRLZXkpO1xuICAgIC8vIFNpZ25hdHVyZXMgb2Yga2V5cyBjb250YWluIHRoZSBrZXkgaXRzZWxmLiBUaGlzIHdheSB3ZSBvbmx5IG5lZWRcbiAgICAvLyB0byBhY2Nlc3MgdGhlIEtleUxpbmtzIHRvIGRlY3J5cHQvdmVyaWZ5IGtleXMuXG4gICAgbGV0IG5leHRSYXdLZXk7XG4gICAgaWYgKHdyYXBwZWRLZXkuc2lnbmF0dXJlcykge1xuICAgICAgbmV4dFJhd0tleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UudmVyaWZ5KHdyYXBwaW5nS2V5LCB3cmFwcGVkS2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dFJhd0tleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAgd3JhcHBpbmdLZXksXG4gICAgICAgIHdyYXBwZWRLZXlcbiAgICAgICk7XG4gICAgfVxuICAgIGRzdEtleS5qd2sgPSBhd2FpdCBLRlMuYXNLZXkobmV4dFJhd0tleSk7XG4gICAgZHN0S2V5LnRhc2sgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdW53cmFwKGtleTogSldLLktleSwgcGF0aDogS2V5R3JhcGhFZGdlW10pOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICBmb3IgKGNvbnN0IGxpbmsgb2YgcGF0aCkge1xuICAgICAgY29uc3QgZHN0S2V5ID0gdGhpcy5rZXkobGluay5kYXRhLmtleUlkKTtcbiAgICAgIGlmIChkc3RLZXkuandrKSB7XG4gICAgICAgIGtleSA9IGRzdEtleS5qd2s7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRzdEtleS50YXNrKSB7XG4gICAgICAgIGRzdEtleS50YXNrID0gdGhpcy5fdW53cmFwTGluayhrZXksIGxpbmssIGRzdEtleSk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGRzdEtleS50YXNrO1xuICAgICAga2V5ID0gZHN0S2V5Lmp3aztcbiAgICB9XG5cbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVud3JhcFdpdGhQYXNzS2V5KFxuICAgIHBhc3NLZXlJZDogc3RyaW5nLFxuICAgIHBhc3NLZXk6IEpXSy5LZXksXG4gICAga2V5SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleT4ge1xuICAgIC8vIEdldCBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkga2V5LlxuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGgocGFzc0tleUlkLCBrZXlJZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGtleUlkLFxuICAgICAgandrOiBhd2FpdCB0aGlzLl91bndyYXAocGFzc0tleSwgcGF0aCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHVud3JhcEtleShtYXN0ZXJLZXlJZDogc3RyaW5nLCBrZXlJZDogc3RyaW5nKTogUHJvbWlzZTxLZXk+IHtcbiAgICAvLyBUaGUgZmlyc3Qga2V5IHNob3VsZCBiZSBhIG1hc3RlcktleVxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5sb2FkTWFzdGVyS2V5KG1hc3RlcktleUlkKTtcblxuICAgIGlmIChtYXN0ZXJLZXlJZCA9PT0ga2V5SWQpIHtcbiAgICAgIHJldHVybiBtYXN0ZXJLZXk7XG4gICAgfVxuXG4gICAgLy8gR2V0IHBhdGggb2YgdGhlIGRpcmVjdG9yeSBrZXkuXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aChtYXN0ZXJLZXkuaWQsIGtleUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDoga2V5SWQsXG4gICAgICBqd2s6IGF3YWl0IHRoaXMuX3Vud3JhcChtYXN0ZXJLZXkuandrLCBwYXRoKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZGVjcnlwdEZyb21TdHJpbmc8VD4oXG4gICAga2V5T3JJZDogc3RyaW5nIHwgS2V5LFxuICAgIGNpcGhlckRhdGE6IHN0cmluZyxcbiAgICBvcHRpb25zPzogRGVjcnlwdE9wdGlvbnNcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKGNpcGhlckRhdGEpIHtcbiAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMuZ2V0SndrS2V5KGtleU9ySWQpO1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgIGtleSxcbiAgICAgICAgSlNPTi5wYXJzZShjaXBoZXJEYXRhKSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKSkgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGRlY3J5cHRGaWxlKGtleUlkOiBzdHJpbmcsIGZpbGU6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5nZXRKd2tLZXkoa2V5SWQpO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KGtleSwgZmlsZSwge1xuICAgICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLlVJTlRfOF9BUlJBWSxcbiAgICB9KSkgYXMgYW55O1xuICB9XG5cbiAgLy8gVE9ETyByZW5hbWUgdGhpcyB0byBlbmNyeXB0KCkgYW5kIHVzZSBhcyB0aGUgbW9zdCBjb21tb24gdXNlY2FzZVxuICBhc3luYyBlbmNyeXB0VG9TdHJpbmcoXG4gICAga2V5OiBzdHJpbmcgfCBLZXkgfCBKV0suS2V5LFxuICAgIGNvbnRlbnQ6IGFueVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIEVtcHR5IHN0cmluZyBzaG91bGQgYmUgZW5jcnlwdGVkIHNpbmNlIHlvdSB3YW50IHRvIGNsZWFyIHRoZSBmaWVsZC5cbiAgICAvLyBOdWxsIGlzIG5vdCBlbmNyeXB0ZWQgYmVjYXVzZSBpdCdzIG5vdCB2YWxpZCBKU09OIGluIHRoZSBvbGQgSlNPTiBzcGVjLiBVc2VcbiAgICAvLyBlbXB0eSBzdHJpbmcgaW5zdGVhZC4gSXQnbGwgZnVuY3Rpb24gYXMgYSBsb2dpYyBmYWxzZSBhcyB3ZWxsLlxuICAgIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGluIGVtcHR5IHN0cmluZyBtZWFucyBpdCdsbCBiZSBlbmNyeXB0ZWQgd2hpY2ggdmVyaWZpZXNcbiAgICAvLyBpdCdzIGludGVncml0eS4gQnV0IHdlIHN0aWxsIHdhbnQgdG8gaGF2ZSBhIHdheSB0byBzZXQgdGhlIERCIGZpZWxkXG4gICAgLy8gdG8gTlVMTCwgc28gd2UgZXhwbGljaXRseSByZXR1cm4gbnVsbCB3aGVuIGNvbnRlbnQgPT0gbnVsbC4gQSBudWxsXG4gICAgLy8gdmFyaWFibGUgaW4gZ3JhcGhxbCBtdXRhdGlvbiBvbiBLQyBzZXJ2ZXIgY2xlYXJzIHRoZSBmaWVsZCB0byBOVUxMLlxuICAgIGlmIChjb250ZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGp3ayA9IGFzSndrKGtleSkgfHwgKGF3YWl0IHRoaXMuZ2V0SndrS2V5KGtleSBhcyBzdHJpbmcgfCBLZXkpKTtcbiAgICByZXR1cm4gdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoandrLCBjb250ZW50KTtcbiAgfVxuXG4gIC8vIFdyYXBzIGEgc3ltbWV0cmljIGVuY3J5cHRpb24ga2V5LlxuICAvLyBUaHJvd3MgZXhjZXB0aW9uIGlmIHdyYXBwaW5nIHB1YmxpYyBrZXlzLlxuICBhc3luYyB3cmFwS2V5KFxuICAgIHdyYXBwaW5nS2V5OiBzdHJpbmcgfCBLZXkgfCBKV0suS2V5LFxuICAgIGtleTogSldLLktleVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghaXNTeW1tZXRyaWNLZXkoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkQXJndW1lbnRFeGNlcHRpb24oXG4gICAgICAgICdPbmx5IGFsbG93aW5nIHdyYXBwaW5nIG9mIHN5bW1ldHJpYyBrZXlzLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZW5jcnlwdFRvU3RyaW5nKHdyYXBwaW5nS2V5LCBrZXkudG9KU09OKHRydWUpKTtcbiAgfVxuXG4gIC8vIFRPRE9cbiAgLy8gYXN5bmMgd3JhcFB1YmxpY0tleTxUPigpO1xuICAvLyBhc3luYyB3cmFwUHJpdmF0ZUtleTxUPigpO1xuXG4gIGFzeW5jIGVuY3J5cHRXaXRoTmV3S2V5KHdyYXBwaW5nS2V5SWQ6IHN0cmluZywgY2lwaGVyQ2xlYXJKc29uOiBKU09OT2JqZWN0KSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIHdyYXBwaW5nS2V5SWQsXG4gICAgICBrZXkudG9KU09OKHRydWUpXG4gICAgKTtcbiAgICBjb25zdCBjaXBoZXIgPSBhd2FpdCB0aGlzLmVuY3J5cHRUb1N0cmluZyhrZXksIGNpcGhlckNsZWFySnNvbik7XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5LFxuICAgICAgd3JhcHBpbmdLZXlJZCxcbiAgICAgIHdyYXBwZWRLZXksXG4gICAgICBjaXBoZXIsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWdyYXBoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIva2V5L2tleS1ncmFwaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUd2QixPQUFPLEVBQ0wsS0FBSyxFQUVMLGlCQUFpQixFQUNqQixjQUFjLEdBQ2YsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUNwQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsaUJBQWlCLElBQUksR0FBRyxHQUN6QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUdMLGdCQUFnQixFQUVoQixnQkFBZ0IsRUFJaEIsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDOzs7OztBQVNyQixNQUFNLE9BQU8sZUFBZTtJQUUxQixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLEtBQUs7SUFFTCxZQUNVLGlCQUFvQyxFQUNwQyxVQUFzQixFQUN0QixVQUE2QjtRQUY3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFFckMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLEtBQUss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QUFDO1FBQzlELENBQUM7S0FBQTtJQUVELG9DQUFvQztJQUNwQyw0Q0FBNEM7SUFDdEMsT0FBTyxDQUNYLFdBQW1DLEVBQ25DLEdBQVk7O1lBRVosSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxJQUFJLHNCQUFzQixDQUM5QiwyQ0FBMkMsQ0FDNUMsQ0FBQzthQUNIO1lBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztLQUFBO0lBRUQsT0FBTztJQUNQLDRCQUE0QjtJQUM1Qiw2QkFBNkI7SUFFdkIsaUJBQWlCLENBQUMsYUFBcUIsRUFBRSxlQUEyQjs7WUFDeEUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FDM0MsYUFBYSxFQUNiLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQ2pCLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRWhFLE9BQU87Z0JBQ0wsR0FBRztnQkFDSCxhQUFhO2dCQUNiLFVBQVU7Z0JBQ1YsTUFBTTthQUNQLENBQUM7UUFDSixDQUFDO0tBQUE7Ozs7WUF6V0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFqQ0MsaUJBQWlCO1lBY1YsVUFBVTtZQUhqQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZ3JhcGhsaWIsIHsgR3JhcGggfSBmcm9tICdAZGFncmVqcy9ncmFwaGxpYic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHtcbiAgYXNKd2ssXG4gIERlY3J5cHRPcHRpb25zLFxuICBFbmNyeXB0aW9uU2VydmljZSxcbiAgaXNTeW1tZXRyaWNLZXksXG59IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEtjQmFkQXJndW1lbnRFeGNlcHRpb24sXG4gIEtjQmFkTG9naWNFeGNlcHRpb24sXG4gIEtjQmFkU3RhdGVFeGNlcHRpb24sXG4gIEtjRW5jcnlwdGlvbkV4Y2VwdGlvbixcbiAgS2NOb3RGb3VuZEV4Y2VwdGlvbixcbn0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7XG4gIEtleUZhY3RvcnlTZXJ2aWNlLFxuICBLZXlGYWN0b3J5U2VydmljZSBhcyBLRlMsXG59IGZyb20gJy4va2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlLCBVc2VyS2V5cyB9IGZyb20gJy4va2V5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgS2V5LFxuICBLZXlHcmFwaEVkZ2UsXG4gIEtleUdyYXBoRWRnZVR5cGUsXG4gIEtleUdyYXBoTm9kZSxcbiAgS2V5R3JhcGhOb2RlVHlwZSxcbiAgS2V5R3JhcGhSZXNwb25zZSxcbiAgS2V5TGluayxcbiAgUGFzc0tleSxcbiAgUGF5bG9hZFR5cGUsXG59IGZyb20gJy4va2V5LnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBHcmFwaEtleSBleHRlbmRzIEtleSB7XG4gIHRhc2s/OiBQcm9taXNlPGFueT47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBLZXlHcmFwaFNlcnZpY2Uge1xuICBwcml2YXRlIGdyYXBoOiBHcmFwaDtcbiAgLy8gcHJpdmF0ZSBrZXlDYWNoZToge1xuICAvLyAgIFtpZDogc3RyaW5nXTogS2V5O1xuICAvLyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucHVyZ2VLZXlzKCk7XG4gIH1cblxuICBwdXJnZUtleXMoKSB7XG4gICAgdGhpcy5ncmFwaCA9IG5ldyBHcmFwaCgpO1xuICAgIC8vIHRoaXMua2V5Q2FjaGUgPSBudWxsO1xuICB9XG5cbiAgYXN5bmMgcG9wdWxhdGVLZXlzKHVzZXJLZXk6IFVzZXJLZXlzKSB7XG4gICAgdGhpcy5rZXlTZXJ2aWNlLnNldEtleXMoe1xuICAgICAgcGFzc0tleTogdXNlcktleS5wYXNzS2V5LFxuICAgICAgbWFzdGVyS2V5OiBhd2FpdCB0aGlzLmtleVNlcnZpY2UubG9hZE1hc3RlcktleSh1c2VyS2V5Lm1hc3RlcktleS5pZCksXG4gICAgICByb290S2V5OiBhd2FpdCB0aGlzLnVud3JhcEtleSh1c2VyS2V5Lm1hc3RlcktleS5pZCwgdXNlcktleS5yb290S2V5LmlkKSxcbiAgICAgIHB4azogYXdhaXQgdGhpcy51bndyYXBLZXkodXNlcktleS5tYXN0ZXJLZXkuaWQsIHVzZXJLZXkucHhrLmlkKSxcbiAgICAgIHNpZ1B4azogYXdhaXQgdGhpcy51bndyYXBLZXkodXNlcktleS5tYXN0ZXJLZXkuaWQsIHVzZXJLZXkuc2lnUHhrLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIGhhc0tleShrZXlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuICEhdGhpcy5ncmFwaC5ub2RlKGtleUlkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZShpZCwgdHlwZSk6IEdyYXBoS2V5IHwgUGFzc0tleSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ3JhcGgubm9kZShpZCk7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICB0aHJvdyBuZXcgS2NOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgYEtleSBncmFwaHMgZG9lcyBub3QgY29udGFpbiBrZXkgaWQ6ICR7aWR9YFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG5vZGUudHlwZSAhPT0gdHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oYEtleSB3aXRoIGlkICR7aWR9IGlzIG5vdCBvZiB0eXBlICR7dHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUuZGF0YTtcbiAgfVxuXG4gIGtleShpZCk6IEdyYXBoS2V5IHtcbiAgICByZXR1cm4gdGhpcy5nZXROb2RlKGlkLCBLZXlHcmFwaE5vZGVUeXBlLktleSk7XG4gIH1cblxuICBwYXNzS2V5KGlkKTogUGFzc0tleSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Tm9kZShpZCwgS2V5R3JhcGhOb2RlVHlwZS5QYXNzS2V5KTtcbiAgfVxuXG4gIGFkZEtleXMoc3JjOiBLZXlHcmFwaFJlc3BvbnNlKSB7XG4gICAgLy8gS2V5c1xuICAgIGlmIChzcmMua2V5cykge1xuICAgICAgLy8gV2hhdCBrZXkgZ3JhcGggcmV0dXJucyBjYW4gbm90IGJlIGN1c3RvbWl6ZWQuIFNvIGtleXMgYXJlIGVzc2VudGlhbGx5IGltbXV0YWJsZS5cbiAgICAgIC8vIFRoZXJlZm9yZSwgaWYgYSBrZXkgZXhpc3RzLCB0aGVyZSdzIG5vIHJlYXNvbiB0byB1cGRhdGUgaXQuXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBzcmMua2V5cykge1xuICAgICAgICAvLyBOb3RlIHVzaW5nIFJlbGF5IGdsb2JhbCBpZCBhbGxvd3MgdXMgdG8gbm90IHdvcnJ5IGFib3V0IGNsYXNoaW5nIG5vZGUgaWRcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzTm9kZShrZXkuaWQpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub2RlOiBLZXlHcmFwaE5vZGUgPSB7XG4gICAgICAgICAgdHlwZTogS2V5R3JhcGhOb2RlVHlwZS5LZXksXG4gICAgICAgICAgZGF0YTogXy5jbG9uZURlZXAoa2V5KSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmdyYXBoLnNldE5vZGUoa2V5LmlkLCBub2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBLZXlMaW5rc1xuICAgIGlmIChzcmMua2V5TGlua3MpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5TGluayBvZiBzcmMua2V5TGlua3MpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzRWRnZShrZXlMaW5rLndyYXBwaW5nS2V5SWQsIGtleUxpbmsua2V5SWQpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlZGdlOiBLZXlHcmFwaEVkZ2UgPSB7XG4gICAgICAgICAgdHlwZTogS2V5R3JhcGhFZGdlVHlwZS5LZXlMaW5rLFxuICAgICAgICAgIGRhdGE6IF8uY2xvbmVEZWVwKGtleUxpbmspLFxuICAgICAgICB9O1xuICAgICAgICAvLyBFZGdlIGdvZXMgZnJvbSB3cmFwcGluZyBrZXkgdG8gd3JhcHBlZCBrZXkuXG4gICAgICAgIHRoaXMuZ3JhcGguc2V0RWRnZShrZXlMaW5rLndyYXBwaW5nS2V5SWQsIGtleUxpbmsua2V5SWQsIGVkZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBhc3NLZXlMaW5rc1xuICAgIGlmIChzcmMucGFzc0tleUxpbmtzKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhc3NLZXlMaW5rIG9mIHNyYy5wYXNzS2V5TGlua3MpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzRWRnZShwYXNzS2V5TGluay5wYXNzS2V5SWQsIHBhc3NLZXlMaW5rLmtleUlkKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWRnZTogS2V5R3JhcGhFZGdlID0ge1xuICAgICAgICAgIHR5cGU6IEtleUdyYXBoRWRnZVR5cGUuUGFzc0tleUxpbmssXG4gICAgICAgICAgZGF0YTogXy5jbG9uZURlZXAocGFzc0tleUxpbmspLFxuICAgICAgICB9O1xuICAgICAgICAvLyBFZGdlIGdvZXMgZnJvbSB3cmFwcGluZyBrZXkgdG8gd3JhcHBlZCBrZXkuXG4gICAgICAgIHRoaXMuZ3JhcGguc2V0RWRnZShwYXNzS2V5TGluay5wYXNzS2V5SWQsIHBhc3NLZXlMaW5rLmtleUlkLCBlZGdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgZ3JhcGggaXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGguIFRoZXNlIGFyZSBsYXppbHkgY2FsY3VsYXRlZC5cbiAgICAvLyB0aGlzLmtleUNhY2hlID0gbnVsbDtcbiAgfVxuXG4gIHRyYWNlUGF0aChkaXN0YW5jZXMsIGtleUlkOiBzdHJpbmcpOiBLZXlHcmFwaEVkZ2VbXSB7XG4gICAgLy8gVGhlIG5vZGUgbGFiZWwgaXMgdGhlIHNhbWUgYXMgdGhlIGlkIG9mIHRoZSBrZXkgbm9kZXMuXG4gICAgY29uc3QgcmV0OiBLZXlHcmFwaEVkZ2VbXSA9IFtdO1xuICAgIGxldCBub2RlID0ga2V5SWQ7XG4gICAgaWYgKCFkaXN0YW5jZXNbbm9kZV0ucHJlZGVjZXNzb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHdoaWxlIChkaXN0YW5jZXNbbm9kZV0ucHJlZGVjZXNzb3IpIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gZGlzdGFuY2VzW25vZGVdLnByZWRlY2Vzc29yO1xuICAgICAgcmV0LnB1c2godGhpcy5ncmFwaC5lZGdlKGNoaWxkLCBub2RlKSk7XG4gICAgICBub2RlID0gY2hpbGQ7XG4gICAgfVxuXG4gICAgLy8gQWZ0ZXIgcmV2ZXJzZSwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIHBhc3NrZXlcbiAgICByZXQucmV2ZXJzZSgpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGdldFBhdGgoa25vd25LZXlJZDogc3RyaW5nLCBrZXlJZDogc3RyaW5nKTogS2V5R3JhcGhFZGdlW10ge1xuICAgIGlmICgha25vd25LZXlJZCB8fCB0eXBlb2Yga25vd25LZXlJZCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBLY0VuY3J5cHRpb25FeGNlcHRpb24oXG4gICAgICAgIGBQYXJhbSBrbm93bktleUlkIHdyb25nIGZvcm1hdDogJHtrbm93bktleUlkfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICgha2V5SWQgfHwgdHlwZW9mIGtleUlkICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEtjRW5jcnlwdGlvbkV4Y2VwdGlvbihgUGFyYW0ga2V5SWQgd3JvbmcgZm9ybWF0OiAke2tleUlkfWApO1xuICAgIH1cblxuICAgIC8vID0+IHsgQTogeyBkaXN0YW5jZTogMCB9LFxuICAgIC8vICAgICAgQjogeyBkaXN0YW5jZTogNiwgcHJlZGVjZXNzb3I6ICdDJyB9LFxuICAgIC8vICAgICAgQzogeyBkaXN0YW5jZTogNCwgcHJlZGVjZXNzb3I6ICdBJyB9LFxuICAgIC8vICAgICAgRDogeyBkaXN0YW5jZTogMiwgcHJlZGVjZXNzb3I6ICdBJyB9LFxuICAgIC8vICAgICAgRTogeyBkaXN0YW5jZTogOCwgcHJlZGVjZXNzb3I6ICdGJyB9LFxuICAgIC8vICAgICAgRjogeyBkaXN0YW5jZTogNCwgcHJlZGVjZXNzb3I6ICdEJyB9IH1cbiAgICBjb25zdCBkaXN0YW5jZXMgPSBncmFwaGxpYi5hbGcuZGlqa3N0cmEodGhpcy5ncmFwaCwga25vd25LZXlJZCk7XG5cbiAgICAvLyBUcmFjZSBwYXRoIGZyb20ga2V5SWQgdG8ga25vd25LZXlJZFxuICAgIHJldHVybiB0aGlzLnRyYWNlUGF0aChkaXN0YW5jZXMsIGtleUlkKTtcbiAgfVxuXG4gIGFzeW5jIGdldEp3a0tleShcbiAgICBrZXlPcklkOiBzdHJpbmcgfCBLZXksXG4gICAgZ2V0S2V5SWRDYWxsYmFjaz86ICgpID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZ1xuICApOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0S2V5KGtleU9ySWQsIGdldEtleUlkQ2FsbGJhY2spKS5qd2s7XG4gIH1cblxuICAvLyBXZSBhc3N1bWUgdGhhdCB3aGVuIGEga2V5SWQgaXMgZmV0Y2hlZCwgdGhlIGtleSBncmFwaFxuICAvLyBmb3IgdGhlIGtleSBpcyBhbHNvIHJldHVybmVkIGFuZCBtZXJnZWQgaW50byB0aGUgY2xpZW50LXNpZGVcbiAgLy8ga2V5IGdyYXBoLiBCeSBpbnNpc3RpbmcgYSBrZXlJZCBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIHRoZVxuICAvLyBhY3R1YWwga2V5IHdlIGVuc3VyZSBrZXktZ3JhcGggaXMgY29uc2lzdGVudC5cbiAgYXN5bmMgZ2V0S2V5KFxuICAgIGtleU9ySWQ6IHN0cmluZyB8IEtleSxcbiAgICBnZXRLZXlJZENhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTxzdHJpbmc+IHwgc3RyaW5nXG4gICk6IFByb21pc2U8S2V5PiB7XG4gICAgbGV0IGtleUlkID0gdHlwZW9mIGtleU9ySWQgPT09ICdzdHJpbmcnID8ga2V5T3JJZCA6IGtleU9ySWQ/LmlkO1xuXG4gICAgaWYgKCF0aGlzLmhhc0tleShrZXlJZCkgJiYgZ2V0S2V5SWRDYWxsYmFjaykge1xuICAgICAgY29uc3Qga2V5SWRGcm9tQ2FsbGJhY2sgPSBhd2FpdCBnZXRLZXlJZENhbGxiYWNrKCk7XG5cbiAgICAgIGlmIChrZXlJZCAhPSBudWxsICYmIGtleUlkICE9IGtleUlkRnJvbUNhbGxiYWNrKSB7XG4gICAgICAgIHRocm93IG5ldyBLY0JhZExvZ2ljRXhjZXB0aW9uKFxuICAgICAgICAgICdSZXF1ZXN0ZWQga2V5SWQgaXMgbm90IGluIHRoZSBrZXkgY2FjaGUsIHNvIGFuIEFQSSByZXF1ZXN0IHdhcyBtYWRlIHRvIHBvcHVsYXRlIHRoZSBrZXkgY2FjaGUuJyArXG4gICAgICAgICAgICAnQnV0IHRoZSBrZXkgcmV0dXJuZWQgYnkgdGhlIEFQSSBkb2VzIE5PVCBtYXRjaCB0aGUgcmVxdWVzdGVkIGtleUlkLicgK1xuICAgICAgICAgICAgJ1RoaXMgaXMgYSBwcm9ncmFtbWluZyBsb2dpYyBlcnJvci4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGtleUlkID0ga2V5SWRGcm9tQ2FsbGJhY2s7XG4gICAgfVxuICAgIC8vIGVsc2UsIGNvbnRpbnVlIGFuZCBsZXQgaXQgZmFpbC5cblxuICAgIGNvbnN0IGtleSA9IHRoaXMua2V5KGtleUlkKTtcbiAgICBpZiAoa2V5Lmp3aykge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudW53cmFwS2V5KHRoaXMua2V5U2VydmljZS5jdXJyZW50TWFzdGVyS2V5LmlkLCBrZXlJZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdW53cmFwTGluayhcbiAgICB3cmFwcGluZ0tleTogSldLLktleSxcbiAgICBsaW5rOiBLZXlHcmFwaEVkZ2UsXG4gICAgZHN0S2V5OiBHcmFwaEtleVxuICApIHtcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gSlNPTi5wYXJzZShsaW5rLmRhdGEud3JhcHBlZEtleSk7XG5cbiAgICAvLyBTaWduYXR1cmVzIG9mIGtleXMgY29udGFpbiB0aGUga2V5IGl0c2VsZi4gVGhpcyB3YXkgd2Ugb25seSBuZWVkXG4gICAgLy8gdG8gYWNjZXNzIHRoZSBLZXlMaW5rcyB0byBkZWNyeXB0L3ZlcmlmeSBrZXlzLlxuICAgIGxldCBuZXh0UmF3S2V5O1xuICAgIGlmICh3cmFwcGVkS2V5LnNpZ25hdHVyZXMpIHtcbiAgICAgIG5leHRSYXdLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnZlcmlmeSh3cmFwcGluZ0tleSwgd3JhcHBlZEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRSYXdLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgIHdyYXBwaW5nS2V5LFxuICAgICAgICB3cmFwcGVkS2V5XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBuZXN0ZWQga2V5cy4gaS5lLiBFbmN7SzF9e0syfXtLM30ocmF3IGtleSA0KSwgd2hlcmU6XG4gICAgLy8gICBLMTogbGluay53cmFwcGluZ0tleVxuICAgIC8vICAgSzI6IGxpbmsubmVzdGVkV3JhcHBpbmdLZXlbMF1cbiAgICAvLyAgIEszOiBsaW5rLm5lc3RlZFdyYXBwaW5nS2V5WzFdXG4gICAgaWYgKGxpbmsudHlwZSA9PSBLZXlHcmFwaEVkZ2VUeXBlLktleUxpbmspIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBsaW5rLmRhdGEgYXMgS2V5TGluaztcbiAgICAgIGlmIChkYXRhLm5lc3RlZFdyYXBwaW5nS2V5SWRzKSB7XG4gICAgICAgIGZvciAoY29uc3QgbmVzdGVkV3JhcHBpbmdLZXlJZCBvZiBkYXRhLm5lc3RlZFdyYXBwaW5nS2V5SWRzKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5nZXRLZXkobmVzdGVkV3JhcHBpbmdLZXlJZCk7XG4gICAgICAgICAgbmV4dFJhd0tleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAgICAgIGtleS5qd2ssXG4gICAgICAgICAgICBuZXh0UmF3S2V5XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRzdEtleS5qd2sgPSBhd2FpdCBLRlMuYXNLZXkobmV4dFJhd0tleSk7XG4gICAgZHN0S2V5LnRhc2sgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdW53cmFwKGtleTogSldLLktleSwgcGF0aDogS2V5R3JhcGhFZGdlW10pOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICBmb3IgKGNvbnN0IGxpbmsgb2YgcGF0aCkge1xuICAgICAgY29uc3QgZHN0S2V5ID0gdGhpcy5rZXkobGluay5kYXRhLmtleUlkKTtcbiAgICAgIGlmIChkc3RLZXkuandrKSB7XG4gICAgICAgIGtleSA9IGRzdEtleS5qd2s7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRzdEtleS50YXNrKSB7XG4gICAgICAgIGRzdEtleS50YXNrID0gdGhpcy5fdW53cmFwTGluayhrZXksIGxpbmssIGRzdEtleSk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGRzdEtleS50YXNrO1xuICAgICAga2V5ID0gZHN0S2V5Lmp3aztcbiAgICB9XG5cbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVud3JhcFdpdGhQYXNzS2V5KFxuICAgIHBhc3NLZXlJZDogc3RyaW5nLFxuICAgIHBhc3NLZXk6IEpXSy5LZXksXG4gICAga2V5SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleT4ge1xuICAgIC8vIEdldCBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkga2V5LlxuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGgocGFzc0tleUlkLCBrZXlJZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGtleUlkLFxuICAgICAgandrOiBhd2FpdCB0aGlzLl91bndyYXAocGFzc0tleSwgcGF0aCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHVud3JhcEtleShtYXN0ZXJLZXlJZDogc3RyaW5nLCBrZXlJZDogc3RyaW5nKTogUHJvbWlzZTxLZXk+IHtcbiAgICAvLyBUaGUgZmlyc3Qga2V5IHNob3VsZCBiZSBhIG1hc3RlcktleVxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5sb2FkTWFzdGVyS2V5KG1hc3RlcktleUlkKTtcblxuICAgIGlmIChtYXN0ZXJLZXlJZCA9PT0ga2V5SWQpIHtcbiAgICAgIHJldHVybiBtYXN0ZXJLZXk7XG4gICAgfVxuXG4gICAgLy8gR2V0IHBhdGggb2YgdGhlIGRpcmVjdG9yeSBrZXkuXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aChtYXN0ZXJLZXkuaWQsIGtleUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDoga2V5SWQsXG4gICAgICBqd2s6IGF3YWl0IHRoaXMuX3Vud3JhcChtYXN0ZXJLZXkuandrLCBwYXRoKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZGVjcnlwdEZyb21TdHJpbmc8VD4oXG4gICAga2V5T3JJZDogc3RyaW5nIHwgS2V5LFxuICAgIGNpcGhlckRhdGE6IHN0cmluZyxcbiAgICBvcHRpb25zPzogRGVjcnlwdE9wdGlvbnNcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKGNpcGhlckRhdGEpIHtcbiAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMuZ2V0SndrS2V5KGtleU9ySWQpO1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgIGtleSxcbiAgICAgICAgSlNPTi5wYXJzZShjaXBoZXJEYXRhKSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKSkgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGRlY3J5cHRGaWxlKGtleUlkOiBzdHJpbmcsIGZpbGU6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5nZXRKd2tLZXkoa2V5SWQpO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KGtleSwgZmlsZSwge1xuICAgICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLlVJTlRfOF9BUlJBWSxcbiAgICB9KSkgYXMgYW55O1xuICB9XG5cbiAgLy8gVE9ETyByZW5hbWUgdGhpcyB0byBlbmNyeXB0KCkgYW5kIHVzZSBhcyB0aGUgbW9zdCBjb21tb24gdXNlY2FzZVxuICBhc3luYyBlbmNyeXB0VG9TdHJpbmcoXG4gICAga2V5OiBzdHJpbmcgfCBLZXkgfCBKV0suS2V5LFxuICAgIGNvbnRlbnQ6IGFueVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIEVtcHR5IHN0cmluZyBzaG91bGQgYmUgZW5jcnlwdGVkIHNpbmNlIHlvdSB3YW50IHRvIGNsZWFyIHRoZSBmaWVsZC5cbiAgICAvLyBOdWxsIGlzIG5vdCBlbmNyeXB0ZWQgYmVjYXVzZSBpdCdzIG5vdCB2YWxpZCBKU09OIGluIHRoZSBvbGQgSlNPTiBzcGVjLiBVc2VcbiAgICAvLyBlbXB0eSBzdHJpbmcgaW5zdGVhZC4gSXQnbGwgZnVuY3Rpb24gYXMgYSBsb2dpYyBmYWxzZSBhcyB3ZWxsLlxuICAgIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGluIGVtcHR5IHN0cmluZyBtZWFucyBpdCdsbCBiZSBlbmNyeXB0ZWQgd2hpY2ggdmVyaWZpZXNcbiAgICAvLyBpdCdzIGludGVncml0eS4gQnV0IHdlIHN0aWxsIHdhbnQgdG8gaGF2ZSBhIHdheSB0byBzZXQgdGhlIERCIGZpZWxkXG4gICAgLy8gdG8gTlVMTCwgc28gd2UgZXhwbGljaXRseSByZXR1cm4gbnVsbCB3aGVuIGNvbnRlbnQgPT0gbnVsbC4gQSBudWxsXG4gICAgLy8gdmFyaWFibGUgaW4gZ3JhcGhxbCBtdXRhdGlvbiBvbiBLQyBzZXJ2ZXIgY2xlYXJzIHRoZSBmaWVsZCB0byBOVUxMLlxuICAgIGlmIChjb250ZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGp3ayA9IGFzSndrKGtleSkgfHwgKGF3YWl0IHRoaXMuZ2V0SndrS2V5KGtleSBhcyBzdHJpbmcgfCBLZXkpKTtcbiAgICByZXR1cm4gdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoandrLCBjb250ZW50KTtcbiAgfVxuXG4gIC8vIFdyYXBzIGEgc3ltbWV0cmljIGVuY3J5cHRpb24ga2V5LlxuICAvLyBUaHJvd3MgZXhjZXB0aW9uIGlmIHdyYXBwaW5nIHB1YmxpYyBrZXlzLlxuICBhc3luYyB3cmFwS2V5KFxuICAgIHdyYXBwaW5nS2V5OiBzdHJpbmcgfCBLZXkgfCBKV0suS2V5LFxuICAgIGtleTogSldLLktleVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghaXNTeW1tZXRyaWNLZXkoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkQXJndW1lbnRFeGNlcHRpb24oXG4gICAgICAgICdPbmx5IGFsbG93aW5nIHdyYXBwaW5nIG9mIHN5bW1ldHJpYyBrZXlzLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZW5jcnlwdFRvU3RyaW5nKHdyYXBwaW5nS2V5LCBrZXkudG9KU09OKHRydWUpKTtcbiAgfVxuXG4gIC8vIFRPRE9cbiAgLy8gYXN5bmMgd3JhcFB1YmxpY0tleTxUPigpO1xuICAvLyBhc3luYyB3cmFwUHJpdmF0ZUtleTxUPigpO1xuXG4gIGFzeW5jIGVuY3J5cHRXaXRoTmV3S2V5KHdyYXBwaW5nS2V5SWQ6IHN0cmluZywgY2lwaGVyQ2xlYXJKc29uOiBKU09OT2JqZWN0KSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIHdyYXBwaW5nS2V5SWQsXG4gICAgICBrZXkudG9KU09OKHRydWUpXG4gICAgKTtcbiAgICBjb25zdCBjaXBoZXIgPSBhd2FpdCB0aGlzLmVuY3J5cHRUb1N0cmluZyhrZXksIGNpcGhlckNsZWFySnNvbik7XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5LFxuICAgICAgd3JhcHBpbmdLZXlJZCxcbiAgICAgIHdyYXBwZWRLZXksXG4gICAgICBjaXBoZXIsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -13,4 +13,4 @@ export var PayloadType;
|
|
|
13
13
|
PayloadType["JSON"] = "JSON";
|
|
14
14
|
PayloadType["UINT_8_ARRAY"] = "UINT_8_ARRAY";
|
|
15
15
|
})(PayloadType || (PayloadType = {}));
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2tleS9rZXkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0RBLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0JBQVcsQ0FBQTtJQUNYLHVDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRzNCO0FBT0QsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQix1Q0FBbUIsQ0FBQTtJQUNuQiwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQW1CRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDRCQUFhLENBQUE7SUFDYiw0Q0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHsgSlNPTk9iamVjdCwgUGFzc0tleU5vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgSGFzRWRnZXMsIFNvbWVSZXF1aXJlZCB9IGZyb20gJy4uL19jb21tb24vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleSB7XG4gIGlkOiBzdHJpbmc7XG4gIHBiaz86IHN0cmluZztcbiAgandrPzogSldLLktleTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzS2V5UGFyYW1zIHtcbiAga2lkOiBzdHJpbmc7XG4gIHNhbHQ6IHN0cmluZztcbiAgaXRlcmF0aW9uczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NJZHBQYXJhbXMge1xuICBzYWx0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYm9wS2V5UGFyYW1zIHtcbiAga2lkOiBzdHJpbmc7XG4gIHNhbHQ6IHN0cmluZztcbiAgaXRlcmF0aW9uczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NJZHBWZXJpZmllciB7XG4gIHdyYXBwZWRQcks6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xuICBwYms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExib3BLZXlWZXJpZmllciB7XG4gIHdyYXBwZWRLZXk6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xuICBrZXk6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xufVxuXG5leHBvcnQgdHlwZSBQYXNzS2V5ID0gU29tZVJlcXVpcmVkPFBhc3NLZXlOb2RlLCAnaWQnPjtcblxuZXhwb3J0IGludGVyZmFjZSBLZXlMaW5rIHtcbiAga2V5SWQ6IHN0cmluZztcbiAgd3JhcHBpbmdLZXlJZDogc3RyaW5nO1xuICBuZXN0ZWRXcmFwcGluZ0tleUlkczogc3RyaW5nW107XG4gIHdyYXBwZWRLZXk6IHN0cmluZzsgLy8gSldFIGpzb24gc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc0tleUxpbmsge1xuICBrZXlJZDogc3RyaW5nO1xuICBwYXNzS2V5SWQ6IHN0cmluZztcbiAgd3JhcHBlZEtleTogc3RyaW5nOyAvLyBKV0UganNvbiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gS2V5R3JhcGhOb2RlVHlwZSB7XG4gIEtleSA9ICdrZXknLFxuICBQYXNzS2V5ID0gJ3Bhc3NLZXknLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUdyYXBoTm9kZSB7XG4gIHR5cGU6IEtleUdyYXBoTm9kZVR5cGU7XG4gIGRhdGE6IEtleSB8IFBhc3NLZXk7XG59XG5cbmV4cG9ydCBlbnVtIEtleUdyYXBoRWRnZVR5cGUge1xuICBLZXlMaW5rID0gJ2tleUxpbmsnLFxuICBQYXNzS2V5TGluayA9ICdwYXNzS2V5TGluaycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5R3JhcGhFZGdlIHtcbiAgdHlwZTogS2V5R3JhcGhFZGdlVHlwZTtcbiAgZGF0YTogS2V5TGluayB8IFBhc3NLZXlMaW5rO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUdyYXBoUmVzcG9uc2Uge1xuICBrZXlzPzogS2V5W107XG4gIGtleUxpbmtzPzogS2V5TGlua1tdO1xuICBwYXNzS2V5cz86IFBhc3NLZXlbXTtcbiAgcGFzc0tleUxpbmtzPzogUGFzc0tleUxpbmtbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXNLZXlHcmFwaCB7XG4gIC8vIFRoZSBuYW1lIG9mIHRoZSBrZXlHcmFwaCBmaWVsZCByZXR1cm5lZCBmcm9tIGJvdGggcXVlcmllcyBhbmQgbXV0YXRpb25zIGFyZSB0aGUgc2FtZVxuICBrZXlHcmFwaD86IEtleUdyYXBoUmVzcG9uc2U7XG59XG5cbmV4cG9ydCBlbnVtIFBheWxvYWRUeXBlIHtcbiAgSlNPTiA9ICdKU09OJyxcbiAgVUlOVF84X0FSUkFZID0gJ1VJTlRfOF9BUlJBWScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVyaXZlS2V5UmVzdWx0IHtcbiAgandrOiBKV0suS2V5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcml2ZVBhc3NJZHBQYXJhbXMgZXh0ZW5kcyBQYXNzSWRwUGFyYW1zIHtcbiAgcGFzc3dvcmQ6IENyeXB0b0tleTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXJpdmVQYXNzS2V5UGFyYW1zIGV4dGVuZHMgUGFzc0tleVBhcmFtcyB7XG4gIHBhc3N3b3JkOiBDcnlwdG9LZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVyaXZlTGJvcEtleVBhcmFtcyBleHRlbmRzIFBhc3NLZXlQYXJhbXMge1xuICBwYXNzd29yZDogQ3J5cHRvS2V5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0tleUdyYXBoRWRnZXM8VD4gZXh0ZW5kcyBIYXNLZXlHcmFwaCB7XG4gIGxpc3Q6IEhhc0VkZ2VzPFQ+O1xufVxuIl19
|
|
@@ -87,4 +87,4 @@ mutation DebugExpireTpPasswordResetRequestMutation($input: DebugExpireTpPassword
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
`;
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NjZW5hcmlvL3NjZW5hcmlvLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTMUMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUE4Qjs7Ozs7Ozs7Q0FRM0UsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBOEI7Ozs7Ozs7O0NBUTNFLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQThCOzs7Ozs7Q0FNM0UsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBbUM7Ozs7Ozs7O0NBUXJGLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQW1DOzs7Ozs7OztDQVFyRixDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxDQUFtQzs7Ozs7Ozs7Q0FRckYsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLFFBQVEsQ0FBb0M7Ozs7Ozs7O0NBUXZGLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxRQUFRLENBQW9DOzs7Ozs7OztDQVF2RixDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsUUFBUSxDQUF3Qzs7Ozs7Ozs7Q0FRL0YsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHlDQUF5QyxHQUFHLFFBQVEsQ0FBaUQ7Ozs7Ozs7O0NBUWpILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncWxUeXBlZCB9IGZyb20gJy4uL19jb21tb24vYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTY2VuYXJpb011dGF0aW9uUmVzdWx0IHtcbiAgY3JlYXRlU2NlbmFyaW86IHtcbiAgICBzY2VuYXJpbzoge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENyZWF0ZVNjZW5hcmlvTXV0YXRpb24gPSBncWxUeXBlZDxDcmVhdGVTY2VuYXJpb011dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIENyZWF0ZVNjZW5hcmlvTXV0YXRpb24oJGlucHV0OiBDcmVhdGVTY2VuYXJpb0lucHV0ISkge1xuICBjcmVhdGVTY2VuYXJpbyhpbnB1dDogJGlucHV0KSB7XG4gICAgc2NlbmFyaW8ge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlU2NlbmFyaW9NdXRhdGlvblJlc3VsdCB7XG4gIHVwZGF0ZVNjZW5hcmlvOiB7XG4gICAgc2NlbmFyaW86IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBVcGRhdGVTY2VuYXJpb011dGF0aW9uID0gZ3FsVHlwZWQ8VXBkYXRlU2NlbmFyaW9NdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBVcGRhdGVTY2VuYXJpb011dGF0aW9uKCRpbnB1dDogVXBkYXRlU2NlbmFyaW9JbnB1dCEpIHtcbiAgdXBkYXRlU2NlbmFyaW8oaW5wdXQ6ICRpbnB1dCkge1xuICAgIHNjZW5hcmlvIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVNjZW5hcmlvTXV0YXRpb25SZXN1bHQge1xuICBkZWxldGVTY2VuYXJpbzoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG59XG5leHBvcnQgY29uc3QgRGVsZXRlU2NlbmFyaW9NdXRhdGlvbiA9IGdxbFR5cGVkPERlbGV0ZVNjZW5hcmlvTXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gRGVsZXRlU2NlbmFyaW9NdXRhdGlvbigkaW5wdXQ6IERlbGV0ZVNjZW5hcmlvSW5wdXQhKSB7XG4gIGRlbGV0ZVNjZW5hcmlvKGlucHV0OiAkaW5wdXQpIHtcbiAgICBpZFxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdCB7XG4gIGNyZWF0ZVNjZW5hcmlvQ2xhaW06IHtcbiAgICBzaGFyZWRDbGFpbToge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENyZWF0ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvbiA9IGdxbFR5cGVkPENyZWF0ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBDcmVhdGVTY2VuYXJpb0NsYWltTXV0YXRpb24oJGlucHV0OiBDcmVhdGVTY2VuYXJpb0NsYWltSW5wdXQhKSB7XG4gIGNyZWF0ZVNjZW5hcmlvQ2xhaW0oaW5wdXQ6ICRpbnB1dCkge1xuICAgIHNoYXJlZENsYWltIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbmNlbFNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdCB7XG4gIGNhbmNlbFNjZW5hcmlvQ2xhaW06IHtcbiAgICBzaGFyZWRDbGFpbToge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENhbmNlbFNjZW5hcmlvQ2xhaW1NdXRhdGlvbiA9IGdxbFR5cGVkPENhbmNlbFNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBDYW5jZWxTY2VuYXJpb0NsYWltTXV0YXRpb24oJGlucHV0OiBDYW5jZWxTY2VuYXJpb0NsYWltSW5wdXQhKSB7XG4gIGNhbmNlbFNjZW5hcmlvQ2xhaW0oaW5wdXQ6ICRpbnB1dCkge1xuICAgIHNoYXJlZENsYWltIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlamVjdFNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdCB7XG4gIHJlamVjdFNjZW5hcmlvQ2xhaW06IHtcbiAgICBjbGFpbUFwcHJvdmVyOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgUmVqZWN0U2NlbmFyaW9DbGFpbU11dGF0aW9uID0gZ3FsVHlwZWQ8UmVqZWN0U2NlbmFyaW9DbGFpbU11dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIFJlamVjdFNjZW5hcmlvQ2xhaW1NdXRhdGlvbigkaW5wdXQ6IFJlamVjdFNjZW5hcmlvQ2xhaW1JbnB1dCEpIHtcbiAgcmVqZWN0U2NlbmFyaW9DbGFpbShpbnB1dDogJGlucHV0KSB7XG4gICAgY2xhaW1BcHByb3ZlciB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBBcHByb3ZlU2NlbmFyaW9DbGFpbU11dGF0aW9uUmVzdWx0IHtcbiAgYXBwcm92ZVNjZW5hcmlvQ2xhaW06IHtcbiAgICBjbGFpbUFwcHJvdmVyOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgQXBwcm92ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvbiA9IGdxbFR5cGVkPEFwcHJvdmVTY2VuYXJpb0NsYWltTXV0YXRpb25SZXN1bHQ+
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NjZW5hcmlvL3NjZW5hcmlvLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTMUMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUE4Qjs7Ozs7Ozs7Q0FRM0UsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBOEI7Ozs7Ozs7O0NBUTNFLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQThCOzs7Ozs7Q0FNM0UsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBbUM7Ozs7Ozs7O0NBUXJGLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQW1DOzs7Ozs7OztDQVFyRixDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxDQUFtQzs7Ozs7Ozs7Q0FRckYsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLFFBQVEsQ0FBb0M7Ozs7Ozs7O0NBUXZGLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxRQUFRLENBQW9DOzs7Ozs7OztDQVF2RixDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsUUFBUSxDQUF3Qzs7Ozs7Ozs7Q0FRL0YsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHlDQUF5QyxHQUFHLFFBQVEsQ0FBaUQ7Ozs7Ozs7O0NBUWpILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncWxUeXBlZCB9IGZyb20gJy4uL19jb21tb24vYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTY2VuYXJpb011dGF0aW9uUmVzdWx0IHtcbiAgY3JlYXRlU2NlbmFyaW86IHtcbiAgICBzY2VuYXJpbzoge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENyZWF0ZVNjZW5hcmlvTXV0YXRpb24gPSBncWxUeXBlZDxDcmVhdGVTY2VuYXJpb011dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIENyZWF0ZVNjZW5hcmlvTXV0YXRpb24oJGlucHV0OiBDcmVhdGVTY2VuYXJpb0lucHV0ISkge1xuICBjcmVhdGVTY2VuYXJpbyhpbnB1dDogJGlucHV0KSB7XG4gICAgc2NlbmFyaW8ge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlU2NlbmFyaW9NdXRhdGlvblJlc3VsdCB7XG4gIHVwZGF0ZVNjZW5hcmlvOiB7XG4gICAgc2NlbmFyaW86IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBVcGRhdGVTY2VuYXJpb011dGF0aW9uID0gZ3FsVHlwZWQ8VXBkYXRlU2NlbmFyaW9NdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBVcGRhdGVTY2VuYXJpb011dGF0aW9uKCRpbnB1dDogVXBkYXRlU2NlbmFyaW9JbnB1dCEpIHtcbiAgdXBkYXRlU2NlbmFyaW8oaW5wdXQ6ICRpbnB1dCkge1xuICAgIHNjZW5hcmlvIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVNjZW5hcmlvTXV0YXRpb25SZXN1bHQge1xuICBkZWxldGVTY2VuYXJpbzoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG59XG5leHBvcnQgY29uc3QgRGVsZXRlU2NlbmFyaW9NdXRhdGlvbiA9IGdxbFR5cGVkPERlbGV0ZVNjZW5hcmlvTXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gRGVsZXRlU2NlbmFyaW9NdXRhdGlvbigkaW5wdXQ6IERlbGV0ZVNjZW5hcmlvSW5wdXQhKSB7XG4gIGRlbGV0ZVNjZW5hcmlvKGlucHV0OiAkaW5wdXQpIHtcbiAgICBpZFxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdCB7XG4gIGNyZWF0ZVNjZW5hcmlvQ2xhaW06IHtcbiAgICBzaGFyZWRDbGFpbToge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENyZWF0ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvbiA9IGdxbFR5cGVkPENyZWF0ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBDcmVhdGVTY2VuYXJpb0NsYWltTXV0YXRpb24oJGlucHV0OiBDcmVhdGVTY2VuYXJpb0NsYWltSW5wdXQhKSB7XG4gIGNyZWF0ZVNjZW5hcmlvQ2xhaW0oaW5wdXQ6ICRpbnB1dCkge1xuICAgIHNoYXJlZENsYWltIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbmNlbFNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdCB7XG4gIGNhbmNlbFNjZW5hcmlvQ2xhaW06IHtcbiAgICBzaGFyZWRDbGFpbToge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENhbmNlbFNjZW5hcmlvQ2xhaW1NdXRhdGlvbiA9IGdxbFR5cGVkPENhbmNlbFNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBDYW5jZWxTY2VuYXJpb0NsYWltTXV0YXRpb24oJGlucHV0OiBDYW5jZWxTY2VuYXJpb0NsYWltSW5wdXQhKSB7XG4gIGNhbmNlbFNjZW5hcmlvQ2xhaW0oaW5wdXQ6ICRpbnB1dCkge1xuICAgIHNoYXJlZENsYWltIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlamVjdFNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdCB7XG4gIHJlamVjdFNjZW5hcmlvQ2xhaW06IHtcbiAgICBjbGFpbUFwcHJvdmVyOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgUmVqZWN0U2NlbmFyaW9DbGFpbU11dGF0aW9uID0gZ3FsVHlwZWQ8UmVqZWN0U2NlbmFyaW9DbGFpbU11dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIFJlamVjdFNjZW5hcmlvQ2xhaW1NdXRhdGlvbigkaW5wdXQ6IFJlamVjdFNjZW5hcmlvQ2xhaW1JbnB1dCEpIHtcbiAgcmVqZWN0U2NlbmFyaW9DbGFpbShpbnB1dDogJGlucHV0KSB7XG4gICAgY2xhaW1BcHByb3ZlciB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBBcHByb3ZlU2NlbmFyaW9DbGFpbU11dGF0aW9uUmVzdWx0IHtcbiAgYXBwcm92ZVNjZW5hcmlvQ2xhaW06IHtcbiAgICBjbGFpbUFwcHJvdmVyOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgQXBwcm92ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvbiA9IGdxbFR5cGVkPEFwcHJvdmVTY2VuYXJpb0NsYWltTXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gQXBwcm92ZVNjZW5hcmlvQ2xhaW1NdXRhdGlvbigkaW5wdXQ6IEFwcHJvdmVTY2VuYXJpb0NsYWltSW5wdXQhKSB7XG4gIGFwcHJvdmVTY2VuYXJpb0NsYWltKGlucHV0OiAkaW5wdXQpIHtcbiAgICBjbGFpbUFwcHJvdmVyIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlY2VpdmVTY2VuYXJpb0NsYWltTXV0YXRpb25SZXN1bHQge1xuICByZWNlaXZlU2NlbmFyaW9DbGFpbTI6IHtcbiAgICBzaGFyZWRDbGFpbToge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFJlY2VpdmVTY2VuYXJpb0NsYWltTXV0YXRpb24gPSBncWxUeXBlZDxSZWNlaXZlU2NlbmFyaW9DbGFpbU11dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIFJlY2VpdmVTY2VuYXJpb0NsYWltTXV0YXRpb24oJGlucHV0OiBSZWNlaXZlU2NlbmFyaW9DbGFpbUlucHV0ISkge1xuICByZWNlaXZlU2NlbmFyaW9DbGFpbShpbnB1dDogJGlucHV0KSB7XG4gICAgc2hhcmVkQ2xhaW0ge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdFeHBpcmVTY2VuYXJpb0NsYWltTXV0YXRpb25SZXN1bHQge1xuICBkZWJ1Z0V4cGlyZVNjZW5hcmlvQ2xhaW06IHtcbiAgICBzY2VuYXJpb0NsYWltOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgRGVidWdFeHBpcmVTY2VuYXJpb0NsYWltTXV0YXRpb24gPSBncWxUeXBlZDxEZWJ1Z0V4cGlyZVNjZW5hcmlvQ2xhaW1NdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBEZWJ1Z0V4cGlyZVNjZW5hcmlvQ2xhaW1NdXRhdGlvbigkaW5wdXQ6IERlYnVnRXhwaXJlU2NlbmFyaW9DbGFpbUlucHV0ISkge1xuICBkZWJ1Z0V4cGlyZVNjZW5hcmlvQ2xhaW0oaW5wdXQ6ICRpbnB1dCkge1xuICAgIHNjZW5hcmlvQ2xhaW0ge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdFeHBpcmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQge1xuICBkZWJ1Z0V4cGlyZVRwUGFzc3dvcmRSZXNldFJlcXVlc3Q6IHtcbiAgICBwYXNzd29yZFJlc2V0UmVxdWVzdDoge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IERlYnVnRXhwaXJlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uID0gZ3FsVHlwZWQ8RGVidWdFeHBpcmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gRGVidWdFeHBpcmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24oJGlucHV0OiBEZWJ1Z0V4cGlyZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RJbnB1dCEpIHtcbiAgZGVidWdFeHBpcmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0KGlucHV0OiAkaW5wdXQpIHtcbiAgICBwYXNzd29yZFJlc2V0UmVxdWVzdCB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcbiJdfQ==
|
|
@@ -65,36 +65,38 @@ query ScenarioQuery(
|
|
|
65
65
|
id
|
|
66
66
|
}
|
|
67
67
|
sharedCipherData
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
sharedCipherData
|
|
73
|
-
sharedKey {
|
|
74
|
-
id
|
|
75
|
-
}
|
|
76
|
-
accessRole
|
|
77
|
-
itemKey {
|
|
78
|
-
id
|
|
79
|
-
}
|
|
80
|
-
directory {
|
|
68
|
+
receiverItems {
|
|
69
|
+
receiverDirectories {
|
|
70
|
+
edges {
|
|
71
|
+
node {
|
|
81
72
|
id
|
|
82
|
-
|
|
73
|
+
sharedCipherData
|
|
74
|
+
sharedKey {
|
|
75
|
+
id
|
|
76
|
+
}
|
|
77
|
+
accessRole
|
|
78
|
+
itemKey {
|
|
79
|
+
id
|
|
80
|
+
}
|
|
81
|
+
directory {
|
|
82
|
+
id
|
|
83
|
+
keyId
|
|
84
|
+
}
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
87
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
node {
|
|
90
|
-
id
|
|
91
|
-
sharedCipherData
|
|
92
|
-
sharedKey {
|
|
93
|
-
id
|
|
94
|
-
}
|
|
95
|
-
accessRole
|
|
96
|
-
itemKey {
|
|
88
|
+
receiverFiles {
|
|
89
|
+
edges {
|
|
90
|
+
node {
|
|
97
91
|
id
|
|
92
|
+
sharedCipherData
|
|
93
|
+
sharedKey {
|
|
94
|
+
id
|
|
95
|
+
}
|
|
96
|
+
accessRole
|
|
97
|
+
itemKey {
|
|
98
|
+
id
|
|
99
|
+
}
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
}
|
|
@@ -126,11 +128,13 @@ query SharedScenarioQuery($scenarioId: LrRelayIdInput!) {
|
|
|
126
128
|
pbk {
|
|
127
129
|
id
|
|
128
130
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
receiverItems {
|
|
132
|
+
receiverDirectories {
|
|
133
|
+
edges {
|
|
134
|
+
node {
|
|
135
|
+
id
|
|
136
|
+
wrappedItemKey
|
|
137
|
+
}
|
|
134
138
|
}
|
|
135
139
|
}
|
|
136
140
|
}
|
|
@@ -179,6 +183,7 @@ query SharedScenarioQuery($scenarioId: LrRelayIdInput!) {
|
|
|
179
183
|
}
|
|
180
184
|
asClaimReceiver {
|
|
181
185
|
received
|
|
186
|
+
assemblyKeyId
|
|
182
187
|
approvals {
|
|
183
188
|
edges {
|
|
184
189
|
node {
|
|
@@ -195,4 +200,4 @@ query SharedScenarioQuery($scenarioId: LrRelayIdInput!) {
|
|
|
195
200
|
}
|
|
196
201
|
}
|
|
197
202
|
`;
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8ucHJpdmF0ZS5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2NlbmFyaW8vc2NlbmFyaW8ucHJpdmF0ZS5ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBWTFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBMEd4RCxDQUFDO0FBS0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUEyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkZyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NlbmFyaW9Ob2RlLCBTaGFyZWRTY2VuYXJpb05vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5cbi8qKlxuICogVGhpcyBpcyBhIHF1ZXJ5IHRoYXQgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBzZXJ2aWNlcyBmb3IgbXV0YXRpb25zLiBJdFxuICogY29udGFpbnMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGluZm9ybWF0aW9uIGZvciB0aGUgaW5mb3JtYXRpb24gdGhlIHNlcnZpY2VzXG4gKiBuZWVkLiBZb3UnbGwgcHJvYmFibHkgd2FudCB0byB3cml0ZSB5b3VyIG93biBxdWVyeSB0byB5b3VyIGxpa2luZyBpZiB5b3VcbiAqIHdhbnQgdG8gcmV0cmlldmUgYSBzY2VuYXJpby4gRm9yIGV4YW1wbGUsIHRoZXJlIGEgc2VwYXJhdGUgcXVlcnkgaW4gdGhlXG4gKiBzY2VuYXJpby5zZXJ2aWNlLnNwZWMudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1F1ZXJ5UmVzdWx0IHtcbiAgc2NlbmFyaW86IFNjZW5hcmlvTm9kZTtcbn1cbmV4cG9ydCBjb25zdCBTY2VuYXJpb1F1ZXJ5ID0gZ3FsVHlwZWQ8U2NlbmFyaW9RdWVyeVJlc3VsdD5gXG5xdWVyeSBTY2VuYXJpb1F1ZXJ5KFxuICAkc2NlbmFyaW9JZDogTHJSZWxheUlkSW5wdXQhXG4pIHtcbiAgc2NlbmFyaW8oaWQ6ICRzY2VuYXJpb0lkKSB7XG4gICAgaWRcbiAgICBzdGF0ZVxuICAgIGFzc2VtYmx5IHtcbiAgICAgIHF1b3J1bVxuICAgICAgc2luZ2xlUmVqZWN0XG4gICAgICBhc3NlbWJseUtleSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgICBzdWJqZWN0S2V5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIHN1YmplY3RDaXBoZXJEYXRhXG4gICAgICBzdWJBc3NlbWJsaWVzIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIHN1YmplY3RLZXkge1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ViamVjdENpcGhlckRhdGFcbiAgICAgICAgICAgIHF1b3J1bVxuICAgICAgICAgICAgc2luZ2xlUmVqZWN0XG4gICAgICAgICAgICBhcHByb3ZlcnMge1xuICAgICAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgdHAge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY2xhaW1hbnRzIHtcbiAgICAgIGVkZ2VzIHtcbiAgICAgICAgbm9kZSB7XG4gICAgICAgICAgdHAge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICB9XG4gICAgICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJlY2VpdmVycyB7XG4gICAgICBlZGdlcyB7XG4gICAgICAgIG5vZGUge1xuICAgICAgICAgIHRwIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgfVxuICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgIH1cbiAgICAgICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgICAgICAgcmVjZWl2ZXJJdGVtcyB7XG4gICAgICAgICAgICByZWNlaXZlckRpcmVjdG9yaWVzIHtcbiAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIHNoYXJlZENpcGhlckRhdGFcbiAgICAgICAgICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhY2Nlc3NSb2xlXG4gICAgICAgICAgICAgICAgICBpdGVtS2V5IHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICAgIGtleUlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWNlaXZlckZpbGVzIHtcbiAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIHNoYXJlZENpcGhlckRhdGFcbiAgICAgICAgICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhY2Nlc3NSb2xlXG4gICAgICAgICAgICAgICAgICBpdGVtS2V5IHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvUXVlcnlSZXN1bHQge1xuICBzaGFyZWRTY2VuYXJpbzogU2hhcmVkU2NlbmFyaW9Ob2RlO1xufVxuZXhwb3J0IGNvbnN0IFNoYXJlZFNjZW5hcmlvUXVlcnkgPSBncWxUeXBlZDxTaGFyZWRTY2VuYXJpb1F1ZXJ5UmVzdWx0PmBcbnF1ZXJ5IFNoYXJlZFNjZW5hcmlvUXVlcnkoJHNjZW5hcmlvSWQ6IExyUmVsYXlJZElucHV0ISkge1xuICBzaGFyZWRTY2VuYXJpbyhpZDogJHNjZW5hcmlvSWQpIHtcbiAgICBpZFxuICAgIHN0YXRlXG4gICAgdHAge1xuICAgICAgaWRcbiAgICB9XG4gICAgYXNDbGFpbWFudCB7XG4gICAgICBzaGFyZWRLZXkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgICAgc2hhcmVkQ2lwaGVyRGF0YVxuICAgIH1cbiAgICBhc1JlY2VpdmVyIHtcbiAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgICBwYmsge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgICAgcmVjZWl2ZXJJdGVtcyB7XG4gICAgICAgIHJlY2VpdmVyRGlyZWN0b3JpZXMge1xuICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICB3cmFwcGVkSXRlbUtleVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBhc3NlbWJseSB7XG4gICAgICBhc0FwcHJvdmVycyB7XG4gICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBzaGFyZWRDbGFpbSB7XG5cdCBcdFx0aWRcbiAgICAgIGlzQ2xhaW1hbnRcbiAgICAgIGNsYWltIHtcbiAgICAgICAgc3RhdGVcbiAgICAgICAgYXNDbGFpbUFwcHJvdmVycyB7XG4gICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFcbiAgICAgICAgICAgICAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5XG4gICAgICAgICAgICAgIHJlY2VpdmVyQXBwcm92YWxzIHtcbiAgICAgICAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgcHhrIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhc0NsYWltUmVjZWl2ZXIge1xuICAgICAgICByZWNlaXZlZFxuICAgICAgICBhc3NlbWJseUtleUlkXG4gICAgICAgIGFwcHJvdmFscyB7XG4gICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgIHJlY2VpdmVyQ2lwaGVyXG4gICAgICAgICAgICAgIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5XG4gICAgICAgICAgICAgIHB4ayB7XG4gICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuYDtcbiJdfQ==
|