@lifeready/core 8.0.10 → 8.0.12

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.
@@ -2,8 +2,8 @@ import { __awaiter } from "tslib";
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  import { Injectable } from '@angular/core';
4
4
  import graphlib, { Graph } from '@dagrejs/graphlib';
5
- import _ from 'lodash';
6
5
  import { asJwk, EncryptionService, isSymmetricKey, } from '../encryption/encryption.service';
6
+ import { lodash } from '../_common';
7
7
  import { KcBadArgumentException, KcBadLogicException, KcBadStateException, KcEncryptionException, KcNotFoundException, } from '../_common/exceptions';
8
8
  import { KeyFactoryService, KeyFactoryService as KFS, } from './key-factory.service';
9
9
  import { KeyService } from './key.service';
@@ -68,7 +68,7 @@ export class KeyGraphService {
68
68
  }
69
69
  const node = {
70
70
  type: KeyGraphNodeType.Key,
71
- data: _.cloneDeep(key),
71
+ data: lodash.cloneDeep(key),
72
72
  };
73
73
  this.graph.setNode(key.id, node);
74
74
  }
@@ -81,7 +81,7 @@ export class KeyGraphService {
81
81
  }
82
82
  const edge = {
83
83
  type: KeyGraphEdgeType.KeyLink,
84
- data: _.cloneDeep(keyLink),
84
+ data: lodash.cloneDeep(keyLink),
85
85
  };
86
86
  // Edge goes from wrapping key to wrapped key.
87
87
  this.graph.setEdge(keyLink.wrappingKeyId, keyLink.keyId, edge);
@@ -95,7 +95,7 @@ export class KeyGraphService {
95
95
  }
96
96
  const edge = {
97
97
  type: KeyGraphEdgeType.PassKeyLink,
98
- data: _.cloneDeep(passKeyLink),
98
+ data: lodash.cloneDeep(passKeyLink),
99
99
  };
100
100
  // Edge goes from wrapping key to wrapped key.
101
101
  this.graph.setEdge(passKeyLink.passKeyId, passKeyLink.keyId, edge);
@@ -311,4 +311,4 @@ KeyGraphService.ctorParameters = () => [
311
311
  { type: KeyService },
312
312
  { type: KeyFactoryService }
313
313
  ];
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWdyYXBoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIva2V5L2tleS1ncmFwaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUd2QixPQUFPLEVBQ0wsS0FBSyxFQUVMLGlCQUFpQixFQUNqQixjQUFjLEdBQ2YsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUNwQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsaUJBQWlCLElBQUksR0FBRyxHQUN6QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUdMLGdCQUFnQixFQUVoQixnQkFBZ0IsRUFJaEIsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDOzs7OztBQVNyQixNQUFNLE9BQU8sZUFBZTtJQUUxQixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLEtBQUs7SUFFTCxZQUNVLGlCQUFvQyxFQUNwQyxVQUFzQixFQUN0QixVQUE2QjtRQUY3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFFckMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLEtBQUss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QUFDO1FBQzlELENBQUM7S0FBQTtJQUVELG9DQUFvQztJQUNwQyw0Q0FBNEM7SUFDdEMsT0FBTyxDQUNYLFdBQW1DLEVBQ25DLEdBQVk7O1lBRVosSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxJQUFJLHNCQUFzQixDQUM5QiwyQ0FBMkMsQ0FDNUMsQ0FBQzthQUNIO1lBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztLQUFBO0lBRUQsT0FBTztJQUNQLDRCQUE0QjtJQUM1Qiw2QkFBNkI7SUFFdkIsaUJBQWlCLENBQUMsYUFBcUIsRUFBRSxlQUEyQjs7WUFDeEUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FDM0MsYUFBYSxFQUNiLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQ2pCLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRWhFLE9BQU87Z0JBQ0wsR0FBRztnQkFDSCxhQUFhO2dCQUNiLFVBQVU7Z0JBQ1YsTUFBTTthQUNQLENBQUM7UUFDSixDQUFDO0tBQUE7Ozs7WUF6V0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFqQ0MsaUJBQWlCO1lBY1YsVUFBVTtZQUhqQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZ3JhcGhsaWIsIHsgR3JhcGggfSBmcm9tICdAZGFncmVqcy9ncmFwaGxpYic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHtcbiAgYXNKd2ssXG4gIERlY3J5cHRPcHRpb25zLFxuICBFbmNyeXB0aW9uU2VydmljZSxcbiAgaXNTeW1tZXRyaWNLZXksXG59IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEtjQmFkQXJndW1lbnRFeGNlcHRpb24sXG4gIEtjQmFkTG9naWNFeGNlcHRpb24sXG4gIEtjQmFkU3RhdGVFeGNlcHRpb24sXG4gIEtjRW5jcnlwdGlvbkV4Y2VwdGlvbixcbiAgS2NOb3RGb3VuZEV4Y2VwdGlvbixcbn0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7XG4gIEtleUZhY3RvcnlTZXJ2aWNlLFxuICBLZXlGYWN0b3J5U2VydmljZSBhcyBLRlMsXG59IGZyb20gJy4va2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlLCBVc2VyS2V5cyB9IGZyb20gJy4va2V5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgS2V5LFxuICBLZXlHcmFwaEVkZ2UsXG4gIEtleUdyYXBoRWRnZVR5cGUsXG4gIEtleUdyYXBoTm9kZSxcbiAgS2V5R3JhcGhOb2RlVHlwZSxcbiAgS2V5R3JhcGhSZXNwb25zZSxcbiAgS2V5TGluayxcbiAgUGFzc0tleSxcbiAgUGF5bG9hZFR5cGUsXG59IGZyb20gJy4va2V5LnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBHcmFwaEtleSBleHRlbmRzIEtleSB7XG4gIHRhc2s/OiBQcm9taXNlPGFueT47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBLZXlHcmFwaFNlcnZpY2Uge1xuICBwcml2YXRlIGdyYXBoOiBHcmFwaDtcbiAgLy8gcHJpdmF0ZSBrZXlDYWNoZToge1xuICAvLyAgIFtpZDogc3RyaW5nXTogS2V5O1xuICAvLyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucHVyZ2VLZXlzKCk7XG4gIH1cblxuICBwdXJnZUtleXMoKSB7XG4gICAgdGhpcy5ncmFwaCA9IG5ldyBHcmFwaCgpO1xuICAgIC8vIHRoaXMua2V5Q2FjaGUgPSBudWxsO1xuICB9XG5cbiAgYXN5bmMgcG9wdWxhdGVLZXlzKHVzZXJLZXk6IFVzZXJLZXlzKSB7XG4gICAgdGhpcy5rZXlTZXJ2aWNlLnNldEtleXMoe1xuICAgICAgcGFzc0tleTogdXNlcktleS5wYXNzS2V5LFxuICAgICAgbWFzdGVyS2V5OiBhd2FpdCB0aGlzLmtleVNlcnZpY2UubG9hZE1hc3RlcktleSh1c2VyS2V5Lm1hc3RlcktleS5pZCksXG4gICAgICByb290S2V5OiBhd2FpdCB0aGlzLnVud3JhcEtleSh1c2VyS2V5Lm1hc3RlcktleS5pZCwgdXNlcktleS5yb290S2V5LmlkKSxcbiAgICAgIHB4azogYXdhaXQgdGhpcy51bndyYXBLZXkodXNlcktleS5tYXN0ZXJLZXkuaWQsIHVzZXJLZXkucHhrLmlkKSxcbiAgICAgIHNpZ1B4azogYXdhaXQgdGhpcy51bndyYXBLZXkodXNlcktleS5tYXN0ZXJLZXkuaWQsIHVzZXJLZXkuc2lnUHhrLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIGhhc0tleShrZXlJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuICEhdGhpcy5ncmFwaC5ub2RlKGtleUlkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZShpZCwgdHlwZSk6IEdyYXBoS2V5IHwgUGFzc0tleSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ3JhcGgubm9kZShpZCk7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICB0aHJvdyBuZXcgS2NOb3RGb3VuZEV4Y2VwdGlvbihcbiAgICAgICAgYEtleSBncmFwaHMgZG9lcyBub3QgY29udGFpbiBrZXkgaWQ6ICR7aWR9YFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG5vZGUudHlwZSAhPT0gdHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oYEtleSB3aXRoIGlkICR7aWR9IGlzIG5vdCBvZiB0eXBlICR7dHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUuZGF0YTtcbiAgfVxuXG4gIGtleShpZCk6IEdyYXBoS2V5IHtcbiAgICByZXR1cm4gdGhpcy5nZXROb2RlKGlkLCBLZXlHcmFwaE5vZGVUeXBlLktleSk7XG4gIH1cblxuICBwYXNzS2V5KGlkKTogUGFzc0tleSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Tm9kZShpZCwgS2V5R3JhcGhOb2RlVHlwZS5QYXNzS2V5KTtcbiAgfVxuXG4gIGFkZEtleXMoc3JjOiBLZXlHcmFwaFJlc3BvbnNlKSB7XG4gICAgLy8gS2V5c1xuICAgIGlmIChzcmMua2V5cykge1xuICAgICAgLy8gV2hhdCBrZXkgZ3JhcGggcmV0dXJucyBjYW4gbm90IGJlIGN1c3RvbWl6ZWQuIFNvIGtleXMgYXJlIGVzc2VudGlhbGx5IGltbXV0YWJsZS5cbiAgICAgIC8vIFRoZXJlZm9yZSwgaWYgYSBrZXkgZXhpc3RzLCB0aGVyZSdzIG5vIHJlYXNvbiB0byB1cGRhdGUgaXQuXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBzcmMua2V5cykge1xuICAgICAgICAvLyBOb3RlIHVzaW5nIFJlbGF5IGdsb2JhbCBpZCBhbGxvd3MgdXMgdG8gbm90IHdvcnJ5IGFib3V0IGNsYXNoaW5nIG5vZGUgaWRcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzTm9kZShrZXkuaWQpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub2RlOiBLZXlHcmFwaE5vZGUgPSB7XG4gICAgICAgICAgdHlwZTogS2V5R3JhcGhOb2RlVHlwZS5LZXksXG4gICAgICAgICAgZGF0YTogXy5jbG9uZURlZXAoa2V5KSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmdyYXBoLnNldE5vZGUoa2V5LmlkLCBub2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBLZXlMaW5rc1xuICAgIGlmIChzcmMua2V5TGlua3MpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5TGluayBvZiBzcmMua2V5TGlua3MpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzRWRnZShrZXlMaW5rLndyYXBwaW5nS2V5SWQsIGtleUxpbmsua2V5SWQpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlZGdlOiBLZXlHcmFwaEVkZ2UgPSB7XG4gICAgICAgICAgdHlwZTogS2V5R3JhcGhFZGdlVHlwZS5LZXlMaW5rLFxuICAgICAgICAgIGRhdGE6IF8uY2xvbmVEZWVwKGtleUxpbmspLFxuICAgICAgICB9O1xuICAgICAgICAvLyBFZGdlIGdvZXMgZnJvbSB3cmFwcGluZyBrZXkgdG8gd3JhcHBlZCBrZXkuXG4gICAgICAgIHRoaXMuZ3JhcGguc2V0RWRnZShrZXlMaW5rLndyYXBwaW5nS2V5SWQsIGtleUxpbmsua2V5SWQsIGVkZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBhc3NLZXlMaW5rc1xuICAgIGlmIChzcmMucGFzc0tleUxpbmtzKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhc3NLZXlMaW5rIG9mIHNyYy5wYXNzS2V5TGlua3MpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzRWRnZShwYXNzS2V5TGluay5wYXNzS2V5SWQsIHBhc3NLZXlMaW5rLmtleUlkKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWRnZTogS2V5R3JhcGhFZGdlID0ge1xuICAgICAgICAgIHR5cGU6IEtleUdyYXBoRWRnZVR5cGUuUGFzc0tleUxpbmssXG4gICAgICAgICAgZGF0YTogXy5jbG9uZURlZXAocGFzc0tleUxpbmspLFxuICAgICAgICB9O1xuICAgICAgICAvLyBFZGdlIGdvZXMgZnJvbSB3cmFwcGluZyBrZXkgdG8gd3JhcHBlZCBrZXkuXG4gICAgICAgIHRoaXMuZ3JhcGguc2V0RWRnZShwYXNzS2V5TGluay5wYXNzS2V5SWQsIHBhc3NLZXlMaW5rLmtleUlkLCBlZGdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgZ3JhcGggaXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGguIFRoZXNlIGFyZSBsYXppbHkgY2FsY3VsYXRlZC5cbiAgICAvLyB0aGlzLmtleUNhY2hlID0gbnVsbDtcbiAgfVxuXG4gIHRyYWNlUGF0aChkaXN0YW5jZXMsIGtleUlkOiBzdHJpbmcpOiBLZXlHcmFwaEVkZ2VbXSB7XG4gICAgLy8gVGhlIG5vZGUgbGFiZWwgaXMgdGhlIHNhbWUgYXMgdGhlIGlkIG9mIHRoZSBrZXkgbm9kZXMuXG4gICAgY29uc3QgcmV0OiBLZXlHcmFwaEVkZ2VbXSA9IFtdO1xuICAgIGxldCBub2RlID0ga2V5SWQ7XG4gICAgaWYgKCFkaXN0YW5jZXNbbm9kZV0ucHJlZGVjZXNzb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHdoaWxlIChkaXN0YW5jZXNbbm9kZV0ucHJlZGVjZXNzb3IpIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gZGlzdGFuY2VzW25vZGVdLnByZWRlY2Vzc29yO1xuICAgICAgcmV0LnB1c2godGhpcy5ncmFwaC5lZGdlKGNoaWxkLCBub2RlKSk7XG4gICAgICBub2RlID0gY2hpbGQ7XG4gICAgfVxuXG4gICAgLy8gQWZ0ZXIgcmV2ZXJzZSwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIHBhc3NrZXlcbiAgICByZXQucmV2ZXJzZSgpO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGdldFBhdGgoa25vd25LZXlJZDogc3RyaW5nLCBrZXlJZDogc3RyaW5nKTogS2V5R3JhcGhFZGdlW10ge1xuICAgIGlmICgha25vd25LZXlJZCB8fCB0eXBlb2Yga25vd25LZXlJZCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBLY0VuY3J5cHRpb25FeGNlcHRpb24oXG4gICAgICAgIGBQYXJhbSBrbm93bktleUlkIHdyb25nIGZvcm1hdDogJHtrbm93bktleUlkfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICgha2V5SWQgfHwgdHlwZW9mIGtleUlkICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEtjRW5jcnlwdGlvbkV4Y2VwdGlvbihgUGFyYW0ga2V5SWQgd3JvbmcgZm9ybWF0OiAke2tleUlkfWApO1xuICAgIH1cblxuICAgIC8vID0+IHsgQTogeyBkaXN0YW5jZTogMCB9LFxuICAgIC8vICAgICAgQjogeyBkaXN0YW5jZTogNiwgcHJlZGVjZXNzb3I6ICdDJyB9LFxuICAgIC8vICAgICAgQzogeyBkaXN0YW5jZTogNCwgcHJlZGVjZXNzb3I6ICdBJyB9LFxuICAgIC8vICAgICAgRDogeyBkaXN0YW5jZTogMiwgcHJlZGVjZXNzb3I6ICdBJyB9LFxuICAgIC8vICAgICAgRTogeyBkaXN0YW5jZTogOCwgcHJlZGVjZXNzb3I6ICdGJyB9LFxuICAgIC8vICAgICAgRjogeyBkaXN0YW5jZTogNCwgcHJlZGVjZXNzb3I6ICdEJyB9IH1cbiAgICBjb25zdCBkaXN0YW5jZXMgPSBncmFwaGxpYi5hbGcuZGlqa3N0cmEodGhpcy5ncmFwaCwga25vd25LZXlJZCk7XG5cbiAgICAvLyBUcmFjZSBwYXRoIGZyb20ga2V5SWQgdG8ga25vd25LZXlJZFxuICAgIHJldHVybiB0aGlzLnRyYWNlUGF0aChkaXN0YW5jZXMsIGtleUlkKTtcbiAgfVxuXG4gIGFzeW5jIGdldEp3a0tleShcbiAgICBrZXlPcklkOiBzdHJpbmcgfCBLZXksXG4gICAgZ2V0S2V5SWRDYWxsYmFjaz86ICgpID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZ1xuICApOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0S2V5KGtleU9ySWQsIGdldEtleUlkQ2FsbGJhY2spKS5qd2s7XG4gIH1cblxuICAvLyBXZSBhc3N1bWUgdGhhdCB3aGVuIGEga2V5SWQgaXMgZmV0Y2hlZCwgdGhlIGtleSBncmFwaFxuICAvLyBmb3IgdGhlIGtleSBpcyBhbHNvIHJldHVybmVkIGFuZCBtZXJnZWQgaW50byB0aGUgY2xpZW50LXNpZGVcbiAgLy8ga2V5IGdyYXBoLiBCeSBpbnNpc3RpbmcgYSBrZXlJZCBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIHRoZVxuICAvLyBhY3R1YWwga2V5IHdlIGVuc3VyZSBrZXktZ3JhcGggaXMgY29uc2lzdGVudC5cbiAgYXN5bmMgZ2V0S2V5KFxuICAgIGtleU9ySWQ6IHN0cmluZyB8IEtleSxcbiAgICBnZXRLZXlJZENhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTxzdHJpbmc+IHwgc3RyaW5nXG4gICk6IFByb21pc2U8S2V5PiB7XG4gICAgbGV0IGtleUlkID0gdHlwZW9mIGtleU9ySWQgPT09ICdzdHJpbmcnID8ga2V5T3JJZCA6IGtleU9ySWQ/LmlkO1xuXG4gICAgaWYgKCF0aGlzLmhhc0tleShrZXlJZCkgJiYgZ2V0S2V5SWRDYWxsYmFjaykge1xuICAgICAgY29uc3Qga2V5SWRGcm9tQ2FsbGJhY2sgPSBhd2FpdCBnZXRLZXlJZENhbGxiYWNrKCk7XG5cbiAgICAgIGlmIChrZXlJZCAhPSBudWxsICYmIGtleUlkICE9IGtleUlkRnJvbUNhbGxiYWNrKSB7XG4gICAgICAgIHRocm93IG5ldyBLY0JhZExvZ2ljRXhjZXB0aW9uKFxuICAgICAgICAgICdSZXF1ZXN0ZWQga2V5SWQgaXMgbm90IGluIHRoZSBrZXkgY2FjaGUsIHNvIGFuIEFQSSByZXF1ZXN0IHdhcyBtYWRlIHRvIHBvcHVsYXRlIHRoZSBrZXkgY2FjaGUuJyArXG4gICAgICAgICAgICAnQnV0IHRoZSBrZXkgcmV0dXJuZWQgYnkgdGhlIEFQSSBkb2VzIE5PVCBtYXRjaCB0aGUgcmVxdWVzdGVkIGtleUlkLicgK1xuICAgICAgICAgICAgJ1RoaXMgaXMgYSBwcm9ncmFtbWluZyBsb2dpYyBlcnJvci4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGtleUlkID0ga2V5SWRGcm9tQ2FsbGJhY2s7XG4gICAgfVxuICAgIC8vIGVsc2UsIGNvbnRpbnVlIGFuZCBsZXQgaXQgZmFpbC5cblxuICAgIGNvbnN0IGtleSA9IHRoaXMua2V5KGtleUlkKTtcbiAgICBpZiAoa2V5Lmp3aykge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudW53cmFwS2V5KHRoaXMua2V5U2VydmljZS5jdXJyZW50TWFzdGVyS2V5LmlkLCBrZXlJZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdW53cmFwTGluayhcbiAgICB3cmFwcGluZ0tleTogSldLLktleSxcbiAgICBsaW5rOiBLZXlHcmFwaEVkZ2UsXG4gICAgZHN0S2V5OiBHcmFwaEtleVxuICApIHtcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gSlNPTi5wYXJzZShsaW5rLmRhdGEud3JhcHBlZEtleSk7XG5cbiAgICAvLyBTaWduYXR1cmVzIG9mIGtleXMgY29udGFpbiB0aGUga2V5IGl0c2VsZi4gVGhpcyB3YXkgd2Ugb25seSBuZWVkXG4gICAgLy8gdG8gYWNjZXNzIHRoZSBLZXlMaW5rcyB0byBkZWNyeXB0L3ZlcmlmeSBrZXlzLlxuICAgIGxldCBuZXh0UmF3S2V5O1xuICAgIGlmICh3cmFwcGVkS2V5LnNpZ25hdHVyZXMpIHtcbiAgICAgIG5leHRSYXdLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnZlcmlmeSh3cmFwcGluZ0tleSwgd3JhcHBlZEtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRSYXdLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgIHdyYXBwaW5nS2V5LFxuICAgICAgICB3cmFwcGVkS2V5XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBuZXN0ZWQga2V5cy4gaS5lLiBFbmN7SzF9e0syfXtLM30ocmF3IGtleSA0KSwgd2hlcmU6XG4gICAgLy8gICBLMTogbGluay53cmFwcGluZ0tleVxuICAgIC8vICAgSzI6IGxpbmsubmVzdGVkV3JhcHBpbmdLZXlbMF1cbiAgICAvLyAgIEszOiBsaW5rLm5lc3RlZFdyYXBwaW5nS2V5WzFdXG4gICAgaWYgKGxpbmsudHlwZSA9PSBLZXlHcmFwaEVkZ2VUeXBlLktleUxpbmspIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBsaW5rLmRhdGEgYXMgS2V5TGluaztcbiAgICAgIGlmIChkYXRhLm5lc3RlZFdyYXBwaW5nS2V5SWRzKSB7XG4gICAgICAgIGZvciAoY29uc3QgbmVzdGVkV3JhcHBpbmdLZXlJZCBvZiBkYXRhLm5lc3RlZFdyYXBwaW5nS2V5SWRzKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5nZXRLZXkobmVzdGVkV3JhcHBpbmdLZXlJZCk7XG4gICAgICAgICAgbmV4dFJhd0tleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAgICAgIGtleS5qd2ssXG4gICAgICAgICAgICBuZXh0UmF3S2V5XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRzdEtleS5qd2sgPSBhd2FpdCBLRlMuYXNLZXkobmV4dFJhd0tleSk7XG4gICAgZHN0S2V5LnRhc2sgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdW53cmFwKGtleTogSldLLktleSwgcGF0aDogS2V5R3JhcGhFZGdlW10pOiBQcm9taXNlPEpXSy5LZXk+IHtcbiAgICBmb3IgKGNvbnN0IGxpbmsgb2YgcGF0aCkge1xuICAgICAgY29uc3QgZHN0S2V5ID0gdGhpcy5rZXkobGluay5kYXRhLmtleUlkKTtcbiAgICAgIGlmIChkc3RLZXkuandrKSB7XG4gICAgICAgIGtleSA9IGRzdEtleS5qd2s7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRzdEtleS50YXNrKSB7XG4gICAgICAgIGRzdEtleS50YXNrID0gdGhpcy5fdW53cmFwTGluayhrZXksIGxpbmssIGRzdEtleSk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGRzdEtleS50YXNrO1xuICAgICAga2V5ID0gZHN0S2V5Lmp3aztcbiAgICB9XG5cbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVud3JhcFdpdGhQYXNzS2V5KFxuICAgIHBhc3NLZXlJZDogc3RyaW5nLFxuICAgIHBhc3NLZXk6IEpXSy5LZXksXG4gICAga2V5SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleT4ge1xuICAgIC8vIEdldCBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkga2V5LlxuICAgIGNvbnN0IHBhdGggPSB0aGlzLmdldFBhdGgocGFzc0tleUlkLCBrZXlJZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGtleUlkLFxuICAgICAgandrOiBhd2FpdCB0aGlzLl91bndyYXAocGFzc0tleSwgcGF0aCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHVud3JhcEtleShtYXN0ZXJLZXlJZDogc3RyaW5nLCBrZXlJZDogc3RyaW5nKTogUHJvbWlzZTxLZXk+IHtcbiAgICAvLyBUaGUgZmlyc3Qga2V5IHNob3VsZCBiZSBhIG1hc3RlcktleVxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5sb2FkTWFzdGVyS2V5KG1hc3RlcktleUlkKTtcblxuICAgIGlmIChtYXN0ZXJLZXlJZCA9PT0ga2V5SWQpIHtcbiAgICAgIHJldHVybiBtYXN0ZXJLZXk7XG4gICAgfVxuXG4gICAgLy8gR2V0IHBhdGggb2YgdGhlIGRpcmVjdG9yeSBrZXkuXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aChtYXN0ZXJLZXkuaWQsIGtleUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDoga2V5SWQsXG4gICAgICBqd2s6IGF3YWl0IHRoaXMuX3Vud3JhcChtYXN0ZXJLZXkuandrLCBwYXRoKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZGVjcnlwdEZyb21TdHJpbmc8VD4oXG4gICAga2V5T3JJZDogc3RyaW5nIHwgS2V5LFxuICAgIGNpcGhlckRhdGE6IHN0cmluZyxcbiAgICBvcHRpb25zPzogRGVjcnlwdE9wdGlvbnNcbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKGNpcGhlckRhdGEpIHtcbiAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMuZ2V0SndrS2V5KGtleU9ySWQpO1xuICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgIGtleSxcbiAgICAgICAgSlNPTi5wYXJzZShjaXBoZXJEYXRhKSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKSkgYXMgYW55O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGRlY3J5cHRGaWxlKGtleUlkOiBzdHJpbmcsIGZpbGU6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5nZXRKd2tLZXkoa2V5SWQpO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KGtleSwgZmlsZSwge1xuICAgICAgcGF5bG9hZFR5cGU6IFBheWxvYWRUeXBlLlVJTlRfOF9BUlJBWSxcbiAgICB9KSkgYXMgYW55O1xuICB9XG5cbiAgLy8gVE9ETyByZW5hbWUgdGhpcyB0byBlbmNyeXB0KCkgYW5kIHVzZSBhcyB0aGUgbW9zdCBjb21tb24gdXNlY2FzZVxuICBhc3luYyBlbmNyeXB0VG9TdHJpbmcoXG4gICAga2V5OiBzdHJpbmcgfCBLZXkgfCBKV0suS2V5LFxuICAgIGNvbnRlbnQ6IGFueVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIEVtcHR5IHN0cmluZyBzaG91bGQgYmUgZW5jcnlwdGVkIHNpbmNlIHlvdSB3YW50IHRvIGNsZWFyIHRoZSBmaWVsZC5cbiAgICAvLyBOdWxsIGlzIG5vdCBlbmNyeXB0ZWQgYmVjYXVzZSBpdCdzIG5vdCB2YWxpZCBKU09OIGluIHRoZSBvbGQgSlNPTiBzcGVjLiBVc2VcbiAgICAvLyBlbXB0eSBzdHJpbmcgaW5zdGVhZC4gSXQnbGwgZnVuY3Rpb24gYXMgYSBsb2dpYyBmYWxzZSBhcyB3ZWxsLlxuICAgIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGluIGVtcHR5IHN0cmluZyBtZWFucyBpdCdsbCBiZSBlbmNyeXB0ZWQgd2hpY2ggdmVyaWZpZXNcbiAgICAvLyBpdCdzIGludGVncml0eS4gQnV0IHdlIHN0aWxsIHdhbnQgdG8gaGF2ZSBhIHdheSB0byBzZXQgdGhlIERCIGZpZWxkXG4gICAgLy8gdG8gTlVMTCwgc28gd2UgZXhwbGljaXRseSByZXR1cm4gbnVsbCB3aGVuIGNvbnRlbnQgPT0gbnVsbC4gQSBudWxsXG4gICAgLy8gdmFyaWFibGUgaW4gZ3JhcGhxbCBtdXRhdGlvbiBvbiBLQyBzZXJ2ZXIgY2xlYXJzIHRoZSBmaWVsZCB0byBOVUxMLlxuICAgIGlmIChjb250ZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGp3ayA9IGFzSndrKGtleSkgfHwgKGF3YWl0IHRoaXMuZ2V0SndrS2V5KGtleSBhcyBzdHJpbmcgfCBLZXkpKTtcbiAgICByZXR1cm4gdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoandrLCBjb250ZW50KTtcbiAgfVxuXG4gIC8vIFdyYXBzIGEgc3ltbWV0cmljIGVuY3J5cHRpb24ga2V5LlxuICAvLyBUaHJvd3MgZXhjZXB0aW9uIGlmIHdyYXBwaW5nIHB1YmxpYyBrZXlzLlxuICBhc3luYyB3cmFwS2V5KFxuICAgIHdyYXBwaW5nS2V5OiBzdHJpbmcgfCBLZXkgfCBKV0suS2V5LFxuICAgIGtleTogSldLLktleVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghaXNTeW1tZXRyaWNLZXkoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkQXJndW1lbnRFeGNlcHRpb24oXG4gICAgICAgICdPbmx5IGFsbG93aW5nIHdyYXBwaW5nIG9mIHN5bW1ldHJpYyBrZXlzLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZW5jcnlwdFRvU3RyaW5nKHdyYXBwaW5nS2V5LCBrZXkudG9KU09OKHRydWUpKTtcbiAgfVxuXG4gIC8vIFRPRE9cbiAgLy8gYXN5bmMgd3JhcFB1YmxpY0tleTxUPigpO1xuICAvLyBhc3luYyB3cmFwUHJpdmF0ZUtleTxUPigpO1xuXG4gIGFzeW5jIGVuY3J5cHRXaXRoTmV3S2V5KHdyYXBwaW5nS2V5SWQ6IHN0cmluZywgY2lwaGVyQ2xlYXJKc29uOiBKU09OT2JqZWN0KSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIHdyYXBwaW5nS2V5SWQsXG4gICAgICBrZXkudG9KU09OKHRydWUpXG4gICAgKTtcbiAgICBjb25zdCBjaXBoZXIgPSBhd2FpdCB0aGlzLmVuY3J5cHRUb1N0cmluZyhrZXksIGNpcGhlckNsZWFySnNvbik7XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5LFxuICAgICAgd3JhcHBpbmdLZXlJZCxcbiAgICAgIHdyYXBwZWRLZXksXG4gICAgICBjaXBoZXIsXG4gICAgfTtcbiAgfVxufVxuIl19
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWdyYXBoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIva2V5L2tleS1ncmFwaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE9BQU8sRUFDTCxLQUFLLEVBRUwsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDZixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixtQkFBbUIsR0FDcEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixJQUFJLEdBQUcsR0FDekIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFHTCxnQkFBZ0IsRUFFaEIsZ0JBQWdCLEVBSWhCLFdBQVcsR0FDWixNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFTckIsTUFBTSxPQUFPLGVBQWU7SUFFMUIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2QixLQUFLO0lBRUwsWUFDVSxpQkFBb0MsRUFDcEMsVUFBc0IsRUFDdEIsVUFBNkI7UUFGN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBRXJDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUks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QUFPLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQUE7SUFFRCxvQ0FBb0M7SUFDcEMsNENBQTRDO0lBQ3RDLE9BQU8sQ0FDWCxXQUFtQyxFQUNuQyxHQUFZOztZQUVaLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hCLE1BQU0sSUFBSSxzQkFBc0IsQ0FDOUIsMkNBQTJDLENBQzVDLENBQUM7YUFDSDtZQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7S0FBQTtJQUVELE9BQU87SUFDUCw0QkFBNEI7SUFDNUIsNkJBQTZCO0lBRXZCLGlCQUFpQixDQUFDLGFBQXFCLEVBQUUsZUFBMkI7O1lBQ3hFLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQzNDLGFBQWEsRUFDYixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUNqQixDQUFDO1lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUVoRSxPQUFPO2dCQUNMLEdBQUc7Z0JBQ0gsYUFBYTtnQkFDYixVQUFVO2dCQUNWLE1BQU07YUFDUCxDQUFDO1FBQ0osQ0FBQztLQUFBOzs7O1lBeldGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBbENDLGlCQUFpQjtZQWVWLFVBQVU7WUFIakIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGdyYXBobGliLCB7IEdyYXBoIH0gZnJvbSAnQGRhZ3JlanMvZ3JhcGhsaWInO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHtcbiAgYXNKd2ssXG4gIERlY3J5cHRPcHRpb25zLFxuICBFbmNyeXB0aW9uU2VydmljZSxcbiAgaXNTeW1tZXRyaWNLZXksXG59IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGxvZGFzaCB9IGZyb20gJy4uL19jb21tb24nO1xuaW1wb3J0IHtcbiAgS2NCYWRBcmd1bWVudEV4Y2VwdGlvbixcbiAgS2NCYWRMb2dpY0V4Y2VwdGlvbixcbiAgS2NCYWRTdGF0ZUV4Y2VwdGlvbixcbiAgS2NFbmNyeXB0aW9uRXhjZXB0aW9uLFxuICBLY05vdEZvdW5kRXhjZXB0aW9uLFxufSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHtcbiAgS2V5RmFjdG9yeVNlcnZpY2UsXG4gIEtleUZhY3RvcnlTZXJ2aWNlIGFzIEtGUyxcbn0gZnJvbSAnLi9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UsIFVzZXJLZXlzIH0gZnJvbSAnLi9rZXkuc2VydmljZSc7XG5pbXBvcnQge1xuICBLZXksXG4gIEtleUdyYXBoRWRnZSxcbiAgS2V5R3JhcGhFZGdlVHlwZSxcbiAgS2V5R3JhcGhOb2RlLFxuICBLZXlHcmFwaE5vZGVUeXBlLFxuICBLZXlHcmFwaFJlc3BvbnNlLFxuICBLZXlMaW5rLFxuICBQYXNzS2V5LFxuICBQYXlsb2FkVHlwZSxcbn0gZnJvbSAnLi9rZXkudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoS2V5IGV4dGVuZHMgS2V5IHtcbiAgdGFzaz86IFByb21pc2U8YW55Pjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEtleUdyYXBoU2VydmljZSB7XG4gIHByaXZhdGUgZ3JhcGg6IEdyYXBoO1xuICAvLyBwcml2YXRlIGtleUNhY2hlOiB7XG4gIC8vICAgW2lkOiBzdHJpbmddOiBLZXk7XG4gIC8vIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5wdXJnZUtleXMoKTtcbiAgfVxuXG4gIHB1cmdlS2V5cygpIHtcbiAgICB0aGlzLmdyYXBoID0gbmV3IEdyYXBoKCk7XG4gICAgLy8gdGhpcy5rZXlDYWNoZSA9IG51bGw7XG4gIH1cblxuICBhc3luYyBwb3B1bGF0ZUtleXModXNlcktleTogVXNlcktleXMpIHtcbiAgICB0aGlzLmtleVNlcnZpY2Uuc2V0S2V5cyh7XG4gICAgICBwYXNzS2V5OiB1c2VyS2V5LnBhc3NLZXksXG4gICAgICBtYXN0ZXJLZXk6IGF3YWl0IHRoaXMua2V5U2VydmljZS5sb2FkTWFzdGVyS2V5KHVzZXJLZXkubWFzdGVyS2V5LmlkKSxcbiAgICAgIHJvb3RLZXk6IGF3YWl0IHRoaXMudW53cmFwS2V5KHVzZXJLZXkubWFzdGVyS2V5LmlkLCB1c2VyS2V5LnJvb3RLZXkuaWQpLFxuICAgICAgcHhrOiBhd2FpdCB0aGlzLnVud3JhcEtleSh1c2VyS2V5Lm1hc3RlcktleS5pZCwgdXNlcktleS5weGsuaWQpLFxuICAgICAgc2lnUHhrOiBhd2FpdCB0aGlzLnVud3JhcEtleSh1c2VyS2V5Lm1hc3RlcktleS5pZCwgdXNlcktleS5zaWdQeGsuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgaGFzS2V5KGtleUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gISF0aGlzLmdyYXBoLm5vZGUoa2V5SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb2RlKGlkLCB0eXBlKTogR3JhcGhLZXkgfCBQYXNzS2V5IHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ncmFwaC5ub2RlKGlkKTtcbiAgICBpZiAoIW5vZGUpIHtcbiAgICAgIHRocm93IG5ldyBLY05vdEZvdW5kRXhjZXB0aW9uKFxuICAgICAgICBgS2V5IGdyYXBocyBkb2VzIG5vdCBjb250YWluIGtleSBpZDogJHtpZH1gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAobm9kZS50eXBlICE9PSB0eXBlKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbihgS2V5IHdpdGggaWQgJHtpZH0gaXMgbm90IG9mIHR5cGUgJHt0eXBlfWApO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZS5kYXRhO1xuICB9XG5cbiAga2V5KGlkKTogR3JhcGhLZXkge1xuICAgIHJldHVybiB0aGlzLmdldE5vZGUoaWQsIEtleUdyYXBoTm9kZVR5cGUuS2V5KTtcbiAgfVxuXG4gIHBhc3NLZXkoaWQpOiBQYXNzS2V5IHtcbiAgICByZXR1cm4gdGhpcy5nZXROb2RlKGlkLCBLZXlHcmFwaE5vZGVUeXBlLlBhc3NLZXkpO1xuICB9XG5cbiAgYWRkS2V5cyhzcmM6IEtleUdyYXBoUmVzcG9uc2UpIHtcbiAgICAvLyBLZXlzXG4gICAgaWYgKHNyYy5rZXlzKSB7XG4gICAgICAvLyBXaGF0IGtleSBncmFwaCByZXR1cm5zIGNhbiBub3QgYmUgY3VzdG9taXplZC4gU28ga2V5cyBhcmUgZXNzZW50aWFsbHkgaW1tdXRhYmxlLlxuICAgICAgLy8gVGhlcmVmb3JlLCBpZiBhIGtleSBleGlzdHMsIHRoZXJlJ3Mgbm8gcmVhc29uIHRvIHVwZGF0ZSBpdC5cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIHNyYy5rZXlzKSB7XG4gICAgICAgIC8vIE5vdGUgdXNpbmcgUmVsYXkgZ2xvYmFsIGlkIGFsbG93cyB1cyB0byBub3Qgd29ycnkgYWJvdXQgY2xhc2hpbmcgbm9kZSBpZFxuICAgICAgICBpZiAodGhpcy5ncmFwaC5oYXNOb2RlKGtleS5pZCkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vZGU6IEtleUdyYXBoTm9kZSA9IHtcbiAgICAgICAgICB0eXBlOiBLZXlHcmFwaE5vZGVUeXBlLktleSxcbiAgICAgICAgICBkYXRhOiBsb2Rhc2guY2xvbmVEZWVwKGtleSksXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5ncmFwaC5zZXROb2RlKGtleS5pZCwgbm9kZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gS2V5TGlua3NcbiAgICBpZiAoc3JjLmtleUxpbmtzKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleUxpbmsgb2Ygc3JjLmtleUxpbmtzKSB7XG4gICAgICAgIGlmICh0aGlzLmdyYXBoLmhhc0VkZ2Uoa2V5TGluay53cmFwcGluZ0tleUlkLCBrZXlMaW5rLmtleUlkKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWRnZTogS2V5R3JhcGhFZGdlID0ge1xuICAgICAgICAgIHR5cGU6IEtleUdyYXBoRWRnZVR5cGUuS2V5TGluayxcbiAgICAgICAgICBkYXRhOiBsb2Rhc2guY2xvbmVEZWVwKGtleUxpbmspLFxuICAgICAgICB9O1xuICAgICAgICAvLyBFZGdlIGdvZXMgZnJvbSB3cmFwcGluZyBrZXkgdG8gd3JhcHBlZCBrZXkuXG4gICAgICAgIHRoaXMuZ3JhcGguc2V0RWRnZShrZXlMaW5rLndyYXBwaW5nS2V5SWQsIGtleUxpbmsua2V5SWQsIGVkZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBhc3NLZXlMaW5rc1xuICAgIGlmIChzcmMucGFzc0tleUxpbmtzKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhc3NLZXlMaW5rIG9mIHNyYy5wYXNzS2V5TGlua3MpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGguaGFzRWRnZShwYXNzS2V5TGluay5wYXNzS2V5SWQsIHBhc3NLZXlMaW5rLmtleUlkKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWRnZTogS2V5R3JhcGhFZGdlID0ge1xuICAgICAgICAgIHR5cGU6IEtleUdyYXBoRWRnZVR5cGUuUGFzc0tleUxpbmssXG4gICAgICAgICAgZGF0YTogbG9kYXNoLmNsb25lRGVlcChwYXNzS2V5TGluayksXG4gICAgICAgIH07XG4gICAgICAgIC8vIEVkZ2UgZ29lcyBmcm9tIHdyYXBwaW5nIGtleSB0byB3cmFwcGVkIGtleS5cbiAgICAgICAgdGhpcy5ncmFwaC5zZXRFZGdlKHBhc3NLZXlMaW5rLnBhc3NLZXlJZCwgcGFzc0tleUxpbmsua2V5SWQsIGVkZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBncmFwaCBpcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aC4gVGhlc2UgYXJlIGxhemlseSBjYWxjdWxhdGVkLlxuICAgIC8vIHRoaXMua2V5Q2FjaGUgPSBudWxsO1xuICB9XG5cbiAgdHJhY2VQYXRoKGRpc3RhbmNlcywga2V5SWQ6IHN0cmluZyk6IEtleUdyYXBoRWRnZVtdIHtcbiAgICAvLyBUaGUgbm9kZSBsYWJlbCBpcyB0aGUgc2FtZSBhcyB0aGUgaWQgb2YgdGhlIGtleSBub2Rlcy5cbiAgICBjb25zdCByZXQ6IEtleUdyYXBoRWRnZVtdID0gW107XG4gICAgbGV0IG5vZGUgPSBrZXlJZDtcbiAgICBpZiAoIWRpc3RhbmNlc1tub2RlXS5wcmVkZWNlc3Nvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgd2hpbGUgKGRpc3RhbmNlc1tub2RlXS5wcmVkZWNlc3Nvcikge1xuICAgICAgY29uc3QgY2hpbGQgPSBkaXN0YW5jZXNbbm9kZV0ucHJlZGVjZXNzb3I7XG4gICAgICByZXQucHVzaCh0aGlzLmdyYXBoLmVkZ2UoY2hpbGQsIG5vZGUpKTtcbiAgICAgIG5vZGUgPSBjaGlsZDtcbiAgICB9XG5cbiAgICAvLyBBZnRlciByZXZlcnNlLCB0aGUgZmlyc3QgZWxlbWVudCBpcyB0aGUgcGFzc2tleVxuICAgIHJldC5yZXZlcnNlKCk7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgZ2V0UGF0aChrbm93bktleUlkOiBzdHJpbmcsIGtleUlkOiBzdHJpbmcpOiBLZXlHcmFwaEVkZ2VbXSB7XG4gICAgaWYgKCFrbm93bktleUlkIHx8IHR5cGVvZiBrbm93bktleUlkICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEtjRW5jcnlwdGlvbkV4Y2VwdGlvbihcbiAgICAgICAgYFBhcmFtIGtub3duS2V5SWQgd3JvbmcgZm9ybWF0OiAke2tub3duS2V5SWR9YFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCFrZXlJZCB8fCB0eXBlb2Yga2V5SWQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgS2NFbmNyeXB0aW9uRXhjZXB0aW9uKGBQYXJhbSBrZXlJZCB3cm9uZyBmb3JtYXQ6ICR7a2V5SWR9YCk7XG4gICAgfVxuXG4gICAgLy8gPT4geyBBOiB7IGRpc3RhbmNlOiAwIH0sXG4gICAgLy8gICAgICBCOiB7IGRpc3RhbmNlOiA2LCBwcmVkZWNlc3NvcjogJ0MnIH0sXG4gICAgLy8gICAgICBDOiB7IGRpc3RhbmNlOiA0LCBwcmVkZWNlc3NvcjogJ0EnIH0sXG4gICAgLy8gICAgICBEOiB7IGRpc3RhbmNlOiAyLCBwcmVkZWNlc3NvcjogJ0EnIH0sXG4gICAgLy8gICAgICBFOiB7IGRpc3RhbmNlOiA4LCBwcmVkZWNlc3NvcjogJ0YnIH0sXG4gICAgLy8gICAgICBGOiB7IGRpc3RhbmNlOiA0LCBwcmVkZWNlc3NvcjogJ0QnIH0gfVxuICAgIGNvbnN0IGRpc3RhbmNlcyA9IGdyYXBobGliLmFsZy5kaWprc3RyYSh0aGlzLmdyYXBoLCBrbm93bktleUlkKTtcblxuICAgIC8vIFRyYWNlIHBhdGggZnJvbSBrZXlJZCB0byBrbm93bktleUlkXG4gICAgcmV0dXJuIHRoaXMudHJhY2VQYXRoKGRpc3RhbmNlcywga2V5SWQpO1xuICB9XG5cbiAgYXN5bmMgZ2V0SndrS2V5KFxuICAgIGtleU9ySWQ6IHN0cmluZyB8IEtleSxcbiAgICBnZXRLZXlJZENhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTxzdHJpbmc+IHwgc3RyaW5nXG4gICk6IFByb21pc2U8SldLLktleT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRLZXkoa2V5T3JJZCwgZ2V0S2V5SWRDYWxsYmFjaykpLmp3aztcbiAgfVxuXG4gIC8vIFdlIGFzc3VtZSB0aGF0IHdoZW4gYSBrZXlJZCBpcyBmZXRjaGVkLCB0aGUga2V5IGdyYXBoXG4gIC8vIGZvciB0aGUga2V5IGlzIGFsc28gcmV0dXJuZWQgYW5kIG1lcmdlZCBpbnRvIHRoZSBjbGllbnQtc2lkZVxuICAvLyBrZXkgZ3JhcGguIEJ5IGluc2lzdGluZyBhIGtleUlkIGlzIHJldHVybmVkIGluc3RlYWQgb2YgdGhlXG4gIC8vIGFjdHVhbCBrZXkgd2UgZW5zdXJlIGtleS1ncmFwaCBpcyBjb25zaXN0ZW50LlxuICBhc3luYyBnZXRLZXkoXG4gICAga2V5T3JJZDogc3RyaW5nIHwgS2V5LFxuICAgIGdldEtleUlkQ2FsbGJhY2s/OiAoKSA9PiBQcm9taXNlPHN0cmluZz4gfCBzdHJpbmdcbiAgKTogUHJvbWlzZTxLZXk+IHtcbiAgICBsZXQga2V5SWQgPSB0eXBlb2Yga2V5T3JJZCA9PT0gJ3N0cmluZycgPyBrZXlPcklkIDoga2V5T3JJZD8uaWQ7XG5cbiAgICBpZiAoIXRoaXMuaGFzS2V5KGtleUlkKSAmJiBnZXRLZXlJZENhbGxiYWNrKSB7XG4gICAgICBjb25zdCBrZXlJZEZyb21DYWxsYmFjayA9IGF3YWl0IGdldEtleUlkQ2FsbGJhY2soKTtcblxuICAgICAgaWYgKGtleUlkICE9IG51bGwgJiYga2V5SWQgIT0ga2V5SWRGcm9tQ2FsbGJhY2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEtjQmFkTG9naWNFeGNlcHRpb24oXG4gICAgICAgICAgJ1JlcXVlc3RlZCBrZXlJZCBpcyBub3QgaW4gdGhlIGtleSBjYWNoZSwgc28gYW4gQVBJIHJlcXVlc3Qgd2FzIG1hZGUgdG8gcG9wdWxhdGUgdGhlIGtleSBjYWNoZS4nICtcbiAgICAgICAgICAgICdCdXQgdGhlIGtleSByZXR1cm5lZCBieSB0aGUgQVBJIGRvZXMgTk9UIG1hdGNoIHRoZSByZXF1ZXN0ZWQga2V5SWQuJyArXG4gICAgICAgICAgICAnVGhpcyBpcyBhIHByb2dyYW1taW5nIGxvZ2ljIGVycm9yLidcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAga2V5SWQgPSBrZXlJZEZyb21DYWxsYmFjaztcbiAgICB9XG4gICAgLy8gZWxzZSwgY29udGludWUgYW5kIGxldCBpdCBmYWlsLlxuXG4gICAgY29uc3Qga2V5ID0gdGhpcy5rZXkoa2V5SWQpO1xuICAgIGlmIChrZXkuandrKSB7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy51bndyYXBLZXkodGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRNYXN0ZXJLZXkuaWQsIGtleUlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF91bndyYXBMaW5rKFxuICAgIHdyYXBwaW5nS2V5OiBKV0suS2V5LFxuICAgIGxpbms6IEtleUdyYXBoRWRnZSxcbiAgICBkc3RLZXk6IEdyYXBoS2V5XG4gICkge1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBKU09OLnBhcnNlKGxpbmsuZGF0YS53cmFwcGVkS2V5KTtcblxuICAgIC8vIFNpZ25hdHVyZXMgb2Yga2V5cyBjb250YWluIHRoZSBrZXkgaXRzZWxmLiBUaGlzIHdheSB3ZSBvbmx5IG5lZWRcbiAgICAvLyB0byBhY2Nlc3MgdGhlIEtleUxpbmtzIHRvIGRlY3J5cHQvdmVyaWZ5IGtleXMuXG4gICAgbGV0IG5leHRSYXdLZXk7XG4gICAgaWYgKHdyYXBwZWRLZXkuc2lnbmF0dXJlcykge1xuICAgICAgbmV4dFJhd0tleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UudmVyaWZ5KHdyYXBwaW5nS2V5LCB3cmFwcGVkS2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dFJhd0tleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAgd3JhcHBpbmdLZXksXG4gICAgICAgIHdyYXBwZWRLZXlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIG5lc3RlZCBrZXlzLiBpLmUuIEVuY3tLMX17SzJ9e0szfShyYXcga2V5IDQpLCB3aGVyZTpcbiAgICAvLyAgIEsxOiBsaW5rLndyYXBwaW5nS2V5XG4gICAgLy8gICBLMjogbGluay5uZXN0ZWRXcmFwcGluZ0tleVswXVxuICAgIC8vICAgSzM6IGxpbmsubmVzdGVkV3JhcHBpbmdLZXlbMV1cbiAgICBpZiAobGluay50eXBlID09IEtleUdyYXBoRWRnZVR5cGUuS2V5TGluaykge1xuICAgICAgY29uc3QgZGF0YSA9IGxpbmsuZGF0YSBhcyBLZXlMaW5rO1xuICAgICAgaWYgKGRhdGEubmVzdGVkV3JhcHBpbmdLZXlJZHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBuZXN0ZWRXcmFwcGluZ0tleUlkIG9mIGRhdGEubmVzdGVkV3JhcHBpbmdLZXlJZHMpIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmdldEtleShuZXN0ZWRXcmFwcGluZ0tleUlkKTtcbiAgICAgICAgICBuZXh0UmF3S2V5ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgICAgICAga2V5Lmp3ayxcbiAgICAgICAgICAgIG5leHRSYXdLZXlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZHN0S2V5Lmp3ayA9IGF3YWl0IEtGUy5hc0tleShuZXh0UmF3S2V5KTtcbiAgICBkc3RLZXkudGFzayA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF91bndyYXAoa2V5OiBKV0suS2V5LCBwYXRoOiBLZXlHcmFwaEVkZ2VbXSk6IFByb21pc2U8SldLLktleT4ge1xuICAgIGZvciAoY29uc3QgbGluayBvZiBwYXRoKSB7XG4gICAgICBjb25zdCBkc3RLZXkgPSB0aGlzLmtleShsaW5rLmRhdGEua2V5SWQpO1xuICAgICAgaWYgKGRzdEtleS5qd2spIHtcbiAgICAgICAga2V5ID0gZHN0S2V5Lmp3aztcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghZHN0S2V5LnRhc2spIHtcbiAgICAgICAgZHN0S2V5LnRhc2sgPSB0aGlzLl91bndyYXBMaW5rKGtleSwgbGluaywgZHN0S2V5KTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgZHN0S2V5LnRhc2s7XG4gICAgICBrZXkgPSBkc3RLZXkuandrO1xuICAgIH1cblxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdW53cmFwV2l0aFBhc3NLZXkoXG4gICAgcGFzc0tleUlkOiBzdHJpbmcsXG4gICAgcGFzc0tleTogSldLLktleSxcbiAgICBrZXlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5PiB7XG4gICAgLy8gR2V0IHBhdGggb2YgdGhlIGRpcmVjdG9yeSBrZXkuXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aChwYXNzS2V5SWQsIGtleUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDoga2V5SWQsXG4gICAgICBqd2s6IGF3YWl0IHRoaXMuX3Vud3JhcChwYXNzS2V5LCBwYXRoKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdW53cmFwS2V5KG1hc3RlcktleUlkOiBzdHJpbmcsIGtleUlkOiBzdHJpbmcpOiBQcm9taXNlPEtleT4ge1xuICAgIC8vIFRoZSBmaXJzdCBrZXkgc2hvdWxkIGJlIGEgbWFzdGVyS2V5XG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLmxvYWRNYXN0ZXJLZXkobWFzdGVyS2V5SWQpO1xuXG4gICAgaWYgKG1hc3RlcktleUlkID09PSBrZXlJZCkge1xuICAgICAgcmV0dXJuIG1hc3RlcktleTtcbiAgICB9XG5cbiAgICAvLyBHZXQgcGF0aCBvZiB0aGUgZGlyZWN0b3J5IGtleS5cbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKG1hc3RlcktleS5pZCwga2V5SWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBrZXlJZCxcbiAgICAgIGp3azogYXdhaXQgdGhpcy5fdW53cmFwKG1hc3RlcktleS5qd2ssIHBhdGgpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBkZWNyeXB0RnJvbVN0cmluZzxUPihcbiAgICBrZXlPcklkOiBzdHJpbmcgfCBLZXksXG4gICAgY2lwaGVyRGF0YTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBEZWNyeXB0T3B0aW9uc1xuICApOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAoY2lwaGVyRGF0YSkge1xuICAgICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5nZXRKd2tLZXkoa2V5T3JJZCk7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAga2V5LFxuICAgICAgICBKU09OLnBhcnNlKGNpcGhlckRhdGEpLFxuICAgICAgICBvcHRpb25zXG4gICAgICApKSBhcyBhbnk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgZGVjcnlwdEZpbGUoa2V5SWQ6IHN0cmluZywgZmlsZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmdldEp3a0tleShrZXlJZCk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoa2V5LCBmaWxlLCB7XG4gICAgICBwYXlsb2FkVHlwZTogUGF5bG9hZFR5cGUuVUlOVF84X0FSUkFZLFxuICAgIH0pKSBhcyBhbnk7XG4gIH1cblxuICAvLyBUT0RPIHJlbmFtZSB0aGlzIHRvIGVuY3J5cHQoKSBhbmQgdXNlIGFzIHRoZSBtb3N0IGNvbW1vbiB1c2VjYXNlXG4gIGFzeW5jIGVuY3J5cHRUb1N0cmluZyhcbiAgICBrZXk6IHN0cmluZyB8IEtleSB8IEpXSy5LZXksXG4gICAgY29udGVudDogYW55XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgLy8gRW1wdHkgc3RyaW5nIHNob3VsZCBiZSBlbmNyeXB0ZWQgc2luY2UgeW91IHdhbnQgdG8gY2xlYXIgdGhlIGZpZWxkLlxuICAgIC8vIE51bGwgaXMgbm90IGVuY3J5cHRlZCBiZWNhdXNlIGl0J3Mgbm90IHZhbGlkIEpTT04gaW4gdGhlIG9sZCBKU09OIHNwZWMuIFVzZVxuICAgIC8vIGVtcHR5IHN0cmluZyBpbnN0ZWFkLiBJdCdsbCBmdW5jdGlvbiBhcyBhIGxvZ2ljIGZhbHNlIGFzIHdlbGwuXG4gICAgLy8gTm90ZSB0aGF0IHBhc3NpbmcgaW4gZW1wdHkgc3RyaW5nIG1lYW5zIGl0J2xsIGJlIGVuY3J5cHRlZCB3aGljaCB2ZXJpZmllc1xuICAgIC8vIGl0J3MgaW50ZWdyaXR5LiBCdXQgd2Ugc3RpbGwgd2FudCB0byBoYXZlIGEgd2F5IHRvIHNldCB0aGUgREIgZmllbGRcbiAgICAvLyB0byBOVUxMLCBzbyB3ZSBleHBsaWNpdGx5IHJldHVybiBudWxsIHdoZW4gY29udGVudCA9PSBudWxsLiBBIG51bGxcbiAgICAvLyB2YXJpYWJsZSBpbiBncmFwaHFsIG11dGF0aW9uIG9uIEtDIHNlcnZlciBjbGVhcnMgdGhlIGZpZWxkIHRvIE5VTEwuXG4gICAgaWYgKGNvbnRlbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgandrID0gYXNKd2soa2V5KSB8fCAoYXdhaXQgdGhpcy5nZXRKd2tLZXkoa2V5IGFzIHN0cmluZyB8IEtleSkpO1xuICAgIHJldHVybiB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhqd2ssIGNvbnRlbnQpO1xuICB9XG5cbiAgLy8gV3JhcHMgYSBzeW1tZXRyaWMgZW5jcnlwdGlvbiBrZXkuXG4gIC8vIFRocm93cyBleGNlcHRpb24gaWYgd3JhcHBpbmcgcHVibGljIGtleXMuXG4gIGFzeW5jIHdyYXBLZXkoXG4gICAgd3JhcHBpbmdLZXk6IHN0cmluZyB8IEtleSB8IEpXSy5LZXksXG4gICAga2V5OiBKV0suS2V5XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCFpc1N5bW1ldHJpY0tleShrZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRBcmd1bWVudEV4Y2VwdGlvbihcbiAgICAgICAgJ09ubHkgYWxsb3dpbmcgd3JhcHBpbmcgb2Ygc3ltbWV0cmljIGtleXMuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5lbmNyeXB0VG9TdHJpbmcod3JhcHBpbmdLZXksIGtleS50b0pTT04odHJ1ZSkpO1xuICB9XG5cbiAgLy8gVE9ET1xuICAvLyBhc3luYyB3cmFwUHVibGljS2V5PFQ+KCk7XG4gIC8vIGFzeW5jIHdyYXBQcml2YXRlS2V5PFQ+KCk7XG5cbiAgYXN5bmMgZW5jcnlwdFdpdGhOZXdLZXkod3JhcHBpbmdLZXlJZDogc3RyaW5nLCBjaXBoZXJDbGVhckpzb246IEpTT05PYmplY3QpIHtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgd3JhcHBpbmdLZXlJZCxcbiAgICAgIGtleS50b0pTT04odHJ1ZSlcbiAgICApO1xuICAgIGNvbnN0IGNpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdFRvU3RyaW5nKGtleSwgY2lwaGVyQ2xlYXJKc29uKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXksXG4gICAgICB3cmFwcGluZ0tleUlkLFxuICAgICAgd3JhcHBlZEtleSxcbiAgICAgIGNpcGhlcixcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,10 +1,10 @@
1
1
  import { __awaiter, __rest } from "tslib";
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  import { Injectable } from '@angular/core';
4
- import _ from 'lodash';
5
4
  import { LrGraphQLService } from '../api/lr-graphql';
6
5
  import { mapEdges } from '../api/types';
7
6
  import { SharedContactCardService } from '../shared-contact-card/shared-contact-card.service';
7
+ import { lodash } from '../_common';
8
8
  import { ContactCardsQuery, TrustedPartiesQuery } from './profile.gql';
9
9
  import { ProfileService } from './profile.service';
10
10
  import { TrustedPartyType, } from './profile.types';
@@ -176,7 +176,7 @@ export class ProfileDetailsService {
176
176
  oldValue: oldValue.value,
177
177
  });
178
178
  }
179
- else if (!_.isEqual(newValue.value, oldValue.value)) {
179
+ else if (!lodash.isEqual(newValue.value, oldValue.value)) {
180
180
  changes.push({
181
181
  field,
182
182
  id: oldValue.id,
@@ -217,7 +217,7 @@ export class ProfileDetailsService {
217
217
  break;
218
218
  default: {
219
219
  const value = details[change.field];
220
- if (_.isEqual(value, change.oldValue)) {
220
+ if (lodash.isEqual(value, change.oldValue)) {
221
221
  hasChanged = true;
222
222
  details[change.field] = change.newValue;
223
223
  }
@@ -234,7 +234,7 @@ export class ProfileDetailsService {
234
234
  property = property || { value: field, hasMultiple: false };
235
235
  property.values = property.values || [];
236
236
  if (property.values.length === 0 ||
237
- property.values.every((x) => !_.isEqual(field, x.value))) {
237
+ property.values.every((x) => !lodash.isEqual(field, x.value))) {
238
238
  property.values.push({
239
239
  id: `${label}-${new Date().getTime()}`,
240
240
  label,
@@ -258,4 +258,4 @@ ProfileDetailsService.ctorParameters = () => [
258
258
  { type: ProfileService },
259
259
  { type: LrGraphQLService }
260
260
  ];
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1kZXRhaWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvcHJvZmlsZS9wcm9maWxlLWRldGFpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQVUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBT0wsZ0JBQWdCLEdBQ2pCLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRXpCLElBQUssYUFNSjtBQU5ELFdBQUssYUFBYTtJQUNoQiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FBQTtJQUNmLGdDQUFlLENBQUE7SUFDZixnQ0FBZSxDQUFBO0lBQ2Ysb0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQU5JLGFBQWEsS0FBYixhQUFhLFFBTWpCO0FBRUQsTUFBTSxVQUFVLEdBQUc7SUFDakIsYUFBYSxDQUFDLElBQUk7SUFDbEIsYUFBYSxDQUFDLEtBQUs7SUFDbkIsYUFBYSxDQUFDLEtBQUs7SUFDbkIsYUFBYSxDQUFDLEtBQUs7SUFDbkIsYUFBYSxDQUFDLE9BQU87Q0FDdEIsQ0FBQztBQWFGLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSx3QkFBa0QsRUFDbEQsY0FBOEIsRUFDOUIsR0FBcUI7UUFGckIsNkJB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YztZQUpkLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBMckdyYXBoUUxTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgbWFwRWRnZXMsIFRwTm9kZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBTaGFyZWRDb250YWN0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQtY29udGFjdC1jYXJkL3NoYXJlZC1jb250YWN0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250YWN0Q2FyZHNRdWVyeSwgVHJ1c3RlZFBhcnRpZXNRdWVyeSB9IGZyb20gJy4vcHJvZmlsZS5ncWwnO1xuaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuL3Byb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQge1xuICBNYWluQ29udGFjdENhcmQsXG4gIE1haW5Db250YWN0Q2FyZEZpZWxkcyxcbiAgTWFpbkNvbnRhY3RDYXJkUHJvcGVydHksXG4gIFNoYXJlZFRydXN0ZWRQYXJ0eURldGFpbHMsXG4gIFRydXN0ZWRQYXJ0eSxcbiAgVHJ1c3RlZFBhcnR5RGV0YWlscyxcbiAgVHJ1c3RlZFBhcnR5VHlwZSxcbn0gZnJvbSAnLi9wcm9maWxlLnR5cGVzJztcblxuZW51bSBDb250YWN0RmllbGRzIHtcbiAgTmFtZSA9ICduYW1lJyxcbiAgRW1haWwgPSAnZW1haWwnLFxuICBJbWFnZSA9ICdpbWFnZScsXG4gIFBob25lID0gJ3Bob25lJyxcbiAgQWRkcmVzcyA9ICdhZGRyZXNzJyxcbn1cblxuY29uc3QgRmllbGROYW1lcyA9IFtcbiAgQ29udGFjdEZpZWxkcy5OYW1lLFxuICBDb250YWN0RmllbGRzLkVtYWlsLFxuICBDb250YWN0RmllbGRzLkltYWdlLFxuICBDb250YWN0RmllbGRzLlBob25lLFxuICBDb250YWN0RmllbGRzLkFkZHJlc3MsXG5dO1xuXG5pbnRlcmZhY2UgRmllbGRDaGFuZ2Uge1xuICBmaWVsZDogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBvbGRWYWx1ZT86IGFueTtcbiAgbmV3VmFsdWU/OiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlRGV0YWlsc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNoYXJlZENvbnRhY3RDYXJkU2VydmljZTogU2hhcmVkQ29udGFjdENhcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBpOiBMckdyYXBoUUxTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyB1cGRhdGVEZXRhaWxzKGZpZWxkczogTWFpbkNvbnRhY3RDYXJkRmllbGRzKTogUHJvbWlzZTxNYWluQ29udGFjdENhcmQ+IHtcbiAgICBjb25zb2xlLmxvZygndXBkYXRlRGV0YWlscygpJyk7XG4gICAgY29uc3QgbWFpbkNvbnRhY3RDYXJkID0gYXdhaXQgdGhpcy5mZXRjaE1haW5Db250YWN0Q2FyZCgpO1xuXG4gICAgY29uc3QgdXBkYXRlZE1haW5Db250YWN0Q2FyZCA9IGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UudXBkYXRlRGV0YWlscyhcbiAgICAgIG1haW5Db250YWN0Q2FyZD8uaWQsXG4gICAgICBtYWluQ29udGFjdENhcmQ/LmtleUlkLFxuICAgICAgZmllbGRzXG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMuc3luY2hyb25pemVDb250YWN0Q2FyZHMoZmllbGRzLCBtYWluQ29udGFjdENhcmQ/LmZpZWxkcyk7XG5cbiAgICByZXR1cm4gdXBkYXRlZE1haW5Db250YWN0Q2FyZDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVRydXN0ZWRQYXJ0eURldGFpbHMoZGV0YWlsczogU2hhcmVkVHJ1c3RlZFBhcnR5RGV0YWlscykge1xuICAgIGNvbnN0IHsgaWQsIG93bmVkS2V5SWQsIHNoYXJlZEtleUlkLCAuLi5jb250YWN0Q2FyZCB9ID0gZGV0YWlscztcblxuICAgIGF3YWl0IHRoaXMuc2hhcmVkQ29udGFjdENhcmRTZXJ2aWNlLnVwZGF0ZU15U2hhcmVkQ29udGFjdENhcmQoXG4gICAgICBpZCxcbiAgICAgIG93bmVkS2V5SWQsXG4gICAgICBzaGFyZWRLZXlJZCxcbiAgICAgIGNvbnRhY3RDYXJkXG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMuc3luY2hyb25pemVTaGFyZWREZXRhaWxzKGRldGFpbHMpO1xuICB9XG5cbiAgYXN5bmMgc3luY2hyb25pemVTaGFyZWREZXRhaWxzKGRldGFpbHM6IFRydXN0ZWRQYXJ0eURldGFpbHMpIHtcbiAgICBsZXQgaGFzTmV3VmFsdWVzID0gZmFsc2U7XG5cbiAgICAvLyBVc2VkIHRvIGJlIGEgZ2V0Q3VycmVudFVzZXIoKSBjYWxsIHdoaWNoIHJldHVybnMgYSBjYWNoZXMgdmVyc2lvbiBvZiB0aGUgY29udGFjdCBjYXJkLlxuICAgIC8vIE5vdyB3ZSBqdXN0IG1ha2UgYW4gQVBJIGNhbGwuIFNvIG9rIHRvIG1vZGlmeSB0aGUgcmV0dXJuZWQgdmFsdWUuXG4gICAgY29uc3QgbWFpbkNvbnRhY3RDYXJkID0gYXdhaXQgdGhpcy5mZXRjaE1haW5Db250YWN0Q2FyZCgpO1xuXG4gICAgaWYgKGRldGFpbHMubmFtZSkge1xuICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmNoZWNrRmllbGQoXG4gICAgICAgIGRldGFpbHMubmFtZSxcbiAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkcy5uYW1lXG4gICAgICApO1xuXG4gICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkcy5uYW1lID0gcHJvcGVydHk7XG4gICAgICAgIGhhc05ld1ZhbHVlcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRldGFpbHMuZW1haWwpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5jaGVja0ZpZWxkKFxuICAgICAgICBkZXRhaWxzLmVtYWlsLFxuICAgICAgICBtYWluQ29udGFjdENhcmQuZmllbGRzLmVtYWlsXG4gICAgICApO1xuXG4gICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkcy5lbWFpbCA9IHByb3BlcnR5O1xuICAgICAgICBoYXNOZXdWYWx1ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXRhaWxzLmltYWdlKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuY2hlY2tGaWVsZChcbiAgICAgICAgZGV0YWlscy5pbWFnZSxcbiAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkcy5pbWFnZVxuICAgICAgKTtcblxuICAgICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICAgIG1haW5Db250YWN0Q2FyZC5maWVsZHMuaW1hZ2UgPSBwcm9wZXJ0eTtcbiAgICAgICAgaGFzTmV3VmFsdWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGV0YWlscy5waG9uZXMgJiYgZGV0YWlscy5waG9uZXMubGVuZ3RoKSB7XG4gICAgICBmb3IgKGNvbnN0IHBob25lIG9mIGRldGFpbHMucGhvbmVzKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5jaGVja0ZpZWxkKFxuICAgICAgICAgIHBob25lLnZhbHVlLFxuICAgICAgICAgIG1haW5Db250YWN0Q2FyZC5maWVsZHMucGhvbmUsXG4gICAgICAgICAgcGhvbmUubGFiZWxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgICBtYWluQ29udGFjdENhcmQuZmllbGRzLnBob25lID0gcHJvcGVydHk7XG4gICAgICAgICAgaGFzTmV3VmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXRhaWxzLmFkZHJlc3NlcyAmJiBkZXRhaWxzLmFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICAgIGZvciAoY29uc3QgYWRkcmVzcyBvZiBkZXRhaWxzLmFkZHJlc3Nlcykge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuY2hlY2tGaWVsZChcbiAgICAgICAgICBhZGRyZXNzLnZhbHVlLFxuICAgICAgICAgIG1haW5Db250YWN0Q2FyZC5maWVsZHMuYWRkcmVzcyxcbiAgICAgICAgICBhZGRyZXNzLmxhYmVsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkcy5hZGRyZXNzID0gcHJvcGVydHk7XG4gICAgICAgICAgaGFzTmV3VmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYXNOZXdWYWx1ZXMpIHtcbiAgICAgIGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UudXBkYXRlRGV0YWlscyhcbiAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmlkLFxuICAgICAgICBtYWluQ29udGFjdENhcmQua2V5SWQsXG4gICAgICAgIG1haW5Db250YWN0Q2FyZC5maWVsZHNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhlbHBlcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hNYWluQ29udGFjdENhcmQoKTogUHJvbWlzZTxNYWluQ29udGFjdENhcmQgfCBudWxsPiB7XG4gICAgY29uc3QgbWFpbkNvbnRhY3RDYXJkID0gKGF3YWl0IHRoaXMuYXBpLnF1ZXJ5KHsgcXVlcnk6IENvbnRhY3RDYXJkc1F1ZXJ5IH0pKVxuICAgICAgLmNvbnRhY3RDYXJkcy5lZGdlc1swXT8ubm9kZTtcblxuICAgIHJldHVybiBtYWluQ29udGFjdENhcmRcbiAgICAgID8ge1xuICAgICAgICAgIGlkOiBtYWluQ29udGFjdENhcmQuaWQsXG4gICAgICAgICAga2V5SWQ6IG1haW5Db250YWN0Q2FyZC5rZXkuaWQsXG4gICAgICAgICAgZmllbGRzOiBtYWluQ29udGFjdENhcmQuY2lwaGVyRGF0YUNsZWFySnNvbiBhcyBNYWluQ29udGFjdENhcmRGaWVsZHMsXG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0VHJ1c3RlZFBhcnRpZXMoKTogUHJvbWlzZTxUcnVzdGVkUGFydHlbXT4ge1xuICAgIGNvbnN0IHsgdHBzIH0gPSBhd2FpdCB0aGlzLmFwaS5xdWVyeSh7XG4gICAgICBxdWVyeTogVHJ1c3RlZFBhcnRpZXNRdWVyeSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtYXBFZGdlcyh0cHMpLm1hcCgodHApID0+IHRoaXMubWFwVHJ1c3RlZFBhcnR5KHRwKSk7XG4gIH1cblxuICBwcml2YXRlIG1hcFRydXN0ZWRQYXJ0eSh0cDogVHBOb2RlKTogVHJ1c3RlZFBhcnR5IHtcbiAgICBjb25zdCB0cERldGFpbHM6IFRydXN0ZWRQYXJ0eURldGFpbHMgPVxuICAgICAgdHAuc2hhcmVkQ29udGFjdENhcmQuc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbjtcblxuICAgIGNvbnN0IG15RGV0YWlsczogU2hhcmVkVHJ1c3RlZFBhcnR5RGV0YWlscyA9IHtcbiAgICAgIC4uLnRwLm15Q29udGFjdENhcmQuc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbixcbiAgICAgIGlkOiB0cC5teUNvbnRhY3RDYXJkLmlkLFxuICAgICAgb3duZWRLZXlJZDogdHAubXlDb250YWN0Q2FyZC5vd25lcktleS5pZCxcbiAgICAgIHNoYXJlZEtleUlkOiB0cC5teUNvbnRhY3RDYXJkLnNoYXJlZEtleS5pZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0cC5pZCxcbiAgICAgIHR5cGU6IFRydXN0ZWRQYXJ0eVR5cGUuVXNlcixcbiAgICAgIGhhc1NjZW5hcmlvczogISF0cC5zaGFyZWRTY2VuYXJpb3MuZWRnZXMubGVuZ3RoLFxuICAgICAgaGFzU2hhcmVkVmF1bHQ6ICEhdHAudGhlaXJJdGVtcy5kaXJlY3Rvcmllcy5lZGdlcy5sZW5ndGgsXG4gICAgICBuYW1lOiB0cERldGFpbHM/Lm5hbWU/Lm5hbWUsXG4gICAgICBkZXRhaWxzOiB0cERldGFpbHMsXG4gICAgICBteVNoYXJlZERldGFpbHM6IG15RGV0YWlscyxcbiAgICAgIHVzZXJTaGFyZWRLZXk6IHRwLmN1cnJlbnRVc2VyU2hhcmVkS2V5LnVzZXJTaGFyZWRLZXksXG4gICAgICB1c2VybmFtZTogdHAub3RoZXIudXNlcm5hbWUsXG4gICAgICBmZWF0dXJlczoge1xuICAgICAgICBzaGFyZWRWYXVsdDoge1xuICAgICAgICAgIGhhc0FjY2VzczpcbiAgICAgICAgICAgICh0cC5vdGhlci5mZWF0dXJlcz8uc2hhcmVWYXVsdCB8fCBbJ25vYWNjZXNzJ10pWzBdID09PSAnYWNjZXNzJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3luY2hyb25pemVDb250YWN0Q2FyZHMoXG4gICAgbmV3RmllbGRzOiBNYWluQ29udGFjdENhcmRGaWVsZHMsXG4gICAgb2xkRmllbGRzOiBNYWluQ29udGFjdENhcmRGaWVsZHNcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFvbGRGaWVsZHMpIHJldHVybjtcblxuICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLmdldENoYW5nZXMobmV3RmllbGRzLCBvbGRGaWVsZHMpO1xuXG4gICAgaWYgKGNoYW5nZXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCB0cnVzdGVkUGFydGllcyA9IGF3YWl0IHRoaXMuZ2V0VHJ1c3RlZFBhcnRpZXMoKTtcblxuICAgIGlmICh0cnVzdGVkUGFydGllcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgZGV0YWlscyBvZiB0cnVzdGVkUGFydGllcy5tYXAoKHgpID0+IHgubXlTaGFyZWREZXRhaWxzKSkge1xuICAgICAgYXdhaXQgdGhpcy5zeW5jaHJvbml6ZVNoYXJlZENvbnRhY3RDYXJkKGRldGFpbHMsIGNoYW5nZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hhbmdlcyhcbiAgICBuZXdGaWVsZHM6IE1haW5Db250YWN0Q2FyZEZpZWxkcyxcbiAgICBvbGRGaWVsZHM6IE1haW5Db250YWN0Q2FyZEZpZWxkc1xuICApOiBGaWVsZENoYW5nZVtdIHtcbiAgICBjb25zdCBjaGFuZ2VzOiBGaWVsZENoYW5nZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIEZpZWxkTmFtZXMpIHtcbiAgICAgIGNvbnN0IG9sZEZpZWxkID0gb2xkRmllbGRzW2ZpZWxkXTtcbiAgICAgIGlmIChvbGRGaWVsZCAmJiBvbGRGaWVsZC52YWx1ZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBvbGRWYWx1ZSBvZiBvbGRGaWVsZC52YWx1ZXMpIHtcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IChuZXdGaWVsZHNbZmllbGRdLnZhbHVlcyBhcyBhbnlbXSk/LmZpbmQoXG4gICAgICAgICAgICAoeCkgPT4geC5pZCA9PT0gb2xkVmFsdWUuaWRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKCFuZXdWYWx1ZSkge1xuICAgICAgICAgICAgY2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgIGlkOiBvbGRWYWx1ZS5pZCxcbiAgICAgICAgICAgICAgbGFiZWw6IG9sZFZhbHVlLmxhYmVsLFxuICAgICAgICAgICAgICBvbGRWYWx1ZTogb2xkVmFsdWUudmFsdWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFfLmlzRXF1YWwobmV3VmFsdWUudmFsdWUsIG9sZFZhbHVlLnZhbHVlKSkge1xuICAgICAgICAgICAgY2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgIGlkOiBvbGRWYWx1ZS5pZCxcbiAgICAgICAgICAgICAgbGFiZWw6IG9sZFZhbHVlLmxhYmVsLFxuICAgICAgICAgICAgICBvbGRWYWx1ZTogb2xkVmFsdWUudmFsdWUsXG4gICAgICAgICAgICAgIG5ld1ZhbHVlOiBuZXdWYWx1ZS52YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3luY2hyb25pemVTaGFyZWRDb250YWN0Q2FyZChcbiAgICBkZXRhaWxzOiBTaGFyZWRUcnVzdGVkUGFydHlEZXRhaWxzLFxuICAgIGNoYW5nZXM6IEZpZWxkQ2hhbmdlW11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGhhc0NoYW5nZWQgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBjaGFuZ2VzKSB7XG4gICAgICBzd2l0Y2ggKGNoYW5nZS5maWVsZCkge1xuICAgICAgICBjYXNlIENvbnRhY3RGaWVsZHMuUGhvbmU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgICAgICBkZXRhaWxzLnBob25lcyAmJlxuICAgICAgICAgICAgICBkZXRhaWxzLnBob25lcy5maW5kKCh4KSA9PiB4LmxhYmVsID09PSBjaGFuZ2UubGFiZWwpO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICAgIHZhbHVlLnZhbHVlID0gY2hhbmdlLm5ld1ZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb250YWN0RmllbGRzLkFkZHJlc3M6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgICAgICBkZXRhaWxzLmFkZHJlc3NlcyAmJlxuICAgICAgICAgICAgICBkZXRhaWxzLmFkZHJlc3Nlcy5maW5kKCh4KSA9PiB4LmxhYmVsID09PSBjaGFuZ2UubGFiZWwpO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICAgIHZhbHVlLnZhbHVlID0gY2hhbmdlLm5ld1ZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGV0YWlsc1tjaGFuZ2UuZmllbGRdO1xuXG4gICAgICAgICAgaWYgKF8uaXNFcXVhbCh2YWx1ZSwgY2hhbmdlLm9sZFZhbHVlKSkge1xuICAgICAgICAgICAgaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICBkZXRhaWxzW2NoYW5nZS5maWVsZF0gPSBjaGFuZ2UubmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKSB7XG4gICAgICBjb25zdCB7IGlkLCBvd25lZEtleUlkLCBzaGFyZWRLZXlJZCwgLi4uY29udGFjdENhcmQgfSA9IGRldGFpbHM7XG5cbiAgICAgIGF3YWl0IHRoaXMuc2hhcmVkQ29udGFjdENhcmRTZXJ2aWNlLnVwZGF0ZU15U2hhcmVkQ29udGFjdENhcmQoXG4gICAgICAgIGlkLFxuICAgICAgICBvd25lZEtleUlkLFxuICAgICAgICBzaGFyZWRLZXlJZCxcbiAgICAgICAgY29udGFjdENhcmRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpZWxkPFQ+KFxuICAgIGZpZWxkOiBULFxuICAgIHByb3BlcnR5OiBNYWluQ29udGFjdENhcmRQcm9wZXJ0eTxUPixcbiAgICBsYWJlbDogc3RyaW5nID0gbnVsbFxuICApIHtcbiAgICBwcm9wZXJ0eSA9IHByb3BlcnR5IHx8IHsgdmFsdWU6IGZpZWxkLCBoYXNNdWx0aXBsZTogZmFsc2UgfTtcbiAgICBwcm9wZXJ0eS52YWx1ZXMgPSBwcm9wZXJ0eS52YWx1ZXMgfHwgW107XG5cbiAgICBpZiAoXG4gICAgICBwcm9wZXJ0eS52YWx1ZXMubGVuZ3RoID09PSAwIHx8XG4gICAgICBwcm9wZXJ0eS52YWx1ZXMuZXZlcnkoKHgpID0+ICFfLmlzRXF1YWwoZmllbGQsIHgudmFsdWUpKVxuICAgICkge1xuICAgICAgcHJvcGVydHkudmFsdWVzLnB1c2goe1xuICAgICAgICBpZDogYCR7bGFiZWx9LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9YCxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHZhbHVlOiBmaWVsZCxcbiAgICAgIH0pO1xuICAgICAgcHJvcGVydHkuaGFzTXVsdGlwbGUgPSBwcm9wZXJ0eS52YWx1ZXMubGVuZ3RoID4gMTtcbiAgICAgIHByb3BlcnR5LnZhbHVlID0gcHJvcGVydHkudmFsdWUgfHwgZmllbGQ7XG4gICAgICByZXR1cm4gcHJvcGVydHk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1kZXRhaWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvcHJvZmlsZS9wcm9maWxlLWRldGFpbHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBVSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQU9MLGdCQUFnQixHQUNqQixNQUFNLGlCQUFpQixDQUFDOzs7OztBQUV6QixJQUFLLGFBTUo7QUFORCxXQUFLLGFBQWE7SUFDaEIsOEJBQWEsQ0FBQTtJQUNiLGdDQUFlLENBQUE7SUFDZixnQ0FBZSxDQUFBO0lBQ2YsZ0NBQWUsQ0FBQTtJQUNmLG9DQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOSSxhQUFhLEtBQWIsYUFBYSxRQU1qQjtBQUVELE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGFBQWEsQ0FBQyxJQUFJO0lBQ2xCLGFBQWEsQ0FBQyxLQUFLO0lBQ25CLGFBQWEsQ0FBQyxLQUFLO0lBQ25CLGFBQWEsQ0FBQyxLQUFLO0lBQ25CLGFBQWEsQ0FBQyxPQUFPO0NBQ3RCLENBQUM7QUFhRixNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQ1Usd0JBQWtELEVBQ2xELGNBQThCLEVBQzlCLEdBQXFC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O1lBR3hCLGNBQWM7WUFMZCxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMckdyYXBoUUxTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xuaW1wb3J0IHsgbWFwRWRnZXMsIFRwTm9kZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBTaGFyZWRDb250YWN0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQtY29udGFjdC1jYXJkL3NoYXJlZC1jb250YWN0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBsb2Rhc2ggfSBmcm9tICcuLi9fY29tbW9uJztcbmltcG9ydCB7IENvbnRhY3RDYXJkc1F1ZXJ5LCBUcnVzdGVkUGFydGllc1F1ZXJ5IH0gZnJvbSAnLi9wcm9maWxlLmdxbCc7XG5pbXBvcnQgeyBQcm9maWxlU2VydmljZSB9IGZyb20gJy4vcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE1haW5Db250YWN0Q2FyZCxcbiAgTWFpbkNvbnRhY3RDYXJkRmllbGRzLFxuICBNYWluQ29udGFjdENhcmRQcm9wZXJ0eSxcbiAgU2hhcmVkVHJ1c3RlZFBhcnR5RGV0YWlscyxcbiAgVHJ1c3RlZFBhcnR5LFxuICBUcnVzdGVkUGFydHlEZXRhaWxzLFxuICBUcnVzdGVkUGFydHlUeXBlLFxufSBmcm9tICcuL3Byb2ZpbGUudHlwZXMnO1xuXG5lbnVtIENvbnRhY3RGaWVsZHMge1xuICBOYW1lID0gJ25hbWUnLFxuICBFbWFpbCA9ICdlbWFpbCcsXG4gIEltYWdlID0gJ2ltYWdlJyxcbiAgUGhvbmUgPSAncGhvbmUnLFxuICBBZGRyZXNzID0gJ2FkZHJlc3MnLFxufVxuXG5jb25zdCBGaWVsZE5hbWVzID0gW1xuICBDb250YWN0RmllbGRzLk5hbWUsXG4gIENvbnRhY3RGaWVsZHMuRW1haWwsXG4gIENvbnRhY3RGaWVsZHMuSW1hZ2UsXG4gIENvbnRhY3RGaWVsZHMuUGhvbmUsXG4gIENvbnRhY3RGaWVsZHMuQWRkcmVzcyxcbl07XG5cbmludGVyZmFjZSBGaWVsZENoYW5nZSB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9sZFZhbHVlPzogYW55O1xuICBuZXdWYWx1ZT86IGFueTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVEZXRhaWxzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2hhcmVkQ29udGFjdENhcmRTZXJ2aWNlOiBTaGFyZWRDb250YWN0Q2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9maWxlU2VydmljZTogUHJvZmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcGk6IExyR3JhcGhRTFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIHVwZGF0ZURldGFpbHMoZmllbGRzOiBNYWluQ29udGFjdENhcmRGaWVsZHMpOiBQcm9taXNlPE1haW5Db250YWN0Q2FyZD4ge1xuICAgIGNvbnNvbGUubG9nKCd1cGRhdGVEZXRhaWxzKCknKTtcbiAgICBjb25zdCBtYWluQ29udGFjdENhcmQgPSBhd2FpdCB0aGlzLmZldGNoTWFpbkNvbnRhY3RDYXJkKCk7XG5cbiAgICBjb25zdCB1cGRhdGVkTWFpbkNvbnRhY3RDYXJkID0gYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS51cGRhdGVEZXRhaWxzKFxuICAgICAgbWFpbkNvbnRhY3RDYXJkPy5pZCxcbiAgICAgIG1haW5Db250YWN0Q2FyZD8ua2V5SWQsXG4gICAgICBmaWVsZHNcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5zeW5jaHJvbml6ZUNvbnRhY3RDYXJkcyhmaWVsZHMsIG1haW5Db250YWN0Q2FyZD8uZmllbGRzKTtcblxuICAgIHJldHVybiB1cGRhdGVkTWFpbkNvbnRhY3RDYXJkO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlVHJ1c3RlZFBhcnR5RGV0YWlscyhkZXRhaWxzOiBTaGFyZWRUcnVzdGVkUGFydHlEZXRhaWxzKSB7XG4gICAgY29uc3QgeyBpZCwgb3duZWRLZXlJZCwgc2hhcmVkS2V5SWQsIC4uLmNvbnRhY3RDYXJkIH0gPSBkZXRhaWxzO1xuXG4gICAgYXdhaXQgdGhpcy5zaGFyZWRDb250YWN0Q2FyZFNlcnZpY2UudXBkYXRlTXlTaGFyZWRDb250YWN0Q2FyZChcbiAgICAgIGlkLFxuICAgICAgb3duZWRLZXlJZCxcbiAgICAgIHNoYXJlZEtleUlkLFxuICAgICAgY29udGFjdENhcmRcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5zeW5jaHJvbml6ZVNoYXJlZERldGFpbHMoZGV0YWlscyk7XG4gIH1cblxuICBhc3luYyBzeW5jaHJvbml6ZVNoYXJlZERldGFpbHMoZGV0YWlsczogVHJ1c3RlZFBhcnR5RGV0YWlscykge1xuICAgIGxldCBoYXNOZXdWYWx1ZXMgPSBmYWxzZTtcblxuICAgIC8vIFVzZWQgdG8gYmUgYSBnZXRDdXJyZW50VXNlcigpIGNhbGwgd2hpY2ggcmV0dXJucyBhIGNhY2hlcyB2ZXJzaW9uIG9mIHRoZSBjb250YWN0IGNhcmQuXG4gICAgLy8gTm93IHdlIGp1c3QgbWFrZSBhbiBBUEkgY2FsbC4gU28gb2sgdG8gbW9kaWZ5IHRoZSByZXR1cm5lZCB2YWx1ZS5cbiAgICBjb25zdCBtYWluQ29udGFjdENhcmQgPSBhd2FpdCB0aGlzLmZldGNoTWFpbkNvbnRhY3RDYXJkKCk7XG5cbiAgICBpZiAoZGV0YWlscy5uYW1lKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuY2hlY2tGaWVsZChcbiAgICAgICAgZGV0YWlscy5uYW1lLFxuICAgICAgICBtYWluQ29udGFjdENhcmQuZmllbGRzLm5hbWVcbiAgICAgICk7XG5cbiAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICBtYWluQ29udGFjdENhcmQuZmllbGRzLm5hbWUgPSBwcm9wZXJ0eTtcbiAgICAgICAgaGFzTmV3VmFsdWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGV0YWlscy5lbWFpbCkge1xuICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmNoZWNrRmllbGQoXG4gICAgICAgIGRldGFpbHMuZW1haWwsXG4gICAgICAgIG1haW5Db250YWN0Q2FyZC5maWVsZHMuZW1haWxcbiAgICAgICk7XG5cbiAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICBtYWluQ29udGFjdENhcmQuZmllbGRzLmVtYWlsID0gcHJvcGVydHk7XG4gICAgICAgIGhhc05ld1ZhbHVlcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRldGFpbHMuaW1hZ2UpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5jaGVja0ZpZWxkKFxuICAgICAgICBkZXRhaWxzLmltYWdlLFxuICAgICAgICBtYWluQ29udGFjdENhcmQuZmllbGRzLmltYWdlXG4gICAgICApO1xuXG4gICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkcy5pbWFnZSA9IHByb3BlcnR5O1xuICAgICAgICBoYXNOZXdWYWx1ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXRhaWxzLnBob25lcyAmJiBkZXRhaWxzLnBob25lcy5sZW5ndGgpIHtcbiAgICAgIGZvciAoY29uc3QgcGhvbmUgb2YgZGV0YWlscy5waG9uZXMpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmNoZWNrRmllbGQoXG4gICAgICAgICAgcGhvbmUudmFsdWUsXG4gICAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkcy5waG9uZSxcbiAgICAgICAgICBwaG9uZS5sYWJlbFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICAgIG1haW5Db250YWN0Q2FyZC5maWVsZHMucGhvbmUgPSBwcm9wZXJ0eTtcbiAgICAgICAgICBoYXNOZXdWYWx1ZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRldGFpbHMuYWRkcmVzc2VzICYmIGRldGFpbHMuYWRkcmVzc2VzLmxlbmd0aCkge1xuICAgICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIGRldGFpbHMuYWRkcmVzc2VzKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5jaGVja0ZpZWxkKFxuICAgICAgICAgIGFkZHJlc3MudmFsdWUsXG4gICAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkcy5hZGRyZXNzLFxuICAgICAgICAgIGFkZHJlc3MubGFiZWxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgICBtYWluQ29udGFjdENhcmQuZmllbGRzLmFkZHJlc3MgPSBwcm9wZXJ0eTtcbiAgICAgICAgICBoYXNOZXdWYWx1ZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhhc05ld1ZhbHVlcykge1xuICAgICAgYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS51cGRhdGVEZXRhaWxzKFxuICAgICAgICBtYWluQ29udGFjdENhcmQuaWQsXG4gICAgICAgIG1haW5Db250YWN0Q2FyZC5rZXlJZCxcbiAgICAgICAgbWFpbkNvbnRhY3RDYXJkLmZpZWxkc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSGVscGVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcHJpdmF0ZSBhc3luYyBmZXRjaE1haW5Db250YWN0Q2FyZCgpOiBQcm9taXNlPE1haW5Db250YWN0Q2FyZCB8IG51bGw+IHtcbiAgICBjb25zdCBtYWluQ29udGFjdENhcmQgPSAoYXdhaXQgdGhpcy5hcGkucXVlcnkoeyBxdWVyeTogQ29udGFjdENhcmRzUXVlcnkgfSkpXG4gICAgICAuY29udGFjdENhcmRzLmVkZ2VzWzBdPy5ub2RlO1xuXG4gICAgcmV0dXJuIG1haW5Db250YWN0Q2FyZFxuICAgICAgPyB7XG4gICAgICAgICAgaWQ6IG1haW5Db250YWN0Q2FyZC5pZCxcbiAgICAgICAgICBrZXlJZDogbWFpbkNvbnRhY3RDYXJkLmtleS5pZCxcbiAgICAgICAgICBmaWVsZHM6IG1haW5Db250YWN0Q2FyZC5jaXBoZXJEYXRhQ2xlYXJKc29uIGFzIE1haW5Db250YWN0Q2FyZEZpZWxkcyxcbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRUcnVzdGVkUGFydGllcygpOiBQcm9taXNlPFRydXN0ZWRQYXJ0eVtdPiB7XG4gICAgY29uc3QgeyB0cHMgfSA9IGF3YWl0IHRoaXMuYXBpLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBUcnVzdGVkUGFydGllc1F1ZXJ5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hcEVkZ2VzKHRwcykubWFwKCh0cCkgPT4gdGhpcy5tYXBUcnVzdGVkUGFydHkodHApKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwVHJ1c3RlZFBhcnR5KHRwOiBUcE5vZGUpOiBUcnVzdGVkUGFydHkge1xuICAgIGNvbnN0IHRwRGV0YWlsczogVHJ1c3RlZFBhcnR5RGV0YWlscyA9XG4gICAgICB0cC5zaGFyZWRDb250YWN0Q2FyZC5zaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uO1xuXG4gICAgY29uc3QgbXlEZXRhaWxzOiBTaGFyZWRUcnVzdGVkUGFydHlEZXRhaWxzID0ge1xuICAgICAgLi4udHAubXlDb250YWN0Q2FyZC5zaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uLFxuICAgICAgaWQ6IHRwLm15Q29udGFjdENhcmQuaWQsXG4gICAgICBvd25lZEtleUlkOiB0cC5teUNvbnRhY3RDYXJkLm93bmVyS2V5LmlkLFxuICAgICAgc2hhcmVkS2V5SWQ6IHRwLm15Q29udGFjdENhcmQuc2hhcmVkS2V5LmlkLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRwLmlkLFxuICAgICAgdHlwZTogVHJ1c3RlZFBhcnR5VHlwZS5Vc2VyLFxuICAgICAgaGFzU2NlbmFyaW9zOiAhIXRwLnNoYXJlZFNjZW5hcmlvcy5lZGdlcy5sZW5ndGgsXG4gICAgICBoYXNTaGFyZWRWYXVsdDogISF0cC50aGVpckl0ZW1zLmRpcmVjdG9yaWVzLmVkZ2VzLmxlbmd0aCxcbiAgICAgIG5hbWU6IHRwRGV0YWlscz8ubmFtZT8ubmFtZSxcbiAgICAgIGRldGFpbHM6IHRwRGV0YWlscyxcbiAgICAgIG15U2hhcmVkRGV0YWlsczogbXlEZXRhaWxzLFxuICAgICAgdXNlclNoYXJlZEtleTogdHAuY3VycmVudFVzZXJTaGFyZWRLZXkudXNlclNoYXJlZEtleSxcbiAgICAgIHVzZXJuYW1lOiB0cC5vdGhlci51c2VybmFtZSxcbiAgICAgIGZlYXR1cmVzOiB7XG4gICAgICAgIHNoYXJlZFZhdWx0OiB7XG4gICAgICAgICAgaGFzQWNjZXNzOlxuICAgICAgICAgICAgKHRwLm90aGVyLmZlYXR1cmVzPy5zaGFyZVZhdWx0IHx8IFsnbm9hY2Nlc3MnXSlbMF0gPT09ICdhY2Nlc3MnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzeW5jaHJvbml6ZUNvbnRhY3RDYXJkcyhcbiAgICBuZXdGaWVsZHM6IE1haW5Db250YWN0Q2FyZEZpZWxkcyxcbiAgICBvbGRGaWVsZHM6IE1haW5Db250YWN0Q2FyZEZpZWxkc1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIW9sZEZpZWxkcykgcmV0dXJuO1xuXG4gICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuZ2V0Q2hhbmdlcyhuZXdGaWVsZHMsIG9sZEZpZWxkcyk7XG5cbiAgICBpZiAoY2hhbmdlcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIGNvbnN0IHRydXN0ZWRQYXJ0aWVzID0gYXdhaXQgdGhpcy5nZXRUcnVzdGVkUGFydGllcygpO1xuXG4gICAgaWYgKHRydXN0ZWRQYXJ0aWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgZm9yIChjb25zdCBkZXRhaWxzIG9mIHRydXN0ZWRQYXJ0aWVzLm1hcCgoeCkgPT4geC5teVNoYXJlZERldGFpbHMpKSB7XG4gICAgICBhd2FpdCB0aGlzLnN5bmNocm9uaXplU2hhcmVkQ29udGFjdENhcmQoZGV0YWlscywgY2hhbmdlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDaGFuZ2VzKFxuICAgIG5ld0ZpZWxkczogTWFpbkNvbnRhY3RDYXJkRmllbGRzLFxuICAgIG9sZEZpZWxkczogTWFpbkNvbnRhY3RDYXJkRmllbGRzXG4gICk6IEZpZWxkQ2hhbmdlW10ge1xuICAgIGNvbnN0IGNoYW5nZXM6IEZpZWxkQ2hhbmdlW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgRmllbGROYW1lcykge1xuICAgICAgY29uc3Qgb2xkRmllbGQgPSBvbGRGaWVsZHNbZmllbGRdO1xuICAgICAgaWYgKG9sZEZpZWxkICYmIG9sZEZpZWxkLnZhbHVlcykge1xuICAgICAgICBmb3IgKGNvbnN0IG9sZFZhbHVlIG9mIG9sZEZpZWxkLnZhbHVlcykge1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKG5ld0ZpZWxkc1tmaWVsZF0udmFsdWVzIGFzIGFueVtdKT8uZmluZChcbiAgICAgICAgICAgICh4KSA9PiB4LmlkID09PSBvbGRWYWx1ZS5pZFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIW5ld1ZhbHVlKSB7XG4gICAgICAgICAgICBjaGFuZ2VzLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgaWQ6IG9sZFZhbHVlLmlkLFxuICAgICAgICAgICAgICBsYWJlbDogb2xkVmFsdWUubGFiZWwsXG4gICAgICAgICAgICAgIG9sZFZhbHVlOiBvbGRWYWx1ZS52YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWxvZGFzaC5pc0VxdWFsKG5ld1ZhbHVlLnZhbHVlLCBvbGRWYWx1ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICBpZDogb2xkVmFsdWUuaWQsXG4gICAgICAgICAgICAgIGxhYmVsOiBvbGRWYWx1ZS5sYWJlbCxcbiAgICAgICAgICAgICAgb2xkVmFsdWU6IG9sZFZhbHVlLnZhbHVlLFxuICAgICAgICAgICAgICBuZXdWYWx1ZTogbmV3VmFsdWUudmFsdWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHN5bmNocm9uaXplU2hhcmVkQ29udGFjdENhcmQoXG4gICAgZGV0YWlsczogU2hhcmVkVHJ1c3RlZFBhcnR5RGV0YWlscyxcbiAgICBjaGFuZ2VzOiBGaWVsZENoYW5nZVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBoYXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgY2hhbmdlcykge1xuICAgICAgc3dpdGNoIChjaGFuZ2UuZmllbGQpIHtcbiAgICAgICAgY2FzZSBDb250YWN0RmllbGRzLlBob25lOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICAgICAgZGV0YWlscy5waG9uZXMgJiZcbiAgICAgICAgICAgICAgZGV0YWlscy5waG9uZXMuZmluZCgoeCkgPT4geC5sYWJlbCA9PT0gY2hhbmdlLmxhYmVsKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgIGhhc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICB2YWx1ZS52YWx1ZSA9IGNoYW5nZS5uZXdWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ29udGFjdEZpZWxkcy5BZGRyZXNzOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICAgICAgZGV0YWlscy5hZGRyZXNzZXMgJiZcbiAgICAgICAgICAgICAgZGV0YWlscy5hZGRyZXNzZXMuZmluZCgoeCkgPT4geC5sYWJlbCA9PT0gY2hhbmdlLmxhYmVsKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgIGhhc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICB2YWx1ZS52YWx1ZSA9IGNoYW5nZS5uZXdWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRldGFpbHNbY2hhbmdlLmZpZWxkXTtcblxuICAgICAgICAgIGlmIChsb2Rhc2guaXNFcXVhbCh2YWx1ZSwgY2hhbmdlLm9sZFZhbHVlKSkge1xuICAgICAgICAgICAgaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICBkZXRhaWxzW2NoYW5nZS5maWVsZF0gPSBjaGFuZ2UubmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKSB7XG4gICAgICBjb25zdCB7IGlkLCBvd25lZEtleUlkLCBzaGFyZWRLZXlJZCwgLi4uY29udGFjdENhcmQgfSA9IGRldGFpbHM7XG5cbiAgICAgIGF3YWl0IHRoaXMuc2hhcmVkQ29udGFjdENhcmRTZXJ2aWNlLnVwZGF0ZU15U2hhcmVkQ29udGFjdENhcmQoXG4gICAgICAgIGlkLFxuICAgICAgICBvd25lZEtleUlkLFxuICAgICAgICBzaGFyZWRLZXlJZCxcbiAgICAgICAgY29udGFjdENhcmRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpZWxkPFQ+KFxuICAgIGZpZWxkOiBULFxuICAgIHByb3BlcnR5OiBNYWluQ29udGFjdENhcmRQcm9wZXJ0eTxUPixcbiAgICBsYWJlbDogc3RyaW5nID0gbnVsbFxuICApIHtcbiAgICBwcm9wZXJ0eSA9IHByb3BlcnR5IHx8IHsgdmFsdWU6IGZpZWxkLCBoYXNNdWx0aXBsZTogZmFsc2UgfTtcbiAgICBwcm9wZXJ0eS52YWx1ZXMgPSBwcm9wZXJ0eS52YWx1ZXMgfHwgW107XG5cbiAgICBpZiAoXG4gICAgICBwcm9wZXJ0eS52YWx1ZXMubGVuZ3RoID09PSAwIHx8XG4gICAgICBwcm9wZXJ0eS52YWx1ZXMuZXZlcnkoKHgpID0+ICFsb2Rhc2guaXNFcXVhbChmaWVsZCwgeC52YWx1ZSkpXG4gICAgKSB7XG4gICAgICBwcm9wZXJ0eS52YWx1ZXMucHVzaCh7XG4gICAgICAgIGlkOiBgJHtsYWJlbH0tJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX1gLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgdmFsdWU6IGZpZWxkLFxuICAgICAgfSk7XG4gICAgICBwcm9wZXJ0eS5oYXNNdWx0aXBsZSA9IHByb3BlcnR5LnZhbHVlcy5sZW5ndGggPiAxO1xuICAgICAgcHJvcGVydHkudmFsdWUgPSBwcm9wZXJ0eS52YWx1ZSB8fCBmaWVsZDtcbiAgICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -75,12 +75,6 @@ query ScenarioQuery(
75
75
  id
76
76
  }
77
77
  accessRole
78
-
79
- # The itemKey is the same as directory.keyId. It's here so we can detect
80
- # when the directory key has been rotated.
81
- itemKey {
82
- id
83
- }
84
78
  directory {
85
79
  id
86
80
  keyId
@@ -97,12 +91,6 @@ query ScenarioQuery(
97
91
  id
98
92
  }
99
93
  accessRole
100
-
101
- # The itemKey is the same as file.keyId. It's here so we can detect
102
- # when the file key has been rotated.
103
- itemKey {
104
- id
105
- }
106
94
  file {
107
95
  id
108
96
  keyId
@@ -143,7 +131,6 @@ query SharedScenarioQuery($scenarioId: LrRelayIdInput!) {
143
131
  edges {
144
132
  node {
145
133
  id
146
- wrappedItemKey
147
134
  }
148
135
  }
149
136
  }
@@ -210,4 +197,4 @@ query SharedScenarioQuery($scenarioId: LrRelayIdInput!) {
210
197
  }
211
198
  }
212
199
  `;
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8ucHJpdmF0ZS5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2NlbmFyaW8vc2NlbmFyaW8ucHJpdmF0ZS5ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBWTFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9IeEQsQ0FBQztBQUtILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBMkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZGckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjZW5hcmlvTm9kZSwgU2hhcmVkU2NlbmFyaW9Ob2RlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IGdxbFR5cGVkIH0gZnJvbSAnLi4vX2NvbW1vbi9hc3QnO1xuXG4vKipcbiAqIFRoaXMgaXMgYSBxdWVyeSB0aGF0IGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgc2VydmljZXMgZm9yIG11dGF0aW9ucy4gSXRcbiAqIGNvbnRhaW5zIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBpbmZvcm1hdGlvbiBmb3IgdGhlIGluZm9ybWF0aW9uIHRoZSBzZXJ2aWNlc1xuICogbmVlZC4gWW91J2xsIHByb2JhYmx5IHdhbnQgdG8gd3JpdGUgeW91ciBvd24gcXVlcnkgdG8geW91ciBsaWtpbmcgaWYgeW91XG4gKiB3YW50IHRvIHJldHJpZXZlIGEgc2NlbmFyaW8uIEZvciBleGFtcGxlLCB0aGVyZSBhIHNlcGFyYXRlIHF1ZXJ5IGluIHRoZVxuICogc2NlbmFyaW8uc2VydmljZS5zcGVjLnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9RdWVyeVJlc3VsdCB7XG4gIHNjZW5hcmlvOiBTY2VuYXJpb05vZGU7XG59XG5leHBvcnQgY29uc3QgU2NlbmFyaW9RdWVyeSA9IGdxbFR5cGVkPFNjZW5hcmlvUXVlcnlSZXN1bHQ+YFxucXVlcnkgU2NlbmFyaW9RdWVyeShcbiAgJHNjZW5hcmlvSWQ6IExyUmVsYXlJZElucHV0IVxuKSB7XG4gIHNjZW5hcmlvKGlkOiAkc2NlbmFyaW9JZCkge1xuICAgIGlkXG4gICAgc3RhdGVcbiAgICBhc3NlbWJseSB7XG4gICAgICBxdW9ydW1cbiAgICAgIHNpbmdsZVJlamVjdFxuICAgICAgYXNzZW1ibHlLZXkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgICAgc3ViamVjdEtleSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgICBzdWJqZWN0Q2lwaGVyRGF0YVxuICAgICAgc3ViQXNzZW1ibGllcyB7XG4gICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgICBzdWJqZWN0S2V5IHtcbiAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1YmplY3RDaXBoZXJEYXRhXG4gICAgICAgICAgICBxdW9ydW1cbiAgICAgICAgICAgIHNpbmdsZVJlamVjdFxuICAgICAgICAgICAgYXBwcm92ZXJzIHtcbiAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIHRwIHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNsYWltYW50cyB7XG4gICAgICBlZGdlcyB7XG4gICAgICAgIG5vZGUge1xuICAgICAgICAgIHRwIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgfVxuICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZWNlaXZlcnMge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICB0cCB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgIH1cbiAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICB9XG4gICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YVxuICAgICAgICAgIHJlY2VpdmVySXRlbXMge1xuICAgICAgICAgICAgcmVjZWl2ZXJEaXJlY3RvcmllcyB7XG4gICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgICAgICAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYWNjZXNzUm9sZVxuXG4gICAgICAgICAgICAgICAgICAjIFRoZSBpdGVtS2V5IGlzIHRoZSBzYW1lIGFzIGRpcmVjdG9yeS5rZXlJZC4gSXQncyBoZXJlIHNvIHdlIGNhbiBkZXRlY3RcbiAgICAgICAgICAgICAgICAgICMgd2hlbiB0aGUgZGlyZWN0b3J5IGtleSBoYXMgYmVlbiByb3RhdGVkLlxuICAgICAgICAgICAgICAgICAgaXRlbUtleSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBkaXJlY3Rvcnkge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVjZWl2ZXJGaWxlcyB7XG4gICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgICAgICAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYWNjZXNzUm9sZVxuXG4gICAgICAgICAgICAgICAgICAjIFRoZSBpdGVtS2V5IGlzIHRoZSBzYW1lIGFzIGZpbGUua2V5SWQuIEl0J3MgaGVyZSBzbyB3ZSBjYW4gZGV0ZWN0XG4gICAgICAgICAgICAgICAgICAjIHdoZW4gdGhlIGZpbGUga2V5IGhhcyBiZWVuIHJvdGF0ZWQuXG4gICAgICAgICAgICAgICAgICBpdGVtS2V5IHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGZpbGUge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9RdWVyeVJlc3VsdCB7XG4gIHNoYXJlZFNjZW5hcmlvOiBTaGFyZWRTY2VuYXJpb05vZGU7XG59XG5leHBvcnQgY29uc3QgU2hhcmVkU2NlbmFyaW9RdWVyeSA9IGdxbFR5cGVkPFNoYXJlZFNjZW5hcmlvUXVlcnlSZXN1bHQ+YFxucXVlcnkgU2hhcmVkU2NlbmFyaW9RdWVyeSgkc2NlbmFyaW9JZDogTHJSZWxheUlkSW5wdXQhKSB7XG4gIHNoYXJlZFNjZW5hcmlvKGlkOiAkc2NlbmFyaW9JZCkge1xuICAgIGlkXG4gICAgc3RhdGVcbiAgICB0cCB7XG4gICAgICBpZFxuICAgIH1cbiAgICBhc0NsYWltYW50IHtcbiAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgfVxuICAgIGFzUmVjZWl2ZXIge1xuICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIHNoYXJlZENpcGhlckRhdGFcbiAgICAgIHBiayB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgICByZWNlaXZlckl0ZW1zIHtcbiAgICAgICAgcmVjZWl2ZXJEaXJlY3RvcmllcyB7XG4gICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgIHdyYXBwZWRJdGVtS2V5XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGFzc2VtYmx5IHtcbiAgICAgIGFzQXBwcm92ZXJzIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHNoYXJlZENsYWltIHtcblx0IFx0XHRpZFxuICAgICAgaXNDbGFpbWFudFxuICAgICAgY2xhaW0ge1xuICAgICAgICBzdGF0ZVxuICAgICAgICBhc0NsYWltQXBwcm92ZXJzIHtcbiAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YVxuICAgICAgICAgICAgICBzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICAgICAgICAgICAgcmVjZWl2ZXJBcHByb3ZhbHMge1xuICAgICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICBweGsge1xuICAgICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFzQ2xhaW1SZWNlaXZlciB7XG4gICAgICAgIHJlY2VpdmVkXG4gICAgICAgIGFzc2VtYmx5S2V5SWRcbiAgICAgICAgYXBwcm92YWxzIHtcbiAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgcmVjZWl2ZXJDaXBoZXJcbiAgICAgICAgICAgICAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcbiAgICAgICAgICAgICAgcHhrIHtcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5gO1xuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8ucHJpdmF0ZS5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2NlbmFyaW8vc2NlbmFyaW8ucHJpdmF0ZS5ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBWTFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdHeEQsQ0FBQztBQUtILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBMkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEZyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NlbmFyaW9Ob2RlLCBTaGFyZWRTY2VuYXJpb05vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5cbi8qKlxuICogVGhpcyBpcyBhIHF1ZXJ5IHRoYXQgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBzZXJ2aWNlcyBmb3IgbXV0YXRpb25zLiBJdFxuICogY29udGFpbnMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGluZm9ybWF0aW9uIGZvciB0aGUgaW5mb3JtYXRpb24gdGhlIHNlcnZpY2VzXG4gKiBuZWVkLiBZb3UnbGwgcHJvYmFibHkgd2FudCB0byB3cml0ZSB5b3VyIG93biBxdWVyeSB0byB5b3VyIGxpa2luZyBpZiB5b3VcbiAqIHdhbnQgdG8gcmV0cmlldmUgYSBzY2VuYXJpby4gRm9yIGV4YW1wbGUsIHRoZXJlIGEgc2VwYXJhdGUgcXVlcnkgaW4gdGhlXG4gKiBzY2VuYXJpby5zZXJ2aWNlLnNwZWMudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2VuYXJpb1F1ZXJ5UmVzdWx0IHtcbiAgc2NlbmFyaW86IFNjZW5hcmlvTm9kZTtcbn1cbmV4cG9ydCBjb25zdCBTY2VuYXJpb1F1ZXJ5ID0gZ3FsVHlwZWQ8U2NlbmFyaW9RdWVyeVJlc3VsdD5gXG5xdWVyeSBTY2VuYXJpb1F1ZXJ5KFxuICAkc2NlbmFyaW9JZDogTHJSZWxheUlkSW5wdXQhXG4pIHtcbiAgc2NlbmFyaW8oaWQ6ICRzY2VuYXJpb0lkKSB7XG4gICAgaWRcbiAgICBzdGF0ZVxuICAgIGFzc2VtYmx5IHtcbiAgICAgIHF1b3J1bVxuICAgICAgc2luZ2xlUmVqZWN0XG4gICAgICBhc3NlbWJseUtleSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgICBzdWJqZWN0S2V5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIHN1YmplY3RDaXBoZXJEYXRhXG4gICAgICBzdWJBc3NlbWJsaWVzIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIHN1YmplY3RLZXkge1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ViamVjdENpcGhlckRhdGFcbiAgICAgICAgICAgIHF1b3J1bVxuICAgICAgICAgICAgc2luZ2xlUmVqZWN0XG4gICAgICAgICAgICBhcHByb3ZlcnMge1xuICAgICAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgdHAge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY2xhaW1hbnRzIHtcbiAgICAgIGVkZ2VzIHtcbiAgICAgICAgbm9kZSB7XG4gICAgICAgICAgdHAge1xuICAgICAgICAgICAgaWRcbiAgICAgICAgICB9XG4gICAgICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJlY2VpdmVycyB7XG4gICAgICBlZGdlcyB7XG4gICAgICAgIG5vZGUge1xuICAgICAgICAgIHRwIHtcbiAgICAgICAgICAgIGlkXG4gICAgICAgICAgfVxuICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgIH1cbiAgICAgICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgICAgICAgcmVjZWl2ZXJJdGVtcyB7XG4gICAgICAgICAgICByZWNlaXZlckRpcmVjdG9yaWVzIHtcbiAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgIHNoYXJlZENpcGhlckRhdGFcbiAgICAgICAgICAgICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBhY2Nlc3NSb2xlXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rvcnkge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgICBrZXlJZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVjZWl2ZXJGaWxlcyB7XG4gICAgICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICBzaGFyZWRDaXBoZXJEYXRhXG4gICAgICAgICAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYWNjZXNzUm9sZVxuICAgICAgICAgICAgICAgICAgZmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICAgIGtleUlkXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59YDtcblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb1F1ZXJ5UmVzdWx0IHtcbiAgc2hhcmVkU2NlbmFyaW86IFNoYXJlZFNjZW5hcmlvTm9kZTtcbn1cbmV4cG9ydCBjb25zdCBTaGFyZWRTY2VuYXJpb1F1ZXJ5ID0gZ3FsVHlwZWQ8U2hhcmVkU2NlbmFyaW9RdWVyeVJlc3VsdD5gXG5xdWVyeSBTaGFyZWRTY2VuYXJpb1F1ZXJ5KCRzY2VuYXJpb0lkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgc2hhcmVkU2NlbmFyaW8oaWQ6ICRzY2VuYXJpb0lkKSB7XG4gICAgaWRcbiAgICBzdGF0ZVxuICAgIHRwIHtcbiAgICAgIGlkXG4gICAgfVxuICAgIGFzQ2xhaW1hbnQge1xuICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIHNoYXJlZENpcGhlckRhdGFcbiAgICB9XG4gICAgYXNSZWNlaXZlciB7XG4gICAgICBzaGFyZWRLZXkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgICAgc2hhcmVkQ2lwaGVyRGF0YVxuICAgICAgcGJrIHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICAgIHJlY2VpdmVySXRlbXMge1xuICAgICAgICByZWNlaXZlckRpcmVjdG9yaWVzIHtcbiAgICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgICBub2RlIHtcbiAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYXNzZW1ibHkge1xuICAgICAgYXNBcHByb3ZlcnMge1xuICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNoYXJlZENpcGhlckRhdGFcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgc2hhcmVkQ2xhaW0ge1xuXHQgXHRcdGlkXG4gICAgICBpc0NsYWltYW50XG4gICAgICBjbGFpbSB7XG4gICAgICAgIHN0YXRlXG4gICAgICAgIGFzQ2xhaW1BcHByb3ZlcnMge1xuICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICAgICBzaGFyZWRLZXkge1xuICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhXG4gICAgICAgICAgICAgIHNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleVxuICAgICAgICAgICAgICByZWNlaXZlckFwcHJvdmFscyB7XG4gICAgICAgICAgICAgICAgZWRnZXMge1xuICAgICAgICAgICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgICAgIHB4ayB7XG4gICAgICAgICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXNDbGFpbVJlY2VpdmVyIHtcbiAgICAgICAgcmVjZWl2ZWRcbiAgICAgICAgYXNzZW1ibHlLZXlJZFxuICAgICAgICBhcHByb3ZhbHMge1xuICAgICAgICAgIGVkZ2VzIHtcbiAgICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgICByZWNlaXZlckNpcGhlclxuICAgICAgICAgICAgICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleVxuICAgICAgICAgICAgICBweGsge1xuICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmA7XG4iXX0=