@xyo-network/event-kit-statement-graph 0.0.1 → 0.1.1

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.
@@ -0,0 +1,35 @@
1
+ import type { StatementGraphViewer } from '@xyo-network/xl1-statement-graph-engine';
2
+ import type { BodyReader, FinalizedBlockViewer } from '@xyo-network/xl1-statement-graph-sdk';
3
+ import type { EventKitReplayCheckpoint, EventKitReplayCheckpointIdentity, ReplayBlockedState } from './replayCheckpoint.ts';
4
+ export interface EventKitReplayCheckpointStore {
5
+ /** Returns durable JSON-compatible checkpoint content, if one exists. */
6
+ load(): Promise<unknown>;
7
+ /** Must atomically replace the prior checkpoint or reject without publishing it. */
8
+ save(checkpoint: EventKitReplayCheckpoint): Promise<void>;
9
+ }
10
+ export interface FinalizedEventKitReplayOptions extends EventKitReplayCheckpointIdentity {
11
+ readonly bodies: BodyReader;
12
+ readonly chain: FinalizedBlockViewer;
13
+ readonly checkpointStore: EventKitReplayCheckpointStore;
14
+ }
15
+ export interface FinalizedEventKitReplayStatus {
16
+ readonly blocked?: ReplayBlockedState;
17
+ readonly finalizedHead: number;
18
+ readonly indexedThrough: number | null;
19
+ }
20
+ export interface FinalizedEventKitReplayController {
21
+ /** Resolve a verified lifecycle or acceptance-attachment body from the durable projection. */
22
+ body(hash: string): Readonly<Record<string, unknown>> | undefined;
23
+ snapshot(): Readonly<EventKitReplayCheckpoint>;
24
+ status(): FinalizedEventKitReplayStatus;
25
+ /** Walks clean finalized blocks and stops before the first unavailable body boundary. */
26
+ sync(): Promise<FinalizedEventKitReplayStatus>;
27
+ /** Snapshot viewer; request it again after `sync()` to observe the new checkpoint. */
28
+ viewer(): StatementGraphViewer;
29
+ }
30
+ export declare function createFinalizedEventKitReplayController(rawOptions: FinalizedEventKitReplayOptions): Promise<FinalizedEventKitReplayController>;
31
+ /** Simple structural fixture; production durability belongs to the storage adapter. */
32
+ export declare function createMemoryEventKitReplayCheckpointStore(initial?: unknown): EventKitReplayCheckpointStore & {
33
+ readonly saved: readonly EventKitReplayCheckpoint[];
34
+ };
35
+ //# sourceMappingURL=finalizedReplayController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalizedReplayController.d.ts","sourceRoot":"","sources":["../../src/finalizedReplayController.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAA;AAMnF,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EAErB,MAAM,sCAAsC,CAAA;AAQ7C,OAAO,KAAK,EACV,wBAAwB,EACxB,gCAAgC,EAChC,kBAAkB,EAGnB,MAAM,uBAAuB,CAAA;AAO9B,MAAM,WAAW,6BAA6B;IAC5C,yEAAyE;IACzE,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IACxB,oFAAoF;IACpF,IAAI,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,8BAA+B,SAAQ,gCAAgC;IACtF,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAA;IACpC,QAAQ,CAAC,eAAe,EAAE,6BAA6B,CAAA;CACxD;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,iCAAiC;IAChD,8FAA8F;IAC9F,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;IACjE,QAAQ,IAAI,QAAQ,CAAC,wBAAwB,CAAC,CAAA;IAC9C,MAAM,IAAI,6BAA6B,CAAA;IACvC,yFAAyF;IACzF,IAAI,IAAI,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAC9C,sFAAsF;IACtF,MAAM,IAAI,oBAAoB,CAAA;CAC/B;AAgRD,wBAAsB,uCAAuC,CAC3D,UAAU,EAAE,8BAA8B,GACzC,OAAO,CAAC,iCAAiC,CAAC,CAkB5C;AAED,uFAAuF;AACvF,wBAAgB,yCAAyC,CACvD,OAAO,CAAC,EAAE,OAAO,GAChB,6BAA6B,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAAE,CAazF"}
@@ -14,8 +14,8 @@ export interface StatementGraphGrantReadModelOptions {
14
14
  * This is a translation seam only. It narrows branded query and record types
15
15
  * and preserves every field the authorizer needs as grant evidence; it makes no
16
16
  * authorization decision, applies no freshness policy, and drops no claim.
17
- * Statement Graph remains the sole owner of claim semantics — and under v2 that
18
- * is the whole lifecycle, since there is no revoke verb to own.
17
+ * Statement Graph remains the sole owner of claim semantics; Event Kit's
18
+ * authorizer separately interprets grant bodies and claimed negations.
19
19
  */
20
20
  export declare function createStatementGraphGrantReadModel(options: StatementGraphGrantReadModelOptions): StatementGraphGrantReadModel;
21
21
  //# sourceMappingURL=grantReadModel.d.ts.map
@@ -0,0 +1,45 @@
1
+ import type { PublisherEncryptionKeyLifecycle, PublisherServiceLifecycleRevision } from '@xyo-network/event-kit-protocol';
2
+ import type { PublisherEncryptionKey, PublisherService } from '@xyo-network/event-kit-schemas';
3
+ import type { StatementGraphViewer } from '@xyo-network/xl1-statement-graph-engine';
4
+ import type { AppliedEventRecord } from '@xyo-network/xl1-statement-graph-schemas';
5
+ import type { ClaimedHandshakeObject, EventKitHandshakeReadModelOptions, HandshakeClaimEvidence, PublisherHandshakeQuery, PublisherServiceDiscovery } from './handshakeReadModelTypes.ts';
6
+ export interface HandshakeCatalogs {
7
+ readonly keyByHash: ReadonlyMap<string, ClaimedHandshakeObject<PublisherEncryptionKey>>;
8
+ readonly keyLifecycles: readonly PublisherEncryptionKeyLifecycle[];
9
+ readonly serviceByHash: ReadonlyMap<string, ClaimedHandshakeObject<PublisherService>>;
10
+ readonly serviceLifecycles: readonly PublisherServiceLifecycleRevision[];
11
+ }
12
+ export interface HandshakeServiceDiscovery {
13
+ readonly catalogs?: HandshakeCatalogs;
14
+ readonly query: PublisherHandshakeQuery;
15
+ readonly result: PublisherServiceDiscovery;
16
+ }
17
+ export declare function handshakeEvidence(record: AppliedEventRecord): HandshakeClaimEvidence;
18
+ export declare function handshakeEventEvidence(record: AppliedEventRecord): Omit<HandshakeClaimEvidence, 'hashIndex' | 'objectHash'>;
19
+ export declare function handshakeEventKey(record: Pick<AppliedEventRecord, 'eventHash' | 'txHash'>): string;
20
+ export declare function verifiedHandshakeObjectBody(viewer: StatementGraphViewer, record: AppliedEventRecord): Promise<Record<string, unknown> | undefined>;
21
+ export declare function verifiedHandshakeAttachmentBody(resolver: EventKitHandshakeReadModelOptions['body'], hash: string): Promise<Record<string, unknown> | undefined>;
22
+ export declare function firstHandshakeRevocation(revocations: readonly {
23
+ readonly block: number;
24
+ readonly target: string;
25
+ }[], target: string): number | undefined;
26
+ export declare function parsedHandshakeObjects<T>(viewer: StatementGraphViewer, records: readonly AppliedEventRecord[], parse: (value: unknown) => {
27
+ readonly data: T;
28
+ readonly success: true;
29
+ } | {
30
+ readonly success: false;
31
+ }): Promise<ClaimedHandshakeObject<T>[]>;
32
+ export declare function handshakeRevocations(viewer: StatementGraphViewer, records: readonly AppliedEventRecord[], parse: (value: unknown) => {
33
+ readonly data: Record<string, string>;
34
+ readonly success: true;
35
+ } | {
36
+ readonly success: false;
37
+ }, field: string): Promise<{
38
+ block: number;
39
+ target: string;
40
+ }[]>;
41
+ export declare function buildHandshakeCatalogs(viewer: StatementGraphViewer, publisher: string): Promise<HandshakeCatalogs>;
42
+ export declare function exactHandshakeServiceAt(catalogs: HandshakeCatalogs, service: ClaimedHandshakeObject<PublisherService>, publisher: string, finalizedHead: number): boolean;
43
+ export declare function exactHandshakeKeyAt(catalogs: HandshakeCatalogs, service: ClaimedHandshakeObject<PublisherService>, keyHash: string, finalizedHead: number): boolean;
44
+ export declare function discoverHandshakeService(options: EventKitHandshakeReadModelOptions, rawQuery: PublisherHandshakeQuery): Promise<HandshakeServiceDiscovery>;
45
+ //# sourceMappingURL=handshakeCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshakeCatalog.d.ts","sourceRoot":"","sources":["../../src/handshakeCatalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { EventKitHandshakeReadModel, EventKitHandshakeReadModelOptions } from './handshakeReadModelTypes.ts';
2
+ export declare function createEventKitHandshakeReadModel(options: EventKitHandshakeReadModelOptions): EventKitHandshakeReadModel;
3
+ //# sourceMappingURL=handshakeReadModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshakeReadModel.d.ts","sourceRoot":"","sources":["../../src/handshakeReadModel.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,iCAAiC,EAWlC,MAAM,8BAA8B,CAAA;AA8YrC,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,iCAAiC,GACzC,0BAA0B,CA8D5B"}
@@ -0,0 +1,142 @@
1
+ import type { SubscriptionActivationFailureReason } from '@xyo-network/event-kit-protocol';
2
+ import type { EncryptedWakeSubscription, FINALIZED_HEAD_EVENT_KIND, PublisherEncryptionKey, PublisherService, WakeGrantObject, WakeSubscriptionAcceptance } from '@xyo-network/event-kit-schemas';
3
+ import type { StatementGraphViewer } from '@xyo-network/xl1-statement-graph-engine';
4
+ export interface HandshakeClaimEvidence {
5
+ readonly block: number;
6
+ readonly eventHash: string;
7
+ readonly hashIndex: number;
8
+ readonly objectHash: string;
9
+ readonly ordinal: {
10
+ readonly event: number;
11
+ readonly tx: number;
12
+ };
13
+ readonly source: string;
14
+ readonly txHash: string;
15
+ }
16
+ export interface ClaimedHandshakeObject<T> {
17
+ readonly body: T;
18
+ readonly evidence: HandshakeClaimEvidence;
19
+ readonly objectHash: string;
20
+ readonly revokedAtBlock?: number;
21
+ }
22
+ export interface PublisherServiceDiscoverySuccess {
23
+ readonly finalizedHead: number;
24
+ readonly indexedThrough: number;
25
+ readonly key: ClaimedHandshakeObject<PublisherEncryptionKey>;
26
+ readonly ok: true;
27
+ readonly service: ClaimedHandshakeObject<PublisherService>;
28
+ }
29
+ export type PublisherServiceDiscoveryFailureReason = 'ahead-of-finality' | 'ambiguous-key' | 'ambiguous-service' | 'invalid-revision-chain' | 'preferred-key-inactive' | 'preferred-key-not-found' | 'preferred-key-not-referenced' | 'service-not-found' | 'service-pending' | 'stale-view' | 'view-unavailable';
30
+ export interface PublisherServiceDiscoveryFailure {
31
+ readonly finalizedHead: number;
32
+ readonly indexedThrough: number | null;
33
+ readonly ok: false;
34
+ readonly reason: PublisherServiceDiscoveryFailureReason;
35
+ }
36
+ export type PublisherServiceDiscovery = PublisherServiceDiscoveryFailure | PublisherServiceDiscoverySuccess;
37
+ export type SubscriptionTupleRejectionReason = 'ambiguous-fan' | 'expiry-out-of-policy' | 'grant-binding-invalid' | 'key-binding-invalid' | 'malformed-grant' | 'malformed-subscription' | 'service-inactive-at-claim' | 'subscription-binding-invalid';
38
+ export interface SubscriptionTupleRejection {
39
+ readonly evidence: Omit<HandshakeClaimEvidence, 'hashIndex' | 'objectHash'>;
40
+ readonly reason: SubscriptionTupleRejectionReason;
41
+ readonly subscriber: string;
42
+ }
43
+ export interface FinalizedSubscriptionTuple {
44
+ readonly grant: ClaimedHandshakeObject<WakeGrantObject>;
45
+ readonly service: ClaimedHandshakeObject<PublisherService>;
46
+ readonly subscriber: string;
47
+ readonly subscription: ClaimedHandshakeObject<EncryptedWakeSubscription>;
48
+ readonly tupleEvent: Omit<HandshakeClaimEvidence, 'hashIndex' | 'objectHash'>;
49
+ }
50
+ export type SubscriptionLifecycleState = 'active' | 'expired' | 'inactive' | 'pending' | 'rejected' | 'revoked';
51
+ export interface PublisherSubscriptionView {
52
+ readonly acceptance?: ClaimedHandshakeObject<WakeSubscriptionAcceptance>;
53
+ readonly activeFromBlock?: number;
54
+ readonly pendingReplacement?: boolean;
55
+ readonly reason?: SubscriptionActivationFailureReason | 'grant-revoked';
56
+ readonly selectedSubscription?: string;
57
+ readonly state: SubscriptionLifecycleState;
58
+ readonly subscriber: string;
59
+ readonly subscriptionId: string;
60
+ readonly tuples: readonly FinalizedSubscriptionTuple[];
61
+ }
62
+ /**
63
+ * One exact, finalized subscription tuple eligible to enter the publisher's
64
+ * decrypt, scope-validation, and endpoint-challenge workflow under the
65
+ * currently selected service and preferred encryption key. Presence here is
66
+ * not permission to publish an acceptance.
67
+ *
68
+ * Eligibility is intentionally a point-in-time statement at `finalizedHead`.
69
+ * A caller must resolve the view again after the endpoint challenge and before
70
+ * publishing an acceptance, because a later finalized lifecycle claim can
71
+ * retire any candidate.
72
+ */
73
+ export interface PublisherAcceptanceCandidate {
74
+ readonly key: ClaimedHandshakeObject<PublisherEncryptionKey>;
75
+ readonly subscriber: string;
76
+ readonly subscriptionId: string;
77
+ readonly tuple: FinalizedSubscriptionTuple;
78
+ }
79
+ interface PublisherHandshakeViewSuccessBase {
80
+ readonly finalizedHead: number;
81
+ readonly indexedThrough: number;
82
+ readonly ok: true;
83
+ readonly rejections: readonly SubscriptionTupleRejection[];
84
+ readonly subscriptions: readonly PublisherSubscriptionView[];
85
+ }
86
+ export interface PublisherHandshakeViewWithCurrentService extends PublisherHandshakeViewSuccessBase {
87
+ readonly hasCurrentAdvertisement: true;
88
+ readonly key: ClaimedHandshakeObject<PublisherEncryptionKey>;
89
+ readonly service: ClaimedHandshakeObject<PublisherService>;
90
+ readonly serviceDiscovery: PublisherServiceDiscoverySuccess;
91
+ }
92
+ export interface PublisherHandshakeViewWithoutCurrentService extends PublisherHandshakeViewSuccessBase {
93
+ readonly hasCurrentAdvertisement: false;
94
+ readonly serviceDiscovery: PublisherServiceDiscoveryFailure;
95
+ }
96
+ export type PublisherHandshakeViewSuccess = PublisherHandshakeViewWithCurrentService | PublisherHandshakeViewWithoutCurrentService;
97
+ export type PublisherHandshakeView = PublisherServiceDiscoveryFailure | PublisherHandshakeViewSuccess;
98
+ export interface PublisherAcceptanceCandidateDiscoverySuccess extends PublisherServiceDiscoverySuccess {
99
+ readonly candidates: readonly PublisherAcceptanceCandidate[];
100
+ readonly rejections: readonly SubscriptionTupleRejection[];
101
+ readonly subscriptions: readonly PublisherSubscriptionView[];
102
+ }
103
+ export type PublisherAcceptanceCandidateDiscovery = PublisherAcceptanceCandidateDiscoverySuccess | PublisherServiceDiscoveryFailure;
104
+ export interface SubscriberSubscriptionLookupWithCurrentService extends PublisherHandshakeViewWithCurrentService {
105
+ readonly subscriber: string;
106
+ }
107
+ export interface SubscriberSubscriptionLookupWithoutCurrentService extends PublisherHandshakeViewWithoutCurrentService {
108
+ readonly subscriber: string;
109
+ }
110
+ export type SubscriberSubscriptionLookupSuccess = SubscriberSubscriptionLookupWithCurrentService | SubscriberSubscriptionLookupWithoutCurrentService;
111
+ export type SubscriberSubscriptionLookup = PublisherServiceDiscoveryFailure | SubscriberSubscriptionLookupSuccess;
112
+ export interface EventKitHandshakeReadModelOptions {
113
+ /** Resolves hash-verified acceptance attachments retained by the replay controller. */
114
+ readonly body?: (hash: string) => Readonly<Record<string, unknown>> | undefined;
115
+ readonly viewer: StatementGraphViewer;
116
+ }
117
+ export interface PublisherHandshakeQuery {
118
+ readonly chainId: string;
119
+ readonly eventKind?: typeof FINALIZED_HEAD_EVENT_KIND;
120
+ readonly finalizedHead: number;
121
+ readonly publisher: string;
122
+ readonly serviceId?: string;
123
+ }
124
+ export interface PublisherAcceptanceCandidateQuery extends PublisherHandshakeQuery {
125
+ /** Restricts discovery to one finalized Statement Graph claim source. */
126
+ readonly subscriber?: string;
127
+ /** Restricts discovery to one stable subscription revision chain. */
128
+ readonly subscriptionId?: string;
129
+ }
130
+ export interface SubscriberSubscriptionQuery extends PublisherHandshakeQuery {
131
+ readonly subscriber: string;
132
+ /** Omit to return every subscription identity owned by `subscriber`. */
133
+ readonly subscriptionId?: string;
134
+ }
135
+ export interface EventKitHandshakeReadModel {
136
+ acceptanceCandidates(query: PublisherAcceptanceCandidateQuery): Promise<PublisherAcceptanceCandidateDiscovery>;
137
+ discoverPublisherService(query: PublisherHandshakeQuery): Promise<PublisherServiceDiscovery>;
138
+ publisher(query: PublisherHandshakeQuery): Promise<PublisherHandshakeView>;
139
+ subscriber(query: SubscriberSubscriptionQuery): Promise<SubscriberSubscriptionLookup>;
140
+ }
141
+ export {};
142
+ //# sourceMappingURL=handshakeReadModelTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshakeReadModelTypes.d.ts","sourceRoot":"","sources":["../../src/handshakeReadModelTypes.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
+ export { createCheckpointStatementGraphViewer } from './checkpointViewer.ts';
2
+ export { EventKitClaimedObjectSchemas, EventKitClaimedObjectSchemaSet, } from './eventKitSchemaPolicy.ts';
3
+ export type { EventKitReplayCheckpointStore, FinalizedEventKitReplayController, FinalizedEventKitReplayOptions, FinalizedEventKitReplayStatus, } from './finalizedReplayController.ts';
4
+ export { createFinalizedEventKitReplayController, createMemoryEventKitReplayCheckpointStore, } from './finalizedReplayController.ts';
1
5
  export type { StatementGraphGrantReadModelOptions } from './grantReadModel.ts';
2
6
  export { createStatementGraphGrantReadModel } from './grantReadModel.ts';
7
+ export { createEventKitHandshakeReadModel } from './handshakeReadModel.ts';
8
+ export type { ClaimedHandshakeObject, EventKitHandshakeReadModel, EventKitHandshakeReadModelOptions, FinalizedSubscriptionTuple, HandshakeClaimEvidence, PublisherAcceptanceCandidate, PublisherAcceptanceCandidateDiscovery, PublisherAcceptanceCandidateDiscoverySuccess, PublisherAcceptanceCandidateQuery, PublisherHandshakeQuery, PublisherHandshakeView, PublisherHandshakeViewSuccess, PublisherHandshakeViewWithCurrentService, PublisherHandshakeViewWithoutCurrentService, PublisherServiceDiscovery, PublisherServiceDiscoveryFailure, PublisherServiceDiscoveryFailureReason, PublisherServiceDiscoverySuccess, PublisherSubscriptionView, SubscriberSubscriptionLookup, SubscriberSubscriptionLookupSuccess, SubscriberSubscriptionLookupWithCurrentService, SubscriberSubscriptionLookupWithoutCurrentService, SubscriberSubscriptionQuery, SubscriptionLifecycleState, SubscriptionTupleRejection, SubscriptionTupleRejectionReason, } from './handshakeReadModelTypes.ts';
9
+ export type { EventKitReplayCheckpoint, EventKitReplayCheckpointIdentity, EventKitReplayCheckpointLoad, ReplayBlockedState, ReplayCorruptBody, ResolvedReplayBody, } from './replayCheckpoint.ts';
10
+ export { EVENT_KIT_REPLAY_CHECKPOINT_VERSION, EventKitReplayCheckpointZod, loadEventKitReplayCheckpoint, ReplayBlockedStateZod, ReplayCorruptBodyZod, ResolvedReplayBodyZod, } from './replayCheckpoint.ts';
3
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,uCAAuC,EACvC,yCAAyC,GAC1C,MAAM,gCAAgC,CAAA;AACvC,YAAY,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAA;AAC1E,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,iCAAiC,EACjC,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,qCAAqC,EACrC,4CAA4C,EAC5C,iCAAiC,EACjC,uBAAuB,EACvB,sBAAsB,EACtB,6BAA6B,EAC7B,wCAAwC,EACxC,2CAA2C,EAC3C,yBAAyB,EACzB,gCAAgC,EAChC,sCAAsC,EACtC,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,mCAAmC,EACnC,8CAA8C,EAC9C,iDAAiD,EACjD,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,wBAAwB,EACxB,gCAAgC,EAChC,4BAA4B,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,uBAAuB,CAAA"}