@dynamic-labs-wallet/core 0.0.53 → 0.0.55
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/index.cjs.js +10 -51
- package/index.esm.js +9 -45
- package/package.json +1 -1
- package/src/api/client.d.ts.map +1 -1
- package/src/constants.d.ts +2 -23
- package/src/constants.d.ts.map +1 -1
package/index.cjs.js
CHANGED
|
@@ -1,32 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var axios = require('axios');
|
|
4
|
+
var crypto = require('crypto');
|
|
4
5
|
|
|
5
6
|
const DYNAMIC_AUTH_PROD_BASE_API_URL = 'https://app.dynamicauth.com';
|
|
6
7
|
const DYNAMIC_AUTH_PREPROD_BASE_API_URL = 'https://app.dynamic-preprod.xyz';
|
|
7
|
-
const
|
|
8
|
-
var ENVIRONMENT_ENUM = /*#__PURE__*/ function(ENVIRONMENT_ENUM) {
|
|
9
|
-
ENVIRONMENT_ENUM["development"] = "development";
|
|
10
|
-
ENVIRONMENT_ENUM["preprod"] = "preprod";
|
|
11
|
-
ENVIRONMENT_ENUM["production"] = "production";
|
|
12
|
-
return ENVIRONMENT_ENUM;
|
|
13
|
-
}({});
|
|
8
|
+
const DynamicRequestIdHeader = 'x-dyn-request-id';
|
|
14
9
|
const DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL = 'https://app-dynamicauth-com-app-6e12fc400995.relay.evervault.app';
|
|
15
10
|
const DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL = 'https://app-dynamic-preprod-xyz-app-32d15525a875.relay.evervault.app';
|
|
16
|
-
const DYNAMIC_CLIENT_RELAY_DEV_BASE_API_URL = 'http://localhost:4200';
|
|
17
|
-
const DYNAMIC_AUTH_BASE_API_URL_MAP = {
|
|
18
|
-
["production"]: DYNAMIC_AUTH_PROD_BASE_API_URL,
|
|
19
|
-
["preprod"]: DYNAMIC_AUTH_PREPROD_BASE_API_URL,
|
|
20
|
-
["development"]: DYNAMIC_AUTH_DEV_BASE_API_URL
|
|
21
|
-
};
|
|
22
|
-
const DYNAMIC_CLIENT_RELAY_MAP = {
|
|
23
|
-
["production"]: DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL,
|
|
24
|
-
["preprod"]: DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL,
|
|
25
|
-
["development"]: DYNAMIC_CLIENT_RELAY_DEV_BASE_API_URL
|
|
26
|
-
};
|
|
27
11
|
const MPC_RELAY_PROD_API_URL = 'relay.dynamicauth.com';
|
|
28
12
|
const MPC_RELAY_PREPROD_API_URL = 'relay.dynamic-preprod.xyz';
|
|
29
|
-
const MPC_RELAY_DEV_API_URL = 'http://localhost:4200';
|
|
30
13
|
const SOLANA_RPC_URL = 'https://api.devnet.solana.com';
|
|
31
14
|
const chain = {
|
|
32
15
|
EVM: 'EVM',
|
|
@@ -55,11 +38,8 @@ var BackupLocation = /*#__PURE__*/ function(BackupLocation) {
|
|
|
55
38
|
BackupLocation["EXTERNAL"] = "external";
|
|
56
39
|
return BackupLocation;
|
|
57
40
|
}({});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
preprod: 'https://waas.dynamic-preprod.xyz',
|
|
61
|
-
production: 'https://waas.dynamicauth.com'
|
|
62
|
-
};
|
|
41
|
+
// TODO: replace with apiClient proxy and move this to apiClient when ready
|
|
42
|
+
const IFRAME_DOMAIN = 'http://localhost:8090';
|
|
63
43
|
const ChainEnumToVerifiedCredentialName = {
|
|
64
44
|
BTC: 'bip122',
|
|
65
45
|
EVM: 'eip155',
|
|
@@ -403,31 +383,15 @@ class BaseClient {
|
|
|
403
383
|
constructor({ environmentId, baseApiUrl, authToken, baseClientRelayApiUrl }){
|
|
404
384
|
const headers = {};
|
|
405
385
|
headers['Authorization'] = authToken ? `Bearer ${authToken}` : undefined;
|
|
386
|
+
headers[DynamicRequestIdHeader] = crypto.randomUUID();
|
|
406
387
|
this.environmentId = environmentId;
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
case undefined:
|
|
410
|
-
environment = ENVIRONMENT_ENUM.production;
|
|
411
|
-
break;
|
|
412
|
-
case DYNAMIC_AUTH_PROD_BASE_API_URL:
|
|
413
|
-
environment = ENVIRONMENT_ENUM.production;
|
|
414
|
-
break;
|
|
415
|
-
case DYNAMIC_AUTH_PREPROD_BASE_API_URL:
|
|
416
|
-
environment = ENVIRONMENT_ENUM.preprod;
|
|
417
|
-
break;
|
|
418
|
-
case DYNAMIC_AUTH_DEV_BASE_API_URL:
|
|
419
|
-
environment = ENVIRONMENT_ENUM.development;
|
|
420
|
-
break;
|
|
421
|
-
default:
|
|
422
|
-
environment = ENVIRONMENT_ENUM.development;
|
|
423
|
-
break;
|
|
424
|
-
}
|
|
425
|
-
this.baseApiUrl = baseApiUrl != null ? baseApiUrl : DYNAMIC_AUTH_BASE_API_URL_MAP[environment];
|
|
388
|
+
const isProd = typeof baseApiUrl === 'undefined' || DYNAMIC_AUTH_PROD_BASE_API_URL === baseApiUrl;
|
|
389
|
+
this.baseApiUrl = isProd ? DYNAMIC_AUTH_PROD_BASE_API_URL : baseApiUrl || DYNAMIC_AUTH_PREPROD_BASE_API_URL;
|
|
426
390
|
this.apiClient = axios.create({
|
|
427
391
|
baseURL: this.baseApiUrl,
|
|
428
392
|
headers
|
|
429
393
|
});
|
|
430
|
-
this.clientRelayBaseApiUrl =
|
|
394
|
+
this.clientRelayBaseApiUrl = isProd ? DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL : baseClientRelayApiUrl || DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL;
|
|
431
395
|
this.clientRelayApiClient = axios.create({
|
|
432
396
|
baseURL: this.clientRelayBaseApiUrl,
|
|
433
397
|
headers
|
|
@@ -727,20 +691,15 @@ exports.BITCOIN_DERIVATION_PATHS = BITCOIN_DERIVATION_PATHS;
|
|
|
727
691
|
exports.BackupLocation = BackupLocation;
|
|
728
692
|
exports.ChainEnumToVerifiedCredentialName = ChainEnumToVerifiedCredentialName;
|
|
729
693
|
exports.CreateRoomPartiesOptions = CreateRoomPartiesOptions;
|
|
730
|
-
exports.DYNAMIC_AUTH_BASE_API_URL_MAP = DYNAMIC_AUTH_BASE_API_URL_MAP;
|
|
731
|
-
exports.DYNAMIC_AUTH_DEV_BASE_API_URL = DYNAMIC_AUTH_DEV_BASE_API_URL;
|
|
732
694
|
exports.DYNAMIC_AUTH_PREPROD_BASE_API_URL = DYNAMIC_AUTH_PREPROD_BASE_API_URL;
|
|
733
695
|
exports.DYNAMIC_AUTH_PROD_BASE_API_URL = DYNAMIC_AUTH_PROD_BASE_API_URL;
|
|
734
|
-
exports.DYNAMIC_CLIENT_RELAY_DEV_BASE_API_URL = DYNAMIC_CLIENT_RELAY_DEV_BASE_API_URL;
|
|
735
|
-
exports.DYNAMIC_CLIENT_RELAY_MAP = DYNAMIC_CLIENT_RELAY_MAP;
|
|
736
696
|
exports.DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL = DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL;
|
|
737
697
|
exports.DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL = DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL;
|
|
738
698
|
exports.DynamicApiClient = DynamicApiClient;
|
|
739
|
-
exports.
|
|
740
|
-
exports.
|
|
699
|
+
exports.DynamicRequestIdHeader = DynamicRequestIdHeader;
|
|
700
|
+
exports.IFRAME_DOMAIN = IFRAME_DOMAIN;
|
|
741
701
|
exports.MPC_CHAIN_CONFIG = MPC_CHAIN_CONFIG;
|
|
742
702
|
exports.MPC_CONFIG = MPC_CONFIG;
|
|
743
|
-
exports.MPC_RELAY_DEV_API_URL = MPC_RELAY_DEV_API_URL;
|
|
744
703
|
exports.MPC_RELAY_PREPROD_API_URL = MPC_RELAY_PREPROD_API_URL;
|
|
745
704
|
exports.MPC_RELAY_PROD_API_URL = MPC_RELAY_PROD_API_URL;
|
|
746
705
|
exports.SOLANA_RPC_URL = SOLANA_RPC_URL;
|
package/index.esm.js
CHANGED
|
@@ -1,30 +1,13 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
import { randomUUID } from 'crypto';
|
|
2
3
|
|
|
3
4
|
const DYNAMIC_AUTH_PROD_BASE_API_URL = 'https://app.dynamicauth.com';
|
|
4
5
|
const DYNAMIC_AUTH_PREPROD_BASE_API_URL = 'https://app.dynamic-preprod.xyz';
|
|
5
|
-
const
|
|
6
|
-
var ENVIRONMENT_ENUM = /*#__PURE__*/ function(ENVIRONMENT_ENUM) {
|
|
7
|
-
ENVIRONMENT_ENUM["development"] = "development";
|
|
8
|
-
ENVIRONMENT_ENUM["preprod"] = "preprod";
|
|
9
|
-
ENVIRONMENT_ENUM["production"] = "production";
|
|
10
|
-
return ENVIRONMENT_ENUM;
|
|
11
|
-
}({});
|
|
6
|
+
const DynamicRequestIdHeader = 'x-dyn-request-id';
|
|
12
7
|
const DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL = 'https://app-dynamicauth-com-app-6e12fc400995.relay.evervault.app';
|
|
13
8
|
const DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL = 'https://app-dynamic-preprod-xyz-app-32d15525a875.relay.evervault.app';
|
|
14
|
-
const DYNAMIC_CLIENT_RELAY_DEV_BASE_API_URL = 'http://localhost:4200';
|
|
15
|
-
const DYNAMIC_AUTH_BASE_API_URL_MAP = {
|
|
16
|
-
["production"]: DYNAMIC_AUTH_PROD_BASE_API_URL,
|
|
17
|
-
["preprod"]: DYNAMIC_AUTH_PREPROD_BASE_API_URL,
|
|
18
|
-
["development"]: DYNAMIC_AUTH_DEV_BASE_API_URL
|
|
19
|
-
};
|
|
20
|
-
const DYNAMIC_CLIENT_RELAY_MAP = {
|
|
21
|
-
["production"]: DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL,
|
|
22
|
-
["preprod"]: DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL,
|
|
23
|
-
["development"]: DYNAMIC_CLIENT_RELAY_DEV_BASE_API_URL
|
|
24
|
-
};
|
|
25
9
|
const MPC_RELAY_PROD_API_URL = 'relay.dynamicauth.com';
|
|
26
10
|
const MPC_RELAY_PREPROD_API_URL = 'relay.dynamic-preprod.xyz';
|
|
27
|
-
const MPC_RELAY_DEV_API_URL = 'http://localhost:4200';
|
|
28
11
|
const SOLANA_RPC_URL = 'https://api.devnet.solana.com';
|
|
29
12
|
const chain = {
|
|
30
13
|
EVM: 'EVM',
|
|
@@ -53,11 +36,8 @@ var BackupLocation = /*#__PURE__*/ function(BackupLocation) {
|
|
|
53
36
|
BackupLocation["EXTERNAL"] = "external";
|
|
54
37
|
return BackupLocation;
|
|
55
38
|
}({});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
preprod: 'https://waas.dynamic-preprod.xyz',
|
|
59
|
-
production: 'https://waas.dynamicauth.com'
|
|
60
|
-
};
|
|
39
|
+
// TODO: replace with apiClient proxy and move this to apiClient when ready
|
|
40
|
+
const IFRAME_DOMAIN = 'http://localhost:8090';
|
|
61
41
|
const ChainEnumToVerifiedCredentialName = {
|
|
62
42
|
BTC: 'bip122',
|
|
63
43
|
EVM: 'eip155',
|
|
@@ -401,31 +381,15 @@ class BaseClient {
|
|
|
401
381
|
constructor({ environmentId, baseApiUrl, authToken, baseClientRelayApiUrl }){
|
|
402
382
|
const headers = {};
|
|
403
383
|
headers['Authorization'] = authToken ? `Bearer ${authToken}` : undefined;
|
|
384
|
+
headers[DynamicRequestIdHeader] = randomUUID();
|
|
404
385
|
this.environmentId = environmentId;
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
case undefined:
|
|
408
|
-
environment = ENVIRONMENT_ENUM.production;
|
|
409
|
-
break;
|
|
410
|
-
case DYNAMIC_AUTH_PROD_BASE_API_URL:
|
|
411
|
-
environment = ENVIRONMENT_ENUM.production;
|
|
412
|
-
break;
|
|
413
|
-
case DYNAMIC_AUTH_PREPROD_BASE_API_URL:
|
|
414
|
-
environment = ENVIRONMENT_ENUM.preprod;
|
|
415
|
-
break;
|
|
416
|
-
case DYNAMIC_AUTH_DEV_BASE_API_URL:
|
|
417
|
-
environment = ENVIRONMENT_ENUM.development;
|
|
418
|
-
break;
|
|
419
|
-
default:
|
|
420
|
-
environment = ENVIRONMENT_ENUM.development;
|
|
421
|
-
break;
|
|
422
|
-
}
|
|
423
|
-
this.baseApiUrl = baseApiUrl != null ? baseApiUrl : DYNAMIC_AUTH_BASE_API_URL_MAP[environment];
|
|
386
|
+
const isProd = typeof baseApiUrl === 'undefined' || DYNAMIC_AUTH_PROD_BASE_API_URL === baseApiUrl;
|
|
387
|
+
this.baseApiUrl = isProd ? DYNAMIC_AUTH_PROD_BASE_API_URL : baseApiUrl || DYNAMIC_AUTH_PREPROD_BASE_API_URL;
|
|
424
388
|
this.apiClient = axios.create({
|
|
425
389
|
baseURL: this.baseApiUrl,
|
|
426
390
|
headers
|
|
427
391
|
});
|
|
428
|
-
this.clientRelayBaseApiUrl =
|
|
392
|
+
this.clientRelayBaseApiUrl = isProd ? DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL : baseClientRelayApiUrl || DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL;
|
|
429
393
|
this.clientRelayApiClient = axios.create({
|
|
430
394
|
baseURL: this.clientRelayBaseApiUrl,
|
|
431
395
|
headers
|
|
@@ -721,4 +685,4 @@ class DynamicApiClient extends BaseClient {
|
|
|
721
685
|
}
|
|
722
686
|
}
|
|
723
687
|
|
|
724
|
-
export { BITCOIN_DERIVATION_PATHS, BackupLocation, ChainEnumToVerifiedCredentialName, CreateRoomPartiesOptions,
|
|
688
|
+
export { BITCOIN_DERIVATION_PATHS, BackupLocation, ChainEnumToVerifiedCredentialName, CreateRoomPartiesOptions, DYNAMIC_AUTH_PREPROD_BASE_API_URL, DYNAMIC_AUTH_PROD_BASE_API_URL, DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL, DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL, DynamicApiClient, DynamicRequestIdHeader, IFRAME_DOMAIN, MPC_CHAIN_CONFIG, MPC_CONFIG, MPC_RELAY_PREPROD_API_URL, MPC_RELAY_PROD_API_URL, SOLANA_RPC_URL, SigningAlgorithm, SuccessEventType, ThresholdSignatureScheme, VerifiedCredentialNameToChainEnum, WalletOperation, chain, getClientThreshold, getDynamicServerThreshold, getMPCChainConfig, getReshareConfig, getServerWalletReshareConfig, getTSSConfig };
|
package/package.json
CHANGED
package/src/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAUlD,qBAAa,UAAU;IACd,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,aAAa,CAAC;gBAE/B,EACV,aAAa,EACb,UAAU,EACV,SAAS,EACT,qBAAqB,GACtB,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAUlD,qBAAa,UAAU;IACd,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,aAAa,CAAC;gBAE/B,EACV,aAAa,EACb,UAAU,EACV,SAAS,EACT,qBAAqB,GACtB,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC;CA2BF"}
|
package/src/constants.d.ts
CHANGED
|
@@ -1,27 +1,10 @@
|
|
|
1
1
|
export declare const DYNAMIC_AUTH_PROD_BASE_API_URL = "https://app.dynamicauth.com";
|
|
2
2
|
export declare const DYNAMIC_AUTH_PREPROD_BASE_API_URL = "https://app.dynamic-preprod.xyz";
|
|
3
|
-
export declare const
|
|
4
|
-
export declare enum ENVIRONMENT_ENUM {
|
|
5
|
-
development = "development",
|
|
6
|
-
preprod = "preprod",
|
|
7
|
-
production = "production"
|
|
8
|
-
}
|
|
3
|
+
export declare const DynamicRequestIdHeader = "x-dyn-request-id";
|
|
9
4
|
export declare const DYNAMIC_CLIENT_RELAY_PROD_BASE_API_URL = "https://app-dynamicauth-com-app-6e12fc400995.relay.evervault.app";
|
|
10
5
|
export declare const DYNAMIC_CLIENT_RELAY_PREPROD_BASE_API_URL = "https://app-dynamic-preprod-xyz-app-32d15525a875.relay.evervault.app";
|
|
11
|
-
export declare const DYNAMIC_CLIENT_RELAY_DEV_BASE_API_URL = "http://localhost:4200";
|
|
12
|
-
export declare const DYNAMIC_AUTH_BASE_API_URL_MAP: {
|
|
13
|
-
readonly production: "https://app.dynamicauth.com";
|
|
14
|
-
readonly preprod: "https://app.dynamic-preprod.xyz";
|
|
15
|
-
readonly development: "http://localhost:4200";
|
|
16
|
-
};
|
|
17
|
-
export declare const DYNAMIC_CLIENT_RELAY_MAP: {
|
|
18
|
-
readonly production: "https://app-dynamicauth-com-app-6e12fc400995.relay.evervault.app";
|
|
19
|
-
readonly preprod: "https://app-dynamic-preprod-xyz-app-32d15525a875.relay.evervault.app";
|
|
20
|
-
readonly development: "http://localhost:4200";
|
|
21
|
-
};
|
|
22
6
|
export declare const MPC_RELAY_PROD_API_URL = "relay.dynamicauth.com";
|
|
23
7
|
export declare const MPC_RELAY_PREPROD_API_URL = "relay.dynamic-preprod.xyz";
|
|
24
|
-
export declare const MPC_RELAY_DEV_API_URL = "http://localhost:4200";
|
|
25
8
|
export declare const SOLANA_RPC_URL = "https://api.devnet.solana.com";
|
|
26
9
|
export declare const chain: {
|
|
27
10
|
readonly EVM: "EVM";
|
|
@@ -49,11 +32,7 @@ export declare enum BackupLocation {
|
|
|
49
32
|
USER = "user",
|
|
50
33
|
EXTERNAL = "external"
|
|
51
34
|
}
|
|
52
|
-
export declare const
|
|
53
|
-
readonly development: "http://localhost:3333";
|
|
54
|
-
readonly preprod: "https://waas.dynamic-preprod.xyz";
|
|
55
|
-
readonly production: "https://waas.dynamicauth.com";
|
|
56
|
-
};
|
|
35
|
+
export declare const IFRAME_DOMAIN = "http://localhost:8090";
|
|
57
36
|
export declare const ChainEnumToVerifiedCredentialName: {
|
|
58
37
|
[key: string]: string;
|
|
59
38
|
};
|
package/src/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../packages/src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,gCAAgC,CAAC;AAC5E,eAAO,MAAM,iCAAiC,oCACX,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../packages/src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,gCAAgC,CAAC;AAC5E,eAAO,MAAM,iCAAiC,oCACX,CAAC;AAEpC,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD,eAAO,MAAM,sCAAsC,qEACiB,CAAC;AACrE,eAAO,MAAM,yCAAyC,yEACkB,CAAC;AAEzE,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAC9D,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAErE,eAAO,MAAM,cAAc,kCAAkC,CAAC;AAE9D,eAAO,MAAM,KAAK;;;;;;;CAOR,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;AAE3D,oBAAY,eAAe;IACzB,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;CAC9B;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,YAAY,gBAAgB;IAC5B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAGD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AAErD,eAAO,MAAM,iCAAiC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAKtE,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAItE,CAAC"}
|