@drift-labs/sdk 0.1.29-master.0 → 0.1.30-master.0
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/lib/accounts/bulkAccountLoader.d.ts +1 -0
- package/lib/accounts/bulkAccountLoader.js +33 -13
- package/lib/clearingHouse.d.ts +4 -1
- package/lib/clearingHouse.js +49 -0
- package/lib/constants/markets.js +11 -0
- package/lib/idl/clearing_house.json +63 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/math/amm.d.ts +0 -20
- package/lib/math/amm.js +1 -151
- package/lib/math/repeg.d.ts +32 -0
- package/lib/math/repeg.js +178 -0
- package/lib/oracles/pythClient.js +1 -1
- package/lib/orderParams.d.ts +1 -1
- package/lib/orderParams.js +2 -2
- package/lib/tx/retryTxSender.d.ts +5 -2
- package/lib/tx/retryTxSender.js +14 -1
- package/package.json +1 -1
- package/src/accounts/bulkAccountLoader.ts +40 -15
- package/src/clearingHouse.ts +71 -0
- package/src/constants/markets.ts +11 -0
- package/src/idl/clearing_house.json +63 -2
- package/src/index.ts +1 -0
- package/src/math/amm.ts +1 -212
- package/src/math/repeg.ts +253 -0
- package/src/oracles/pythClient.ts +1 -1
- package/src/orderParams.ts +3 -2
- package/src/tx/retryTxSender.ts +19 -1
- package/src/accounts/bulkUserSubscription.js +0 -56
- package/src/accounts/bulkUserSubscription.js.map +0 -1
- package/src/accounts/pollingUserAccountSubscriber.js +0 -139
- package/src/accounts/pollingUserAccountSubscriber.js.map +0 -1
- package/src/accounts/types.js +0 -11
- package/src/accounts/types.js.map +0 -1
- package/src/accounts/webSocketUserAccountSubscriber.js +0 -78
- package/src/accounts/webSocketUserAccountSubscriber.js.map +0 -1
- package/src/addresses.js +0 -59
- package/src/addresses.js.map +0 -1
- package/src/admin.js +0 -443
- package/src/admin.js.map +0 -1
- package/src/clearingHouseUser.js +0 -581
- package/src/clearingHouseUser.js.map +0 -1
- package/src/config.js +0 -37
- package/src/config.js.map +0 -1
- package/src/factory/clearingHouse.js +0 -65
- package/src/factory/clearingHouse.js.map +0 -1
- package/src/factory/clearingHouseUser.js +0 -35
- package/src/factory/clearingHouseUser.js.map +0 -1
- package/src/factory/oracleClient.js +0 -17
- package/src/factory/oracleClient.js.map +0 -1
- package/src/index.js +0 -56
- package/src/index.js.map +0 -1
- package/src/math/amm.js +0 -285
- package/src/math/amm.js.map +0 -1
- package/src/mockUSDCFaucet.js +0 -143
- package/src/mockUSDCFaucet.js.map +0 -1
- package/src/oracles/pythClient.js +0 -39
- package/src/oracles/pythClient.js.map +0 -1
- package/src/orderParams.js +0 -109
- package/src/orderParams.js.map +0 -1
- package/src/orders.js +0 -172
- package/src/orders.js.map +0 -1
- package/src/tx/retryTxSender.js +0 -137
- package/src/tx/retryTxSender.js.map +0 -1
- package/src/types.js +0 -61
- package/src/types.js.map +0 -1
- package/src/wallet.js +0 -23
- package/src/wallet.js.map +0 -1
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PollingUserAccountSubscriber = void 0;
|
|
4
|
-
const types_1 = require("./types");
|
|
5
|
-
const events_1 = require("events");
|
|
6
|
-
const addresses_1 = require("../addresses");
|
|
7
|
-
const utils_1 = require("./utils");
|
|
8
|
-
class PollingUserAccountSubscriber {
|
|
9
|
-
constructor(program, authority, accountLoader) {
|
|
10
|
-
this.accountsToPoll = new Map();
|
|
11
|
-
this.type = 'polling';
|
|
12
|
-
this.isSubscribed = false;
|
|
13
|
-
this.program = program;
|
|
14
|
-
this.authority = authority;
|
|
15
|
-
this.accountLoader = accountLoader;
|
|
16
|
-
this.eventEmitter = new events_1.EventEmitter();
|
|
17
|
-
}
|
|
18
|
-
async subscribe() {
|
|
19
|
-
if (this.isSubscribed) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
await this.addToAccountLoader();
|
|
23
|
-
await this.fetchIfUnloaded();
|
|
24
|
-
this.eventEmitter.emit('update');
|
|
25
|
-
this.isSubscribed = true;
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
async addToAccountLoader(userPublicKeys) {
|
|
29
|
-
if (this.accountsToPoll.size > 0) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (!userPublicKeys) {
|
|
33
|
-
const userPublicKey = await (0, addresses_1.getUserAccountPublicKey)(this.program.programId, this.authority);
|
|
34
|
-
const userAccount = (await this.program.account.user.fetch(userPublicKey));
|
|
35
|
-
this.accountsToPoll.set(userPublicKey.toString(), {
|
|
36
|
-
key: 'user',
|
|
37
|
-
publicKey: userPublicKey,
|
|
38
|
-
eventType: 'userAccountData',
|
|
39
|
-
});
|
|
40
|
-
this.accountsToPoll.set(userAccount.positions.toString(), {
|
|
41
|
-
key: 'userPositions',
|
|
42
|
-
publicKey: userAccount.positions,
|
|
43
|
-
eventType: 'userPositionsData',
|
|
44
|
-
});
|
|
45
|
-
const userOrdersPublicKey = await (0, addresses_1.getUserOrdersAccountPublicKey)(this.program.programId, userPublicKey);
|
|
46
|
-
this.accountsToPoll.set(userOrdersPublicKey.toString(), {
|
|
47
|
-
key: 'userOrders',
|
|
48
|
-
publicKey: userOrdersPublicKey,
|
|
49
|
-
eventType: 'userOrdersData',
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
this.accountsToPoll.set(userPublicKeys.user.toString(), {
|
|
54
|
-
key: 'user',
|
|
55
|
-
publicKey: userPublicKeys.user,
|
|
56
|
-
eventType: 'userAccountData',
|
|
57
|
-
});
|
|
58
|
-
this.accountsToPoll.set(userPublicKeys.userPositions.toString(), {
|
|
59
|
-
key: 'userPositions',
|
|
60
|
-
publicKey: userPublicKeys.userPositions,
|
|
61
|
-
eventType: 'userPositionsData',
|
|
62
|
-
});
|
|
63
|
-
if (userPublicKeys.userOrders) {
|
|
64
|
-
this.accountsToPoll.set(userPublicKeys.userOrders.toString(), {
|
|
65
|
-
key: 'userOrders',
|
|
66
|
-
publicKey: userPublicKeys.userOrders,
|
|
67
|
-
eventType: 'userOrdersData',
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
for (const [_, accountToPoll] of this.accountsToPoll) {
|
|
72
|
-
accountToPoll.callbackId = this.accountLoader.addAccount(accountToPoll.publicKey, (buffer) => {
|
|
73
|
-
if (!buffer) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const account = this.program.account[accountToPoll.key].coder.accounts.decode((0, utils_1.capitalize)(accountToPoll.key), buffer);
|
|
77
|
-
this[accountToPoll.key] = account;
|
|
78
|
-
// @ts-ignore
|
|
79
|
-
this.eventEmitter.emit(accountToPoll.eventType, account);
|
|
80
|
-
this.eventEmitter.emit('update');
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
this.errorCallbackId = this.accountLoader.addErrorCallbacks((error) => {
|
|
84
|
-
this.eventEmitter.emit('error', error);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
async fetchIfUnloaded() {
|
|
88
|
-
let shouldFetch = false;
|
|
89
|
-
for (const [_, accountToPoll] of this.accountsToPoll) {
|
|
90
|
-
if (this[accountToPoll.key] === undefined) {
|
|
91
|
-
shouldFetch = true;
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
if (shouldFetch) {
|
|
96
|
-
await this.fetch();
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
async fetch() {
|
|
100
|
-
await this.accountLoader.load();
|
|
101
|
-
for (const [_, accountToPoll] of this.accountsToPoll) {
|
|
102
|
-
const buffer = this.accountLoader.getAccountData(accountToPoll.publicKey);
|
|
103
|
-
if (buffer) {
|
|
104
|
-
this[accountToPoll.key] = this.program.account[accountToPoll.key].coder.accounts.decode((0, utils_1.capitalize)(accountToPoll.key), buffer);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
async unsubscribe() {
|
|
109
|
-
if (!this.isSubscribed) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
for (const [_, accountToPoll] of this.accountsToPoll) {
|
|
113
|
-
this.accountLoader.removeAccount(accountToPoll.publicKey, accountToPoll.callbackId);
|
|
114
|
-
}
|
|
115
|
-
this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
|
|
116
|
-
this.errorCallbackId = undefined;
|
|
117
|
-
this.accountsToPoll.clear();
|
|
118
|
-
this.isSubscribed = false;
|
|
119
|
-
}
|
|
120
|
-
assertIsSubscribed() {
|
|
121
|
-
if (!this.isSubscribed) {
|
|
122
|
-
throw new types_1.NotSubscribedError('You must call `subscribe` before using this function');
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
getUserAccount() {
|
|
126
|
-
this.assertIsSubscribed();
|
|
127
|
-
return this.user;
|
|
128
|
-
}
|
|
129
|
-
getUserPositionsAccount() {
|
|
130
|
-
this.assertIsSubscribed();
|
|
131
|
-
return this.userPositions;
|
|
132
|
-
}
|
|
133
|
-
getUserOrdersAccount() {
|
|
134
|
-
this.assertIsSubscribed();
|
|
135
|
-
return this.userOrders;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
exports.PollingUserAccountSubscriber = PollingUserAccountSubscriber;
|
|
139
|
-
//# sourceMappingURL=pollingUserAccountSubscriber.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pollingUserAccountSubscriber.js","sourceRoot":"","sources":["pollingUserAccountSubscriber.ts"],"names":[],"mappings":"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"}
|
package/src/accounts/types.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotSubscribedError = void 0;
|
|
4
|
-
class NotSubscribedError extends Error {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.name = 'NotSubscribedError';
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.NotSubscribedError = NotSubscribedError;
|
|
11
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;AAgCA,MAAa,kBAAmB,SAAQ,KAAK;IAA7C;;QACC,SAAI,GAAG,oBAAoB,CAAC;IAC7B,CAAC;CAAA;AAFD,gDAEC"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebSocketUserAccountSubscriber = void 0;
|
|
4
|
-
const types_1 = require("./types");
|
|
5
|
-
const events_1 = require("events");
|
|
6
|
-
const addresses_1 = require("../addresses");
|
|
7
|
-
const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
|
|
8
|
-
class WebSocketUserAccountSubscriber {
|
|
9
|
-
constructor(program, authority) {
|
|
10
|
-
this.type = 'websocket';
|
|
11
|
-
this.isSubscribed = false;
|
|
12
|
-
this.program = program;
|
|
13
|
-
this.authority = authority;
|
|
14
|
-
this.eventEmitter = new events_1.EventEmitter();
|
|
15
|
-
}
|
|
16
|
-
async subscribe() {
|
|
17
|
-
if (this.isSubscribed) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
const userPublicKey = await (0, addresses_1.getUserAccountPublicKey)(this.program.programId, this.authority);
|
|
21
|
-
this.userDataAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('user', this.program, userPublicKey);
|
|
22
|
-
await this.userDataAccountSubscriber.subscribe((data) => {
|
|
23
|
-
this.eventEmitter.emit('userAccountData', data);
|
|
24
|
-
this.eventEmitter.emit('update');
|
|
25
|
-
});
|
|
26
|
-
const userAccountData = this.userDataAccountSubscriber.data;
|
|
27
|
-
this.userPositionsAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('userPositions', this.program, userAccountData.positions);
|
|
28
|
-
await this.userPositionsAccountSubscriber.subscribe((data) => {
|
|
29
|
-
this.eventEmitter.emit('userPositionsData', data);
|
|
30
|
-
this.eventEmitter.emit('update');
|
|
31
|
-
});
|
|
32
|
-
const userOrdersPublicKey = await (0, addresses_1.getUserOrdersAccountPublicKey)(this.program.programId, userPublicKey);
|
|
33
|
-
this.userOrdersAccountSubscriber = new webSocketAccountSubscriber_1.WebSocketAccountSubscriber('userOrders', this.program, userOrdersPublicKey);
|
|
34
|
-
await this.userOrdersAccountSubscriber.subscribe((data) => {
|
|
35
|
-
this.eventEmitter.emit('userOrdersData', data);
|
|
36
|
-
this.eventEmitter.emit('update');
|
|
37
|
-
});
|
|
38
|
-
this.eventEmitter.emit('update');
|
|
39
|
-
this.isSubscribed = true;
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
async fetch() {
|
|
43
|
-
await Promise.all([
|
|
44
|
-
this.userDataAccountSubscriber.fetch(),
|
|
45
|
-
this.userPositionsAccountSubscriber.fetch(),
|
|
46
|
-
this.userOrdersAccountSubscriber.fetch(),
|
|
47
|
-
]);
|
|
48
|
-
}
|
|
49
|
-
async unsubscribe() {
|
|
50
|
-
if (!this.isSubscribed) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
await Promise.all([
|
|
54
|
-
this.userDataAccountSubscriber.unsubscribe(),
|
|
55
|
-
this.userPositionsAccountSubscriber.unsubscribe(),
|
|
56
|
-
await this.userOrdersAccountSubscriber.unsubscribe(),
|
|
57
|
-
]);
|
|
58
|
-
this.isSubscribed = false;
|
|
59
|
-
}
|
|
60
|
-
assertIsSubscribed() {
|
|
61
|
-
if (!this.isSubscribed) {
|
|
62
|
-
throw new types_1.NotSubscribedError('You must call `subscribe` before using this function');
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
getUserAccount() {
|
|
66
|
-
this.assertIsSubscribed();
|
|
67
|
-
return this.userDataAccountSubscriber.data;
|
|
68
|
-
}
|
|
69
|
-
getUserPositionsAccount() {
|
|
70
|
-
this.assertIsSubscribed();
|
|
71
|
-
return this.userPositionsAccountSubscriber.data;
|
|
72
|
-
}
|
|
73
|
-
getUserOrdersAccount() {
|
|
74
|
-
return this.userOrdersAccountSubscriber.data;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
exports.WebSocketUserAccountSubscriber = WebSocketUserAccountSubscriber;
|
|
78
|
-
//# sourceMappingURL=webSocketUserAccountSubscriber.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webSocketUserAccountSubscriber.js","sourceRoot":"","sources":["webSocketUserAccountSubscriber.ts"],"names":[],"mappings":"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"}
|
package/src/addresses.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.getUserOrdersAccountPublicKey = exports.getUserOrdersAccountPublicKeyAndNonce = exports.getUserAccountPublicKey = exports.getUserAccountPublicKeyAndNonce = exports.getClearingHouseStateAccountPublicKey = exports.getOrderStateAccountPublicKeyAndNonce = exports.getOrderStateAccountPublicKey = exports.getClearingHouseStateAccountPublicKeyAndNonce = void 0;
|
|
23
|
-
const anchor = __importStar(require("@project-serum/anchor"));
|
|
24
|
-
async function getClearingHouseStateAccountPublicKeyAndNonce(programId) {
|
|
25
|
-
return anchor.web3.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('clearing_house'))], programId);
|
|
26
|
-
}
|
|
27
|
-
exports.getClearingHouseStateAccountPublicKeyAndNonce = getClearingHouseStateAccountPublicKeyAndNonce;
|
|
28
|
-
async function getOrderStateAccountPublicKey(programId) {
|
|
29
|
-
return (await getOrderStateAccountPublicKeyAndNonce(programId))[0];
|
|
30
|
-
}
|
|
31
|
-
exports.getOrderStateAccountPublicKey = getOrderStateAccountPublicKey;
|
|
32
|
-
async function getOrderStateAccountPublicKeyAndNonce(programId) {
|
|
33
|
-
return anchor.web3.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('order_state'))], programId);
|
|
34
|
-
}
|
|
35
|
-
exports.getOrderStateAccountPublicKeyAndNonce = getOrderStateAccountPublicKeyAndNonce;
|
|
36
|
-
async function getClearingHouseStateAccountPublicKey(programId) {
|
|
37
|
-
return (await getClearingHouseStateAccountPublicKeyAndNonce(programId))[0];
|
|
38
|
-
}
|
|
39
|
-
exports.getClearingHouseStateAccountPublicKey = getClearingHouseStateAccountPublicKey;
|
|
40
|
-
async function getUserAccountPublicKeyAndNonce(programId, authority) {
|
|
41
|
-
return anchor.web3.PublicKey.findProgramAddress([Buffer.from(anchor.utils.bytes.utf8.encode('user')), authority.toBuffer()], programId);
|
|
42
|
-
}
|
|
43
|
-
exports.getUserAccountPublicKeyAndNonce = getUserAccountPublicKeyAndNonce;
|
|
44
|
-
async function getUserAccountPublicKey(programId, authority) {
|
|
45
|
-
return (await getUserAccountPublicKeyAndNonce(programId, authority))[0];
|
|
46
|
-
}
|
|
47
|
-
exports.getUserAccountPublicKey = getUserAccountPublicKey;
|
|
48
|
-
async function getUserOrdersAccountPublicKeyAndNonce(programId, userAccount) {
|
|
49
|
-
return anchor.web3.PublicKey.findProgramAddress([
|
|
50
|
-
Buffer.from(anchor.utils.bytes.utf8.encode('user_orders')),
|
|
51
|
-
userAccount.toBuffer(),
|
|
52
|
-
], programId);
|
|
53
|
-
}
|
|
54
|
-
exports.getUserOrdersAccountPublicKeyAndNonce = getUserOrdersAccountPublicKeyAndNonce;
|
|
55
|
-
async function getUserOrdersAccountPublicKey(programId, userAccount) {
|
|
56
|
-
return (await getUserOrdersAccountPublicKeyAndNonce(programId, userAccount))[0];
|
|
57
|
-
}
|
|
58
|
-
exports.getUserOrdersAccountPublicKey = getUserOrdersAccountPublicKey;
|
|
59
|
-
//# sourceMappingURL=addresses.js.map
|
package/src/addresses.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["addresses.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,8DAAgD;AAEzC,KAAK,UAAU,6CAA6C,CAClE,SAAoB;IAEpB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAC9C,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC/D,SAAS,CACT,CAAC;AACH,CAAC;AAPD,sGAOC;AAEM,KAAK,UAAU,6BAA6B,CAClD,SAAoB;IAEpB,OAAO,CAAC,MAAM,qCAAqC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAJD,sEAIC;AAEM,KAAK,UAAU,qCAAqC,CAC1D,SAAoB;IAEpB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAC9C,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAC5D,SAAS,CACT,CAAC;AACH,CAAC;AAPD,sFAOC;AAEM,KAAK,UAAU,qCAAqC,CAC1D,SAAoB;IAEpB,OAAO,CAAC,MAAM,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAJD,sFAIC;AAEM,KAAK,UAAU,+BAA+B,CACpD,SAAoB,EACpB,SAAoB;IAEpB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAC9C,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,EAC3E,SAAS,CACT,CAAC;AACH,CAAC;AARD,0EAQC;AAEM,KAAK,UAAU,uBAAuB,CAC5C,SAAoB,EACpB,SAAoB;IAEpB,OAAO,CAAC,MAAM,+BAA+B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AALD,0DAKC;AAEM,KAAK,UAAU,qCAAqC,CAC1D,SAAoB,EACpB,WAAsB;IAEtB,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAC9C;QACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1D,WAAW,CAAC,QAAQ,EAAE;KACtB,EACD,SAAS,CACT,CAAC;AACH,CAAC;AAXD,sFAWC;AAEM,KAAK,UAAU,6BAA6B,CAClD,SAAoB,EACpB,WAAsB;IAEtB,OAAO,CACN,MAAM,qCAAqC,CAAC,SAAS,EAAE,WAAW,CAAC,CACnE,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAPD,sEAOC"}
|