@lodestar/api 1.20.0-dev.f6d3bce802 → 1.20.0-dev.fe23f68998
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/README.md +2 -2
- package/lib/beacon/client/beacon.d.ts +4 -3
- package/lib/beacon/client/beacon.js +3 -36
- package/lib/beacon/client/beacon.js.map +1 -1
- package/lib/beacon/client/config.d.ts +4 -3
- package/lib/beacon/client/config.js +3 -6
- package/lib/beacon/client/config.js.map +1 -1
- package/lib/beacon/client/debug.d.ts +4 -3
- package/lib/beacon/client/debug.js +4 -45
- package/lib/beacon/client/debug.js.map +1 -1
- package/lib/beacon/client/events.d.ts +5 -2
- package/lib/beacon/client/events.js +33 -35
- package/lib/beacon/client/events.js.map +1 -1
- package/lib/beacon/client/index.d.ts +6 -3
- package/lib/beacon/client/index.js +2 -2
- package/lib/beacon/client/index.js.map +1 -1
- package/lib/beacon/client/lightclient.d.ts +4 -3
- package/lib/beacon/client/lightclient.js +4 -7
- package/lib/beacon/client/lightclient.js.map +1 -1
- package/lib/beacon/client/lodestar.d.ts +4 -3
- package/lib/beacon/client/lodestar.js +4 -7
- package/lib/beacon/client/lodestar.js.map +1 -1
- package/lib/beacon/client/node.d.ts +4 -3
- package/lib/beacon/client/node.js +4 -7
- package/lib/beacon/client/node.js.map +1 -1
- package/lib/beacon/client/proof.d.ts +5 -4
- package/lib/beacon/client/proof.js +5 -61
- package/lib/beacon/client/proof.js.map +1 -1
- package/lib/beacon/client/validator.d.ts +4 -3
- package/lib/beacon/client/validator.js +4 -7
- package/lib/beacon/client/validator.js.map +1 -1
- package/lib/beacon/index.d.ts +5 -5
- package/lib/beacon/index.js.map +1 -1
- package/lib/beacon/routes/beacon/block.d.ts +286 -167
- package/lib/beacon/routes/beacon/block.js +317 -117
- package/lib/beacon/routes/beacon/block.js.map +1 -1
- package/lib/beacon/routes/beacon/index.d.ts +6 -588
- package/lib/beacon/routes/beacon/index.js +16 -26
- package/lib/beacon/routes/beacon/index.js.map +1 -1
- package/lib/beacon/routes/beacon/pool.d.ts +155 -117
- package/lib/beacon/routes/beacon/pool.js +146 -42
- package/lib/beacon/routes/beacon/pool.js.map +1 -1
- package/lib/beacon/routes/beacon/rewards.d.ts +113 -101
- package/lib/beacon/routes/beacon/rewards.js +98 -63
- package/lib/beacon/routes/beacon/rewards.js.map +1 -1
- package/lib/beacon/routes/beacon/state.d.ts +172 -226
- package/lib/beacon/routes/beacon/state.js +204 -126
- package/lib/beacon/routes/beacon/state.js.map +1 -1
- package/lib/beacon/routes/config.d.ts +21 -36
- package/lib/beacon/routes/config.js +45 -24
- package/lib/beacon/routes/config.js.map +1 -1
- package/lib/beacon/routes/debug.d.ts +22 -104
- package/lib/beacon/routes/debug.js +53 -45
- package/lib/beacon/routes/debug.js.map +1 -1
- package/lib/beacon/routes/events.d.ts +24 -20
- package/lib/beacon/routes/events.js +40 -18
- package/lib/beacon/routes/events.js.map +1 -1
- package/lib/beacon/routes/index.d.ts +19 -19
- package/lib/beacon/routes/index.js +1 -0
- package/lib/beacon/routes/index.js.map +1 -1
- package/lib/beacon/routes/lightclient.d.ts +34 -56
- package/lib/beacon/routes/lightclient.js +108 -48
- package/lib/beacon/routes/lightclient.js.map +1 -1
- package/lib/beacon/routes/lodestar.d.ts +74 -148
- package/lib/beacon/routes/lodestar.js +126 -77
- package/lib/beacon/routes/lodestar.js.map +1 -1
- package/lib/beacon/routes/node.d.ts +48 -82
- package/lib/beacon/routes/node.js +90 -57
- package/lib/beacon/routes/node.js.map +1 -1
- package/lib/beacon/routes/proof.d.ts +25 -31
- package/lib/beacon/routes/proof.js +44 -24
- package/lib/beacon/routes/proof.js.map +1 -1
- package/lib/beacon/routes/validator.d.ts +524 -325
- package/lib/beacon/routes/validator.js +468 -213
- package/lib/beacon/routes/validator.js.map +1 -1
- package/lib/beacon/server/beacon.d.ts +3 -4
- package/lib/beacon/server/beacon.js +4 -57
- package/lib/beacon/server/beacon.js.map +1 -1
- package/lib/beacon/server/config.d.ts +3 -4
- package/lib/beacon/server/config.js +4 -5
- package/lib/beacon/server/config.js.map +1 -1
- package/lib/beacon/server/debug.d.ts +3 -4
- package/lib/beacon/server/debug.js +4 -54
- package/lib/beacon/server/debug.js.map +1 -1
- package/lib/beacon/server/events.d.ts +4 -4
- package/lib/beacon/server/events.js +17 -23
- package/lib/beacon/server/events.js.map +1 -1
- package/lib/beacon/server/index.d.ts +7 -8
- package/lib/beacon/server/index.js +13 -14
- package/lib/beacon/server/index.js.map +1 -1
- package/lib/beacon/server/lightclient.d.ts +3 -4
- package/lib/beacon/server/lightclient.js +4 -5
- package/lib/beacon/server/lightclient.js.map +1 -1
- package/lib/beacon/server/lodestar.d.ts +3 -4
- package/lib/beacon/server/lodestar.js +4 -5
- package/lib/beacon/server/lodestar.js.map +1 -1
- package/lib/beacon/server/node.d.ts +3 -4
- package/lib/beacon/server/node.js +4 -18
- package/lib/beacon/server/node.js.map +1 -1
- package/lib/beacon/server/proof.d.ts +3 -4
- package/lib/beacon/server/proof.js +4 -36
- package/lib/beacon/server/proof.js.map +1 -1
- package/lib/beacon/server/validator.d.ts +3 -4
- package/lib/beacon/server/validator.js +4 -21
- package/lib/beacon/server/validator.js.map +1 -1
- package/lib/builder/client.d.ts +4 -6
- package/lib/builder/client.js +3 -9
- package/lib/builder/client.js.map +1 -1
- package/lib/builder/index.d.ts +8 -5
- package/lib/builder/index.js +4 -1
- package/lib/builder/index.js.map +1 -1
- package/lib/builder/routes.d.ts +25 -39
- package/lib/builder/routes.js +78 -34
- package/lib/builder/routes.js.map +1 -1
- package/lib/builder/server/index.d.ts +6 -6
- package/lib/builder/server/index.js +7 -8
- package/lib/builder/server/index.js.map +1 -1
- package/lib/index.d.ts +9 -6
- package/lib/index.js +5 -4
- package/lib/index.js.map +1 -1
- package/lib/keymanager/client.d.ts +4 -3
- package/lib/keymanager/client.js +4 -7
- package/lib/keymanager/client.js.map +1 -1
- package/lib/keymanager/index.d.ts +5 -4
- package/lib/keymanager/index.js +1 -1
- package/lib/keymanager/index.js.map +1 -1
- package/lib/keymanager/routes.d.ts +155 -177
- package/lib/keymanager/routes.js +236 -123
- package/lib/keymanager/routes.js.map +1 -1
- package/lib/keymanager/server/index.d.ts +6 -6
- package/lib/keymanager/server/index.js +7 -8
- package/lib/keymanager/server/index.js.map +1 -1
- package/lib/server/index.d.ts +2 -0
- package/lib/server/index.js +3 -0
- package/lib/server/index.js.map +1 -0
- package/lib/utils/client/error.d.ts +6 -0
- package/lib/utils/client/error.js +8 -0
- package/lib/utils/client/error.js.map +1 -0
- package/lib/utils/client/httpClient.d.ts +35 -75
- package/lib/utils/client/httpClient.js +201 -153
- package/lib/utils/client/httpClient.js.map +1 -1
- package/lib/utils/client/index.d.ts +6 -2
- package/lib/utils/client/index.js +6 -2
- package/lib/utils/client/index.js.map +1 -1
- package/lib/utils/client/method.d.ts +11 -0
- package/lib/utils/client/method.js +27 -0
- package/lib/utils/client/method.js.map +1 -0
- package/lib/utils/client/request.d.ts +33 -0
- package/lib/utils/client/request.js +66 -0
- package/lib/utils/client/request.js.map +1 -0
- package/lib/utils/client/response.d.ts +36 -0
- package/lib/utils/client/response.js +167 -0
- package/lib/utils/client/response.js.map +1 -0
- package/lib/utils/codecs.d.ts +28 -0
- package/lib/utils/codecs.js +105 -0
- package/lib/utils/codecs.js.map +1 -0
- package/lib/utils/fork.d.ts +7 -0
- package/lib/utils/fork.js +29 -0
- package/lib/utils/fork.js.map +1 -0
- package/lib/utils/headers.d.ts +37 -0
- package/lib/utils/headers.js +134 -0
- package/lib/utils/headers.js.map +1 -0
- package/lib/utils/httpStatusCode.js.map +1 -0
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/metadata.d.ts +88 -0
- package/lib/utils/metadata.js +126 -0
- package/lib/utils/metadata.js.map +1 -0
- package/lib/utils/schema.d.ts +31 -17
- package/lib/utils/schema.js +18 -6
- package/lib/utils/schema.js.map +1 -1
- package/lib/utils/serdes.d.ts +3 -0
- package/lib/utils/serdes.js +13 -0
- package/lib/utils/serdes.js.map +1 -1
- package/lib/utils/server/{errors.d.ts → error.d.ts} +2 -2
- package/lib/utils/server/{errors.js → error.js} +1 -1
- package/lib/utils/server/error.js.map +1 -0
- package/lib/utils/server/handler.d.ts +11 -0
- package/lib/utils/server/handler.js +115 -0
- package/lib/utils/server/handler.js.map +1 -0
- package/lib/utils/server/index.d.ts +5 -4
- package/lib/utils/server/index.js +5 -4
- package/lib/utils/server/index.js.map +1 -1
- package/lib/utils/server/method.d.ts +35 -0
- package/lib/utils/server/method.js +2 -0
- package/lib/utils/server/method.js.map +1 -0
- package/lib/utils/server/parser.d.ts +3 -0
- package/lib/utils/server/parser.js +20 -0
- package/lib/utils/server/parser.js.map +1 -0
- package/lib/utils/server/route.d.ts +20 -0
- package/lib/utils/server/route.js +19 -0
- package/lib/utils/server/route.js.map +1 -0
- package/lib/utils/types.d.ts +116 -104
- package/lib/utils/types.js +2 -155
- package/lib/utils/types.js.map +1 -1
- package/lib/utils/urlFormat.d.ts +2 -2
- package/lib/utils/urlFormat.js +3 -3
- package/lib/utils/urlFormat.js.map +1 -1
- package/lib/utils/wireFormat.d.ts +8 -0
- package/lib/utils/wireFormat.js +23 -0
- package/lib/utils/wireFormat.js.map +1 -0
- package/package.json +9 -6
- package/lib/interfaces.d.ts +0 -44
- package/lib/interfaces.js +0 -2
- package/lib/interfaces.js.map +0 -1
- package/lib/utils/acceptHeader.d.ts +0 -9
- package/lib/utils/acceptHeader.js +0 -62
- package/lib/utils/acceptHeader.js.map +0 -1
- package/lib/utils/client/client.d.ts +0 -29
- package/lib/utils/client/client.js +0 -88
- package/lib/utils/client/client.js.map +0 -1
- package/lib/utils/client/httpStatusCode.js.map +0 -1
- package/lib/utils/routes.d.ts +0 -6
- package/lib/utils/routes.js +0 -31
- package/lib/utils/routes.js.map +0 -1
- package/lib/utils/server/errors.js.map +0 -1
- package/lib/utils/server/genericJsonServer.d.ts +0 -13
- package/lib/utils/server/genericJsonServer.js +0 -32
- package/lib/utils/server/genericJsonServer.js.map +0 -1
- package/lib/utils/server/registerRoute.d.ts +0 -3
- package/lib/utils/server/registerRoute.js +0 -13
- package/lib/utils/server/registerRoute.js.map +0 -1
- package/lib/utils/server/types.d.ts +0 -22
- package/lib/utils/server/types.js +0 -2
- package/lib/utils/server/types.js.map +0 -1
- /package/lib/utils/{client/httpStatusCode.d.ts → httpStatusCode.d.ts} +0 -0
- /package/lib/utils/{client/httpStatusCode.js → httpStatusCode.js} +0 -0
|
@@ -1,49 +1,43 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
1
|
+
import { CompactMultiProof } from "@chainsafe/persistent-merkle-tree";
|
|
2
|
+
import { ByteListType, ContainerType } from "@chainsafe/ssz";
|
|
3
|
+
import { ChainForkConfig } from "@lodestar/config";
|
|
4
|
+
import { Endpoint, RouteDefinitions } from "../../utils/index.js";
|
|
5
|
+
import { VersionMeta } from "../../utils/metadata.js";
|
|
6
|
+
export declare const CompactMultiProofType: ContainerType<{
|
|
7
|
+
leaves: import("@chainsafe/ssz").ArrayType<import("@chainsafe/ssz").Type<Uint8Array>, unknown, unknown>;
|
|
8
|
+
descriptor: ByteListType;
|
|
9
|
+
}>;
|
|
10
|
+
export type Endpoints = {
|
|
6
11
|
/**
|
|
7
12
|
* Returns a multiproof of `descriptor` at the requested `stateId`.
|
|
8
13
|
* The requested `stateId` may not be available. Regular nodes only keep recent states in memory.
|
|
9
14
|
*/
|
|
10
|
-
getStateProof
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}>>;
|
|
15
|
-
/**
|
|
16
|
-
* Returns a multiproof of `descriptor` at the requested `blockId`.
|
|
17
|
-
* The requested `blockId` may not be available. Regular nodes only keep recent states in memory.
|
|
18
|
-
*/
|
|
19
|
-
getBlockProof(blockId: string, descriptor: Uint8Array): Promise<ApiClientResponse<{
|
|
20
|
-
[HttpStatusCode.OK]: {
|
|
21
|
-
data: Proof;
|
|
22
|
-
};
|
|
23
|
-
}>>;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Define javascript values for each route
|
|
27
|
-
*/
|
|
28
|
-
export declare const routesData: RoutesData<Api>;
|
|
29
|
-
export type ReqTypes = {
|
|
30
|
-
getStateProof: {
|
|
15
|
+
getStateProof: Endpoint<"GET", {
|
|
16
|
+
stateId: string;
|
|
17
|
+
descriptor: Uint8Array;
|
|
18
|
+
}, {
|
|
31
19
|
params: {
|
|
32
20
|
state_id: string;
|
|
33
21
|
};
|
|
34
22
|
query: {
|
|
35
23
|
format: string;
|
|
36
24
|
};
|
|
37
|
-
}
|
|
38
|
-
|
|
25
|
+
}, CompactMultiProof, VersionMeta>;
|
|
26
|
+
/**
|
|
27
|
+
* Returns a multiproof of `descriptor` at the requested `blockId`.
|
|
28
|
+
* The requested `blockId` may not be available. Regular nodes only keep recent states in memory.
|
|
29
|
+
*/
|
|
30
|
+
getBlockProof: Endpoint<"GET", {
|
|
31
|
+
blockId: string;
|
|
32
|
+
descriptor: Uint8Array;
|
|
33
|
+
}, {
|
|
39
34
|
params: {
|
|
40
35
|
block_id: string;
|
|
41
36
|
};
|
|
42
37
|
query: {
|
|
43
38
|
format: string;
|
|
44
39
|
};
|
|
45
|
-
}
|
|
40
|
+
}, CompactMultiProof, VersionMeta>;
|
|
46
41
|
};
|
|
47
|
-
export declare function
|
|
48
|
-
export declare function getReturnTypes(): ReturnTypes<Api>;
|
|
42
|
+
export declare function getDefinitions(_config: ChainForkConfig): RouteDefinitions<Endpoints>;
|
|
49
43
|
//# sourceMappingURL=proof.d.ts.map
|
|
@@ -1,32 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import { ProofType } from "@chainsafe/persistent-merkle-tree";
|
|
3
|
+
import { ByteListType, ContainerType, fromHexString, toHexString } from "@chainsafe/ssz";
|
|
4
|
+
import { ssz } from "@lodestar/types";
|
|
5
|
+
import { Schema } from "../../utils/index.js";
|
|
6
|
+
import { ArrayOf } from "../../utils/codecs.js";
|
|
7
|
+
import { VersionCodec } from "../../utils/metadata.js";
|
|
8
|
+
export const CompactMultiProofType = new ContainerType({
|
|
9
|
+
leaves: ArrayOf(ssz.Root, 10000),
|
|
10
|
+
descriptor: new ByteListType(2048),
|
|
11
|
+
});
|
|
12
|
+
export function getDefinitions(_config) {
|
|
12
13
|
return {
|
|
13
14
|
getStateProof: {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
url: "/eth/v0/beacon/proof/state/{state_id}",
|
|
16
|
+
method: "GET",
|
|
17
|
+
req: {
|
|
18
|
+
writeReq: ({ stateId, descriptor }) => ({ params: { state_id: stateId }, query: { format: toHexString(descriptor) } }),
|
|
19
|
+
parseReq: ({ params, query }) => ({ stateId: params.state_id, descriptor: fromHexString(query.format) }),
|
|
20
|
+
schema: { params: { state_id: Schema.StringRequired }, query: { format: Schema.StringRequired } },
|
|
21
|
+
},
|
|
22
|
+
resp: {
|
|
23
|
+
data: {
|
|
24
|
+
toJson: (data) => CompactMultiProofType.toJson(data),
|
|
25
|
+
fromJson: (data) => ({ ...CompactMultiProofType.fromJson(data), type: ProofType.compactMulti }),
|
|
26
|
+
serialize: (data) => CompactMultiProofType.serialize(data),
|
|
27
|
+
deserialize: (data) => ({ ...CompactMultiProofType.deserialize(data), type: ProofType.compactMulti }),
|
|
28
|
+
},
|
|
29
|
+
meta: VersionCodec,
|
|
30
|
+
},
|
|
17
31
|
},
|
|
18
32
|
getBlockProof: {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
33
|
+
url: "/eth/v0/beacon/proof/block/{block_id}",
|
|
34
|
+
method: "GET",
|
|
35
|
+
req: {
|
|
36
|
+
writeReq: ({ blockId, descriptor }) => ({ params: { block_id: blockId }, query: { format: toHexString(descriptor) } }),
|
|
37
|
+
parseReq: ({ params, query }) => ({ blockId: params.block_id, descriptor: fromHexString(query.format) }),
|
|
38
|
+
schema: { params: { block_id: Schema.StringRequired }, query: { format: Schema.StringRequired } },
|
|
39
|
+
},
|
|
40
|
+
resp: {
|
|
41
|
+
data: {
|
|
42
|
+
toJson: (data) => CompactMultiProofType.toJson(data),
|
|
43
|
+
fromJson: (data) => ({ ...CompactMultiProofType.fromJson(data), type: ProofType.compactMulti }),
|
|
44
|
+
serialize: (data) => CompactMultiProofType.serialize(data),
|
|
45
|
+
deserialize: (data) => ({ ...CompactMultiProofType.deserialize(data), type: ProofType.compactMulti }),
|
|
46
|
+
},
|
|
47
|
+
meta: VersionCodec,
|
|
48
|
+
},
|
|
22
49
|
},
|
|
23
50
|
};
|
|
24
51
|
}
|
|
25
|
-
export function getReturnTypes() {
|
|
26
|
-
return {
|
|
27
|
-
// Just sent the proof JSON as-is
|
|
28
|
-
getStateProof: sameType(),
|
|
29
|
-
getBlockProof: sameType(),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
52
|
//# sourceMappingURL=proof.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.js","sourceRoot":"","sources":["../../../src/beacon/routes/proof.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proof.js","sourceRoot":"","sources":["../../../src/beacon/routes/proof.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAoB,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAA6B,MAAM,EAAC,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAc,MAAM,yBAAyB,CAAC;AAElE,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,aAAa,CAAC;IACrD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;IAChC,UAAU,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;CACnC,CAAC,CAAC;AA6BH,MAAM,UAAU,cAAc,CAAC,OAAwB;IACrD,OAAO;QACL,aAAa,EAAE;YACb,GAAG,EAAE,uCAAuC;YAC5C,MAAM,EAAE,KAAK;YACb,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,EAAC,EAAC,CAAC;gBAC9G,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAC,CAAC;gBACpG,MAAM,EAAE,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAC,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAC,EAAC;aAC5F;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;oBACpD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAAC,CAAC;oBAC7F,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAAC,CAAC;iBACpG;gBACD,IAAI,EAAE,YAAY;aACnB;SACF;QACD,aAAa,EAAE;YACb,GAAG,EAAE,uCAAuC;YAC5C,MAAM,EAAE,KAAK;YACb,GAAG,EAAE;gBACH,QAAQ,EAAE,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,EAAC,EAAC,CAAC;gBAC9G,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAC,CAAC;gBACpG,MAAM,EAAE,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAC,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAC,EAAC;aAC5F;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;oBACpD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAAC,CAAC;oBAC7F,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAAC,CAAC;iBACpG;gBACD,IAAI,EAAE,YAAY;aACnB;SACF;KACF,CAAC;AACJ,CAAC"}
|