@bitgo-beta/sdk-core 8.2.1-beta.1957 → 8.2.1-beta.1958

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.
@@ -1,6 +1,6 @@
1
1
  import * as openpgp from 'openpgp';
2
2
  import { MPSTypes } from '@bitgo-beta/sdk-lib-mpc';
3
- import { EddsaMPCv2SignatureShareRound1Output, EddsaMPCv2SignatureShareRound2Output } from '@bitgo/public-types';
3
+ import { EddsaMPCv2SignatureShareRound1Output, EddsaMPCv2SignatureShareRound2Output, EddsaMPCv2SignatureShareRound3Output } from '@bitgo/public-types';
4
4
  import { SignatureShareRecord } from '../../utils/tss/baseTypes';
5
5
  import { MPCv2PartiesEnum } from '../../utils/tss/ecdsa/typesMPCv2';
6
6
  type SignerPartyId = MPCv2PartiesEnum.USER | MPCv2PartiesEnum.BACKUP;
@@ -25,6 +25,11 @@ export declare function getSignatureShareRoundTwo(userMsg2: MPSTypes.Deserialize
25
25
  * message ready for `DSG.handleIncomingMessages`.
26
26
  */
27
27
  export declare function verifyPeerMessageRoundTwo(parsedRound2Output: EddsaMPCv2SignatureShareRound2Output, peerGpgKey: openpgp.Key, peerPartyId?: MPCv2PartiesEnum): Promise<MPSTypes.DeserializedMessage>;
28
+ /**
29
+ * Verifies the peer's round-3 PGP signature and returns the raw deserialized
30
+ * message ready for `DSG.handleIncomingMessages`.
31
+ */
32
+ export declare function verifyPeerMessageRoundThree(parsedRound3Output: EddsaMPCv2SignatureShareRound3Output, peerGpgKey: openpgp.Key, peerPartyId?: MPCv2PartiesEnum): Promise<MPSTypes.DeserializedMessage>;
28
33
  /**
29
34
  * Builds the round-3 signature share record (final signer message).
30
35
  *
@@ -1 +1 @@
1
- {"version":3,"file":"eddsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/eddsa/eddsaMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAY,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAEL,oCAAoC,EAEpC,oCAAoC,EAErC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAsB,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,KAAK,aAAa,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAarE;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,EACtC,cAAc,EAAE,OAAO,CAAC,UAAU,EAClC,OAAO,GAAE,aAAqC,EAC9C,kBAAkB,GAAE,gBAAyC,GAC5D,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,kBAAkB,EAAE,oCAAoC,EACxD,UAAU,EAAE,OAAO,CAAC,GAAG,EACvB,WAAW,GAAE,gBAAyC,GACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAMvC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,EACtC,cAAc,EAAE,OAAO,CAAC,UAAU,EAClC,OAAO,GAAE,aAAqC,EAC9C,kBAAkB,GAAE,gBAAyC,GAC5D,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,kBAAkB,EAAE,oCAAoC,EACxD,UAAU,EAAE,OAAO,CAAC,GAAG,EACvB,WAAW,GAAE,gBAAyC,GACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAMvC;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,EACtC,cAAc,EAAE,OAAO,CAAC,UAAU,EAClC,OAAO,GAAE,aAAqC,EAC9C,kBAAkB,GAAE,gBAAyC,GAC5D,OAAO,CAAC,oBAAoB,CAAC,CAW/B"}
1
+ {"version":3,"file":"eddsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/eddsa/eddsaMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAY,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAEL,oCAAoC,EAEpC,oCAAoC,EAEpC,oCAAoC,EACrC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAsB,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,KAAK,aAAa,GAAG,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAarE;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,EACtC,cAAc,EAAE,OAAO,CAAC,UAAU,EAClC,OAAO,GAAE,aAAqC,EAC9C,kBAAkB,GAAE,gBAAyC,GAC5D,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,kBAAkB,EAAE,oCAAoC,EACxD,UAAU,EAAE,OAAO,CAAC,GAAG,EACvB,WAAW,GAAE,gBAAyC,GACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAMvC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,EACtC,cAAc,EAAE,OAAO,CAAC,UAAU,EAClC,OAAO,GAAE,aAAqC,EAC9C,kBAAkB,GAAE,gBAAyC,GAC5D,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,kBAAkB,EAAE,oCAAoC,EACxD,UAAU,EAAE,OAAO,CAAC,GAAG,EACvB,WAAW,GAAE,gBAAyC,GACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAMvC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,kBAAkB,EAAE,oCAAoC,EACxD,UAAU,EAAE,OAAO,CAAC,GAAG,EACvB,WAAW,GAAE,gBAAyC,GACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAGvC;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,EACtC,cAAc,EAAE,OAAO,CAAC,UAAU,EAClC,OAAO,GAAE,aAAqC,EAC9C,kBAAkB,GAAE,gBAAyC,GAC5D,OAAO,CAAC,oBAAoB,CAAC,CAW/B"}
@@ -4,6 +4,7 @@ exports.getSignatureShareRoundOne = getSignatureShareRoundOne;
4
4
  exports.verifyPeerMessageRoundOne = verifyPeerMessageRoundOne;
5
5
  exports.getSignatureShareRoundTwo = getSignatureShareRoundTwo;
6
6
  exports.verifyPeerMessageRoundTwo = verifyPeerMessageRoundTwo;
7
+ exports.verifyPeerMessageRoundThree = verifyPeerMessageRoundThree;
7
8
  exports.getSignatureShareRoundThree = getSignatureShareRoundThree;
8
9
  const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
9
10
  const baseTypes_1 = require("../../utils/tss/baseTypes");
@@ -73,6 +74,14 @@ async function verifyPeerMessageRoundTwo(parsedRound2Output, peerGpgKey, peerPar
73
74
  payload: new Uint8Array(rawBytes),
74
75
  };
75
76
  }
77
+ /**
78
+ * Verifies the peer's round-3 PGP signature and returns the raw deserialized
79
+ * message ready for `DSG.handleIncomingMessages`.
80
+ */
81
+ async function verifyPeerMessageRoundThree(parsedRound3Output, peerGpgKey, peerPartyId = typesMPCv2_1.MPCv2PartiesEnum.BITGO) {
82
+ const rawBytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(parsedRound3Output.data.msg3, peerGpgKey);
83
+ return { from: peerPartyId, payload: new Uint8Array(rawBytes) };
84
+ }
76
85
  /**
77
86
  * Builds the round-3 signature share record (final signer message).
78
87
  *
@@ -92,4 +101,4 @@ async function getSignatureShareRoundThree(userMsg3, userGpgPrivKey, partyId = t
92
101
  share: JSON.stringify(share),
93
102
  };
94
103
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FNUEN2Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby90c3MvZWRkc2EvZWRkc2FNUEN2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStCQSw4REFnQkM7QUFNRCw4REFVQztBQUtELDhEQWdCQztBQU1ELDhEQVVDO0FBU0Qsa0VBZ0JDO0FBNUhELHlEQUE2RDtBQVE3RCx5REFBcUY7QUFDckYsaUVBQW9FO0FBSXBFLFNBQVMsMkJBQTJCLENBQUMsT0FBeUI7SUFDNUQsUUFBUSxPQUFPLEVBQUUsQ0FBQztRQUNoQixLQUFLLDZCQUFnQixDQUFDLElBQUk7WUFDeEIsT0FBTyw4QkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDakMsS0FBSyw2QkFBZ0IsQ0FBQyxNQUFNO1lBQzFCLE9BQU8sOEJBQWtCLENBQUMsTUFBTSxDQUFDO1FBQ25DLEtBQUssNkJBQWdCLENBQUMsS0FBSztZQUN6QixPQUFPLDhCQUFrQixDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxRQUFzQyxFQUN0QyxjQUFrQyxFQUNsQyxVQUF5Qiw2QkFBZ0IsQ0FBQyxJQUFJLEVBQzlDLHFCQUF1Qyw2QkFBZ0IsQ0FBQyxLQUFLO0lBRTdELE1BQU0sVUFBVSxHQUFHLE1BQU0sc0JBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RyxNQUFNLEtBQUssR0FBd0M7UUFDakQsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtLQUMzQixDQUFDO0lBQ0YsT0FBTztRQUNMLElBQUksRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7UUFDMUMsRUFBRSxFQUFFLDJCQUEyQixDQUFDLGtCQUFrQixDQUFDO1FBQ25ELEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0Msa0JBQXdELEVBQ3hELFVBQXVCLEVBQ3ZCLGNBQWdDLDZCQUFnQixDQUFDLEtBQUs7SUFFdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxzQkFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0YsT0FBTztRQUNMLElBQUksRUFBRSxXQUFXO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUM7S0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsUUFBc0MsRUFDdEMsY0FBa0MsRUFDbEMsVUFBeUIsNkJBQWdCLENBQUMsSUFBSSxFQUM5QyxxQkFBdUMsNkJBQWdCLENBQUMsS0FBSztJQUU3RCxNQUFNLFVBQVUsR0FBRyxNQUFNLHNCQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDdEcsTUFBTSxLQUFLLEdBQXdDO1FBQ2pELElBQUksRUFBRSxhQUFhO1FBQ25CLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7S0FDM0IsQ0FBQztJQUNGLE9BQU87UUFDTCxJQUFJLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1FBQzFDLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUseUJBQXlCLENBQzdDLGtCQUF3RCxFQUN4RCxVQUF1QixFQUN2QixjQUFnQyw2QkFBZ0IsQ0FBQyxLQUFLO0lBRXRELE1BQU0sUUFBUSxHQUFHLE1BQU0sc0JBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNGLE9BQU87UUFDTCxJQUFJLEVBQUUsV0FBVztRQUNqQixPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxRQUFzQyxFQUN0QyxjQUFrQyxFQUNsQyxVQUF5Qiw2QkFBZ0IsQ0FBQyxJQUFJLEVBQzlDLHFCQUF1Qyw2QkFBZ0IsQ0FBQyxLQUFLO0lBRTdELE1BQU0sVUFBVSxHQUFHLE1BQU0sc0JBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RyxNQUFNLEtBQUssR0FBd0M7UUFDakQsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtLQUMzQixDQUFDO0lBQ0YsT0FBTztRQUNMLElBQUksRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7UUFDMUMsRUFBRSxFQUFFLDJCQUEyQixDQUFDLGtCQUFrQixDQUFDO1FBQ25ELEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9wZW5wZ3AgZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBNUFNDb21tcywgTVBTVHlwZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQge1xuICBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDFJbnB1dCxcbiAgRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQxT3V0cHV0LFxuICBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDJJbnB1dCxcbiAgRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQyT3V0cHV0LFxuICBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDNJbnB1dCxcbn0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgeyBTaWduYXR1cmVTaGFyZVJlY29yZCwgU2lnbmF0dXJlU2hhcmVUeXBlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdHNzL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBNUEN2MlBhcnRpZXNFbnVtIH0gZnJvbSAnLi4vLi4vdXRpbHMvdHNzL2VjZHNhL3R5cGVzTVBDdjInO1xuXG50eXBlIFNpZ25lclBhcnR5SWQgPSBNUEN2MlBhcnRpZXNFbnVtLlVTRVIgfCBNUEN2MlBhcnRpZXNFbnVtLkJBQ0tVUDtcblxuZnVuY3Rpb24gcGFydHlJZFRvU2lnbmF0dXJlU2hhcmVUeXBlKHBhcnR5SWQ6IE1QQ3YyUGFydGllc0VudW0pOiBTaWduYXR1cmVTaGFyZVR5cGUge1xuICBzd2l0Y2ggKHBhcnR5SWQpIHtcbiAgICBjYXNlIE1QQ3YyUGFydGllc0VudW0uVVNFUjpcbiAgICAgIHJldHVybiBTaWduYXR1cmVTaGFyZVR5cGUuVVNFUjtcbiAgICBjYXNlIE1QQ3YyUGFydGllc0VudW0uQkFDS1VQOlxuICAgICAgcmV0dXJuIFNpZ25hdHVyZVNoYXJlVHlwZS5CQUNLVVA7XG4gICAgY2FzZSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPOlxuICAgICAgcmV0dXJuIFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTztcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgcm91bmQtMSBzaWduYXR1cmUgc2hhcmUgcmVjb3JkLlxuICpcbiAqIFBHUC1zaWducyB0aGUgV0FTTSByb3VuZC0wIGJyb2FkY2FzdCBtZXNzYWdlIHdpdGggdGhlIHNpZ25lcidzIGVwaGVtZXJhbCBrZXkgYW5kXG4gKiB3cmFwcyBpdCBpbnRvIGEgU2lnbmF0dXJlU2hhcmVSZWNvcmQgcmVhZHkgZm9yIGBzZW5kU2lnbmF0dXJlU2hhcmVWMmAuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTaWduYXR1cmVTaGFyZVJvdW5kT25lKFxuICB1c2VyTXNnMTogTVBTVHlwZXMuRGVzZXJpYWxpemVkTWVzc2FnZSxcbiAgdXNlckdwZ1ByaXZLZXk6IG9wZW5wZ3AuUHJpdmF0ZUtleSxcbiAgcGFydHlJZDogU2lnbmVyUGFydHlJZCA9IE1QQ3YyUGFydGllc0VudW0uVVNFUixcbiAgb3RoZXJTaWduZXJQYXJ0eUlkOiBNUEN2MlBhcnRpZXNFbnVtID0gTVBDdjJQYXJ0aWVzRW51bS5CSVRHT1xuKTogUHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD4ge1xuICBjb25zdCBzaWduZWRNc2cxID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoQnVmZmVyLmZyb20odXNlck1zZzEucGF5bG9hZCksIHVzZXJHcGdQcml2S2V5KTtcbiAgY29uc3Qgc2hhcmU6IEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMUlucHV0ID0ge1xuICAgIHR5cGU6ICdyb3VuZDFJbnB1dCcsXG4gICAgZGF0YTogeyBtc2cxOiBzaWduZWRNc2cxIH0sXG4gIH07XG4gIHJldHVybiB7XG4gICAgZnJvbTogcGFydHlJZFRvU2lnbmF0dXJlU2hhcmVUeXBlKHBhcnR5SWQpLFxuICAgIHRvOiBwYXJ0eUlkVG9TaWduYXR1cmVTaGFyZVR5cGUob3RoZXJTaWduZXJQYXJ0eUlkKSxcbiAgICBzaGFyZTogSlNPTi5zdHJpbmdpZnkoc2hhcmUpLFxuICB9O1xufVxuXG4vKipcbiAqIFZlcmlmaWVzIHRoZSBwZWVyJ3Mgcm91bmQtMSBQR1Agc2lnbmF0dXJlIGFuZCByZXR1cm5zIHRoZSByYXcgZGVzZXJpYWxpemVkXG4gKiBtZXNzYWdlIHJlYWR5IGZvciBgRFNHLmhhbmRsZUluY29taW5nTWVzc2FnZXNgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5UGVlck1lc3NhZ2VSb3VuZE9uZShcbiAgcGFyc2VkUm91bmQxT3V0cHV0OiBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDFPdXRwdXQsXG4gIHBlZXJHcGdLZXk6IG9wZW5wZ3AuS2V5LFxuICBwZWVyUGFydHlJZDogTVBDdjJQYXJ0aWVzRW51bSA9IE1QQ3YyUGFydGllc0VudW0uQklUR09cbik6IFByb21pc2U8TVBTVHlwZXMuRGVzZXJpYWxpemVkTWVzc2FnZT4ge1xuICBjb25zdCByYXdCeXRlcyA9IGF3YWl0IE1QU0NvbW1zLnZlcmlmeU1wc01lc3NhZ2UocGFyc2VkUm91bmQxT3V0cHV0LmRhdGEubXNnMSwgcGVlckdwZ0tleSk7XG4gIHJldHVybiB7XG4gICAgZnJvbTogcGVlclBhcnR5SWQsXG4gICAgcGF5bG9hZDogbmV3IFVpbnQ4QXJyYXkocmF3Qnl0ZXMpLFxuICB9O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgcm91bmQtMiBzaWduYXR1cmUgc2hhcmUgcmVjb3JkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2lnbmF0dXJlU2hhcmVSb3VuZFR3byhcbiAgdXNlck1zZzI6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2UsXG4gIHVzZXJHcGdQcml2S2V5OiBvcGVucGdwLlByaXZhdGVLZXksXG4gIHBhcnR5SWQ6IFNpZ25lclBhcnR5SWQgPSBNUEN2MlBhcnRpZXNFbnVtLlVTRVIsXG4gIG90aGVyU2lnbmVyUGFydHlJZDogTVBDdjJQYXJ0aWVzRW51bSA9IE1QQ3YyUGFydGllc0VudW0uQklUR09cbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+IHtcbiAgY29uc3Qgc2lnbmVkTXNnMiA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKHVzZXJNc2cyLnBheWxvYWQpLCB1c2VyR3BnUHJpdktleSk7XG4gIGNvbnN0IHNoYXJlOiBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDJJbnB1dCA9IHtcbiAgICB0eXBlOiAncm91bmQySW5wdXQnLFxuICAgIGRhdGE6IHsgbXNnMjogc2lnbmVkTXNnMiB9LFxuICB9O1xuICByZXR1cm4ge1xuICAgIGZyb206IHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShwYXJ0eUlkKSxcbiAgICB0bzogcGFydHlJZFRvU2lnbmF0dXJlU2hhcmVUeXBlKG90aGVyU2lnbmVyUGFydHlJZCksXG4gICAgc2hhcmU6IEpTT04uc3RyaW5naWZ5KHNoYXJlKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGUgcGVlcidzIHJvdW5kLTIgUEdQIHNpZ25hdHVyZSBhbmQgcmV0dXJucyB0aGUgcmF3IGRlc2VyaWFsaXplZFxuICogbWVzc2FnZSByZWFkeSBmb3IgYERTRy5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVBlZXJNZXNzYWdlUm91bmRUd28oXG4gIHBhcnNlZFJvdW5kMk91dHB1dDogRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQyT3V0cHV0LFxuICBwZWVyR3BnS2V5OiBvcGVucGdwLktleSxcbiAgcGVlclBhcnR5SWQ6IE1QQ3YyUGFydGllc0VudW0gPSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPXG4pOiBQcm9taXNlPE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2U+IHtcbiAgY29uc3QgcmF3Qnl0ZXMgPSBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKHBhcnNlZFJvdW5kMk91dHB1dC5kYXRhLm1zZzIsIHBlZXJHcGdLZXkpO1xuICByZXR1cm4ge1xuICAgIGZyb206IHBlZXJQYXJ0eUlkLFxuICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KHJhd0J5dGVzKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHJvdW5kLTMgc2lnbmF0dXJlIHNoYXJlIHJlY29yZCAoZmluYWwgc2lnbmVyIG1lc3NhZ2UpLlxuICpcbiAqIFRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgYHZlcmlmeUJpdEdvTWVzc2FnZVJvdW5kVGhyZWVgIGJlY2F1c2UgV2FsbGV0IFBsYXRmb3JtXG4gKiBmaW5hbGlzZXMgdGhlIHNpZ25pbmcgc2VydmVyLXNpZGUgYWZ0ZXIgcmVjZWl2aW5nIHJvdW5kIDM7IHRoZSBjbGllbnQgb2J0YWlucyB0aGVcbiAqIHNpZ25lZCB0cmFuc2FjdGlvbiB2aWEgYHNlbmRUeFJlcXVlc3RgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2lnbmF0dXJlU2hhcmVSb3VuZFRocmVlKFxuICB1c2VyTXNnMzogTVBTVHlwZXMuRGVzZXJpYWxpemVkTWVzc2FnZSxcbiAgdXNlckdwZ1ByaXZLZXk6IG9wZW5wZ3AuUHJpdmF0ZUtleSxcbiAgcGFydHlJZDogU2lnbmVyUGFydHlJZCA9IE1QQ3YyUGFydGllc0VudW0uVVNFUixcbiAgb3RoZXJTaWduZXJQYXJ0eUlkOiBNUEN2MlBhcnRpZXNFbnVtID0gTVBDdjJQYXJ0aWVzRW51bS5CSVRHT1xuKTogUHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD4ge1xuICBjb25zdCBzaWduZWRNc2czID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoQnVmZmVyLmZyb20odXNlck1zZzMucGF5bG9hZCksIHVzZXJHcGdQcml2S2V5KTtcbiAgY29uc3Qgc2hhcmU6IEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kM0lucHV0ID0ge1xuICAgIHR5cGU6ICdyb3VuZDNJbnB1dCcsXG4gICAgZGF0YTogeyBtc2czOiBzaWduZWRNc2czIH0sXG4gIH07XG4gIHJldHVybiB7XG4gICAgZnJvbTogcGFydHlJZFRvU2lnbmF0dXJlU2hhcmVUeXBlKHBhcnR5SWQpLFxuICAgIHRvOiBwYXJ0eUlkVG9TaWduYXR1cmVTaGFyZVR5cGUob3RoZXJTaWduZXJQYXJ0eUlkKSxcbiAgICBzaGFyZTogSlNPTi5zdHJpbmdpZnkoc2hhcmUpLFxuICB9O1xufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FNUEN2Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby90c3MvZWRkc2EvZWRkc2FNUEN2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdDQSw4REFnQkM7QUFNRCw4REFVQztBQUtELDhEQWdCQztBQU1ELDhEQVVDO0FBTUQsa0VBT0M7QUFTRCxrRUFnQkM7QUExSUQseURBQTZEO0FBUzdELHlEQUFxRjtBQUNyRixpRUFBb0U7QUFJcEUsU0FBUywyQkFBMkIsQ0FBQyxPQUF5QjtJQUM1RCxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLEtBQUssNkJBQWdCLENBQUMsSUFBSTtZQUN4QixPQUFPLDhCQUFrQixDQUFDLElBQUksQ0FBQztRQUNqQyxLQUFLLDZCQUFnQixDQUFDLE1BQU07WUFDMUIsT0FBTyw4QkFBa0IsQ0FBQyxNQUFNLENBQUM7UUFDbkMsS0FBSyw2QkFBZ0IsQ0FBQyxLQUFLO1lBQ3pCLE9BQU8sOEJBQWtCLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUseUJBQXlCLENBQzdDLFFBQXNDLEVBQ3RDLGNBQWtDLEVBQ2xDLFVBQXlCLDZCQUFnQixDQUFDLElBQUksRUFDOUMscUJBQXVDLDZCQUFnQixDQUFDLEtBQUs7SUFFN0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxzQkFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sS0FBSyxHQUF3QztRQUNqRCxJQUFJLEVBQUUsYUFBYTtRQUNuQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO0tBQzNCLENBQUM7SUFDRixPQUFPO1FBQ0wsSUFBSSxFQUFFLDJCQUEyQixDQUFDLE9BQU8sQ0FBQztRQUMxQyxFQUFFLEVBQUUsMkJBQTJC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UUFDbkQsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0tBQzdCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3BlbnBncCBmcm9tICdvcGVucGdwJztcbmltcG9ydCB7IE1QU0NvbW1zLCBNUFNUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7XG4gIEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMUlucHV0LFxuICBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDFPdXRwdXQsXG4gIEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMklucHV0LFxuICBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDJPdXRwdXQsXG4gIEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kM0lucHV0LFxuICBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDNPdXRwdXQsXG59IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgU2lnbmF0dXJlU2hhcmVSZWNvcmQsIFNpZ25hdHVyZVNoYXJlVHlwZSB9IGZyb20gJy4uLy4uL3V0aWxzL3Rzcy9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgTVBDdjJQYXJ0aWVzRW51bSB9IGZyb20gJy4uLy4uL3V0aWxzL3Rzcy9lY2RzYS90eXBlc01QQ3YyJztcblxudHlwZSBTaWduZXJQYXJ0eUlkID0gTVBDdjJQYXJ0aWVzRW51bS5VU0VSIHwgTVBDdjJQYXJ0aWVzRW51bS5CQUNLVVA7XG5cbmZ1bmN0aW9uIHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShwYXJ0eUlkOiBNUEN2MlBhcnRpZXNFbnVtKTogU2lnbmF0dXJlU2hhcmVUeXBlIHtcbiAgc3dpdGNoIChwYXJ0eUlkKSB7XG4gICAgY2FzZSBNUEN2MlBhcnRpZXNFbnVtLlVTRVI6XG4gICAgICByZXR1cm4gU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVI7XG4gICAgY2FzZSBNUEN2MlBhcnRpZXNFbnVtLkJBQ0tVUDpcbiAgICAgIHJldHVybiBTaWduYXR1cmVTaGFyZVR5cGUuQkFDS1VQO1xuICAgIGNhc2UgTVBDdjJQYXJ0aWVzRW51bS5CSVRHTzpcbiAgICAgIHJldHVybiBTaWduYXR1cmVTaGFyZVR5cGUuQklUR087XG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHJvdW5kLTEgc2lnbmF0dXJlIHNoYXJlIHJlY29yZC5cbiAqXG4gKiBQR1Atc2lnbnMgdGhlIFdBU00gcm91bmQtMCBicm9hZGNhc3QgbWVzc2FnZSB3aXRoIHRoZSBzaWduZXIncyBlcGhlbWVyYWwga2V5IGFuZFxuICogd3JhcHMgaXQgaW50byBhIFNpZ25hdHVyZVNoYXJlUmVjb3JkIHJlYWR5IGZvciBgc2VuZFNpZ25hdHVyZVNoYXJlVjJgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2lnbmF0dXJlU2hhcmVSb3VuZE9uZShcbiAgdXNlck1zZzE6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2UsXG4gIHVzZXJHcGdQcml2S2V5OiBvcGVucGdwLlByaXZhdGVLZXksXG4gIHBhcnR5SWQ6IFNpZ25lclBhcnR5SWQgPSBNUEN2MlBhcnRpZXNFbnVtLlVTRVIsXG4gIG90aGVyU2lnbmVyUGFydHlJZDogTVBDdjJQYXJ0aWVzRW51bSA9IE1QQ3YyUGFydGllc0VudW0uQklUR09cbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+IHtcbiAgY29uc3Qgc2lnbmVkTXNnMSA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKHVzZXJNc2cxLnBheWxvYWQpLCB1c2VyR3BnUHJpdktleSk7XG4gIGNvbnN0IHNoYXJlOiBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDFJbnB1dCA9IHtcbiAgICB0eXBlOiAncm91bmQxSW5wdXQnLFxuICAgIGRhdGE6IHsgbXNnMTogc2lnbmVkTXNnMSB9LFxuICB9O1xuICByZXR1cm4ge1xuICAgIGZyb206IHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShwYXJ0eUlkKSxcbiAgICB0bzogcGFydHlJZFRvU2lnbmF0dXJlU2hhcmVUeXBlKG90aGVyU2lnbmVyUGFydHlJZCksXG4gICAgc2hhcmU6IEpTT04uc3RyaW5naWZ5KHNoYXJlKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGUgcGVlcidzIHJvdW5kLTEgUEdQIHNpZ25hdHVyZSBhbmQgcmV0dXJucyB0aGUgcmF3IGRlc2VyaWFsaXplZFxuICogbWVzc2FnZSByZWFkeSBmb3IgYERTRy5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVBlZXJNZXNzYWdlUm91bmRPbmUoXG4gIHBhcnNlZFJvdW5kMU91dHB1dDogRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQxT3V0cHV0LFxuICBwZWVyR3BnS2V5OiBvcGVucGdwLktleSxcbiAgcGVlclBhcnR5SWQ6IE1QQ3YyUGFydGllc0VudW0gPSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPXG4pOiBQcm9taXNlPE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2U+IHtcbiAgY29uc3QgcmF3Qnl0ZXMgPSBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKHBhcnNlZFJvdW5kMU91dHB1dC5kYXRhLm1zZzEsIHBlZXJHcGdLZXkpO1xuICByZXR1cm4ge1xuICAgIGZyb206IHBlZXJQYXJ0eUlkLFxuICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KHJhd0J5dGVzKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHJvdW5kLTIgc2lnbmF0dXJlIHNoYXJlIHJlY29yZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNpZ25hdHVyZVNoYXJlUm91bmRUd28oXG4gIHVzZXJNc2cyOiBNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlLFxuICB1c2VyR3BnUHJpdktleTogb3BlbnBncC5Qcml2YXRlS2V5LFxuICBwYXJ0eUlkOiBTaWduZXJQYXJ0eUlkID0gTVBDdjJQYXJ0aWVzRW51bS5VU0VSLFxuICBvdGhlclNpZ25lclBhcnR5SWQ6IE1QQ3YyUGFydGllc0VudW0gPSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPXG4pOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPiB7XG4gIGNvbnN0IHNpZ25lZE1zZzIgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZShCdWZmZXIuZnJvbSh1c2VyTXNnMi5wYXlsb2FkKSwgdXNlckdwZ1ByaXZLZXkpO1xuICBjb25zdCBzaGFyZTogRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQySW5wdXQgPSB7XG4gICAgdHlwZTogJ3JvdW5kMklucHV0JyxcbiAgICBkYXRhOiB7IG1zZzI6IHNpZ25lZE1zZzIgfSxcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBmcm9tOiBwYXJ0eUlkVG9TaWduYXR1cmVTaGFyZVR5cGUocGFydHlJZCksXG4gICAgdG86IHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShvdGhlclNpZ25lclBhcnR5SWQpLFxuICAgIHNoYXJlOiBKU09OLnN0cmluZ2lmeShzaGFyZSksXG4gIH07XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhlIHBlZXIncyByb3VuZC0yIFBHUCBzaWduYXR1cmUgYW5kIHJldHVybnMgdGhlIHJhdyBkZXNlcmlhbGl6ZWRcbiAqIG1lc3NhZ2UgcmVhZHkgZm9yIGBEU0cuaGFuZGxlSW5jb21pbmdNZXNzYWdlc2AuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlQZWVyTWVzc2FnZVJvdW5kVHdvKFxuICBwYXJzZWRSb3VuZDJPdXRwdXQ6IEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMk91dHB1dCxcbiAgcGVlckdwZ0tleTogb3BlbnBncC5LZXksXG4gIHBlZXJQYXJ0eUlkOiBNUEN2MlBhcnRpZXNFbnVtID0gTVBDdjJQYXJ0aWVzRW51bS5CSVRHT1xuKTogUHJvbWlzZTxNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlPiB7XG4gIGNvbnN0IHJhd0J5dGVzID0gYXdhaXQgTVBTQ29tbXMudmVyaWZ5TXBzTWVzc2FnZShwYXJzZWRSb3VuZDJPdXRwdXQuZGF0YS5tc2cyLCBwZWVyR3BnS2V5KTtcbiAgcmV0dXJuIHtcbiAgICBmcm9tOiBwZWVyUGFydHlJZCxcbiAgICBwYXlsb2FkOiBuZXcgVWludDhBcnJheShyYXdCeXRlcyksXG4gIH07XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhlIHBlZXIncyByb3VuZC0zIFBHUCBzaWduYXR1cmUgYW5kIHJldHVybnMgdGhlIHJhdyBkZXNlcmlhbGl6ZWRcbiAqIG1lc3NhZ2UgcmVhZHkgZm9yIGBEU0cuaGFuZGxlSW5jb21pbmdNZXNzYWdlc2AuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlQZWVyTWVzc2FnZVJvdW5kVGhyZWUoXG4gIHBhcnNlZFJvdW5kM091dHB1dDogRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQzT3V0cHV0LFxuICBwZWVyR3BnS2V5OiBvcGVucGdwLktleSxcbiAgcGVlclBhcnR5SWQ6IE1QQ3YyUGFydGllc0VudW0gPSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPXG4pOiBQcm9taXNlPE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2U+IHtcbiAgY29uc3QgcmF3Qnl0ZXMgPSBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKHBhcnNlZFJvdW5kM091dHB1dC5kYXRhLm1zZzMsIHBlZXJHcGdLZXkpO1xuICByZXR1cm4geyBmcm9tOiBwZWVyUGFydHlJZCwgcGF5bG9hZDogbmV3IFVpbnQ4QXJyYXkocmF3Qnl0ZXMpIH07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSByb3VuZC0zIHNpZ25hdHVyZSBzaGFyZSByZWNvcmQgKGZpbmFsIHNpZ25lciBtZXNzYWdlKS5cbiAqXG4gKiBUaGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIGB2ZXJpZnlCaXRHb01lc3NhZ2VSb3VuZFRocmVlYCBiZWNhdXNlIFdhbGxldCBQbGF0Zm9ybVxuICogZmluYWxpc2VzIHRoZSBzaWduaW5nIHNlcnZlci1zaWRlIGFmdGVyIHJlY2VpdmluZyByb3VuZCAzOyB0aGUgY2xpZW50IG9idGFpbnMgdGhlXG4gKiBzaWduZWQgdHJhbnNhY3Rpb24gdmlhIGBzZW5kVHhSZXF1ZXN0YC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNpZ25hdHVyZVNoYXJlUm91bmRUaHJlZShcbiAgdXNlck1zZzM6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2UsXG4gIHVzZXJHcGdQcml2S2V5OiBvcGVucGdwLlByaXZhdGVLZXksXG4gIHBhcnR5SWQ6IFNpZ25lclBhcnR5SWQgPSBNUEN2MlBhcnRpZXNFbnVtLlVTRVIsXG4gIG90aGVyU2lnbmVyUGFydHlJZDogTVBDdjJQYXJ0aWVzRW51bSA9IE1QQ3YyUGFydGllc0VudW0uQklUR09cbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+IHtcbiAgY29uc3Qgc2lnbmVkTXNnMyA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKHVzZXJNc2czLnBheWxvYWQpLCB1c2VyR3BnUHJpdktleSk7XG4gIGNvbnN0IHNoYXJlOiBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDNJbnB1dCA9IHtcbiAgICB0eXBlOiAncm91bmQzSW5wdXQnLFxuICAgIGRhdGE6IHsgbXNnMzogc2lnbmVkTXNnMyB9LFxuICB9O1xuICByZXR1cm4ge1xuICAgIGZyb206IHBhcnR5SWRUb1NpZ25hdHVyZVNoYXJlVHlwZShwYXJ0eUlkKSxcbiAgICB0bzogcGFydHlJZFRvU2lnbmF0dXJlU2hhcmVUeXBlKG90aGVyU2lnbmVyUGFydHlJZCksXG4gICAgc2hhcmU6IEpTT04uc3RyaW5naWZ5KHNoYXJlKSxcbiAgfTtcbn1cbiJdfQ==