drama-pm-client 0.2.7 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/idl.d.ts +97 -0
- package/dist/idl.js +174 -3
- package/dist/index.d.ts +3 -0
- package/dist/index.js +10 -3
- package/dist/types.d.ts +173 -2
- package/dist/types.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -262,10 +262,14 @@ export class DramaPmClient {
|
|
|
262
262
|
}
|
|
263
263
|
/**
|
|
264
264
|
* Refund bets if market is refunded
|
|
265
|
+
* @param params.tokenAmount - Amount of shares to refund. 0 or undefined means refund all shares.
|
|
266
|
+
* This allows users to partially refund their position across multiple transactions.
|
|
265
267
|
*/
|
|
266
268
|
async refund(params) {
|
|
267
|
-
const { user, market, bettingToken, outcome } = params;
|
|
269
|
+
const { user, market, bettingToken, outcome, tokenAmount } = params;
|
|
268
270
|
const outcomeEnum = outcome === "Yes" ? { yes: {} } : { no: {} };
|
|
271
|
+
// Convert tokenAmount to BN (0 means refund all)
|
|
272
|
+
const tokenAmountBn = new BN(tokenAmount ?? 0);
|
|
269
273
|
// Derive mint PDAs from market address
|
|
270
274
|
const yesMint = PublicKey.findProgramAddressSync([Buffer.from(YES_MINT_SEED), market.toBuffer()], this.program.programId)[0];
|
|
271
275
|
const noMint = PublicKey.findProgramAddressSync([Buffer.from(NO_MINT_SEED), market.toBuffer()], this.program.programId)[0];
|
|
@@ -273,7 +277,10 @@ export class DramaPmClient {
|
|
|
273
277
|
const targetMint = outcome === "Yes" ? yesMint : noMint;
|
|
274
278
|
const userOutcomeToken = getAssociatedTokenAddressSync(targetMint, user);
|
|
275
279
|
return await this.program.methods
|
|
276
|
-
.refund(
|
|
280
|
+
.refund({
|
|
281
|
+
outcome: outcomeEnum,
|
|
282
|
+
tokenAmount: tokenAmountBn,
|
|
283
|
+
})
|
|
277
284
|
.accountsPartial({
|
|
278
285
|
market,
|
|
279
286
|
userOutcomeToken,
|
|
@@ -406,4 +413,4 @@ export class DramaPmClient {
|
|
|
406
413
|
return await getAccount(this.connection, vaultPda);
|
|
407
414
|
}
|
|
408
415
|
}
|
|
409
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVDQUF1QyxFQUN2QyxVQUFVLEVBQ1YsNkJBQTZCLEVBQzdCLGdCQUFnQixHQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLGNBQWMsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRyxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFdkIsT0FBTyxFQUVMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFdBQVcsRUFFWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osYUFBYSxFQUNiLFdBQVcsRUFDWCxZQUFZLEVBQ1osVUFBVSxFQUNWLGFBQWEsRUFDZCxNQUFNLFlBQVksQ0FBQztBQUVwQixjQUFjLFlBQVksQ0FBQztBQUMzQixPQUFPLEVBQVcsR0FBRyxFQUFFLENBQUM7QUE2Q3hCLE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQVksVUFBc0IsRUFBRSxNQUFlLEVBQUUsU0FBcUI7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFN0IsMkNBQTJDO1FBQzNDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBVztZQUM1QixTQUFTLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDbkMsZUFBZSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDakMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRztZQUN2QyxLQUFLLEVBQUUsY0FBYztTQUN0QixDQUFDO1FBRUYsSUFBSSxD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LFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnRJbnN0cnVjdGlvbixcbiAgZ2V0QWNjb3VudCxcbiAgZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmMsXG4gIFRPS0VOX1BST0dSQU1fSUQsXG59IGZyb20gXCJAc29sYW5hL3NwbC10b2tlblwiO1xuXG5pbXBvcnQgeyBQcm9ncmFtIGFzIEFuY2hvclByb2dyYW0sIEFuY2hvclByb3ZpZGVyLCBJZGwsIFByb2dyYW0sIFdhbGxldCB9IGZyb20gXCJAY29yYWwteHl6L2FuY2hvclwiO1xuXG5pbXBvcnQgQk4gZnJvbSBcImJuLmpzXCI7XG5cbmltcG9ydCB7XG4gIENvbm5lY3Rpb24sXG4gIEtleXBhaXIsXG4gIFB1YmxpY0tleSxcbiAgU3lzdGVtUHJvZ3JhbSxcbiAgVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25cbn0gZnJvbSBcIkBzb2xhbmEvd2ViMy5qc1wiO1xuaW1wb3J0IHsgSURMIH0gZnJvbSBcIi4vaWRsLmpzXCI7XG5pbXBvcnQgeyBEcmFtYVBtIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB7XG4gIGdldEdsb2JhbENvbmZpZ1BkYSxcbiAgZ2V0TWFya2V0UGRhLFxuICBnZXRNYXJrZXRQZGFzLFxuICBnZXRWYXVsdFBkYSxcbiAgTk9fTUlOVF9TRUVELFxuICBWQVVMVF9TRUVELFxuICBZRVNfTUlOVF9TRUVEXG59IGZyb20gXCIuL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzLmpzXCI7XG5leHBvcnQgeyBEcmFtYVBtLCBJREwgfTtcblxuZXhwb3J0IHR5cGUgT3V0Y29tZSA9IFwiWWVzXCIgfCBcIk5vXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlTWFya2V0UGFyYW1zIHtcbiAgYWRtaW46IFB1YmxpY0tleTtcbiAgbWFya2V0SWQ6IG51bWJlciB8IEJOO1xuICB5ZXNQcmljZTogbnVtYmVyIHwgQk47XG4gIG5vUHJpY2U6IG51bWJlciB8IEJOO1xuICBlbmRUaW1lOiBudW1iZXIgfCBCTjtcbiAgYmV0dGluZ1Rva2VuOiBQdWJsaWNLZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VCZXRQYXJhbXMge1xuICB1c2VyOiBQdWJsaWNLZXk7XG4gIG1hcmtldDogUHVibGljS2V5OyAvLyBNYXJrZXQgUERBIGFkZHJlc3NcbiAgYW1vdW50OiBudW1iZXIgfCBCTjtcbiAgb3V0Y29tZTogT3V0Y29tZTtcbiAgYmV0dGluZ1Rva2VuOiBQdWJsaWNLZXk7XG4gIGZlZVJlY2lwaWVudD86IFB1YmxpY0tleTsgLy8gRmVlIHJlY2lwaWVudCBhZGRyZXNzIChvcHRpb25hbCwgd2lsbCBmZXRjaCBmcm9tIGNvbmZpZyBpZiBub3QgcHJvdmlkZWQpXG4gIGZlZVJlY2lwaWVudFRva2VuPzogUHVibGljS2V5IHwgbnVsbDsgLy8gRmVlIHJlY2lwaWVudCB0b2tlbiBhY2NvdW50IChvcHRpb25hbCwgdXNlZCBpbnRlcm5hbGx5IGJ5IGJ1aWxkUGxhY2VCZXRUeClcbiAgY3JlYXRlQXRhPzogYm9vbGVhbjsgLy8gV2hldGhlciB0byBjcmVhdGUgQVRBIGluc3RydWN0aW9uIGF1dG9tYXRpY2FsbHlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVGZWVDb25maWdQYXJhbXMge1xuICBhdXRob3JpdHk6IFB1YmxpY0tleTsgLy8gQ2FuIGJlIGF1dGhvcml0eSBvciBhdXRob3JpemVkIGFkbWluXG4gIG5ld0ZlZUJwczogbnVtYmVyOyAvLyBGZWUgaW4gYmFzaXMgcG9pbnRzICgxIGJwcyA9IDAuMDElLCBtYXggMTAwMCA9IDEwJSlcbiAgbmV3RmVlUmVjaXBpZW50OiBQdWJsaWNLZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhaW1SZXdhcmRzUGFyYW1zIHtcbiAgdXNlcjogUHVibGljS2V5O1xuICBtYXJrZXQ6IFB1YmxpY0tleTsgLy8gTWFya2V0IFBEQSBhZGRyZXNzXG4gIGJldHRpbmdUb2tlbjogUHVibGljS2V5O1xuICB3aW5uaW5nT3V0Y29tZTogT3V0Y29tZTtcbiAgc2hhcmVzVG9DbGFpbTogbnVtYmVyIHwgQk47IC8vIEFtb3VudCBvZiBzaGFyZXMgdG8gY2xhaW0gKDAgPSBjbGFpbSBhbGwpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmdW5kUGFyYW1zIHtcbiAgdXNlcjogUHVibGljS2V5O1xuICBtYXJrZXQ6IFB1YmxpY0tleTsgLy8gTWFya2V0IFBEQSBhZGRyZXNzXG4gIGJldHRpbmdUb2tlbjogUHVibGljS2V5O1xuICBvdXRjb21lOiBPdXRjb21lO1xufVxuXG5leHBvcnQgY2xhc3MgRHJhbWFQbUNsaWVudCB7XG4gIHByb2dyYW06IFByb2dyYW08RHJhbWFQbT47XG4gIHByb3ZpZGVyOiBBbmNob3JQcm92aWRlcjtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uLCB3YWxsZXQ/OiBXYWxsZXQsIHByb2dyYW1JZD86IFB1YmxpY0tleSkge1xuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247XG4gICAgXG4gICAgLy8gQ3JlYXRlIGEgZGVmYXVsdCB3YWxsZXQgaWYgbm9uZSBwcm92aWRlZFxuICAgIGNvbnN0IGRlZmF1bHRLZXlwYWlyID0gS2V5cGFpci5nZW5lcmF0ZSgpO1xuICAgIGNvbnN0IGRlZmF1bHRXYWxsZXQ6IFdhbGxldCA9IHtcbiAgICAgIHB1YmxpY0tleTogZGVmYXVsdEtleXBhaXIucHVibGljS2V5LFxuICAgICAgc2lnblRyYW5zYWN0aW9uOiBhc3luYyAodHgpID0+IHR4LFxuICAgICAgc2lnbkFsbFRyYW5zYWN0aW9uczogYXN5bmMgKHR4cykgPT4gdHhzLFxuICAgICAgcGF5ZXI6IGRlZmF1bHRLZXlwYWlyLFxuICAgIH07XG4gICAgXG4gICAgdGhpcy5wcm92aWRlciA9IG5ldyBBbmNob3JQcm92aWRlcihcbiAgICAgIGNvbm5lY3Rpb24sXG4gICAgICB3YWxsZXQgfHwgZGVmYXVsdFdhbGxldCxcbiAgICAgIHsgY29tbWl0bWVudDogXCJjb25maXJtZWRcIiB9XG4gICAgKTtcbiAgICBcbiAgICAvLyBVc2UgY3VzdG9tIHByb2dyYW1JZCBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIHVzZSB0aGUgZGVmYXVsdCBmcm9tIElETFxuICAgIGNvbnN0IGZpbmFsUHJvZ3JhbUlkID0gcHJvZ3JhbUlkIHx8IG5ldyBQdWJsaWNLZXkoSURMLmFkZHJlc3MpO1xuICAgIFxuICAgIC8vIENyZWF0ZSBhIG5ldyBJREwgd2l0aCB0aGUgY3VzdG9tIHByb2dyYW1JZFxuICAgIGNvbnN0IGN1c3RvbUlkbCA9IHsgLi4uSURMLCBhZGRyZXNzOiBmaW5hbFByb2dyYW1JZC50b0Jhc2U1OCgpIH07XG4gICAgXG4gICAgdGhpcy5wcm9ncmFtID0gbmV3IEFuY2hvclByb2dyYW0oY3VzdG9tSWRsIGFzIElkbCwgdGhpcy5wcm92aWRlcikgYXMgdW5rbm93biBhcyBQcm9ncmFtPERyYW1hUG0+O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBwcm9ncmFtIElEXG4gICAqL1xuICBnZXRQcm9ncmFtSWQoKTogUHVibGljS2V5IHtcbiAgICByZXR1cm4gdGhpcy5wcm9ncmFtLnByb2dyYW1JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBuZXcgcHJvZ3JhbSBJRCBhbmQgcmVpbml0aWFsaXplIHRoZSBwcm9ncmFtIGluc3RhbmNlXG4gICAqIFVzZWZ1bCB3aGVuIHJlZGVwbG95aW5nIHRoZSBwcm9ncmFtIHRvIGEgbmV3IGFkZHJlc3NcbiAgICovXG4gIHNldFByb2dyYW1JZChwcm9ncmFtSWQ6IFB1YmxpY0tleSk6IHZvaWQge1xuICAgIGNvbnN0IGN1c3RvbUlkbCA9IHsgLi4uSURMLCBhZGRyZXNzOiBwcm9ncmFtSWQudG9CYXNlNTgoKSB9O1xuICAgIHRoaXMucHJvZ3JhbSA9IG5ldyBBbmNob3JQcm9ncmFtKGN1c3RvbUlkbCBhcyBJZGwsIHRoaXMucHJvdmlkZXIpIGFzIHVua25vd24gYXMgUHJvZ3JhbTxEcmFtYVBtPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhc3NvY2lhdGVkIHRva2VuIGFjY291bnQgZXhpc3RzXG4gICAqL1xuICBhc3luYyBhdGFFeGlzdHMoYXRhOiBQdWJsaWNLZXkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZ2V0QWNjb3VudCh0aGlzLmNvbm5lY3Rpb24sIGF0YSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluc3RydWN0aW9uIHRvIGluaXRpYWxpemUgYW4gYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50XG4gICAqL1xuICBjcmVhdGVBdGFJbnN0cnVjdGlvbihcbiAgICBwYXllcjogUHVibGljS2V5LFxuICAgIG93bmVyOiBQdWJsaWNLZXksXG4gICAgbWludDogUHVibGljS2V5XG4gICk6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24ge1xuICAgIGNvbnN0IGF0YSA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKG1pbnQsIG93bmVyKTtcbiAgICByZXR1cm4gY3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudEluc3RydWN0aW9uKFxuICAgICAgcGF5ZXIsXG4gICAgICBhdGEsXG4gICAgICBvd25lcixcbiAgICAgIG1pbnQsXG4gICAgICBUT0tFTl9QUk9HUkFNX0lEXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGdsb2JhbCBjb25maWd1cmF0aW9uIChBdXRob3JpdHkgb25seSlcbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemVDb25maWcoYXV0aG9yaXR5OiBQdWJsaWNLZXkpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuaW5pdGlhbGl6ZUNvbmZpZygpXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgICBhdXRob3JpdHk6IGF1dGhvcml0eSxcbiAgICAgICAgc3lzdGVtUHJvZ3JhbTogU3lzdGVtUHJvZ3JhbS5wcm9ncmFtSWQsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIGNvbmZpZ1xuICAgKi9cbiAgYXN5bmMgYnVpbGRJbml0aWFsaXplQ29uZmlnVHgoYXV0aG9yaXR5OiBQdWJsaWNLZXkpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLmluaXRpYWxpemVDb25maWcoYXV0aG9yaXR5KTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYXV0aG9yaXplZCBhZG1pbiAoQXV0aG9yaXR5IG9ubHkpXG4gICAqL1xuICBhc3luYyBhZGRBZG1pbihuZXdBZG1pbjogUHVibGljS2V5KTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gZ2V0R2xvYmFsQ29uZmlnUGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuYWRkQWRtaW4obmV3QWRtaW4pXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIGFkbWluXG4gICAqL1xuICBhc3luYyBidWlsZEFkZEFkbWluVHgobmV3QWRtaW46IFB1YmxpY0tleSk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuYWRkQWRtaW4obmV3QWRtaW4pO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBmZWUgY29uZmlndXJhdGlvbiAoQXV0aG9yaXR5IG9yIGF1dGhvcml6ZWQgYWRtaW4pXG4gICAqL1xuICBhc3luYyB1cGRhdGVGZWVDb25maWcocGFyYW1zOiBVcGRhdGVGZWVDb25maWdQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC51cGRhdGVGZWVDb25maWcocGFyYW1zLm5ld0ZlZUJwcywgcGFyYW1zLm5ld0ZlZVJlY2lwaWVudClcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBnbG9iYWxDb25maWc6IGdsb2JhbENvbmZpZyxcbiAgICAgICAgYXV0aG9yaXR5OiBwYXJhbXMuYXV0aG9yaXR5LFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIGZlZSBjb25maWdcbiAgICovXG4gIGFzeW5jIGJ1aWxkVXBkYXRlRmVlQ29uZmlnVHgocGFyYW1zOiBVcGRhdGVGZWVDb25maWdQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLnVwZGF0ZUZlZUNvbmZpZyhwYXJhbXMpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBwcmVkaWN0aW9uIG1hcmtldCBpbnN0cnVjdGlvblxuICAgKi9cbiAgYXN5bmMgY3JlYXRlTWFya2V0KHBhcmFtczogQ3JlYXRlTWFya2V0UGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgeyBhZG1pbiwgbWFya2V0SWQsIHllc1ByaWNlLCBub1ByaWNlLCBlbmRUaW1lLCBiZXR0aW5nVG9rZW4gfSA9IHBhcmFtcztcbiAgICBcbiAgICBjb25zdCBtYXJrZXRJZEJuID0gbmV3IEJOKG1hcmtldElkKTtcbiAgICBjb25zdCB5ZXNQcmljZUJuID0gbmV3IEJOKHllc1ByaWNlKTtcbiAgICBjb25zdCBub1ByaWNlQm4gPSBuZXcgQk4obm9QcmljZSk7XG4gICAgY29uc3QgZW5kVGltZUJuID0gbmV3IEJOKGVuZFRpbWUpO1xuXG4gICAgY29uc3QgcGRhcyA9IGdldE1hcmtldFBkYXModGhpcy5wcm9ncmFtLnByb2dyYW1JZCwgYWRtaW4sIG1hcmtldElkQm4pO1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldEdsb2JhbENvbmZpZ1BkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLmNyZWF0ZU1hcmtldCh7XG4gICAgICAgICAgbWFya2V0SWQ6IG1hcmtldElkQm4sXG4gICAgICAgICAgeWVzUHJpY2U6IHllc1ByaWNlQm4sXG4gICAgICAgICAgbm9QcmljZTogbm9QcmljZUJuLFxuICAgICAgICAgIGVuZFRpbWU6IGVuZFRpbWVCbixcbiAgICAgICAgfSlcbiAgICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgIG1hcmtldDogcGRhcy5tYXJrZXQsXG4gICAgICAgICAgeWVzTWludDogcGRhcy55ZXNNaW50LFxuICAgICAgICAgIG5vTWludDogcGRhcy5ub01pbnQsXG4gICAgICAgICAgYmV0dGluZ1Rva2VuOiBiZXR0aW5nVG9rZW4sXG4gICAgICAgICAgdmF1bHQ6IHBkYXMudmF1bHQsXG4gICAgICAgICAgYWRtaW46IGFkbWluLFxuICAgICAgICAgIHN5c3RlbVByb2dyYW06IFN5c3RlbVByb2dyYW0ucHJvZ3JhbUlkLFxuICAgICAgICB9KVxuICAgICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIGNyZWF0ZSBhIG1hcmtldFxuICAgKi9cbiAgYXN5bmMgYnVpbGRDcmVhdGVNYXJrZXRUeChwYXJhbXM6IENyZWF0ZU1hcmtldFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuY3JlYXRlTWFya2V0KHBhcmFtcyk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogUGxhY2UgYSBiZXQgaW5zdHJ1Y3Rpb24gKHdpdGhvdXQgQVRBIGNyZWF0aW9uKVxuICAgKi9cbiAgYXN5bmMgcGxhY2VCZXQocGFyYW1zOiBQbGFjZUJldFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IHsgdXNlciwgbWFya2V0LCBhbW91bnQsIG91dGNvbWUsIGJldHRpbmdUb2tlbiwgZmVlUmVjaXBpZW50VG9rZW4gfSA9IHBhcmFtcztcbiAgICBcbiAgICBjb25zdCBhbW91bnRCbiA9IG5ldyBCTihhbW91bnQpO1xuICAgIGNvbnN0IG91dGNvbWVFbnVtID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHsgeWVzOiB7fSB9IDogeyBubzoge30gfTtcblxuICAgIC8vIEdldCBnbG9iYWwgY29uZmlnIGZvciBmZWUgaW5mb1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldEdsb2JhbENvbmZpZ1BkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkKTtcblxuICAgIC8vIERlcml2ZSBQREFzIGZyb20gbWFya2V0IGFkZHJlc3NcbiAgICBjb25zdCB5ZXNNaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oWUVTX01JTlRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IG5vTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKE5PX01JTlRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IHZhdWx0ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oVkFVTFRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuXG4gICAgY29uc3QgdXNlckJldHRpbmdUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKGJldHRpbmdUb2tlbiwgdXNlcik7XG4gICAgXG4gICAgLy8gRGV0ZXJtaW5lIHdoaWNoIG91dGNvbWUgdG9rZW4gdGhlIHVzZXIgd2lsbCByZWNlaXZlXG4gICAgY29uc3QgdGFyZ2V0TWludCA9IG91dGNvbWUgPT09IFwiWWVzXCIgPyB5ZXNNaW50IDogbm9NaW50O1xuICAgIGNvbnN0IHVzZXJPdXRjb21lVG9rZW4gPSBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyh0YXJnZXRNaW50LCB1c2VyKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLnBsYWNlQmV0KHtcbiAgICAgICAgYnV5T3V0Y29tZTogb3V0Y29tZUVudW0sXG4gICAgICAgIGFtb3VudDogYW1vdW50Qm4sXG4gICAgICB9KVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIGdsb2JhbENvbmZpZyxcbiAgICAgICAgbWFya2V0LFxuICAgICAgICB5ZXNNaW50LFxuICAgICAgICBub01pbnQsXG4gICAgICAgIHZhdWx0LFxuICAgICAgICBmZWVSZWNpcGllbnRUb2tlbjogZmVlUmVjaXBpZW50VG9rZW4gfHwgbnVsbCxcbiAgICAgICAgdXNlck91dGNvbWVUb2tlbixcbiAgICAgICAgdXNlckJldHRpbmdUb2tlbixcbiAgICAgICAgdXNlcixcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIHBsYWNlIGEgYmV0ICh3aXRoIG9wdGlvbmFsIEFUQSBjcmVhdGlvbiBmb3IgYm90aCBvdXRjb21lIHRva2VuIGFuZCBmZWUgcmVjaXBpZW50KVxuICAgKi9cbiAgYXN5bmMgYnVpbGRQbGFjZUJldFR4KHBhcmFtczogUGxhY2VCZXRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgeyB1c2VyLCBtYXJrZXQsIG91dGNvbWUsIGJldHRpbmdUb2tlbiwgY3JlYXRlQXRhID0gdHJ1ZSB9ID0gcGFyYW1zO1xuICAgIFxuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKCk7XG4gICAgXG4gICAgLy8gRmV0Y2ggY29uZmlnIHRvIGNoZWNrIGZlZV9icHNcbiAgICBjb25zdCBjb25maWdBY2NvdW50ID0gYXdhaXQgdGhpcy5nZXRHbG9iYWxDb25maWdBY2NvdW50KCk7XG4gICAgXG4gICAgLy8gRGVyaXZlIG1pbnQgUERBcyBmcm9tIG1hcmtldCBhZGRyZXNzXG4gICAgY29uc3QgeWVzTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFlFU19NSU5UX1NFRUQpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBjb25zdCBub01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShOT19NSU5UX1NFRUQpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBcbiAgICBjb25zdCB0YXJnZXRNaW50ID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHllc01pbnQgOiBub01pbnQ7XG4gICAgY29uc3QgdXNlck91dGNvbWVUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKHRhcmdldE1pbnQsIHVzZXIpO1xuXG4gICAgLy8gQ2hlY2sgaWYgdXNlciBvdXRjb21lIEFUQSBleGlzdHMgYW5kIGNyZWF0ZSBpZiBuZWVkZWRcbiAgICBpZiAoY3JlYXRlQXRhKSB7XG4gICAgICBjb25zdCBleGlzdHMgPSBhd2FpdCB0aGlzLmF0YUV4aXN0cyh1c2VyT3V0Y29tZVRva2VuKTtcbiAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZUF0YUl4ID0gdGhpcy5jcmVhdGVBdGFJbnN0cnVjdGlvbih1c2VyLCB1c2VyLCB0YXJnZXRNaW50KTtcbiAgICAgICAgdHguYWRkKGNyZWF0ZUF0YUl4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgZmVlIHJlY2lwaWVudCB0b2tlbiBhY2NvdW50IGlmIGZlZV9icHMgPiAwXG4gICAgbGV0IGZlZVJlY2lwaWVudFRva2VuOiBQdWJsaWNLZXkgfCBudWxsID0gbnVsbDtcbiAgICBpZiAoY29uZmlnQWNjb3VudC5mZWVCcHMgPiAwKSB7XG4gICAgICBjb25zdCBmZWVSZWNpcGllbnRBZGRyZXNzID0gcGFyYW1zLmZlZVJlY2lwaWVudCB8fCBjb25maWdBY2NvdW50LmZlZVJlY2lwaWVudDtcbiAgICAgIGZlZVJlY2lwaWVudFRva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmMoYmV0dGluZ1Rva2VuLCBmZWVSZWNpcGllbnRBZGRyZXNzKTtcbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgaWYgZmVlIHJlY2lwaWVudCBBVEEgZXhpc3RzIGFuZCBjcmVhdGUgaWYgbmVlZGVkXG4gICAgICBjb25zdCBmZWVBdGFFeGlzdHMgPSBhd2FpdCB0aGlzLmF0YUV4aXN0cyhmZWVSZWNpcGllbnRUb2tlbik7XG4gICAgICBpZiAoIWZlZUF0YUV4aXN0cykge1xuICAgICAgICBjb25zdCBjcmVhdGVGZWVBdGFJeCA9IHRoaXMuY3JlYXRlQXRhSW5zdHJ1Y3Rpb24odXNlciwgZmVlUmVjaXBpZW50QWRkcmVzcywgYmV0dGluZ1Rva2VuKTtcbiAgICAgICAgdHguYWRkKGNyZWF0ZUZlZUF0YUl4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwbGFjZUJldEl4ID0gYXdhaXQgdGhpcy5wbGFjZUJldCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBmZWVSZWNpcGllbnRUb2tlbixcbiAgICB9KTtcbiAgICB0eC5hZGQocGxhY2VCZXRJeCk7XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKipcbiAgICogQ2xhaW0gcmV3YXJkcyBhZnRlciBtYXJrZXQgcmVzb2x1dGlvblxuICAgKi9cbiAgYXN5bmMgY2xhaW1SZXdhcmRzKHBhcmFtczogQ2xhaW1SZXdhcmRzUGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgeyB1c2VyLCBtYXJrZXQsIGJldHRpbmdUb2tlbiwgd2lubmluZ091dGNvbWUgfSA9IHBhcmFtcztcbiAgICBcbiAgICAvLyBEZXJpdmUgbWludCBQREFzIGZyb20gbWFya2V0IGFkZHJlc3NcbiAgICBjb25zdCB5ZXNNaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oWUVTX01JTlRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IG5vTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKE5PX01JTlRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuXG4gICAgY29uc3QgdXNlckJldHRpbmdUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKGJldHRpbmdUb2tlbiwgdXNlcik7XG4gICAgY29uc3QgdGFyZ2V0TWludCA9IHdpbm5pbmdPdXRjb21lID09PSBcIlllc1wiID8geWVzTWludCA6IG5vTWludDtcbiAgICBjb25zdCB1c2VyT3V0Y29tZVRva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmModGFyZ2V0TWludCwgdXNlcik7XG4gICAgY29uc3Qgc2hhcmVzVG9DbGFpbUJuID0gbmV3IEJOKHBhcmFtcy5zaGFyZXNUb0NsYWltKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5jbGFpbVJld2FyZHMoe1xuICAgICAgICB0b2tlbkFtb3VudDogc2hhcmVzVG9DbGFpbUJuLFxuICAgICAgfSlcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQsXG4gICAgICAgIHVzZXJPdXRjb21lVG9rZW4sXG4gICAgICAgIHVzZXJCZXR0aW5nVG9rZW4sXG4gICAgICAgIHVzZXIsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byBjbGFpbSByZXdhcmRzXG4gICAqL1xuICBhc3luYyBidWlsZENsYWltUmV3YXJkc1R4KHBhcmFtczogQ2xhaW1SZXdhcmRzUGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGl4ID0gYXdhaXQgdGhpcy5jbGFpbVJld2FyZHMocGFyYW1zKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZ1bmQgYmV0cyBpZiBtYXJrZXQgaXMgcmVmdW5kZWRcbiAgICovXG4gIGFzeW5jIHJlZnVuZChwYXJhbXM6IFJlZnVuZFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IHsgdXNlciwgbWFya2V0LCBiZXR0aW5nVG9rZW4sIG91dGNvbWUgfSA9IHBhcmFtcztcbiAgICBcbiAgICBjb25zdCBvdXRjb21lRW51bSA9IG91dGNvbWUgPT09IFwiWWVzXCIgPyB7IHllczoge30gfSA6IHsgbm86IHt9IH07XG4gICAgXG4gICAgLy8gRGVyaXZlIG1pbnQgUERBcyBmcm9tIG1hcmtldCBhZGRyZXNzXG4gICAgY29uc3QgeWVzTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFlFU19NSU5UX1NFRUQpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBjb25zdCBub01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShOT19NSU5UX1NFRUQpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcblxuICAgIGNvbnN0IHVzZXJCZXR0aW5nVG9rZW4gPSBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyhiZXR0aW5nVG9rZW4sIHVzZXIpO1xuICAgIGNvbnN0IHRhcmdldE1pbnQgPSBvdXRjb21lID09PSBcIlllc1wiID8geWVzTWludCA6IG5vTWludDtcbiAgICBjb25zdCB1c2VyT3V0Y29tZVRva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmModGFyZ2V0TWludCwgdXNlcik7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5yZWZ1bmQob3V0Y29tZUVudW0pXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgbWFya2V0LFxuICAgICAgICB1c2VyT3V0Y29tZVRva2VuLFxuICAgICAgICB1c2VyQmV0dGluZ1Rva2VuLFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gcmVmdW5kXG4gICAqL1xuICBhc3luYyBidWlsZFJlZnVuZFR4KHBhcmFtczogUmVmdW5kUGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGl4ID0gYXdhaXQgdGhpcy5yZWZ1bmQocGFyYW1zKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIGEgbWFya2V0IChBZG1pbiBvbmx5KVxuICAgKi9cbiAgYXN5bmMgcmVzb2x2ZU1hcmtldEJ5SUQoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXRJZDogbnVtYmVyIHwgQk4sXG4gICAgd2lubmluZ091dGNvbWU6IFwiWWVzXCIgfCBcIk5vXCIgfCBudWxsXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IG1hcmtldElkQm4gPSBuZXcgQk4obWFya2V0SWQpO1xuICAgIGNvbnN0IG1hcmtldFBkYSA9IGdldE1hcmtldFBkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkLCBhZG1pbiwgbWFya2V0SWRCbik7XG5cbiAgICBsZXQgb3V0Y29tZUVudW06IGFueSA9IG51bGw7XG4gICAgaWYgKHdpbm5pbmdPdXRjb21lID09PSBcIlllc1wiKSB7XG4gICAgICBvdXRjb21lRW51bSA9IHsgeWVzOiB7fSB9O1xuICAgIH0gZWxzZSBpZiAod2lubmluZ091dGNvbWUgPT09IFwiTm9cIikge1xuICAgICAgb3V0Y29tZUVudW0gPSB7IG5vOiB7fSB9O1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLnJlc29sdmVNYXJrZXQob3V0Y29tZUVudW0pXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgbWFya2V0OiBtYXJrZXRQZGEsXG4gICAgICAgIGFkbWluLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gcmVzb2x2ZSBhIG1hcmtldFxuICAgKi9cbiAgYXN5bmMgYnVpbGRSZXNvbHZlTWFya2V0VHhCeUlEKFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0SWQ6IG51bWJlciB8IEJOLFxuICAgIHdpbm5pbmdPdXRjb21lOiBcIlllc1wiIHwgXCJOb1wiIHwgbnVsbFxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLnJlc29sdmVNYXJrZXRCeUlEKGFkbWluLCBtYXJrZXRJZCwgd2lubmluZ091dGNvbWUpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBtYXJrZXQgKEFkbWluIG9ubHkpXG4gICAqL1xuICBhc3luYyByZXNvbHZlTWFya2V0KFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0OiBQdWJsaWNLZXksXG4gICAgd2lubmluZ091dGNvbWU6IFwiWWVzXCIgfCBcIk5vXCIgfCBudWxsXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGxldCBvdXRjb21lRW51bTogYW55ID0gbnVsbDtcbiAgICBpZiAod2lubmluZ091dGNvbWUgPT09IFwiWWVzXCIpIHtcbiAgICAgIG91dGNvbWVFbnVtID0geyB5ZXM6IHt9IH07XG4gICAgfSBlbHNlIGlmICh3aW5uaW5nT3V0Y29tZSA9PT0gXCJOb1wiKSB7XG4gICAgICBvdXRjb21lRW51bSA9IHsgbm86IHt9IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAucmVzb2x2ZU1hcmtldChvdXRjb21lRW51bSlcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQ6IG1hcmtldCxcbiAgICAgICAgYWRtaW4sXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byByZXNvbHZlIGEgbWFya2V0XG4gICAqL1xuICBhc3luYyBidWlsZFJlc29sdmVNYXJrZXRUeChcbiAgICBhZG1pbjogUHVibGljS2V5LFxuICAgIG1hcmtldDogUHVibGljS2V5LFxuICAgIHdpbm5pbmdPdXRjb21lOiBcIlllc1wiIHwgXCJOb1wiIHwgbnVsbFxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLnJlc29sdmVNYXJrZXQoYWRtaW4sIG1hcmtldCwgd2lubmluZ091dGNvbWUpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGEgbWFya2V0IChBZG1pbiBvbmx5KVxuICAgKi9cbiAgYXN5bmMgY2xvc2VNYXJrZXQoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXQ6IFB1YmxpY0tleVxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5jbG9zZU1hcmtldCgpXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgbWFya2V0OiBtYXJrZXQsXG4gICAgICAgIGFkbWluOiBhZG1pbixcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIGNsb3NlIGEgbWFya2V0XG4gICAqL1xuICBhc3luYyBidWlsZENsb3NlTWFya2V0VHgoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXQ6IFB1YmxpY0tleVxuICApOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLmNsb3NlTWFya2V0KGFkbWluLCBtYXJrZXQpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGEgbWFya2V0IChBZG1pbiBvbmx5KVxuICAgKi9cbiAgYXN5bmMgY2xvc2VNYXJrZXRCeUlEKFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0SWQ6IG51bWJlciB8IEJOXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IG1hcmtldElkQm4gPSBuZXcgQk4obWFya2V0SWQpO1xuICAgIGNvbnN0IG1hcmtldFBkYSA9IGdldE1hcmtldFBkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkLCBhZG1pbiwgbWFya2V0SWRCbik7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5jbG9zZU1hcmtldCgpXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgbWFya2V0OiBtYXJrZXRQZGEsXG4gICAgICAgIGFkbWluOiBhZG1pbixcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIGNsb3NlIGEgbWFya2V0XG4gICAqL1xuICBhc3luYyBidWlsZENsb3NlTWFya2V0VHhCeUlEKFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0SWQ6IG51bWJlciB8IEJOXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuY2xvc2VNYXJrZXRCeUlEKGFkbWluLCBtYXJrZXRJZCk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBGZXRjaCBnbG9iYWwgY29uZmlnIGFjY291bnQgZGF0YVxuICAgKi9cbiAgYXN5bmMgZ2V0R2xvYmFsQ29uZmlnQWNjb3VudCgpIHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5hY2NvdW50Lmdsb2JhbENvbmZpZy5mZXRjaChnbG9iYWxDb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIG1hcmtldCBhY2NvdW50IGRhdGFcbiAgICovXG4gIGFzeW5jIGdldE1hcmtldEFjY291bnQoYWRtaW46IFB1YmxpY0tleSwgbWFya2V0SWQ6IG51bWJlciB8IEJOKSB7XG4gICAgY29uc3QgbWFya2V0SWRCbiA9IG5ldyBCTihtYXJrZXRJZCk7XG4gICAgY29uc3QgbWFya2V0UGRhID0gZ2V0TWFya2V0UGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQsIGFkbWluLCBtYXJrZXRJZEJuKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLmFjY291bnQubWFya2V0LmZldGNoKG1hcmtldFBkYSk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggdmF1bHQgYWNjb3VudCBkYXRhXG4gICAqL1xuICBhc3luYyBnZXRWYXVsdEFjY291bnQobWFya2V0UGRhOiBQdWJsaWNLZXkpIHtcbiAgICBjb25zdCB2YXVsdFBkYSA9IGdldFZhdWx0UGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQsIG1hcmtldFBkYSk7XG4gICAgcmV0dXJuIGF3YWl0IGdldEFjY291bnQodGhpcy5jb25uZWN0aW9uLCB2YXVsdFBkYSk7XG4gIH1cbn1cbiJdfQ==
|
|
416
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVDQUF1QyxFQUN2QyxVQUFVLEVBQ1YsNkJBQTZCLEVBQzdCLGdCQUFnQixHQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLGNBQWMsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRyxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFdkIsT0FBTyxFQUVMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFdBQVcsRUFFWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osYUFBYSxFQUNiLFdBQVcsRUFDWCxZQUFZLEVBQ1osVUFBVSxFQUNWLGFBQWEsRUFDZCxNQUFNLFlBQVksQ0FBQztBQUVwQixjQUFjLFlBQVksQ0FBQztBQUMzQixPQUFPLEVBQVcsR0FBRyxFQUFFLENBQUM7QUE4Q3hCLE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQVksVUFBc0IsRUFBRSxNQUFlLEVBQUUsU0FBcUI7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFN0IsMkNBQTJDO1FBQzNDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBVztZQUM1QixTQUFTLEVBQUUsY0FBYyxDQUFDLFNBQVM7WUFDbkMsZUFBZSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDakMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRztZQUN2QyxLQUFLLEVBQUUsY0FBYztTQUN0QixDQUFDO1FBRUYsSUFBSSxD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T0FFRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBb0I7UUFDeEMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGVBc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5zdHJ1Y3Rpb24sXG4gIGdldEFjY291bnQsXG4gIGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jLFxuICBUT0tFTl9QUk9HUkFNX0lELFxufSBmcm9tIFwiQHNvbGFuYS9zcGwtdG9rZW5cIjtcblxuaW1wb3J0IHsgUHJvZ3JhbSBhcyBBbmNob3JQcm9ncmFtLCBBbmNob3JQcm92aWRlciwgSWRsLCBQcm9ncmFtLCBXYWxsZXQgfSBmcm9tIFwiQGNvcmFsLXh5ei9hbmNob3JcIjtcblxuaW1wb3J0IEJOIGZyb20gXCJibi5qc1wiO1xuXG5pbXBvcnQge1xuICBDb25uZWN0aW9uLFxuICBLZXlwYWlyLFxuICBQdWJsaWNLZXksXG4gIFN5c3RlbVByb2dyYW0sXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkluc3RydWN0aW9uXG59IGZyb20gXCJAc29sYW5hL3dlYjMuanNcIjtcbmltcG9ydCB7IElETCB9IGZyb20gXCIuL2lkbC5qc1wiO1xuaW1wb3J0IHsgRHJhbWFQbSB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQge1xuICBnZXRHbG9iYWxDb25maWdQZGEsXG4gIGdldE1hcmtldFBkYSxcbiAgZ2V0TWFya2V0UGRhcyxcbiAgZ2V0VmF1bHRQZGEsXG4gIE5PX01JTlRfU0VFRCxcbiAgVkFVTFRfU0VFRCxcbiAgWUVTX01JTlRfU0VFRFxufSBmcm9tIFwiLi91dGlscy5qc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi91dGlscy5qc1wiO1xuZXhwb3J0IHsgRHJhbWFQbSwgSURMIH07XG5cbmV4cG9ydCB0eXBlIE91dGNvbWUgPSBcIlllc1wiIHwgXCJOb1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU1hcmtldFBhcmFtcyB7XG4gIGFkbWluOiBQdWJsaWNLZXk7XG4gIG1hcmtldElkOiBudW1iZXIgfCBCTjtcbiAgeWVzUHJpY2U6IG51bWJlciB8IEJOO1xuICBub1ByaWNlOiBudW1iZXIgfCBCTjtcbiAgZW5kVGltZTogbnVtYmVyIHwgQk47XG4gIGJldHRpbmdUb2tlbjogUHVibGljS2V5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlQmV0UGFyYW1zIHtcbiAgdXNlcjogUHVibGljS2V5O1xuICBtYXJrZXQ6IFB1YmxpY0tleTsgLy8gTWFya2V0IFBEQSBhZGRyZXNzXG4gIGFtb3VudDogbnVtYmVyIHwgQk47XG4gIG91dGNvbWU6IE91dGNvbWU7XG4gIGJldHRpbmdUb2tlbjogUHVibGljS2V5O1xuICBmZWVSZWNpcGllbnQ/OiBQdWJsaWNLZXk7IC8vIEZlZSByZWNpcGllbnQgYWRkcmVzcyAob3B0aW9uYWwsIHdpbGwgZmV0Y2ggZnJvbSBjb25maWcgaWYgbm90IHByb3ZpZGVkKVxuICBmZWVSZWNpcGllbnRUb2tlbj86IFB1YmxpY0tleSB8IG51bGw7IC8vIEZlZSByZWNpcGllbnQgdG9rZW4gYWNjb3VudCAob3B0aW9uYWwsIHVzZWQgaW50ZXJuYWxseSBieSBidWlsZFBsYWNlQmV0VHgpXG4gIGNyZWF0ZUF0YT86IGJvb2xlYW47IC8vIFdoZXRoZXIgdG8gY3JlYXRlIEFUQSBpbnN0cnVjdGlvbiBhdXRvbWF0aWNhbGx5XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlRmVlQ29uZmlnUGFyYW1zIHtcbiAgYXV0aG9yaXR5OiBQdWJsaWNLZXk7IC8vIENhbiBiZSBhdXRob3JpdHkgb3IgYXV0aG9yaXplZCBhZG1pblxuICBuZXdGZWVCcHM6IG51bWJlcjsgLy8gRmVlIGluIGJhc2lzIHBvaW50cyAoMSBicHMgPSAwLjAxJSwgbWF4IDEwMDAgPSAxMCUpXG4gIG5ld0ZlZVJlY2lwaWVudDogUHVibGljS2V5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsYWltUmV3YXJkc1BhcmFtcyB7XG4gIHVzZXI6IFB1YmxpY0tleTtcbiAgbWFya2V0OiBQdWJsaWNLZXk7IC8vIE1hcmtldCBQREEgYWRkcmVzc1xuICBiZXR0aW5nVG9rZW46IFB1YmxpY0tleTtcbiAgd2lubmluZ091dGNvbWU6IE91dGNvbWU7XG4gIHNoYXJlc1RvQ2xhaW06IG51bWJlciB8IEJOOyAvLyBBbW91bnQgb2Ygc2hhcmVzIHRvIGNsYWltICgwID0gY2xhaW0gYWxsKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZnVuZFBhcmFtcyB7XG4gIHVzZXI6IFB1YmxpY0tleTtcbiAgbWFya2V0OiBQdWJsaWNLZXk7IC8vIE1hcmtldCBQREEgYWRkcmVzc1xuICBiZXR0aW5nVG9rZW46IFB1YmxpY0tleTtcbiAgb3V0Y29tZTogT3V0Y29tZTtcbiAgdG9rZW5BbW91bnQ/OiBudW1iZXIgfCBCTjsgLy8gQW1vdW50IG9mIHNoYXJlcyB0byByZWZ1bmQuIDAgb3IgdW5kZWZpbmVkIG1lYW5zIHJlZnVuZCBhbGwgc2hhcmVzLlxufVxuXG5leHBvcnQgY2xhc3MgRHJhbWFQbUNsaWVudCB7XG4gIHByb2dyYW06IFByb2dyYW08RHJhbWFQbT47XG4gIHByb3ZpZGVyOiBBbmNob3JQcm92aWRlcjtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uOiBDb25uZWN0aW9uLCB3YWxsZXQ/OiBXYWxsZXQsIHByb2dyYW1JZD86IFB1YmxpY0tleSkge1xuICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247XG4gICAgXG4gICAgLy8gQ3JlYXRlIGEgZGVmYXVsdCB3YWxsZXQgaWYgbm9uZSBwcm92aWRlZFxuICAgIGNvbnN0IGRlZmF1bHRLZXlwYWlyID0gS2V5cGFpci5nZW5lcmF0ZSgpO1xuICAgIGNvbnN0IGRlZmF1bHRXYWxsZXQ6IFdhbGxldCA9IHtcbiAgICAgIHB1YmxpY0tleTogZGVmYXVsdEtleXBhaXIucHVibGljS2V5LFxuICAgICAgc2lnblRyYW5zYWN0aW9uOiBhc3luYyAodHgpID0+IHR4LFxuICAgICAgc2lnbkFsbFRyYW5zYWN0aW9uczogYXN5bmMgKHR4cykgPT4gdHhzLFxuICAgICAgcGF5ZXI6IGRlZmF1bHRLZXlwYWlyLFxuICAgIH07XG4gICAgXG4gICAgdGhpcy5wcm92aWRlciA9IG5ldyBBbmNob3JQcm92aWRlcihcbiAgICAgIGNvbm5lY3Rpb24sXG4gICAgICB3YWxsZXQgfHwgZGVmYXVsdFdhbGxldCxcbiAgICAgIHsgY29tbWl0bWVudDogXCJjb25maXJtZWRcIiB9XG4gICAgKTtcbiAgICBcbiAgICAvLyBVc2UgY3VzdG9tIHByb2dyYW1JZCBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIHVzZSB0aGUgZGVmYXVsdCBmcm9tIElETFxuICAgIGNvbnN0IGZpbmFsUHJvZ3JhbUlkID0gcHJvZ3JhbUlkIHx8IG5ldyBQdWJsaWNLZXkoSURMLmFkZHJlc3MpO1xuICAgIFxuICAgIC8vIENyZWF0ZSBhIG5ldyBJREwgd2l0aCB0aGUgY3VzdG9tIHByb2dyYW1JZFxuICAgIGNvbnN0IGN1c3RvbUlkbCA9IHsgLi4uSURMLCBhZGRyZXNzOiBmaW5hbFByb2dyYW1JZC50b0Jhc2U1OCgpIH07XG4gICAgXG4gICAgdGhpcy5wcm9ncmFtID0gbmV3IEFuY2hvclByb2dyYW0oY3VzdG9tSWRsIGFzIElkbCwgdGhpcy5wcm92aWRlcikgYXMgdW5rbm93biBhcyBQcm9ncmFtPERyYW1hUG0+O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBwcm9ncmFtIElEXG4gICAqL1xuICBnZXRQcm9ncmFtSWQoKTogUHVibGljS2V5IHtcbiAgICByZXR1cm4gdGhpcy5wcm9ncmFtLnByb2dyYW1JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBuZXcgcHJvZ3JhbSBJRCBhbmQgcmVpbml0aWFsaXplIHRoZSBwcm9ncmFtIGluc3RhbmNlXG4gICAqIFVzZWZ1bCB3aGVuIHJlZGVwbG95aW5nIHRoZSBwcm9ncmFtIHRvIGEgbmV3IGFkZHJlc3NcbiAgICovXG4gIHNldFByb2dyYW1JZChwcm9ncmFtSWQ6IFB1YmxpY0tleSk6IHZvaWQge1xuICAgIGNvbnN0IGN1c3RvbUlkbCA9IHsgLi4uSURMLCBhZGRyZXNzOiBwcm9ncmFtSWQudG9CYXNlNTgoKSB9O1xuICAgIHRoaXMucHJvZ3JhbSA9IG5ldyBBbmNob3JQcm9ncmFtKGN1c3RvbUlkbCBhcyBJZGwsIHRoaXMucHJvdmlkZXIpIGFzIHVua25vd24gYXMgUHJvZ3JhbTxEcmFtYVBtPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhc3NvY2lhdGVkIHRva2VuIGFjY291bnQgZXhpc3RzXG4gICAqL1xuICBhc3luYyBhdGFFeGlzdHMoYXRhOiBQdWJsaWNLZXkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZ2V0QWNjb3VudCh0aGlzLmNvbm5lY3Rpb24sIGF0YSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluc3RydWN0aW9uIHRvIGluaXRpYWxpemUgYW4gYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50XG4gICAqL1xuICBjcmVhdGVBdGFJbnN0cnVjdGlvbihcbiAgICBwYXllcjogUHVibGljS2V5LFxuICAgIG93bmVyOiBQdWJsaWNLZXksXG4gICAgbWludDogUHVibGljS2V5XG4gICk6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24ge1xuICAgIGNvbnN0IGF0YSA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKG1pbnQsIG93bmVyKTtcbiAgICByZXR1cm4gY3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudEluc3RydWN0aW9uKFxuICAgICAgcGF5ZXIsXG4gICAgICBhdGEsXG4gICAgICBvd25lcixcbiAgICAgIG1pbnQsXG4gICAgICBUT0tFTl9QUk9HUkFNX0lEXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGdsb2JhbCBjb25maWd1cmF0aW9uIChBdXRob3JpdHkgb25seSlcbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemVDb25maWcoYXV0aG9yaXR5OiBQdWJsaWNLZXkpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuaW5pdGlhbGl6ZUNvbmZpZygpXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgICBhdXRob3JpdHk6IGF1dGhvcml0eSxcbiAgICAgICAgc3lzdGVtUHJvZ3JhbTogU3lzdGVtUHJvZ3JhbS5wcm9ncmFtSWQsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIGNvbmZpZ1xuICAgKi9cbiAgYXN5bmMgYnVpbGRJbml0aWFsaXplQ29uZmlnVHgoYXV0aG9yaXR5OiBQdWJsaWNLZXkpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLmluaXRpYWxpemVDb25maWcoYXV0aG9yaXR5KTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYXV0aG9yaXplZCBhZG1pbiAoQXV0aG9yaXR5IG9ubHkpXG4gICAqL1xuICBhc3luYyBhZGRBZG1pbihuZXdBZG1pbjogUHVibGljS2V5KTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gZ2V0R2xvYmFsQ29uZmlnUGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAuYWRkQWRtaW4obmV3QWRtaW4pXG4gICAgICAuYWNjb3VudHNQYXJ0aWFsKHtcbiAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIGFkbWluXG4gICAqL1xuICBhc3luYyBidWlsZEFkZEFkbWluVHgobmV3QWRtaW46IFB1YmxpY0tleSk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuYWRkQWRtaW4obmV3QWRtaW4pO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBmZWUgY29uZmlndXJhdGlvbiAoQXV0aG9yaXR5IG9yIGF1dGhvcml6ZWQgYWRtaW4pXG4gICAqL1xuICBhc3luYyB1cGRhdGVGZWVDb25maWcocGFyYW1zOiBVcGRhdGVGZWVDb25maWdQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24+IHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSBnZXRHbG9iYWxDb25maWdQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC51cGRhdGVGZWVDb25maWcocGFyYW1zLm5ld0ZlZUJwcywgcGFyYW1zLm5ld0ZlZVJlY2lwaWVudClcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBnbG9iYWxDb25maWc6IGdsb2JhbENvbmZpZyxcbiAgICAgICAgYXV0aG9yaXR5OiBwYXJhbXMuYXV0aG9yaXR5LFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIGZlZSBjb25maWdcbiAgICovXG4gIGFzeW5jIGJ1aWxkVXBkYXRlRmVlQ29uZmlnVHgocGFyYW1zOiBVcGRhdGVGZWVDb25maWdQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLnVwZGF0ZUZlZUNvbmZpZyhwYXJhbXMpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBwcmVkaWN0aW9uIG1hcmtldCBpbnN0cnVjdGlvblxuICAgKi9cbiAgYXN5bmMgY3JlYXRlTWFya2V0KHBhcmFtczogQ3JlYXRlTWFya2V0UGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgeyBhZG1pbiwgbWFya2V0SWQsIHllc1ByaWNlLCBub1ByaWNlLCBlbmRUaW1lLCBiZXR0aW5nVG9rZW4gfSA9IHBhcmFtcztcbiAgICBcbiAgICBjb25zdCBtYXJrZXRJZEJuID0gbmV3IEJOKG1hcmtldElkKTtcbiAgICBjb25zdCB5ZXNQcmljZUJuID0gbmV3IEJOKHllc1ByaWNlKTtcbiAgICBjb25zdCBub1ByaWNlQm4gPSBuZXcgQk4obm9QcmljZSk7XG4gICAgY29uc3QgZW5kVGltZUJuID0gbmV3IEJOKGVuZFRpbWUpO1xuXG4gICAgY29uc3QgcGRhcyA9IGdldE1hcmtldFBkYXModGhpcy5wcm9ncmFtLnByb2dyYW1JZCwgYWRtaW4sIG1hcmtldElkQm4pO1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldEdsb2JhbENvbmZpZ1BkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLmNyZWF0ZU1hcmtldCh7XG4gICAgICAgICAgbWFya2V0SWQ6IG1hcmtldElkQm4sXG4gICAgICAgICAgeWVzUHJpY2U6IHllc1ByaWNlQm4sXG4gICAgICAgICAgbm9QcmljZTogbm9QcmljZUJuLFxuICAgICAgICAgIGVuZFRpbWU6IGVuZFRpbWVCbixcbiAgICAgICAgfSlcbiAgICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgIG1hcmtldDogcGRhcy5tYXJrZXQsXG4gICAgICAgICAgeWVzTWludDogcGRhcy55ZXNNaW50LFxuICAgICAgICAgIG5vTWludDogcGRhcy5ub01pbnQsXG4gICAgICAgICAgYmV0dGluZ1Rva2VuOiBiZXR0aW5nVG9rZW4sXG4gICAgICAgICAgdmF1bHQ6IHBkYXMudmF1bHQsXG4gICAgICAgICAgYWRtaW46IGFkbWluLFxuICAgICAgICAgIHN5c3RlbVByb2dyYW06IFN5c3RlbVByb2dyYW0ucHJvZ3JhbUlkLFxuICAgICAgICB9KVxuICAgICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIGNyZWF0ZSBhIG1hcmtldFxuICAgKi9cbiAgYXN5bmMgYnVpbGRDcmVhdGVNYXJrZXRUeChwYXJhbXM6IENyZWF0ZU1hcmtldFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuY3JlYXRlTWFya2V0KHBhcmFtcyk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogUGxhY2UgYSBiZXQgaW5zdHJ1Y3Rpb24gKHdpdGhvdXQgQVRBIGNyZWF0aW9uKVxuICAgKi9cbiAgYXN5bmMgcGxhY2VCZXQocGFyYW1zOiBQbGFjZUJldFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IHsgdXNlciwgbWFya2V0LCBhbW91bnQsIG91dGNvbWUsIGJldHRpbmdUb2tlbiwgZmVlUmVjaXBpZW50VG9rZW4gfSA9IHBhcmFtcztcbiAgICBcbiAgICBjb25zdCBhbW91bnRCbiA9IG5ldyBCTihhbW91bnQpO1xuICAgIGNvbnN0IG91dGNvbWVFbnVtID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHsgeWVzOiB7fSB9IDogeyBubzoge30gfTtcblxuICAgIC8vIEdldCBnbG9iYWwgY29uZmlnIGZvciBmZWUgaW5mb1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldEdsb2JhbENvbmZpZ1BkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkKTtcblxuICAgIC8vIERlcml2ZSBQREFzIGZyb20gbWFya2V0IGFkZHJlc3NcbiAgICBjb25zdCB5ZXNNaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oWUVTX01JTlRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IG5vTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKE5PX01JTlRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IHZhdWx0ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oVkFVTFRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuXG4gICAgY29uc3QgdXNlckJldHRpbmdUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKGJldHRpbmdUb2tlbiwgdXNlcik7XG4gICAgXG4gICAgLy8gRGV0ZXJtaW5lIHdoaWNoIG91dGNvbWUgdG9rZW4gdGhlIHVzZXIgd2lsbCByZWNlaXZlXG4gICAgY29uc3QgdGFyZ2V0TWludCA9IG91dGNvbWUgPT09IFwiWWVzXCIgPyB5ZXNNaW50IDogbm9NaW50O1xuICAgIGNvbnN0IHVzZXJPdXRjb21lVG9rZW4gPSBnZXRBc3NvY2lhdGVkVG9rZW5BZGRyZXNzU3luYyh0YXJnZXRNaW50LCB1c2VyKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLnBsYWNlQmV0KHtcbiAgICAgICAgYnV5T3V0Y29tZTogb3V0Y29tZUVudW0sXG4gICAgICAgIGFtb3VudDogYW1vdW50Qm4sXG4gICAgICB9KVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIGdsb2JhbENvbmZpZyxcbiAgICAgICAgbWFya2V0LFxuICAgICAgICB5ZXNNaW50LFxuICAgICAgICBub01pbnQsXG4gICAgICAgIHZhdWx0LFxuICAgICAgICBmZWVSZWNpcGllbnRUb2tlbjogZmVlUmVjaXBpZW50VG9rZW4gfHwgbnVsbCxcbiAgICAgICAgdXNlck91dGNvbWVUb2tlbixcbiAgICAgICAgdXNlckJldHRpbmdUb2tlbixcbiAgICAgICAgdXNlcixcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIHBsYWNlIGEgYmV0ICh3aXRoIG9wdGlvbmFsIEFUQSBjcmVhdGlvbiBmb3IgYm90aCBvdXRjb21lIHRva2VuIGFuZCBmZWUgcmVjaXBpZW50KVxuICAgKi9cbiAgYXN5bmMgYnVpbGRQbGFjZUJldFR4KHBhcmFtczogUGxhY2VCZXRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgeyB1c2VyLCBtYXJrZXQsIG91dGNvbWUsIGJldHRpbmdUb2tlbiwgY3JlYXRlQXRhID0gdHJ1ZSB9ID0gcGFyYW1zO1xuICAgIFxuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKCk7XG4gICAgXG4gICAgLy8gRmV0Y2ggY29uZmlnIHRvIGNoZWNrIGZlZV9icHNcbiAgICBjb25zdCBjb25maWdBY2NvdW50ID0gYXdhaXQgdGhpcy5nZXRHbG9iYWxDb25maWdBY2NvdW50KCk7XG4gICAgXG4gICAgLy8gRGVyaXZlIG1pbnQgUERBcyBmcm9tIG1hcmtldCBhZGRyZXNzXG4gICAgY29uc3QgeWVzTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKFlFU19NSU5UX1NFRUQpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBjb25zdCBub01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShOT19NSU5UX1NFRUQpLCBtYXJrZXQudG9CdWZmZXIoKV0sXG4gICAgICB0aGlzLnByb2dyYW0ucHJvZ3JhbUlkXG4gICAgKVswXTtcbiAgICBcbiAgICBjb25zdCB0YXJnZXRNaW50ID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHllc01pbnQgOiBub01pbnQ7XG4gICAgY29uc3QgdXNlck91dGNvbWVUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKHRhcmdldE1pbnQsIHVzZXIpO1xuXG4gICAgLy8gQ2hlY2sgaWYgdXNlciBvdXRjb21lIEFUQSBleGlzdHMgYW5kIGNyZWF0ZSBpZiBuZWVkZWRcbiAgICBpZiAoY3JlYXRlQXRhKSB7XG4gICAgICBjb25zdCBleGlzdHMgPSBhd2FpdCB0aGlzLmF0YUV4aXN0cyh1c2VyT3V0Y29tZVRva2VuKTtcbiAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZUF0YUl4ID0gdGhpcy5jcmVhdGVBdGFJbnN0cnVjdGlvbih1c2VyLCB1c2VyLCB0YXJnZXRNaW50KTtcbiAgICAgICAgdHguYWRkKGNyZWF0ZUF0YUl4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgZmVlIHJlY2lwaWVudCB0b2tlbiBhY2NvdW50IGlmIGZlZV9icHMgPiAwXG4gICAgbGV0IGZlZVJlY2lwaWVudFRva2VuOiBQdWJsaWNLZXkgfCBudWxsID0gbnVsbDtcbiAgICBpZiAoY29uZmlnQWNjb3VudC5mZWVCcHMgPiAwKSB7XG4gICAgICBjb25zdCBmZWVSZWNpcGllbnRBZGRyZXNzID0gcGFyYW1zLmZlZVJlY2lwaWVudCB8fCBjb25maWdBY2NvdW50LmZlZVJlY2lwaWVudDtcbiAgICAgIGZlZVJlY2lwaWVudFRva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmMoYmV0dGluZ1Rva2VuLCBmZWVSZWNpcGllbnRBZGRyZXNzKTtcbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgaWYgZmVlIHJlY2lwaWVudCBBVEEgZXhpc3RzIGFuZCBjcmVhdGUgaWYgbmVlZGVkXG4gICAgICBjb25zdCBmZWVBdGFFeGlzdHMgPSBhd2FpdCB0aGlzLmF0YUV4aXN0cyhmZWVSZWNpcGllbnRUb2tlbik7XG4gICAgICBpZiAoIWZlZUF0YUV4aXN0cykge1xuICAgICAgICBjb25zdCBjcmVhdGVGZWVBdGFJeCA9IHRoaXMuY3JlYXRlQXRhSW5zdHJ1Y3Rpb24odXNlciwgZmVlUmVjaXBpZW50QWRkcmVzcywgYmV0dGluZ1Rva2VuKTtcbiAgICAgICAgdHguYWRkKGNyZWF0ZUZlZUF0YUl4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwbGFjZUJldEl4ID0gYXdhaXQgdGhpcy5wbGFjZUJldCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBmZWVSZWNpcGllbnRUb2tlbixcbiAgICB9KTtcbiAgICB0eC5hZGQocGxhY2VCZXRJeCk7XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICAvKipcbiAgICogQ2xhaW0gcmV3YXJkcyBhZnRlciBtYXJrZXQgcmVzb2x1dGlvblxuICAgKi9cbiAgYXN5bmMgY2xhaW1SZXdhcmRzKHBhcmFtczogQ2xhaW1SZXdhcmRzUGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgeyB1c2VyLCBtYXJrZXQsIGJldHRpbmdUb2tlbiwgd2lubmluZ091dGNvbWUgfSA9IHBhcmFtcztcbiAgICBcbiAgICAvLyBEZXJpdmUgbWludCBQREFzIGZyb20gbWFya2V0IGFkZHJlc3NcbiAgICBjb25zdCB5ZXNNaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oWUVTX01JTlRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuICAgIGNvbnN0IG5vTWludCA9IFB1YmxpY0tleS5maW5kUHJvZ3JhbUFkZHJlc3NTeW5jKFxuICAgICAgW0J1ZmZlci5mcm9tKE5PX01JTlRfU0VFRCksIG1hcmtldC50b0J1ZmZlcigpXSxcbiAgICAgIHRoaXMucHJvZ3JhbS5wcm9ncmFtSWRcbiAgICApWzBdO1xuXG4gICAgY29uc3QgdXNlckJldHRpbmdUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKGJldHRpbmdUb2tlbiwgdXNlcik7XG4gICAgY29uc3QgdGFyZ2V0TWludCA9IHdpbm5pbmdPdXRjb21lID09PSBcIlllc1wiID8geWVzTWludCA6IG5vTWludDtcbiAgICBjb25zdCB1c2VyT3V0Y29tZVRva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmModGFyZ2V0TWludCwgdXNlcik7XG4gICAgY29uc3Qgc2hhcmVzVG9DbGFpbUJuID0gbmV3IEJOKHBhcmFtcy5zaGFyZXNUb0NsYWltKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5jbGFpbVJld2FyZHMoe1xuICAgICAgICB0b2tlbkFtb3VudDogc2hhcmVzVG9DbGFpbUJuLFxuICAgICAgfSlcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQsXG4gICAgICAgIHVzZXJPdXRjb21lVG9rZW4sXG4gICAgICAgIHVzZXJCZXR0aW5nVG9rZW4sXG4gICAgICAgIHVzZXIsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byBjbGFpbSByZXdhcmRzXG4gICAqL1xuICBhc3luYyBidWlsZENsYWltUmV3YXJkc1R4KHBhcmFtczogQ2xhaW1SZXdhcmRzUGFyYW1zKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGl4ID0gYXdhaXQgdGhpcy5jbGFpbVJld2FyZHMocGFyYW1zKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZ1bmQgYmV0cyBpZiBtYXJrZXQgaXMgcmVmdW5kZWRcbiAgICogQHBhcmFtIHBhcmFtcy50b2tlbkFtb3VudCAtIEFtb3VudCBvZiBzaGFyZXMgdG8gcmVmdW5kLiAwIG9yIHVuZGVmaW5lZCBtZWFucyByZWZ1bmQgYWxsIHNoYXJlcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHBhcnRpYWxseSByZWZ1bmQgdGhlaXIgcG9zaXRpb24gYWNyb3NzIG11bHRpcGxlIHRyYW5zYWN0aW9ucy5cbiAgICovXG4gIGFzeW5jIHJlZnVuZChwYXJhbXM6IFJlZnVuZFBhcmFtcyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIGNvbnN0IHsgdXNlciwgbWFya2V0LCBiZXR0aW5nVG9rZW4sIG91dGNvbWUsIHRva2VuQW1vdW50IH0gPSBwYXJhbXM7XG4gICAgXG4gICAgY29uc3Qgb3V0Y29tZUVudW0gPSBvdXRjb21lID09PSBcIlllc1wiID8geyB5ZXM6IHt9IH0gOiB7IG5vOiB7fSB9O1xuICAgIFxuICAgIC8vIENvbnZlcnQgdG9rZW5BbW91bnQgdG8gQk4gKDAgbWVhbnMgcmVmdW5kIGFsbClcbiAgICBjb25zdCB0b2tlbkFtb3VudEJuID0gbmV3IEJOKHRva2VuQW1vdW50ID8/IDApO1xuICAgIFxuICAgIC8vIERlcml2ZSBtaW50IFBEQXMgZnJvbSBtYXJrZXQgYWRkcmVzc1xuICAgIGNvbnN0IHllc01pbnQgPSBQdWJsaWNLZXkuZmluZFByb2dyYW1BZGRyZXNzU3luYyhcbiAgICAgIFtCdWZmZXIuZnJvbShZRVNfTUlOVF9TRUVEKSwgbWFya2V0LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgIClbMF07XG4gICAgY29uc3Qgbm9NaW50ID0gUHVibGljS2V5LmZpbmRQcm9ncmFtQWRkcmVzc1N5bmMoXG4gICAgICBbQnVmZmVyLmZyb20oTk9fTUlOVF9TRUVEKSwgbWFya2V0LnRvQnVmZmVyKCldLFxuICAgICAgdGhpcy5wcm9ncmFtLnByb2dyYW1JZFxuICAgIClbMF07XG5cbiAgICBjb25zdCB1c2VyQmV0dGluZ1Rva2VuID0gZ2V0QXNzb2NpYXRlZFRva2VuQWRkcmVzc1N5bmMoYmV0dGluZ1Rva2VuLCB1c2VyKTtcbiAgICBjb25zdCB0YXJnZXRNaW50ID0gb3V0Y29tZSA9PT0gXCJZZXNcIiA/IHllc01pbnQgOiBub01pbnQ7XG4gICAgY29uc3QgdXNlck91dGNvbWVUb2tlbiA9IGdldEFzc29jaWF0ZWRUb2tlbkFkZHJlc3NTeW5jKHRhcmdldE1pbnQsIHVzZXIpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAucmVmdW5kKHtcbiAgICAgICAgb3V0Y29tZTogb3V0Y29tZUVudW0sXG4gICAgICAgIHRva2VuQW1vdW50OiB0b2tlbkFtb3VudEJuLFxuICAgICAgfSlcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQsXG4gICAgICAgIHVzZXJPdXRjb21lVG9rZW4sXG4gICAgICAgIHVzZXJCZXR0aW5nVG9rZW4sXG4gICAgICAgIHVzZXIsXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byByZWZ1bmRcbiAgICovXG4gIGFzeW5jIGJ1aWxkUmVmdW5kVHgocGFyYW1zOiBSZWZ1bmRQYXJhbXMpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgaXggPSBhd2FpdCB0aGlzLnJlZnVuZChwYXJhbXMpO1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oKS5hZGQoaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBtYXJrZXQgKEFkbWluIG9ubHkpXG4gICAqL1xuICBhc3luYyByZXNvbHZlTWFya2V0QnlJRChcbiAgICBhZG1pbjogUHVibGljS2V5LFxuICAgIG1hcmtldElkOiBudW1iZXIgfCBCTixcbiAgICB3aW5uaW5nT3V0Y29tZTogXCJZZXNcIiB8IFwiTm9cIiB8IG51bGxcbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgbWFya2V0SWRCbiA9IG5ldyBCTihtYXJrZXRJZCk7XG4gICAgY29uc3QgbWFya2V0UGRhID0gZ2V0TWFya2V0UGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQsIGFkbWluLCBtYXJrZXRJZEJuKTtcblxuICAgIGxldCBvdXRjb21lRW51bTogYW55ID0gbnVsbDtcbiAgICBpZiAod2lubmluZ091dGNvbWUgPT09IFwiWWVzXCIpIHtcbiAgICAgIG91dGNvbWVFbnVtID0geyB5ZXM6IHt9IH07XG4gICAgfSBlbHNlIGlmICh3aW5uaW5nT3V0Y29tZSA9PT0gXCJOb1wiKSB7XG4gICAgICBvdXRjb21lRW51bSA9IHsgbm86IHt9IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvZ3JhbS5tZXRob2RzXG4gICAgICAucmVzb2x2ZU1hcmtldChvdXRjb21lRW51bSlcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQ6IG1hcmtldFBkYSxcbiAgICAgICAgYWRtaW4sXG4gICAgICB9KVxuICAgICAgLmluc3RydWN0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBjb21wbGV0ZSB0cmFuc2FjdGlvbiB0byByZXNvbHZlIGEgbWFya2V0XG4gICAqL1xuICBhc3luYyBidWlsZFJlc29sdmVNYXJrZXRUeEJ5SUQoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXRJZDogbnVtYmVyIHwgQk4sXG4gICAgd2lubmluZ091dGNvbWU6IFwiWWVzXCIgfCBcIk5vXCIgfCBudWxsXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMucmVzb2x2ZU1hcmtldEJ5SUQoYWRtaW4sIG1hcmtldElkLCB3aW5uaW5nT3V0Y29tZSk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBhIG1hcmtldCAoQWRtaW4gb25seSlcbiAgICovXG4gIGFzeW5jIHJlc29sdmVNYXJrZXQoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXQ6IFB1YmxpY0tleSxcbiAgICB3aW5uaW5nT3V0Y29tZTogXCJZZXNcIiB8IFwiTm9cIiB8IG51bGxcbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgbGV0IG91dGNvbWVFbnVtOiBhbnkgPSBudWxsO1xuICAgIGlmICh3aW5uaW5nT3V0Y29tZSA9PT0gXCJZZXNcIikge1xuICAgICAgb3V0Y29tZUVudW0gPSB7IHllczoge30gfTtcbiAgICB9IGVsc2UgaWYgKHdpbm5pbmdPdXRjb21lID09PSBcIk5vXCIpIHtcbiAgICAgIG91dGNvbWVFbnVtID0geyBubzoge30gfTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLm1ldGhvZHNcbiAgICAgIC5yZXNvbHZlTWFya2V0KG91dGNvbWVFbnVtKVxuICAgICAgLmFjY291bnRzUGFydGlhbCh7XG4gICAgICAgIG1hcmtldDogbWFya2V0LFxuICAgICAgICBhZG1pbixcbiAgICAgIH0pXG4gICAgICAuaW5zdHJ1Y3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIGNvbXBsZXRlIHRyYW5zYWN0aW9uIHRvIHJlc29sdmUgYSBtYXJrZXRcbiAgICovXG4gIGFzeW5jIGJ1aWxkUmVzb2x2ZU1hcmtldFR4KFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgbWFya2V0OiBQdWJsaWNLZXksXG4gICAgd2lubmluZ091dGNvbWU6IFwiWWVzXCIgfCBcIk5vXCIgfCBudWxsXG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMucmVzb2x2ZU1hcmtldChhZG1pbiwgbWFya2V0LCB3aW5uaW5nT3V0Y29tZSk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYSBtYXJrZXQgKEFkbWluIG9ubHkpXG4gICAqL1xuICBhc3luYyBjbG9zZU1hcmtldChcbiAgICBhZG1pbjogUHVibGljS2V5LFxuICAgIG1hcmtldDogUHVibGljS2V5XG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb25JbnN0cnVjdGlvbj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLmNsb3NlTWFya2V0KClcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQ6IG1hcmtldCxcbiAgICAgICAgYWRtaW46IGFkbWluLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gY2xvc2UgYSBtYXJrZXRcbiAgICovXG4gIGFzeW5jIGJ1aWxkQ2xvc2VNYXJrZXRUeChcbiAgICBhZG1pbjogUHVibGljS2V5LFxuICAgIG1hcmtldDogUHVibGljS2V5XG4gICk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCBpeCA9IGF3YWl0IHRoaXMuY2xvc2VNYXJrZXQoYWRtaW4sIG1hcmtldCk7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbigpLmFkZChpeCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYSBtYXJrZXQgKEFkbWluIG9ubHkpXG4gICAqL1xuICBhc3luYyBjbG9zZU1hcmtldEJ5SUQoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXRJZDogbnVtYmVyIHwgQk5cbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluc3RydWN0aW9uPiB7XG4gICAgY29uc3QgbWFya2V0SWRCbiA9IG5ldyBCTihtYXJrZXRJZCk7XG4gICAgY29uc3QgbWFya2V0UGRhID0gZ2V0TWFya2V0UGRhKHRoaXMucHJvZ3JhbS5wcm9ncmFtSWQsIGFkbWluLCBtYXJrZXRJZEJuKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0ubWV0aG9kc1xuICAgICAgLmNsb3NlTWFya2V0KClcbiAgICAgIC5hY2NvdW50c1BhcnRpYWwoe1xuICAgICAgICBtYXJrZXQ6IG1hcmtldFBkYSxcbiAgICAgICAgYWRtaW46IGFkbWluLFxuICAgICAgfSlcbiAgICAgIC5pbnN0cnVjdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgY29tcGxldGUgdHJhbnNhY3Rpb24gdG8gY2xvc2UgYSBtYXJrZXRcbiAgICovXG4gIGFzeW5jIGJ1aWxkQ2xvc2VNYXJrZXRUeEJ5SUQoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICBtYXJrZXRJZDogbnVtYmVyIHwgQk5cbiAgKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGl4ID0gYXdhaXQgdGhpcy5jbG9zZU1hcmtldEJ5SUQoYWRtaW4sIG1hcmtldElkKTtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKCkuYWRkKGl4KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEZldGNoIGdsb2JhbCBjb25maWcgYWNjb3VudCBkYXRhXG4gICAqL1xuICBhc3luYyBnZXRHbG9iYWxDb25maWdBY2NvdW50KCkge1xuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IGdldEdsb2JhbENvbmZpZ1BkYSh0aGlzLnByb2dyYW0ucHJvZ3JhbUlkKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9ncmFtLmFjY291bnQuZ2xvYmFsQ29uZmlnLmZldGNoKGdsb2JhbENvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggbWFya2V0IGFjY291bnQgZGF0YVxuICAgKi9cbiAgYXN5bmMgZ2V0TWFya2V0QWNjb3VudChhZG1pbjogUHVibGljS2V5LCBtYXJrZXRJZDogbnVtYmVyIHwgQk4pIHtcbiAgICBjb25zdCBtYXJrZXRJZEJuID0gbmV3IEJOKG1hcmtldElkKTtcbiAgICBjb25zdCBtYXJrZXRQZGEgPSBnZXRNYXJrZXRQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCwgYWRtaW4sIG1hcmtldElkQm4pO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2dyYW0uYWNjb3VudC5tYXJrZXQuZmV0Y2gobWFya2V0UGRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB2YXVsdCBhY2NvdW50IGRhdGFcbiAgICovXG4gIGFzeW5jIGdldFZhdWx0QWNjb3VudChtYXJrZXRQZGE6IFB1YmxpY0tleSkge1xuICAgIGNvbnN0IHZhdWx0UGRhID0gZ2V0VmF1bHRQZGEodGhpcy5wcm9ncmFtLnByb2dyYW1JZCwgbWFya2V0UGRhKTtcbiAgICByZXR1cm4gYXdhaXQgZ2V0QWNjb3VudCh0aGlzLmNvbm5lY3Rpb24sIHZhdWx0UGRhKTtcbiAgfVxufVxuIl19
|
package/dist/types.d.ts
CHANGED
|
@@ -203,6 +203,106 @@ export type DramaPm = {
|
|
|
203
203
|
];
|
|
204
204
|
"args": [];
|
|
205
205
|
},
|
|
206
|
+
{
|
|
207
|
+
"name": "closeMarketAccount";
|
|
208
|
+
"discriminator": [
|
|
209
|
+
111,
|
|
210
|
+
139,
|
|
211
|
+
253,
|
|
212
|
+
188,
|
|
213
|
+
160,
|
|
214
|
+
15,
|
|
215
|
+
247,
|
|
216
|
+
156
|
|
217
|
+
];
|
|
218
|
+
"accounts": [
|
|
219
|
+
{
|
|
220
|
+
"name": "market";
|
|
221
|
+
"writable": true;
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "yesMint";
|
|
225
|
+
"pda": {
|
|
226
|
+
"seeds": [
|
|
227
|
+
{
|
|
228
|
+
"kind": "const";
|
|
229
|
+
"value": [
|
|
230
|
+
121,
|
|
231
|
+
101,
|
|
232
|
+
115,
|
|
233
|
+
95,
|
|
234
|
+
109,
|
|
235
|
+
105,
|
|
236
|
+
110,
|
|
237
|
+
116
|
|
238
|
+
];
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"kind": "account";
|
|
242
|
+
"path": "market";
|
|
243
|
+
}
|
|
244
|
+
];
|
|
245
|
+
};
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"name": "noMint";
|
|
249
|
+
"pda": {
|
|
250
|
+
"seeds": [
|
|
251
|
+
{
|
|
252
|
+
"kind": "const";
|
|
253
|
+
"value": [
|
|
254
|
+
110,
|
|
255
|
+
111,
|
|
256
|
+
95,
|
|
257
|
+
109,
|
|
258
|
+
105,
|
|
259
|
+
110,
|
|
260
|
+
116
|
|
261
|
+
];
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"kind": "account";
|
|
265
|
+
"path": "market";
|
|
266
|
+
}
|
|
267
|
+
];
|
|
268
|
+
};
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"name": "vault";
|
|
272
|
+
"pda": {
|
|
273
|
+
"seeds": [
|
|
274
|
+
{
|
|
275
|
+
"kind": "const";
|
|
276
|
+
"value": [
|
|
277
|
+
118,
|
|
278
|
+
97,
|
|
279
|
+
117,
|
|
280
|
+
108,
|
|
281
|
+
116
|
|
282
|
+
];
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"kind": "account";
|
|
286
|
+
"path": "market";
|
|
287
|
+
}
|
|
288
|
+
];
|
|
289
|
+
};
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "admin";
|
|
293
|
+
"writable": true;
|
|
294
|
+
"signer": true;
|
|
295
|
+
"relations": [
|
|
296
|
+
"market"
|
|
297
|
+
];
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"name": "tokenProgram";
|
|
301
|
+
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
|
|
302
|
+
}
|
|
303
|
+
];
|
|
304
|
+
"args": [];
|
|
305
|
+
},
|
|
206
306
|
{
|
|
207
307
|
"name": "createMarket";
|
|
208
308
|
"discriminator": [
|
|
@@ -518,6 +618,10 @@ export type DramaPm = {
|
|
|
518
618
|
},
|
|
519
619
|
{
|
|
520
620
|
"name": "refund";
|
|
621
|
+
"docs": [
|
|
622
|
+
"Refund betting tokens to user by burning their outcome tokens.",
|
|
623
|
+
"Supports partial refunds - users can specify token_amount to refund or use 0 to refund all."
|
|
624
|
+
];
|
|
521
625
|
"discriminator": [
|
|
522
626
|
2,
|
|
523
627
|
96,
|
|
@@ -623,10 +727,10 @@ export type DramaPm = {
|
|
|
623
727
|
];
|
|
624
728
|
"args": [
|
|
625
729
|
{
|
|
626
|
-
"name": "
|
|
730
|
+
"name": "params";
|
|
627
731
|
"type": {
|
|
628
732
|
"defined": {
|
|
629
|
-
"name": "
|
|
733
|
+
"name": "refundParams";
|
|
630
734
|
};
|
|
631
735
|
};
|
|
632
736
|
}
|
|
@@ -808,6 +912,19 @@ export type DramaPm = {
|
|
|
808
912
|
183
|
|
809
913
|
];
|
|
810
914
|
},
|
|
915
|
+
{
|
|
916
|
+
"name": "closeMarketAccountEvent";
|
|
917
|
+
"discriminator": [
|
|
918
|
+
218,
|
|
919
|
+
191,
|
|
920
|
+
38,
|
|
921
|
+
78,
|
|
922
|
+
11,
|
|
923
|
+
255,
|
|
924
|
+
119,
|
|
925
|
+
51
|
|
926
|
+
];
|
|
927
|
+
},
|
|
811
928
|
{
|
|
812
929
|
"name": "closeMarketEvent";
|
|
813
930
|
"discriminator": [
|
|
@@ -1019,6 +1136,16 @@ export type DramaPm = {
|
|
|
1019
1136
|
"code": 6028;
|
|
1020
1137
|
"name": "invalidFeeRecipient";
|
|
1021
1138
|
"msg": "Invalid fee recipient";
|
|
1139
|
+
},
|
|
1140
|
+
{
|
|
1141
|
+
"code": 6029;
|
|
1142
|
+
"name": "rewardsNotFullyClaimed";
|
|
1143
|
+
"msg": "Rewards not fully claimed - cannot close market";
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
"code": 6030;
|
|
1147
|
+
"name": "vaultNotEmpty";
|
|
1148
|
+
"msg": "Vault not empty - cannot close market";
|
|
1022
1149
|
}
|
|
1023
1150
|
];
|
|
1024
1151
|
"types": [
|
|
@@ -1070,6 +1197,30 @@ export type DramaPm = {
|
|
|
1070
1197
|
];
|
|
1071
1198
|
};
|
|
1072
1199
|
},
|
|
1200
|
+
{
|
|
1201
|
+
"name": "closeMarketAccountEvent";
|
|
1202
|
+
"type": {
|
|
1203
|
+
"kind": "struct";
|
|
1204
|
+
"fields": [
|
|
1205
|
+
{
|
|
1206
|
+
"name": "market";
|
|
1207
|
+
"type": "pubkey";
|
|
1208
|
+
},
|
|
1209
|
+
{
|
|
1210
|
+
"name": "admin";
|
|
1211
|
+
"type": "pubkey";
|
|
1212
|
+
},
|
|
1213
|
+
{
|
|
1214
|
+
"name": "marketId";
|
|
1215
|
+
"type": "u64";
|
|
1216
|
+
},
|
|
1217
|
+
{
|
|
1218
|
+
"name": "timestamp";
|
|
1219
|
+
"type": "i64";
|
|
1220
|
+
}
|
|
1221
|
+
];
|
|
1222
|
+
};
|
|
1223
|
+
},
|
|
1073
1224
|
{
|
|
1074
1225
|
"name": "closeMarketEvent";
|
|
1075
1226
|
"type": {
|
|
@@ -1392,6 +1543,26 @@ export type DramaPm = {
|
|
|
1392
1543
|
];
|
|
1393
1544
|
};
|
|
1394
1545
|
},
|
|
1546
|
+
{
|
|
1547
|
+
"name": "refundParams";
|
|
1548
|
+
"type": {
|
|
1549
|
+
"kind": "struct";
|
|
1550
|
+
"fields": [
|
|
1551
|
+
{
|
|
1552
|
+
"name": "outcome";
|
|
1553
|
+
"type": {
|
|
1554
|
+
"defined": {
|
|
1555
|
+
"name": "outcome";
|
|
1556
|
+
};
|
|
1557
|
+
};
|
|
1558
|
+
},
|
|
1559
|
+
{
|
|
1560
|
+
"name": "tokenAmount";
|
|
1561
|
+
"type": "u64";
|
|
1562
|
+
}
|
|
1563
|
+
];
|
|
1564
|
+
};
|
|
1565
|
+
},
|
|
1395
1566
|
{
|
|
1396
1567
|
"name": "resolveMarketEvent";
|
|
1397
1568
|
"type": {
|