@sphereon/ssi-sdk.ebsi-support 0.26.1-unstable.101
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/LICENSE +201 -0
- package/README.md +13 -0
- package/dist/agent/EbsiSupport.d.ts +12 -0
- package/dist/agent/EbsiSupport.d.ts.map +1 -0
- package/dist/agent/EbsiSupport.js +202 -0
- package/dist/agent/EbsiSupport.js.map +1 -0
- package/dist/did/EbsiDidProvider.d.ts +47 -0
- package/dist/did/EbsiDidProvider.d.ts.map +1 -0
- package/dist/did/EbsiDidProvider.js +172 -0
- package/dist/did/EbsiDidProvider.js.map +1 -0
- package/dist/did/EbsiDidResolver.d.ts +5 -0
- package/dist/did/EbsiDidResolver.d.ts.map +1 -0
- package/dist/did/EbsiDidResolver.js +10 -0
- package/dist/did/EbsiDidResolver.js.map +1 -0
- package/dist/did/functions.d.ts +66 -0
- package/dist/did/functions.d.ts.map +1 -0
- package/dist/did/functions.js +416 -0
- package/dist/did/functions.js.map +1 -0
- package/dist/did/index.d.ts +6 -0
- package/dist/did/index.d.ts.map +1 -0
- package/dist/did/index.js +6 -0
- package/dist/did/index.js.map +1 -0
- package/dist/did/services/EbsiRPCService.d.ts +13 -0
- package/dist/did/services/EbsiRPCService.d.ts.map +1 -0
- package/dist/did/services/EbsiRPCService.js +64 -0
- package/dist/did/services/EbsiRPCService.js.map +1 -0
- package/dist/did/services/EbsiRestService.d.ts +37 -0
- package/dist/did/services/EbsiRestService.d.ts.map +1 -0
- package/dist/did/services/EbsiRestService.js +90 -0
- package/dist/did/services/EbsiRestService.js.map +1 -0
- package/dist/did/types.d.ts +386 -0
- package/dist/did/types.d.ts.map +1 -0
- package/dist/did/types.js +47 -0
- package/dist/did/types.js.map +1 -0
- package/dist/functions/Attestation.d.ts +32 -0
- package/dist/functions/Attestation.d.ts.map +1 -0
- package/dist/functions/Attestation.js +182 -0
- package/dist/functions/Attestation.js.map +1 -0
- package/dist/functions/AttestationHeadlessCallbacks.d.ts +17 -0
- package/dist/functions/AttestationHeadlessCallbacks.d.ts.map +1 -0
- package/dist/functions/AttestationHeadlessCallbacks.js +194 -0
- package/dist/functions/AttestationHeadlessCallbacks.js.map +1 -0
- package/dist/functions/index.d.ts +7 -0
- package/dist/functions/index.d.ts.map +1 -0
- package/dist/functions/index.js +8 -0
- package/dist/functions/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/types/IEbsiSupport.d.ts +211 -0
- package/dist/types/IEbsiSupport.d.ts.map +1 -0
- package/dist/types/IEbsiSupport.js +5 -0
- package/dist/types/IEbsiSupport.js.map +1 -0
- package/package.json +86 -0
- package/src/agent/EbsiSupport.ts +250 -0
- package/src/did/EbsiDidProvider.ts +269 -0
- package/src/did/EbsiDidResolver.ts +16 -0
- package/src/did/functions.ts +528 -0
- package/src/did/index.ts +5 -0
- package/src/did/services/EbsiRPCService.ts +68 -0
- package/src/did/services/EbsiRestService.ts +117 -0
- package/src/did/types.ts +449 -0
- package/src/functions/Attestation.ts +262 -0
- package/src/functions/AttestationHeadlessCallbacks.ts +242 -0
- package/src/functions/index.ts +15 -0
- package/src/index.ts +8 -0
- package/src/types/IEbsiSupport.ts +241 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { getControllerKey, getEthereumAddressFromKey } from '@sphereon/ssi-sdk-ext.did-utils';
|
|
2
|
+
import { calculateJwkThumbprint, calculateJwkThumbprintForKey, toJwk } from '@sphereon/ssi-sdk-ext.key-utils';
|
|
3
|
+
import { AbstractIdentifierProvider } from '@veramo/did-manager';
|
|
4
|
+
import Debug from 'debug';
|
|
5
|
+
import { ebsiCreateDidOnLedger, ebsiGenerateOrUseKeyPair, ebsiSignAndSendTransaction, formatEbsiPublicKey, generateEbsiMethodSpecificId, randomRpcId, } from './functions';
|
|
6
|
+
import { EBSI_DID_SPEC_INFOS, EbsiRpcMethod } from './types';
|
|
7
|
+
const debug = Debug('sphereon:did-provider-ebsi');
|
|
8
|
+
export class EbsiDidProvider extends AbstractIdentifierProvider {
|
|
9
|
+
static PROVIDER = 'did:ebsi';
|
|
10
|
+
defaultKms;
|
|
11
|
+
apiOpts;
|
|
12
|
+
constructor(options) {
|
|
13
|
+
super();
|
|
14
|
+
this.defaultKms = options.defaultKms;
|
|
15
|
+
this.apiOpts = options.apiOpts;
|
|
16
|
+
}
|
|
17
|
+
async createIdentifier(args, context) {
|
|
18
|
+
const { type, options, kms = this.defaultKms, alias } = args;
|
|
19
|
+
const { notBefore, notAfter, secp256k1Key, secp256r1Key, accessTokenOpts, executeLedgerOperation = !!args.options?.accessTokenOpts, methodSpecificId = generateEbsiMethodSpecificId(EBSI_DID_SPEC_INFOS.V1), baseDocument, services, } = { ...options };
|
|
20
|
+
if (executeLedgerOperation && !accessTokenOpts) {
|
|
21
|
+
throw new Error('Access token options must be provided to execute ledger operation');
|
|
22
|
+
}
|
|
23
|
+
const rpcId = options?.rpcId ?? randomRpcId();
|
|
24
|
+
if (type === EBSI_DID_SPEC_INFOS.KEY) {
|
|
25
|
+
throw new Error(`Type ${type} not supported. Please use @sphereon/ssi-sdk-ext.did-provider-key for Natural Person EBSI DIDs`);
|
|
26
|
+
}
|
|
27
|
+
else if (!kms) {
|
|
28
|
+
return Promise.reject(Error(`No KMS value provided`));
|
|
29
|
+
}
|
|
30
|
+
// CapabilityInvocation purpose
|
|
31
|
+
const secp256k1ImportKey = await ebsiGenerateOrUseKeyPair({
|
|
32
|
+
keyOpts: secp256k1Key,
|
|
33
|
+
keyType: 'Secp256k1',
|
|
34
|
+
kms,
|
|
35
|
+
controllerKey: true,
|
|
36
|
+
}, context);
|
|
37
|
+
const secp256k1ManagedKeyInfo = await context.agent.keyManagerImport(secp256k1ImportKey);
|
|
38
|
+
// Authentication, assertionMethod purpose
|
|
39
|
+
const secp256r1ImportKey = await ebsiGenerateOrUseKeyPair({
|
|
40
|
+
keyOpts: secp256r1Key,
|
|
41
|
+
keyType: 'Secp256r1',
|
|
42
|
+
kms,
|
|
43
|
+
}, context);
|
|
44
|
+
const secp256r1ManagedKeyInfo = await context.agent.keyManagerImport(secp256r1ImportKey);
|
|
45
|
+
const identifier = {
|
|
46
|
+
did: `${EBSI_DID_SPEC_INFOS.V1.method}${methodSpecificId}`,
|
|
47
|
+
controllerKeyId: secp256k1ManagedKeyInfo.kid,
|
|
48
|
+
keys: [secp256k1ManagedKeyInfo, secp256r1ManagedKeyInfo],
|
|
49
|
+
alias,
|
|
50
|
+
services: services ?? [],
|
|
51
|
+
provider: EbsiDidProvider.PROVIDER,
|
|
52
|
+
};
|
|
53
|
+
const apiOpts = { ...this.apiOpts };
|
|
54
|
+
if (!apiOpts.environment) {
|
|
55
|
+
apiOpts.environment = accessTokenOpts?.environment ?? 'pilot';
|
|
56
|
+
}
|
|
57
|
+
if (!apiOpts.version) {
|
|
58
|
+
apiOpts.version = 'v5';
|
|
59
|
+
}
|
|
60
|
+
if (executeLedgerOperation) {
|
|
61
|
+
await ebsiCreateDidOnLedger({
|
|
62
|
+
identifier,
|
|
63
|
+
baseDocument,
|
|
64
|
+
accessTokenOpts: accessTokenOpts,
|
|
65
|
+
rpcId,
|
|
66
|
+
notBefore,
|
|
67
|
+
notAfter,
|
|
68
|
+
}, context);
|
|
69
|
+
}
|
|
70
|
+
debug('Created', identifier.did);
|
|
71
|
+
return identifier;
|
|
72
|
+
}
|
|
73
|
+
async addKey(args, context) {
|
|
74
|
+
const { identifier, key, options } = args;
|
|
75
|
+
const { accessToken, vmRelationships, apiOpts, rpcId = randomRpcId() } = options;
|
|
76
|
+
if (vmRelationships.length === 0) {
|
|
77
|
+
return Promise.reject(Error(`No verification method relationship provided`));
|
|
78
|
+
}
|
|
79
|
+
const controllerKey = getControllerKey({ identifier });
|
|
80
|
+
const from = getEthereumAddressFromKey({ key: controllerKey });
|
|
81
|
+
const kid = controllerKey.kid;
|
|
82
|
+
const did = identifier.did;
|
|
83
|
+
const addVerificationMethodRequest = {
|
|
84
|
+
params: [
|
|
85
|
+
{
|
|
86
|
+
from,
|
|
87
|
+
did,
|
|
88
|
+
isSecp256k1: true,
|
|
89
|
+
vMethodId: calculateJwkThumbprint({ jwk: toJwk(key.publicKeyHex, key.type) }),
|
|
90
|
+
publicKey: formatEbsiPublicKey({ key: key, type: key.type }),
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
rpcMethod: EbsiRpcMethod.ADD_VERIFICATION_METHOD,
|
|
94
|
+
rpcId,
|
|
95
|
+
apiOpts,
|
|
96
|
+
accessToken,
|
|
97
|
+
};
|
|
98
|
+
let rpcResponse = await ebsiSignAndSendTransaction({
|
|
99
|
+
rpcRequest: addVerificationMethodRequest,
|
|
100
|
+
kid,
|
|
101
|
+
accessToken: accessToken,
|
|
102
|
+
apiOpts,
|
|
103
|
+
}, context);
|
|
104
|
+
const vMethodId = calculateJwkThumbprintForKey({ key });
|
|
105
|
+
for (const vmRelationshipsKey in vmRelationships) {
|
|
106
|
+
const addVerificationMethodRelationshipRequest = {
|
|
107
|
+
params: [
|
|
108
|
+
{
|
|
109
|
+
from,
|
|
110
|
+
did,
|
|
111
|
+
vMethodId,
|
|
112
|
+
name: vmRelationshipsKey,
|
|
113
|
+
notAfter: Date.now() / 1000 - 60_000,
|
|
114
|
+
notBefore: Date.now() / 1000 + 5 * 365 * 24 * 60 * 60,
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
rpcMethod: EbsiRpcMethod.ADD_VERIFICATION_RELATIONSHIP,
|
|
118
|
+
rpcId,
|
|
119
|
+
apiOpts,
|
|
120
|
+
accessToken,
|
|
121
|
+
};
|
|
122
|
+
rpcResponse = await ebsiSignAndSendTransaction({
|
|
123
|
+
rpcRequest: addVerificationMethodRelationshipRequest,
|
|
124
|
+
previousTxResponse: rpcResponse,
|
|
125
|
+
kid,
|
|
126
|
+
accessToken,
|
|
127
|
+
apiOpts,
|
|
128
|
+
}, context);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
async addService(args, context) {
|
|
132
|
+
const { identifier, service, options } = args;
|
|
133
|
+
const { accessToken, apiOpts, rpcId = randomRpcId() } = options;
|
|
134
|
+
const controllerKey = getControllerKey({ identifier });
|
|
135
|
+
const from = getEthereumAddressFromKey({ key: controllerKey });
|
|
136
|
+
const did = identifier.did;
|
|
137
|
+
const kid = controllerKey.kid;
|
|
138
|
+
const addServiceRequest = {
|
|
139
|
+
params: [
|
|
140
|
+
{
|
|
141
|
+
from,
|
|
142
|
+
did,
|
|
143
|
+
service,
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
rpcMethod: EbsiRpcMethod.ADD_SERVICE,
|
|
147
|
+
rpcId,
|
|
148
|
+
apiOpts,
|
|
149
|
+
accessToken,
|
|
150
|
+
};
|
|
151
|
+
return await ebsiSignAndSendTransaction({
|
|
152
|
+
rpcRequest: addServiceRequest,
|
|
153
|
+
kid,
|
|
154
|
+
accessToken,
|
|
155
|
+
apiOpts,
|
|
156
|
+
}, context);
|
|
157
|
+
}
|
|
158
|
+
deleteIdentifier(args, context) {
|
|
159
|
+
return Promise.resolve(true);
|
|
160
|
+
}
|
|
161
|
+
removeKey(args, context) {
|
|
162
|
+
throw new Error(`Not (yet) implemented for the EBSI did provider`);
|
|
163
|
+
}
|
|
164
|
+
removeService(args, context) {
|
|
165
|
+
throw new Error(`Not (yet) implemented for the EBSI did provider`);
|
|
166
|
+
}
|
|
167
|
+
// TODO How does it work? Not inferable from the api: https://hub.ebsi.eu/apis/pilot/did-registry/v5/post-jsonrpc#updatebasedocument
|
|
168
|
+
async updateIdentifier(args, context) {
|
|
169
|
+
throw new Error(`Not (yet) implemented for the EBSI did provider`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=EbsiDidProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EbsiDidProvider.js","sourceRoot":"","sources":["../../src/did/EbsiDidProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EbsiDidResolver.d.ts","sourceRoot":"","sources":["../../src/did/EbsiDidResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,WAAW,EAAmC,MAAM,cAAc,CAAA;AAatH,wBAAgB,kBAAkB;;EAEjC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Resolver } from 'did-resolver';
|
|
2
|
+
import { getResolver } from '@sphereon/ssi-sdk-ext.did-resolver-ebsi';
|
|
3
|
+
const resolveDidEbsi = async (didUrl, _parsed, _resolver, options) => {
|
|
4
|
+
const resolver = new Resolver({ ...getResolver() });
|
|
5
|
+
return resolver.resolve(didUrl, options);
|
|
6
|
+
};
|
|
7
|
+
export function getDidEbsiResolver() {
|
|
8
|
+
return { key: resolveDidEbsi };
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=EbsiDidResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EbsiDidResolver.js","sourceRoot":"","sources":["../../src/did/EbsiDidResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiF,QAAQ,EAAE,MAAM,cAAc,CAAA;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AAErE,MAAM,cAAc,GAAgB,KAAK,EACvC,MAAc,EACd,OAAkB,EAClB,SAAqB,EACrB,OAA6B,EACC,EAAE;IAChC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAA;IACnD,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { IAgentContext, IIdentifier, IKey, IKeyManager, MinimalImportableKey, TKeyType } from '@veramo/core';
|
|
2
|
+
import { ApiOpts, EbsiApiVersion, EbsiEnvironment, IRequiredContext, WellknownOpts } from '../types/IEbsiSupport';
|
|
3
|
+
import { CreateEbsiDidParams, EbsiDidRegistryAPIEndpoints, EbsiDidSpecInfo, EbsiKeyType, EbsiPublicKeyPurpose, EbsiRPCResponse, IContext, IKeyOpts, RpcMethodArgs } from './types';
|
|
4
|
+
export declare function generateEbsiMethodSpecificId(specInfo?: EbsiDidSpecInfo): string;
|
|
5
|
+
export declare function generateOrUseProvidedEbsiPrivateKeyHex(specInfo?: EbsiDidSpecInfo, privateKeyBytes?: Uint8Array): string;
|
|
6
|
+
/**
|
|
7
|
+
* Returns the public key in the correct format to be used with the did registry v5
|
|
8
|
+
* - in case of Secp256k1 - returns the uncompressed public key as hex string prefixed with 0x04
|
|
9
|
+
* - in case of Secp256r1 - returns the jwk public key as hex string
|
|
10
|
+
* @param {{ key: IKey, type: EbsiKeyType }} args
|
|
11
|
+
* - key is the cryptographic key containing the public key
|
|
12
|
+
* - type is the type of the key which can be Secp256k1 or Secp256r1
|
|
13
|
+
* @returns {string} The properly formatted public key
|
|
14
|
+
* @throws {Error} If the key type is invalid
|
|
15
|
+
*/
|
|
16
|
+
export declare const formatEbsiPublicKey: (args: {
|
|
17
|
+
key: IKey;
|
|
18
|
+
type: TKeyType;
|
|
19
|
+
}) => string;
|
|
20
|
+
export declare const ebsiGetIssuerMock: (args: {
|
|
21
|
+
environment?: EbsiEnvironment;
|
|
22
|
+
version?: EbsiApiVersion;
|
|
23
|
+
}) => string;
|
|
24
|
+
export declare const ebsiGetAuthorisationServer: (args: {
|
|
25
|
+
environment?: EbsiEnvironment;
|
|
26
|
+
version?: EbsiApiVersion;
|
|
27
|
+
}) => string;
|
|
28
|
+
export declare const ebsiGetRegistryAPIUrls: (args: {
|
|
29
|
+
environment?: EbsiEnvironment;
|
|
30
|
+
version?: EbsiApiVersion;
|
|
31
|
+
}) => EbsiDidRegistryAPIEndpoints;
|
|
32
|
+
export declare const determineWellknownEndpoint: ({ environment, version, type, system, mock }: WellknownOpts) => string;
|
|
33
|
+
export declare const ebsiSignAndSendTransaction: (args: {
|
|
34
|
+
rpcRequest: RpcMethodArgs;
|
|
35
|
+
previousTxResponse?: EbsiRPCResponse;
|
|
36
|
+
kid: string;
|
|
37
|
+
accessToken: string;
|
|
38
|
+
apiOpts?: ApiOpts;
|
|
39
|
+
}, context: IContext) => Promise<EbsiRPCResponse>;
|
|
40
|
+
export declare const ebsiGenerateOrUseKeyPair: (args: {
|
|
41
|
+
keyOpts?: IKeyOpts;
|
|
42
|
+
keyType: EbsiKeyType;
|
|
43
|
+
kms: string;
|
|
44
|
+
controllerKey?: boolean;
|
|
45
|
+
}, context: IAgentContext<IKeyManager>) => Promise<MinimalImportableKey>;
|
|
46
|
+
export declare const toMinimalImportableKey: (args: {
|
|
47
|
+
key?: IKeyOpts;
|
|
48
|
+
type: EbsiKeyType;
|
|
49
|
+
kms: string;
|
|
50
|
+
}) => Promise<MinimalImportableKey>;
|
|
51
|
+
export declare const assertedPurposes: (args: {
|
|
52
|
+
key?: IKeyOpts;
|
|
53
|
+
}) => EbsiPublicKeyPurpose[] | undefined;
|
|
54
|
+
export declare const setDefaultPurposes: (args: {
|
|
55
|
+
key?: IKeyOpts;
|
|
56
|
+
type: EbsiKeyType;
|
|
57
|
+
}) => EbsiPublicKeyPurpose[];
|
|
58
|
+
export declare const randomRpcId: () => number;
|
|
59
|
+
export declare const ebsiCreateDidOnLedger: (args: CreateEbsiDidParams, context: IRequiredContext) => Promise<{
|
|
60
|
+
identifier: IIdentifier;
|
|
61
|
+
addVerificationMethod: EbsiRPCResponse;
|
|
62
|
+
insertDidDoc: EbsiRPCResponse;
|
|
63
|
+
addAssertionMethodRelationship: EbsiRPCResponse;
|
|
64
|
+
addAuthenticationRelationship: EbsiRPCResponse;
|
|
65
|
+
}>;
|
|
66
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/did/functions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAM5G,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGjH,OAAO,EAEL,mBAAmB,EAEnB,2BAA2B,EAC3B,eAAe,EACf,WAAW,EACX,oBAAoB,EAEpB,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,aAAa,EAEd,MAAM,SAAS,CAAA;AAEhB,wBAAgB,4BAA4B,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAU/E;AAED,wBAAgB,sCAAsC,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,UAAU,GAAG,MAAM,CAWvH;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,SAAU;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,KAAG,MAwBzE,CAAA;AAED,eAAO,MAAM,iBAAiB,SAAU;IAAE,WAAW,CAAC,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,KAAG,MAMrG,CAAA;AAED,eAAO,MAAM,0BAA0B,SAAU;IAAE,WAAW,CAAC,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,KAAG,MAG9G,CAAA;AAED,eAAO,MAAM,sBAAsB,SAAU;IAAE,WAAW,CAAC,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,KAAG,2BAO1G,CAAA;AAED,eAAO,MAAM,0BAA0B,iDAAgE,aAAa,KAAG,MAItH,CAAA;AAED,eAAO,MAAM,0BAA0B,SAC/B;IACJ,UAAU,EAAE,aAAa,CAAA;IACzB,kBAAkB,CAAC,EAAE,eAAe,CAAA;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,wBAEA,QAAQ,eAAe,CAyDzB,CAAA;AAED,eAAO,MAAM,wBAAwB,SAC7B;IACJ,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,WAAW,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,WACQ,cAAc,WAAW,CAAC,kCAyBpC,CAAA;AAED,eAAO,MAAM,sBAAsB,SAAgB;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAG,QAAQ,oBAAoB,CAkBnI,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,KAAG,oBAAoB,EAAE,GAAG,SA2BpF,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAU;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,KAAG,oBAAoB,EAapG,CAAA;AAED,eAAO,MAAM,WAAW,QAAO,MAE9B,CAAA;AAED,eAAO,MAAM,qBAAqB,SAC1B,mBAAmB;gBAGb,WAAW;2BACA,eAAe;kBACxB,eAAe;oCACG,eAAe;mCAChB,eAAe;EAsO/C,CAAA"}
|