@powerhousedao/reactor-browser 6.0.0-dev.25 → 6.0.0-dev.27
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/dist/src/actions/dispatch.d.ts.map +1 -1
- package/dist/src/actions/dispatch.js +5 -1
- package/dist/src/actions/dispatch.js.map +1 -1
- package/dist/src/actions/document.d.ts.map +1 -1
- package/dist/src/actions/document.js +3 -3
- package/dist/src/actions/document.js.map +1 -1
- package/dist/src/actions/drive.d.ts.map +1 -1
- package/dist/src/actions/drive.js +0 -1
- package/dist/src/actions/drive.js.map +1 -1
- package/dist/src/hooks/document-operations.d.ts +20 -0
- package/dist/src/hooks/document-operations.d.ts.map +1 -0
- package/dist/src/hooks/document-operations.js +92 -0
- package/dist/src/hooks/document-operations.js.map +1 -0
- package/dist/src/hooks/index.d.ts +1 -0
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +1 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/use-get-switchboard-link.d.ts.map +1 -1
- package/dist/src/hooks/use-get-switchboard-link.js +5 -4
- package/dist/src/hooks/use-get-switchboard-link.js.map +1 -1
- package/dist/src/reactor-client-document-cache.d.ts.map +1 -1
- package/dist/src/reactor-client-document-cache.js +1 -3
- package/dist/src/reactor-client-document-cache.js.map +1 -1
- package/dist/src/reactor.d.ts +14 -4
- package/dist/src/reactor.d.ts.map +1 -1
- package/dist/src/reactor.js +23 -13
- package/dist/src/reactor.js.map +1 -1
- package/dist/src/renown/utils.d.ts +2 -2
- package/dist/src/renown/utils.d.ts.map +1 -1
- package/dist/src/renown/utils.js +10 -19
- package/dist/src/renown/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
package/dist/src/reactor.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BrowserKeyStorage,
|
|
1
|
+
import { BrowserKeyStorage, RenownCryptoBuilder } from "@renown/sdk";
|
|
2
2
|
import { generateId } from "document-model/core";
|
|
3
3
|
import { setDrives } from "./hooks/drives.js";
|
|
4
4
|
import { getDrives } from "./utils/drives.js";
|
|
@@ -107,8 +107,8 @@ function createDebouncedRefreshReactorDataClient(debounceDelayMs = DEFAULT_DEBOU
|
|
|
107
107
|
}
|
|
108
108
|
export const refreshReactorData = createDebouncedRefreshReactorData();
|
|
109
109
|
export const refreshReactorDataClient = createDebouncedRefreshReactorDataClient();
|
|
110
|
-
export async function initLegacyReactor(legacyReactor, renown
|
|
111
|
-
await initJwtHandler(legacyReactor, renown
|
|
110
|
+
export async function initLegacyReactor(legacyReactor, renown) {
|
|
111
|
+
await initJwtHandler(legacyReactor, renown);
|
|
112
112
|
const errors = await legacyReactor.initialize();
|
|
113
113
|
const error = errors?.at(0);
|
|
114
114
|
if (error) {
|
|
@@ -140,23 +140,33 @@ export async function handleCreateFirstLocalDrive(reactor, localDrivesEnabled =
|
|
|
140
140
|
});
|
|
141
141
|
return document;
|
|
142
142
|
}
|
|
143
|
-
async function initJwtHandler(legacyReactor, renown
|
|
144
|
-
|
|
145
|
-
if (
|
|
146
|
-
user = await user();
|
|
147
|
-
}
|
|
148
|
-
if (!connectCrypto || !user) {
|
|
143
|
+
async function initJwtHandler(legacyReactor, renown) {
|
|
144
|
+
const user = renown?.user;
|
|
145
|
+
if (!renown || !user) {
|
|
149
146
|
return;
|
|
150
147
|
}
|
|
151
148
|
legacyReactor.setGenerateJwtHandler(async (driveUrl) => {
|
|
152
|
-
return
|
|
149
|
+
return renown.getBearerToken({
|
|
153
150
|
expiresIn: 10,
|
|
151
|
+
aud: driveUrl,
|
|
154
152
|
});
|
|
155
153
|
});
|
|
156
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* @deprecated Use {@link initRenownCrypto} instead
|
|
157
|
+
*
|
|
158
|
+
* Initialize ConnectCrypto
|
|
159
|
+
* @returns ConnectCrypto instance
|
|
160
|
+
*/
|
|
157
161
|
export async function initConnectCrypto() {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
162
|
+
return initRenownCrypto();
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Initialize RenownCrypto
|
|
166
|
+
* @returns RenownCrypto instance
|
|
167
|
+
*/
|
|
168
|
+
export async function initRenownCrypto() {
|
|
169
|
+
const keyStorage = await BrowserKeyStorage.create();
|
|
170
|
+
return await new RenownCryptoBuilder().withKeyPairStorage(keyStorage).build();
|
|
161
171
|
}
|
|
162
172
|
//# sourceMappingURL=reactor.js.map
|
package/dist/src/reactor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../src/reactor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../src/reactor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAOrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAM9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,SAAqC,EAAE,EACY,EAAE;IACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAEvD,MAAM,YAAY,GAA8B,gBAAgB,CAAC,GAAG,CAClE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACb,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE;YACP,WAAW,EAAE,QAAQ;YACrB,gBAAgB,EAAE,IAAI;YACtB,SAAS,EAAE;gBACT;oBACE,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,kBAAkB;wBACxB,eAAe,EAAE,iBAAiB;qBACnC;oBACD,MAAM,EAAE;wBACN,MAAM,EAAE,CAAC,MAAM,CAAC;wBAChB,UAAU,EAAE,CAAC,GAAG,CAAC;wBACjB,YAAY,EAAE,CAAC,GAAG,CAAC;wBACnB,KAAK,EAAE,CAAC,QAAQ,CAAC;qBAClB;oBACD,KAAK,EAAE,kBAAkB;oBACzB,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,IAAI;iBACb;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF,CAAC,CACH,CAAC;IAEF,OAAO;QACL,aAAa,EAAE;YACb,YAAY;YACZ,qBAAqB,EACnB,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBACzB,CAAC,CAAC;oBACE,QAAQ,EAAE,4BAA4B;oBACtC,IAAI,EAAE,gBAAgB;iBACvB;gBACH,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE;SACnC;KACF,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAE5C,KAAK,UAAU,mBAAmB,CAAC,OAAyC;IAC1E,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,SAAS,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,OAAmC;IAC1E,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;IACzE,SAAS,CAAC,MAAM,CAAC,OAAkC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,iCAAiC,CACxC,eAAe,GAAG,yBAAyB,EAC3C,oBAAoB,GAAG,8BAA8B;IAErD,IAAI,OAAO,GAAyC,IAAI,CAAC;IACzD,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,OAAO,CAAC,OAAyC,EAAE,SAAS,GAAG,KAAK,EAAE,EAAE;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,oBAAoB,GAAG,GAAG,GAAG,eAAe,CAAC;QAEnD,4BAA4B;QAC5B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,wFAAwF;QACxF,IAAI,SAAS,IAAI,oBAAoB,IAAI,oBAAoB,EAAE,CAAC;YAC9D,eAAe,GAAG,GAAG,CAAC;YACtB,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,+BAA+B;QAC/B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxB,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,KAAK,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC,EAAE,eAAe,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,uCAAuC,CAC9C,eAAe,GAAG,yBAAyB,EAC3C,oBAAoB,GAAG,8BAA8B;IAErD,IAAI,OAAO,GAAyC,IAAI,CAAC;IACzD,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,OAAO,CAAC,OAAmC,EAAE,SAAS,GAAG,KAAK,EAAE,EAAE;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,oBAAoB,GAAG,GAAG,GAAG,eAAe,CAAC;QAEnD,4BAA4B;QAC5B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,wFAAwF;QACxF,IAAI,SAAS,IAAI,oBAAoB,IAAI,oBAAoB,EAAE,CAAC;YAC9D,eAAe,GAAG,GAAG,CAAC;YACtB,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,+BAA+B;QAC/B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxB,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,KAAK,yBAAyB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,CAAC,EAAE,eAAe,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,iCAAiC,EAAE,CAAC;AACtE,MAAM,CAAC,MAAM,wBAAwB,GACnC,uCAAuC,EAAE,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,aAAmC,EACnC,MAA2B;IAE3B,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAyC,EACzC,kBAAkB,GAAG,IAAI;IAEzB,IAAI,CAAC,kBAAkB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAEzD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS;QAAE,OAAO;IAEtB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,kBAAkB,OAAO,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC;QACtC,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,IAAI;SACX;QACD,KAAK,EAAE;YACL,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;SACb;KACF,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,aAAmC,EACnC,MAA2B;IAE3B,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,CAAC;IAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,aAAa,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACrD,OAAO,MAAM,CAAC,cAAc,CAAC;YAC3B,SAAS,EAAE,EAAE;YACb,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC;IACpD,OAAO,MAAM,IAAI,mBAAmB,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;AAChF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IRenown, User } from "@renown/sdk";
|
|
2
2
|
import { type IDocumentDriveServer } from "document-drive";
|
|
3
3
|
export declare function openRenown(): void;
|
|
4
|
-
export declare function login(userDid: string | undefined, reactor: IDocumentDriveServer | undefined, renown: IRenown | undefined
|
|
4
|
+
export declare function login(userDid: string | undefined, reactor: IDocumentDriveServer | undefined, renown: IRenown | undefined): Promise<User | undefined>;
|
|
5
5
|
export declare function logout(): Promise<void>;
|
|
6
6
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/renown/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/renown/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAU,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAInE,wBAAgB,UAAU,SASzB;AAED,wBAAsB,KAAK,CACzB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,MAAM,EAAE,OAAO,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAgC3B;AAED,wBAAsB,MAAM,kBAM3B"}
|
package/dist/src/renown/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { setLoginStatus, setUser } from "../connect.js";
|
|
2
1
|
import { logger } from "document-drive";
|
|
2
|
+
import { setLoginStatus, setUser } from "../connect.js";
|
|
3
3
|
import { RENOWN_CHAIN_ID, RENOWN_NETWORK_ID, RENOWN_URL } from "./constants.js";
|
|
4
4
|
export function openRenown() {
|
|
5
5
|
const url = new URL(RENOWN_URL);
|
|
@@ -10,36 +10,27 @@ export function openRenown() {
|
|
|
10
10
|
url.searchParams.set("returnUrl", returnUrl.toJSON());
|
|
11
11
|
window.open(url, "_self")?.focus();
|
|
12
12
|
}
|
|
13
|
-
export async function login(userDid, reactor, renown
|
|
14
|
-
if (!renown || !
|
|
13
|
+
export async function login(userDid, reactor, renown) {
|
|
14
|
+
if (!renown || !reactor) {
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
17
|
try {
|
|
18
18
|
setLoginStatus("checking");
|
|
19
|
-
|
|
20
|
-
user = user instanceof Promise ? await user : user;
|
|
19
|
+
const user = renown.user;
|
|
21
20
|
if (user?.did && (user.did === userDid || !userDid)) {
|
|
22
21
|
setLoginStatus("authorized");
|
|
23
22
|
setUser(user);
|
|
24
|
-
reactor.setGenerateJwtHandler(async (driveUrl) =>
|
|
25
|
-
expiresIn: 10,
|
|
26
|
-
}));
|
|
23
|
+
reactor.setGenerateJwtHandler(async (driveUrl) => renown.getBearerToken({ expiresIn: 10, aud: driveUrl }));
|
|
27
24
|
return user;
|
|
28
25
|
}
|
|
29
26
|
if (!userDid) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const newUser = await renown.login(userDid ?? "");
|
|
33
|
-
if (newUser) {
|
|
34
|
-
setLoginStatus("authorized");
|
|
35
|
-
setUser(newUser);
|
|
36
|
-
reactor.setGenerateJwtHandler(async (driveUrl) => connectCrypto.getBearerToken(driveUrl, newUser.address, true, {
|
|
37
|
-
expiresIn: 10,
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
27
|
setLoginStatus("not-authorized");
|
|
28
|
+
return;
|
|
42
29
|
}
|
|
30
|
+
const newUser = await renown.login(userDid);
|
|
31
|
+
setLoginStatus("authorized");
|
|
32
|
+
setUser(newUser);
|
|
33
|
+
reactor.setGenerateJwtHandler(async (driveUrl) => renown.getBearerToken({ aud: driveUrl, expiresIn: 10 }));
|
|
43
34
|
}
|
|
44
35
|
catch (error) {
|
|
45
36
|
setLoginStatus("not-authorized");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/renown/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/renown/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA6B,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEhF,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACtD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACnD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5E,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAA2B,EAC3B,OAAyC,EACzC,MAA2B;IAE3B,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAEzB,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,cAAc,CAAC,YAAY,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAC/C,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CACxD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAC/C,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACxD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;IACzC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1B,MAAM,MAAM,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC9B,CAAC"}
|