From 214ffd84a8ab24cd05485d01519487e4d09f2233 Mon Sep 17 00:00:00 2001 From: Rizky Date: Sat, 21 Oct 2023 16:42:24 +0700 Subject: [PATCH] fix loading --- app/srv/package.json | 5 +- app/srv/ws/edit/action/sv-local.ts | 1 - app/srv/ws/sync/actions.ts | 8 +-- app/srv/ws/sync/actions/index.ts | 1 + app/srv/ws/sync/actions/page_load.ts | 55 ++++++++++++++++++ app/srv/ws/sync/editor/load.ts | 2 +- app/srv/ws/sync/entity/docs.ts | 24 ++++++++ app/srv/ws/sync/entity/snapshot.ts | 46 +++++++++++++++ app/srv/ws/sync/{ => entity}/user.ts | 6 +- app/srv/ws/sync/sync-handler.ts | 28 +++++---- app/srv/ws/sync/type.ts | 2 +- app/web/package.json | 1 + app/web/src/base/page/all.tsx | 6 +- app/web/src/base/page/ed.tsx | 10 ++-- app/web/src/index.tsx | 3 + app/web/src/render/ed/ed-base.tsx | 26 +++++++++ app/web/src/render/ed/logic/ed-global.ts | 13 ++++- app/web/src/render/ed/logic/ed-route.ts | 32 ++++++++-- .../render/ed/{ed.tsx => logic/ed-sync.tsx} | 28 ++------- app/web/src/render/ed/logic/tree/build.tsx | 5 ++ app/web/src/utils/sync/client.ts | 26 ++++----- app/web/src/utils/types/root.ts | 4 +- bun.lockb | Bin 27616 -> 245040 bytes pkgs/core/index.ts | 8 ++- pkgs/web-utils/src/global.ts | 2 + 25 files changed, 265 insertions(+), 77 deletions(-) create mode 100644 app/srv/ws/sync/actions/page_load.ts create mode 100644 app/srv/ws/sync/entity/docs.ts create mode 100644 app/srv/ws/sync/entity/snapshot.ts rename app/srv/ws/sync/{ => entity}/user.ts (88%) create mode 100644 app/web/src/render/ed/ed-base.tsx rename app/web/src/render/ed/{ed.tsx => logic/ed-sync.tsx} (58%) create mode 100644 app/web/src/render/ed/logic/tree/build.tsx diff --git a/app/srv/package.json b/app/srv/package.json index d34a8386..1ea4ea1b 100644 --- a/app/srv/package.json +++ b/app/srv/package.json @@ -11,6 +11,9 @@ "lmdb": "^2.8.5", "mime-types": "^2.1.35", "msgpackr": "^1.9.9", - "radix3": "^1.1.0" + "radix3": "^1.1.0", + "y-pojo": "^0.0.8", + "yjs": "^13.6.8", + "yjs-types": "^0.0.1" } } diff --git a/app/srv/ws/edit/action/sv-local.ts b/app/srv/ws/edit/action/sv-local.ts index 761074c2..219cfac2 100644 --- a/app/srv/ws/edit/action/sv-local.ts +++ b/app/srv/ws/edit/action/sv-local.ts @@ -32,7 +32,6 @@ export const svLocal = async (ws: any, msg: WS_MSG_SV_LOCAL) => { if (doc) { const diff_remote = Y.encodeStateAsUpdate(doc, changes); const sv_remote = Y.encodeStateVector(doc); - const sendmsg: WS_MSG_SVDIFF_REMOTE = { diff_remote: diff_remote.toString(), sv_remote: sv_remote.toString(), diff --git a/app/srv/ws/sync/actions.ts b/app/srv/ws/sync/actions.ts index 234e830e..5a645c7f 100644 --- a/app/srv/ws/sync/actions.ts +++ b/app/srv/ws/sync/actions.ts @@ -1,5 +1,5 @@ -import { component, site, page } from "dbgen"; -import { ESite } from "../../../web/src/render/ed/logic/ed-global"; +import { component, page } from "dbgen"; +import { EPage, ESite } from "../../../web/src/render/ed/logic/ed-global"; /* WARNING: @@ -15,7 +15,7 @@ export const SyncActions = { list: async () => ({}) as Record, group: async () => ({}) as Record, - load: async (id: string) => ({}) as ESite | undefined, + load: async (id: string) => ({}) as ESite | void, }, comp: { list: () => ({}) as Record>, @@ -25,6 +25,6 @@ export const SyncActions = { page: { list: (id_site: string) => ({}) as Record>, - load: (id: string) => ({}) as Uint8Array, + load: async (id: string) => ({}) as EPage | void, }, }; diff --git a/app/srv/ws/sync/actions/index.ts b/app/srv/ws/sync/actions/index.ts index cf2dd000..77660dbc 100644 --- a/app/srv/ws/sync/actions/index.ts +++ b/app/srv/ws/sync/actions/index.ts @@ -1,2 +1,3 @@ export * from "./site_load"; export * from "./site_group"; +export * from "./page_load"; diff --git a/app/srv/ws/sync/actions/page_load.ts b/app/srv/ws/sync/actions/page_load.ts new file mode 100644 index 00000000..089bf093 --- /dev/null +++ b/app/srv/ws/sync/actions/page_load.ts @@ -0,0 +1,55 @@ +import { syncronize } from "y-pojo"; +import { SAction } from "../actions"; +import { Y, docs } from "../entity/docs"; +import { snapshot } from "../entity/snapshot"; +import { ActionCtx } from "../type"; + +export const page_load: SAction["page"]["load"] = async function ( + this: ActionCtx, + id: string +) { + let ss = snapshot.get("page", id); + let ydoc = docs.page[id]; + + if (!ss || !ydoc) { + const page = await db.page.findFirst({ where: { id } }); + if (page) { + const doc = new Y.Doc(); + let root = doc.getMap("map"); + syncronize(root, { id, root: page.content_tree }); + + const um = new Y.UndoManager(root, { ignoreRemoteMapChanges: true }); + docs.page[id] = { + doc: doc as any, + id, + um, + }; + + const bin = Y.encodeStateAsUpdate(doc); + snapshot.set({ + bin, + id, + type: "page", + name: page.name, + ts: Date.now(), + url: page.url, + }); + + return { + id: id, + url: page.url, + name: page.name, + snapshot: bin, + }; + } + } + + if (ss) { + return { + id: ss.id, + url: ss.url, + name: ss.name, + snapshot: ss.bin, + }; + } +}; diff --git a/app/srv/ws/sync/editor/load.ts b/app/srv/ws/sync/editor/load.ts index 00f7c057..0b2761af 100644 --- a/app/srv/ws/sync/editor/load.ts +++ b/app/srv/ws/sync/editor/load.ts @@ -1,4 +1,4 @@ -import { user } from "../user"; +import { user } from "../entity/user"; export const loadDefaultSite = async (user_id: string) => { const conf = user.conf.get(user_id); diff --git a/app/srv/ws/sync/entity/docs.ts b/app/srv/ws/sync/entity/docs.ts new file mode 100644 index 00000000..0b5f288b --- /dev/null +++ b/app/srv/ws/sync/entity/docs.ts @@ -0,0 +1,24 @@ +import * as Y from "yjs"; +import { TypedDoc, TypedMap } from "yjs-types"; +import { MItem } from "../../../../web/src/utils/types/item"; +import { DPage } from "../../../../web/src/utils/types/root"; +export * as Y from "yjs"; + +export const docs = { + page: {} as Record< + string, + { + id: string; + doc: DPage; + um: Y.UndoManager; + } + >, + comp: {} as Record< + string, + { + id: string; + doc: TypedDoc<{ map: TypedMap<{ id: string; item: MItem }> }>; + um: Y.UndoManager; + } + >, +}; diff --git a/app/srv/ws/sync/entity/snapshot.ts b/app/srv/ws/sync/entity/snapshot.ts new file mode 100644 index 00000000..89200fbf --- /dev/null +++ b/app/srv/ws/sync/entity/snapshot.ts @@ -0,0 +1,46 @@ +import { dir } from "dir"; +import { RootDatabase, open } from "lmdb"; +import { g } from "utils/global"; + +const emptySnapshot = { + type: "" as "" | "comp" | "page", + id: "", + bin: new Uint8Array(), + url: "", + name: "", + ts: Date.now(), +}; +export type DocSnapshot = typeof emptySnapshot; + +export const snapshot = { + _db: null as null | RootDatabase, + init() { + this._db = open({ + name: "user-conf", + path: dir.path(`${g.datadir}/lmdb/doc-snapshot.lmdb`), + }); + return this._db; + }, + get db() { + if (!this._db) { + this._db = this.init(); + } + return this._db; + }, + getOrCreate(data: DocSnapshot) { + const id = `${data.type}-${data.id}`; + let res = this.db.get(id); + if (!res) { + this.db.put(id, structuredClone(emptySnapshot)); + res = this.db.get(id); + } + return res as DocSnapshot; + }, + get(type: string, id: string) { + return this.db.get(`${type}-${id}`); + }, + set(data: DocSnapshot) { + const id = `${data.type}-${data.id}`; + this.db.put(id, data); + }, +}; diff --git a/app/srv/ws/sync/user.ts b/app/srv/ws/sync/entity/user.ts similarity index 88% rename from app/srv/ws/sync/user.ts rename to app/srv/ws/sync/entity/user.ts index c602944b..53fd594f 100644 --- a/app/srv/ws/sync/user.ts +++ b/app/srv/ws/sync/entity/user.ts @@ -16,13 +16,11 @@ export const user = { name: "user-conf", path: dir.path(`${g.datadir}/lmdb/user-conf.lmdb`), }); + return this._db; }, get db() { if (!this._db) { - this._db = open({ - name: "user-conf", - path: dir.path(`${g.datadir}/lmdb/user-conf.lmdb`), - }); + this._db = this.init(); } return this._db; }, diff --git a/app/srv/ws/sync/sync-handler.ts b/app/srv/ws/sync/sync-handler.ts index 18c338ba..fe644a40 100644 --- a/app/srv/ws/sync/sync-handler.ts +++ b/app/srv/ws/sync/sync-handler.ts @@ -7,7 +7,7 @@ import { loadDefaultSite } from "./editor/load"; import { ActionCtx, SyncType } from "./type"; import { SyncActionPaths } from "./actions-def"; import * as actions from "./actions/index"; -import { UserConf, user } from "./user"; +import { UserConf, user } from "./entity/user"; const packr = new Packr({ structuredClone: true }); const conns = new Map< @@ -79,17 +79,23 @@ export const syncHandler: WebSocketHandler = { const code = msg.code as keyof typeof SyncActionPaths; const actionName = SyncActionPaths[code].replace(/\./gi, "_"); if (actionName) { - const action = (actions as any)[actionName].bind({ - user: { id: conn.user_id, conf: conn.conf }, - } as ActionCtx); + const baseAction = (actions as any)[actionName]; + if (!baseAction) { + console.log(`app/ws/edit/sync/${actionName}.ts not found}`); + } + if (baseAction) { + const action = baseAction.bind({ + user: { id: conn.user_id, conf: conn.conf }, + } as ActionCtx); - ws.sendBinary( - packr.pack({ - type: SyncType.ActionResult, - argid: msg.argid, - val: await action(...msg.args), - }) - ); + ws.sendBinary( + packr.pack({ + type: SyncType.ActionResult, + argid: msg.argid, + val: await action(...msg.args), + }) + ); + } } } } diff --git a/app/srv/ws/sync/type.ts b/app/srv/ws/sync/type.ts index 4360da65..ec86e988 100644 --- a/app/srv/ws/sync/type.ts +++ b/app/srv/ws/sync/type.ts @@ -1,4 +1,4 @@ -import { UserConf } from "./user"; +import { UserConf } from "./entity/user"; export enum SyncType { ClientID, diff --git a/app/web/package.json b/app/web/package.json index b8ae8980..40aa1866 100644 --- a/app/web/package.json +++ b/app/web/package.json @@ -22,6 +22,7 @@ "esbuild-wasm": "^0.19.4", "hash-wasm": "^4.10.0", "idb-keyval": "^6.2.1", + "immer": "^10.0.3", "js-base64": "^3.7.5", "lodash.capitalize": "^4.2.1", "lodash.concat": "^4.5.0", diff --git a/app/web/src/base/page/all.tsx b/app/web/src/base/page/all.tsx index f41c0817..824638e1 100644 --- a/app/web/src/base/page/all.tsx +++ b/app/web/src/base/page/all.tsx @@ -1,8 +1,8 @@ import { useEffect } from "react"; import { page, useGlobal } from "web-utils"; -import { Loading } from "../../utils/ui/loading"; -import { bootEd } from "../../render/ed/ed"; import { EDGlobal } from "../../render/ed/logic/ed-global"; +import { edInitSync } from "../../render/ed/logic/ed-sync"; +import { Loading } from "../../utils/ui/loading"; export default page({ url: "**", @@ -14,7 +14,7 @@ export default page({ location.pathname === "/ed" || location.pathname.startsWith("/ed/") ) { - bootEd(p); + edInitSync(p); } else if (location.pathname.startsWith("/editor")) { const arr = location.pathname.split("/"); if (arr.length <= 2) { diff --git a/app/web/src/base/page/ed.tsx b/app/web/src/base/page/ed.tsx index cef1d024..085af4e7 100644 --- a/app/web/src/base/page/ed.tsx +++ b/app/web/src/base/page/ed.tsx @@ -1,17 +1,19 @@ import { page, useGlobal } from "web-utils"; -import { Ed, bootEd } from "../../render/ed/ed"; +import { EdBase } from "../../render/ed/ed-base"; import { EDGlobal } from "../../render/ed/logic/ed-global"; import { Loading } from "../../utils/ui/loading"; +import { initSync } from "wasm-gzip"; +import { edInitSync } from "../../render/ed/logic/ed-sync"; export default page({ url: "/ed/:site_id/:page_id", component: ({}) => { const p = useGlobal(EDGlobal, "EDITOR"); - if (!bootEd(p)) { - return ; + if (!edInitSync(p)) { + return ; } - return ; + return ; }, }); diff --git a/app/web/src/index.tsx b/app/web/src/index.tsx index 4bd82cf1..6bba11b9 100644 --- a/app/web/src/index.tsx +++ b/app/web/src/index.tsx @@ -4,6 +4,9 @@ import { Root } from "./base/root"; import "./index.css"; import { createAPI, createDB, reloadDBAPI } from "./utils/script/init-api"; import { w } from "./utils/types/general"; +import * as Y from "yjs"; + +(window as any).Y = Y; const start = async () => { const base = `${location.protocol}//${location.host}`; diff --git a/app/web/src/render/ed/ed-base.tsx b/app/web/src/render/ed/ed-base.tsx new file mode 100644 index 00000000..fbe8ecb0 --- /dev/null +++ b/app/web/src/render/ed/ed-base.tsx @@ -0,0 +1,26 @@ +import { useGlobal } from "web-utils"; +import { Loading } from "../../utils/ui/loading"; +import { EDGlobal } from "./logic/ed-global"; +import { edRoute } from "./logic/ed-route"; + +export const EdBase = () => { + const p = useGlobal(EDGlobal, "EDITOR"); + + if (p.status === "init") { + p.status = "ready"; + } + + edRoute(p); + + if (p.status === "loading") { + return ; + } + if (p.status === "site-not-found" || p.status === "page-not-found") { + return ( +
+ {p.status === "site-not-found" ? "Site not found" : "Page not found"} +
+ ); + } + return
Editor
; +}; diff --git a/app/web/src/render/ed/logic/ed-global.ts b/app/web/src/render/ed/logic/ed-global.ts index 10d983ff..058af517 100644 --- a/app/web/src/render/ed/logic/ed-global.ts +++ b/app/web/src/render/ed/logic/ed-global.ts @@ -1,4 +1,6 @@ import { clientStartSync } from "../../../utils/sync/client"; +import { IItem } from "../../../utils/types/item"; +import { DPage, IRoot } from "../../../utils/types/root"; const EmptySite = { id: "", @@ -9,8 +11,13 @@ const EmptySite = { config: { api_url: "" }, }; export type ESite = typeof EmptySite; +export type EPage = typeof EmptyPage; + const EmptyPage = { id: "", + name: "", + url: "", + snapshot: null as null | Uint8Array, }; export const EDGlobal = { @@ -22,7 +29,11 @@ export const EDGlobal = { | "ready", sync: null as unknown as Awaited>, site: EmptySite, - page: EmptyPage, + page: { + current: EmptyPage, + doc: null as null | DPage, + root: null as null | IRoot, + }, }; export type PG = typeof EDGlobal & { render: () => void }; diff --git a/app/web/src/render/ed/logic/ed-route.ts b/app/web/src/render/ed/logic/ed-route.ts index cdcf6312..23a585e3 100644 --- a/app/web/src/render/ed/logic/ed-route.ts +++ b/app/web/src/render/ed/logic/ed-route.ts @@ -1,7 +1,8 @@ +import { IRoot } from "../../../utils/types/root"; import { PG } from "./ed-global"; - +import { produce } from "immer"; export const edRoute = async (p: PG) => { - if (p.status === "init") { + if (p.status === "ready") { if (!p.site.domain && !p.site.name) { p.status = "loading"; const site = await p.sync.site.load(p.site.id); @@ -14,8 +15,31 @@ export const edRoute = async (p: PG) => { p.site = site; } - if (p.site) { - console.log(p.site); + if (p.page.current.id !== params.page_id || !p.page.current.snapshot) { + p.status = "loading"; + const page = await p.sync.page.load(params.page_id); + + if (!page) { + p.status = "page-not-found"; + p.render(); + return; + } + + p.page.current = page; + if (page.snapshot) { + const doc = new Y.Doc(); + Y.applyUpdate(doc, page.snapshot); + p.page.doc = doc as any; + + if (p.page.doc) { + const root = p.page.doc.getMap("map").get("root")?.toJSON() as IRoot; + if (root) { + p.page.root = produce(root, () => {}); + } + } + } + p.status = "ready"; + p.render(); } } }; diff --git a/app/web/src/render/ed/ed.tsx b/app/web/src/render/ed/logic/ed-sync.tsx similarity index 58% rename from app/web/src/render/ed/ed.tsx rename to app/web/src/render/ed/logic/ed-sync.tsx index cc47ab4c..51a8e98e 100644 --- a/app/web/src/render/ed/ed.tsx +++ b/app/web/src/render/ed/logic/ed-sync.tsx @@ -1,28 +1,8 @@ -import { useGlobal } from "web-utils"; -import { Loading } from "../../utils/ui/loading"; -import { EDGlobal, PG } from "./logic/ed-global"; -import { edRoute } from "./logic/ed-route"; -import { clientStartSync } from "../../utils/sync/client"; +import { clientStartSync } from "../../../utils/sync/client"; +import { Loading } from "../../../utils/ui/loading"; +import { PG } from "./ed-global"; -export const Ed = () => { - const p = useGlobal(EDGlobal, "EDITOR"); - - edRoute(p); - - if (p.status === "loading") { - return ; - } - if (p.status === "site-not-found" || p.status === "page-not-found") { - return ( -
- {p.status === "site-not-found" ? "Site not found" : "Page not found"} -
- ); - } - return
asfa
; -}; - -export const bootEd = (p: PG) => { +export const edInitSync = (p: PG) => { const session = JSON.parse( localStorage.getItem("prasi-session") || "null" ) as { data: { user: { id: string } } }; diff --git a/app/web/src/render/ed/logic/tree/build.tsx b/app/web/src/render/ed/logic/tree/build.tsx new file mode 100644 index 00000000..754dfd6b --- /dev/null +++ b/app/web/src/render/ed/logic/tree/build.tsx @@ -0,0 +1,5 @@ +import { IItem } from "../../../../utils/types/item"; +import { ISection } from "../../../../utils/types/section"; +import { PG } from "../ed-global"; + +export const treeRebuild = (items: (ISection | IItem)[]) => {}; diff --git a/app/web/src/utils/sync/client.ts b/app/web/src/utils/sync/client.ts index bd701a72..c13d2cbf 100644 --- a/app/web/src/utils/sync/client.ts +++ b/app/web/src/utils/sync/client.ts @@ -4,7 +4,10 @@ import { UseStore, get, set } from "idb-keyval"; import { Packr } from "msgpackr"; import { stringify } from "safe-stable-stringify"; import { SyncActions } from "../../../../srv/ws/sync/actions"; -import { SyncActionDefinition } from "../../../../srv/ws/sync/actions-def"; +import { + SyncActionDefinition, + SyncActionPaths, +} from "../../../../srv/ws/sync/actions-def"; import { initIDB } from "./idb"; import { SyncType } from "../../../../srv/ws/sync/type"; import { w } from "../types/general"; @@ -48,31 +51,23 @@ export const clientStartSync = async (arg: { const { user_id, events } = arg; conf.idb = initIDB(user_id); await connect(user_id, events); - const path: any[] = []; return new DeepProxy( SyncActionDefinition, - ({ trapName, value, key, DEFAULT, PROXY }) => { + ({ target, trapName, value, key, DEFAULT, PROXY }) => { if (trapName === "set") { throw new TypeError("target is immutable"); } - path.push(key); if (typeof value === "string") { - for (let i = 0; i < path.length; i++) { - if (path[i] !== "then") { - path.splice(0, i); - break; - } - } - return (...args: any[]) => - new Promise((resolve) => { + return (...args: any[]) => { + return new Promise((resolve) => { doAction({ - path: path.join("."), code: value, resolve, args, }); }); + }; } if (trapName === "get") { @@ -168,16 +163,16 @@ const loadEventOffline = async (name: ClientEvent) => { }; const doAction = async (arg: { - path: string; code: string; resolve: (value: any) => void; args: any[]; }) => { - const { path, args, code, resolve } = arg; + const { args, code, resolve } = arg; const ws = conf.ws; const idb = conf.idb; if (idb) { const sargs = stringify(args); + const path = (SyncActionPaths as any)[code]; const argid = await xxhash32(`op-${path}-${sargs}`); if (ws && ws.readyState === ws.OPEN) { @@ -186,6 +181,7 @@ const doAction = async (arg: { ts: Date.now(), resolve, }; + ws.send(packr.pack({ type: SyncType.Action, code, args, argid })); } else { // offline diff --git a/app/web/src/utils/types/root.ts b/app/web/src/utils/types/root.ts index bd9b3c96..24ac0886 100644 --- a/app/web/src/utils/types/root.ts +++ b/app/web/src/utils/types/root.ts @@ -1,4 +1,4 @@ -import { TypedArray, TypedMap } from "yjs-types"; +import { TypedArray, TypedDoc, TypedMap } from "yjs-types"; import { ISection } from "./section"; export type IRoot = { @@ -12,3 +12,5 @@ export type MRoot = TypedMap<{ type: "root"; childs: TypedArray; }>; + +export type DPage = TypedDoc<{ map: TypedMap<{ id: string; root: MRoot }> }>; diff --git a/bun.lockb b/bun.lockb index 5c9da669a762cdb6ac889f06d173fcc51b08dedd..4f5fd8bc0351b561088bc5c5cd5e040bf0eae9b7 100755 GIT binary patch literal 245040 zcmeFa2{=_>`~QD3RHjJDkc`npBx#f>C5412WEL_XM42O$G^jMwph<%il~jt9CJj*lVx7&*}LnD{6!?gEd^e z{WU!N!xUUY{RQDr_YH7c?CI_6q3#(F?B^1q9;PYC!(cEp4}9IvH*%lOfR3LFtEc)b zQtH!Dt$21t`qT0w!sG9jh-4M)aB&NPdPjOQ7-+}156jLO$fG?k7p9jw zGt_TUK!B@9FoWU7WQIfpdNADJyeOPM0f7tzeF34OpS!&n3^C9$P_%arj9~sSXn(fy zCzSutP;YmP^B&}}emSThXdx)tzbeFvgBi96qGvGdp%R{lI6Cv7>LI}%9s=MT{rkE5 ztGl~|xR7#^x1>0eek^;g0Rg_QE=&*i0Kd=>Z(rtAC`Y>j;1oW_euqD(9{wTTA>JNL zw70~|CBy{mV82WTMSs~4rvzvQDAtbwl>+VTS9NcuALOzAT5$$L4%8o1lI?sV^f0#1iQF< zhmU12tRau~<-sZPqM$e)rcjRUZG}9xBQV$_1lk!K7~mVR#D(eS$6OTX;2iq+Vihc%C@d!}b4ig^jzXrv2 zJO+iXjjaU5_{u;r?$eYWrOJ1LB9{(|?MnbfehDc0@dU;B<_L=Y@9pP@)0bfdd9-Uv zl}`mlf8(fp2otUxsP{mbHIDACi#+@x4|57GW`E{zsE77VRayNn0SZlxy{5uo3<6aG z#rZHA%4I>nLLS>+4~pY{lByR&=|)g_DE9{2L<~@3EF_|WP138VMm;U!NY!uaPjr^W`;1zp&s^& z4>Q1j9Mlbf^JvFCAOzMmxbA%e{5_!D4a(8Z9Zi;hxH4RPUEDoNA&>QQL2+L01;u)J zjj6)~UaiF%r&+*byNbXc)_3!A@m&mdZ@^sb2YFa;)IEJ&7F~oqj_U?(R=sDS7+(vt z52kvo9|Vc#^{9B3LVfIqonRO3425#kvs8Uy$fIAc@vL^+gQ9K+sO>ZV9-gRLqG?E;y8Yv#G3atpo)+$0>$y)0gC6B zgUWzO6z7XHs0^qOD8}Cl6#Wj>XT|Lr?BeFZWH7ct9?PGCV!g2j)I4XZ zFY*m=WgLb)p4WnQV>^#R{HVTu?yk_?3~eLUI4Mvn2#WKm)sR*G6cqdO8YuQd5h(gO zN-4R%$vBXB$^9Uchh;}~2FouWDB7z6#c@l7^VrT0CanH<_izme^>_2Afjs&vp|k)L z;ADD7NzmD9-1tl%|4WygX*C`X6VrvDx2^%>D~S$+b& zgJA_>GW?ce?=u*4tXTCzygdB9JtG*#RNfEjqrJ{SgnIj}S$+bbZ;)FO>=GCl!C>r! za%}Go8`ga6HILN~pCFIz_V)Mk2=)$Pdi#6&dN1+{Nr(Cv7rB4U13%c$Z*5ug?=C3L zM;kj<`8mjAKLvX*1AN0g7zgLG=5Hn__V+qa^aIyxz!HB3F91TVrY!;3oa0yk+y?I4fqhY6(>6z5Gck;`a8nK&ll~ifc9fM3qUa* z7cW*n9-#V5z?)Sbh?4};7dVgc?SS(*o@=OjKCnx{^UJ96U{JIRcfCa(TEELB7PI2? zbYX@BLH%HlP$rtLf^r;(42TN*;~6NfbNp0&cVD;(K=J~+7^j<8z+!KAmtaq(M;Ppp zn6Te*clQnsl!ng0eyRoS59;C{0sCKA<*9zN10MUy2(A+xpFo#jHxKZ&$Rh-HsKFum zfvoY`3X1b_1t_-n69kLxf!I2)zuuv&ddomDPH(0<-ntmRRNf52#r`4tw?FrJf9~&a zUV4T2`4YZ9gu#GYcx+BMYdp-sFV3S4P|vOjZ$JkCc`>O3>p zjp+fO$HIYj`bDz(Sv!iwOM{}lA5f0-XfdcP=zdVNmkNsYf$zBTR}1I6`%t_gDG_a9RPV;e_VW-41okzznelit_M0) zJw+-n1d8n@`*S8Nn7*)5!8INLU547ZKQ~^%nm2#$$3F+N;;#Y4_TU)c+5j91Lp7OY zUvU+yzXU)r?)NKM{ZRwj=|7b<-bJ7||4OOyhrr{yd;s#Ypy{C4jv!DaP&-iU*GZsq zph}={4G%Iw=|6K&d zeq}Pf0%1vDNN!{K>jx?Ty&J_zcy z9c0a`Mo_%&13O2F!GLv`=`oJM@L$4o3G{~ep+3$}7f|fK)*P1q`G;A&uSZxXX#sg` z#}rDZgJOMm505~2{AGA_j;{-7=VLabnX)sRvg-o7D{ME+YIw2W>jB!?Zw7E4+ocVP z^Y735Ev)yrR4_K>vi#}8IAMR0eG}Oqk^N4H2ec37mvkO$JiSGZz&7>VcyD(V%Ew8WiK>qx2KZ4J>~Iirh6&vnLuL zl_5VGQ~|UydVI7M@@SSean)jM$Rvwe#< zxE`A~c6rnKwxsHY!&+K_@<$CPPizel7K%t;H=@^|X}Rl^m#GvB$gSq>r>k@6f^2P{ zZ}G`z_uZ9Raz{-@LZyG4vek{*w*uo=Df%2Zm->17z;_X4q`Xk(u9B*vnC#$|*)wme z$X(Bxto1`>#m&hNHyI3W4PRwysP(Jgyk~u6mgX8Hm`~Yd(<_(%l-b_Pk<1j6j+5C# zBU1%$3U>6~J+dx=f7jN~yns>n_XOWroaZ3tb$G~#`|4jwImwGYP?e2&lW|^?d8gE> z!=_!+rLsEO@ysss=Z%BbDdpGws?xCHY1%S%=E6ly%lGhIODebfp{zXRlaN=NxAvji zyHD3z+E%p}=vVcd=r1lYYbLKiU2^2FdpX~lJN#R7E|zQgrFimanpA0BUUm11Z9&}{ z2}hSRgrNC1m{RuIa_d>? ztLp^n5_5B+#R{%ykKXXjrgq{ny;jl8K^;oQ7mnRa6FzkN_9VXTUXJp2%tt=ZR4*;J zKfH0}TI=<~$AT2!^z*u_xV1LGUFuAjf8!eQlP-!|AH0mMIS_r(D}qPw%$=u>L24^o zlpc#$svnIPQJj29er`(DQ8_zP!AA=<=jM$%vsx;}($~iEjDhmSs9;`OT_vsSb05YT zdoPgA9eAWPuOr@WZph8DsN44vPh37|5!bA%IA(218IN_edr4x!v5nURPn`9t&p*5C z^tVkWllzzME17+}u{a&A~I9lJ%Pc6TazPH4lF#-Dk*zMS-cd^u>=i{cMja~ceQD*rEq!@xzs#AQS$Al+a{v6%gj zAHQ)PBNyfzIdYGY?)tQ8KMl_RY>a9-^l{6Sio2n98?6eS=sK?(E$u2e>f2l8dI!P% zYbBoPU7p&nrFQfE`PzvlkE{0Wt-t;9$wBWdzadXPF3mrx5~e6oW>R`u_RaGRy^V@; zn!*Za|GE)8z1RJTABy#d7tXA(VPt;pUni3{<$KU+ol!p+M@sjN+J2_|jpV^3>2(Et z_sjmw>wnV6-f^SxgE4ls4L{?5)<}B?JY!t>CS6kJwYHE~U7+s%*~FzY44&C9_%O!i zl9LhBcki$zn>u(je&`&RnE8C3$oiqr-j_xNZhvs&-p7pGDw#;dkIG^T7H>QhP%tUj zb)l|Q&XPfW-F;RZZ5Lg3++lspvimKP*&%)&Q*QqZ*jynRojf~Z&bwXv7hH{W_~Bdf z)672H>6FyvN4IZxG`^Ya;!>_E+M(xvApuPy1mJKh%3Wk6oH!HzYl+eRa)> zT*mPk-)hc|-*oTbfMHf)!$V}BWPO^Sbk4cr<(Z3*XDpS~8|TZvBy&Yyp6t&BDKk8V z#EGXUPB|FAbKj2>SMCL+MR|X4XBx!uWW9IzI6<*4H!82Wr8#xyI?I6fOQsE4Y0Yb_ z#!$_wu6BNAl$LV&mf6N-yLXs|+g2OQ&wHKXBziVc!@6$bomxYKt3w|jIKA&$^pi>E zI@TYI0^<99I#Abew{X+ZjW@&I+(}Rdd~V&r73=Xi|Ex~dX)zu(-F zr>UF#){O1FVXOYGW95S`JrY#g5%YFT_HI|n@sk&7H4OJX8@XlO1=I0P0WEVzh>wsI zIFhj@u2rRWZ{D~o`#p{~B_FG@aTR!Ba4A%Omb+_|<9YGf8*5XUc@CBD_f}i}(5Wss zuvcG9tx5HBpN1uOt)|(^s>W;1OT75t|(avZH|H4Wa%i8S? zHPLzpEr#6LzW(l6QKRX#qPlMykB(`16EVef zQ0Cpam5CqhLXG&px;MUlmZJIb)8SVKoGz};ZVh+0>Q^SRv{qj1hMRhXr|s$%nfd0% zm#@Fhk9L|JbT!v-%jR$w!P4#3w}wTAeV6BHSZLYO5;*@t3;*`VZ-_>ljwR<9_! zy}!re4(*#;oM*ZTDW%xdJngu7bhx(2=HX+qD+V`(e*IBAzWus~rTg++kBX5KEza!m z2@8$rupeTgw@M(zwEp(CE!Sj%{7ws%9$jK6-fP;j-D9iFGqc;rTbWdU(&H29nbz(A1};QiB%hw=;4~^aMd|( zw&3gQ^ETbQTN&?ka@&Omk6!HA>SwMa9M3dM9`@?`&E*5kRvO%WQnKBCU&IiZ%vU*Q z736G$UnP3XUpiywk;lH@oNcnJUngfMuRn0};KYrAbEQ9Kewb!9p$L(%JHg{@}##|+AZKRx?4_(GKTti=)<>r-Nz!ow<8&rXr~c%?=_$IeVc z__ERi%M42;#iD^PEnetlRexRMUYOPRp^vV}la+g?Xxc6N`g}mlk)r4|CvM31lTk8m z(7jx={aK;3t{{(2p9n$H-`d}V&)IG~zA#+Y`}Wi1g&zkWjCpeOWj@3F(h2LTBG+x2 z0To-;Nk)w`5Xxs9zHupa?5r291dIiBbB?C3$|8F^ZqrT8_D|Vf zWy?2DxOnG^vqlGg_S-i`Z?8(^^8PZP_la-kS?{@)lwVNWRx{Z~$~3IO^q!{qYDdwb z#@2cp)f{dLn^i8ze>Wnj&xoC7d-C>AmN!|rbiL`URqh*(7uA$Mxe)JuB4_I?+v6f~ zjVY@SsxK;D={Q(Vqww_Fc*(?;u3vExZ zd9yyB^qcHh@d+xohwgAzs~&k|@TiRuQw(y?83*M)x?i_E;Oos_+6Sf9wl1;H+jUDj zLUOF`GR6I$f)ZLjd^)yasEM`0A@}{~+RH*SS5*wjnUi(vyZ7lppP@A?R?i&%SVTT? z{JwsNl42M1`ffL0m3b;HZYq!BRI-2jbD#I;{?74=*{p|W4sIg+jams!0~vR(ee1+7 z#xo)#-^lg4XF0d@RO!0c8!Lpg{*Mi7zBHX%Jad)ksEe92kNYb}pAKbSop4{v!>jsrO5@|os5`&z zEeWddQui9hKYum<18McURtE~V6&}@aE4iQS$0+YTDp4r5LS;uZ!_aYemQM`dT;;ZP z$#=%j_xAj-YxHO}iS_Cy`|Y=SQ_fRc>YTB2?v!0CpT073ZpzV3*Qks1A8~Ka3I7|0 z2TiujSKjxwE+hSlK4Wpi-XzCkgRCaZX}(bYE9!!UR-K0YbC+WY%3scmK7V?&q1N!b z7sV%kahkpUx|@*dna_6XcmCXut8H5IKqpYF;!7XP4D<2F-qp&N-hNf`F$``EIbLd}l)mVE>lBS|*P?sB%YM!mdHX=0rI*(V ztqDaXb)(gvWd{dD9FlqNH{WH|B%iILqYm(Ywd3b~;%m3Cyy4QqF{y`- ze~i%AtlQ<_;E-c^Uv2wL(`@~u!yV;UP47Jz?BR1{M9B!}iFvZeQyN~1x5@JCT-x7% z>b_k~hu@``wTYge^5Wad*$&?N3MWoW4Bx!*ad=AP{o%v3cU#Jh+mrv@RnSmlLQ9_` zi$0hwn0>Nf^`#MJC)5&WEO1%SxT?3++YP5LsXV%nAaSnZScgZ%_>pmkw%CjBvmC4w zIpEg2XAkd}Nktwz=#gG8@p)%JkV&Cftdh?3wYtyr%SR*)`0^=_|NE8<^86&L{OQ)- zG4s44&6@o;^=W@JVybJ(_;aIU~+zT_ue z(Q_KT(lZubcllg$dGCjxW!e6N&x`23{TzKs{b;kRQ=C+Kb&a{#Gw~72v&OAEanA_U37uv|+o5Qoe+K*87PO(x>Wg?I;U> z9$otO*QrcZrG~x5`*ah6^Ig2}_V%icTPiTyF7%MQn2~Emj?9kZ`c%W2$|!K!RT7VAI=IXRO&W!|UVVLmC!KMrMw?bF5=vc=X_*S@qj*9r4iG zqkev+Sm}|9lAjqrbqCI!t&?~pYvsrBJ9v%VE>1g;+&p&ZC_AfPb9fCzg0=x#klA!w4-)=6@Q&z*I=x%1BUU1E-w4Xxk&($7}UEQp^xHhrz{ zS4V#DxClP!3Jqb!bG9?WYR*R~73>}!@+zV=BRNpuoIsz-n@?2xykd@XR}8v0vf|E$ z$sVdM2`ZOzvK16VeH&%Zz8*S2yJf}n;$=x=eFIOos9a6|(AQfb%rrN6plNaVnJ?q{ zC(X-DP%IHIKT#gD-f+=jmEwLc56(E@{-Ij=rb>cIvwlhXnIkR+ zd{4qh)(?&>F7;omyCFH~-lHq2QkyT?RLkA`_$}4$=3);8p%(46cjgr5>#KJx{2bed ze zv*lD;^(xW!J%@RCL|g99yY#s1aY2r#+uZD|<~G+lrvZJna}@1%e@px|^o_8Bv{1Z? zmV$`(hS$T@njKEbxGxv?OZJLxnI_?vc?Oj=scDH%jlH)W0`F?963$+x4;{+@sOpJ2(JM_ zYqPbVZu};c7ZGsSkBz7094Zn2!Qg)~@bGT*KV@`m5dISI@XEQz{1@Q$fyZ&@qvM#W zL;RcfVa*>-STsTSWZ<#=SO)KjX(z&$06zhElBa8c)c+3rIEu$Uz=EoJh|?O(&e*(H=yDtHoIf-JgNH$cWzjkCyao{ z`HKm@d!UsF9|S!6{FkRi|Bmw}@P^)xiD54z{2*BH45|LZ^Q4@;?mvAd_3VJ32t3JiI{()JPvXZh z;57d7Km5aQL1-lsFAvH0ZJg%RZr^}*U!e_AYUHSX-9N}w$$NuAk3Usd>v_<#uF9sghkDl&-+kwaXFLXm^qC1Af|50%4NX3tBz_~(^k z?cXqdPWq7WHo)WhL9Sb(blbn0;;}yZ$2jOD;{P(mBa3@~PWS%?uxMfblemf9?qVSI zPRYP;C%NEN26M-!10T$Ve}33-a}z%k_&_fFKLb953;x^?__qnblWULD`3_!1LWD!VAC)4|X2gK_?M@2JmG4!S$DJ zBK#WQ@&1kRqi;_A-v?fw;)zWlNG|GQZ+P{&FN1t@Z zkod0#9-p5uemqDyeC#rjdJ>AEUcYo>ApCyd#{v(p(K-{kk5Jja3gK&j$MMI$ z$1+aiAEeCMzv0{=G5pmj+X>>|0eA!OkEdWO&vE;A0FV8LbCdF5(XZ-ir(VJ@A&mE)BmS%G~6QoJCW<(U=-{ANAhTcP9pV}18)X?FfT|4r0Njr8teJ9 zr#usQeE-l>URIs8eqz7%r2S67>v7@#9`I!S?}`7E(X96uWbc9Z0Xm6{Um5Ut|HXSJ zCyDU*;|m?&>G~x;2(JS??q6{JlY`XhN(mncJh}g48K?9ADDZ~hANOsX-2aLH_rPld zkNwX{BK%Oz-|?e=Qr?{{Qg0sc2H+q2A6`Y#ZUf<80&fF6X}d^wj;Zs6Hy-o*{SDe6 zcDge|_$c6wz(2`z>c1Fxynmoy?1QnyP&WaPYT__?X0Ww?O?f%3CJ=r;@HqZt-f{Z= zXfyEm{DkulZPId1)x{=O0gw9^dtnfyed}j&2_i|JQ)$=KjSCHxF+159Yw*`)iD+C-=`)T=G|eH|D~> z$avQN700|M;}--xOrg&4!?ELZ{mcd)uYXQ_W2|KS>w!1oqW#Kn@fvW!hXIezKRunl zmw>n6!v83k{MNu@-;)@yf4WPg|6+iLOQ^^5w*+{+e$gJ?YZqf9{)1ug=W)Sb1%3e+ zyb>&a3%TH9fp_MDuLs_h3*HbG9|tb@oxpR`{vW{O{OjrX&wdm*16KQq|IQ$2{2}p&0S~v}|MWlUhwe-ez5sY^ zKjtxZJm@6Ce*~Vq|EI%|I)qm<q!msC& ze*`?fzw4?0k#O;va>0iHkNbz7`Y#544i~(bG3)xld51CJK_`)V)@(ekL7dLt&A{XP zOPn{za?0bEcd&$a_8-Pg;=<2eB~ouH@X&>w@1N-UM!STM2i}14k7cC1E8pyV3B_aI z_3jR0J5T(~nZers;wg9)Njnifo#L_W7z5oz_!i)?|4HA`T}KJ8X7YRgivH=wKzNy% zzpp=xfyB{WI|%O%JZ!-``9lvzoas9;DIZ4ES9q@SnB>m25{L--a;`65v<($*| zw>9wW@2^Q5-L-|ppGNr?1VFeui0wS##m!j#k37ynPUE-al3xovOyOAKpVRTL1|F7> z|L~l~KL&2z23+vLz~lVGxr<}RssAG2asPlE-L^y3|6G59@bIq>JeJA8!Rh=71|HWh zy#C3YKwI4t7!>FXa6Xt^u6(e=6|!{taX2WDOy4 zJ_epVe@J#0G~0Q?%fOeXc>lw=$-!3buOA674-c>K3agV>`fKg~d4llkfrk)cu?F^m z2!5cE2>%Rt_U9K)$6wlt_1{-Odw31eO~k)F@MQl$*Ejkgd^YeHKk0i;ub)~r|8(ab zyMJkT_{a4F{bEdX*8mc~8}ORIll6yg9}xZ&@UVsI^pA0I+WudZf8^-Kj(&)L4V&NZ zf7#3Nb61J*ZosoYzjAv2J`6mrKNvqACh42@E$N15APuedq z|G)qJFR|NQ7^L0;;PL)}z6Zg<>Gg9Jcu$J&&L{hM;(zpl|K5Moy$2B92Y6%fk9oXz zk$KGS>z_Uo{uuDu6#q~4{#Hi#_rM!c?ML6F{BIm7C-t=KS*CC*z+8JU8)I1CQ$mOkW1Jf$lRL4+4ax_}9RXrFdM!=_cZ92yA}X_rIhcyR$=h`#*S2+rI^P zeE&k`4X4j95C8Cw_b@t%#6M^eYyW}_jsc0II~#=e10L_cSRdQYssFRU zM0g9}+54YUJ_dMP|FHjvO*%G6-3s9G`lCDU#5UnYd|2yOPk9I6;U~PE*WW;5oQ4wr ztAWS(ds7T4@6H6NcO7_~zhv&yodbkdS^WF`3yuM&{CwasetwE2cIn2S0X$j1ki|8G zP9lC@0gvl9#!dIx8|@Qb*7x`R8OzCajGwzogr5sMUVoU!7_cAcB*O0jUZ0AelySm; z1b#XjPj?;@UlaUT{ZI0o#=iu3ynkcc@!-^dHt=Nsf-#Udy6Xc{?VcMGh{jCohTkTat*`BZWD<=1NdnWKjyLj=qAE918++4q>PRYQdcM7cmMTd{NO)T z*E#-V-VnRp#X#z92i^eUN1l{*$KrWXw+?uG{v-^i*RN$DcfVh~0X)t>^h;tQv2>-R zE?*FLzu&b29$tZV&L6?99R6{R_&)^vOfL8zz?1zG+N3*&iGQ77?*9GWkWlXWZzb@! ze$u_}NjH-CZv(GG^&g(&wEexqSl>S&i{nS^V!o?H>e&I0_uoEHnUr^70Q=YfZx zu*V`G1_#}H0O7v^KZD|h&$_^IIx2HXNW{Agq=*|Js|1W{Z@1HQ=lkuOljJx)) z0v_ML0d38yZd(p@S0Tnd$RvM2t3|Dv8!2M!W1?$=w0}x6>-*Q9^6IM?41G5Lok7s}L;U*zZ^s3H z8TbWU@banu-F_OOcUB?sM+1+~-<-@nG(h-kz)u4n=P!;ODaSfpB~q{7YVP891>TVI z-<7{V&k_H7fp-R;%%4B&{Vh*;zBJbF4|>Ya1KyVl|CfO0X8y>oVg3K7_B8%j;JKOq z4}tgMqW$`7xoiJc;1_b?zYTc&{Yg*z&vYGk{kI!<2QK_~aOr>Ede;3PuLsebJKs7z*}?C{^1*0 zzu)g^{{;fC5B|w>AE)yt7kCmsxrhC2&1Wws^H*dO>-$?g*B=f}=f4H;;~{>u2kR)u z_fPE%*8Uy+V*GRyiQgS~eejPQCu2bPy%djmel$We5xx<4vVWx8cj$ufvYUT@e@o^7 zoe&6b3cMP$AKQ-c(~W`fVZcwP#*gmY!}tha1U#-ESk{yH+kn?)^RJACXe8o)+!ogS z!`QWHaHI<1eSydIn~Xi(J|KJ{@Dr%^BTLGOpT8-o_YrtQ;OY7$_6V=N_4oHLq>R+* zN=e-c;Kx$_#k&IjI7fKpZLI5$#81lqsQy2)q@Ek_ld1me2ersJ{14!d0>bYEo}2!! zqT)w;JsH12+ga-uhKD@q2h4YsNc_`*$LB|^i)(XPoa49&uRN#0k2Q- z7%+(oKX;W#y%9TE8}0ggYbKRH-z}{y2G|}di}kl{1bawYZuT~EfZ2>3a`1KuNEIP3TSe;3`kgT6@ny?~zt{xOf^ zM|TVfzZ-bGe-q!FzQ1e*ei|DOA<#<1|D;{N*I(>^x{2_?z#D>pBK%3< zar{ZYk@BusJV)v^0gvk+mf`%Pn+UJC`}glpd&18J9>*X3(p~$pF7clV{5;^vbwkRr zPFIQ4YX)8uc+&4gyJGPi;br&yUVpHhQ{E2v@!+4deHa>{k%<2_lz&99j8p&DfyetV z&Ru-|k${6vBK~{rW$m9hxp$&{!uQQ){reqWI!@W@5Z)Sivj4|2QqETOA3u_MtARJ< zV*D$B$NLYCAKkvkfQWyoeXRCl|6?NMtlZ!Kl6vmIb2EQ80FUiQ|6~sS-Rti&#D5j= z(}Bl4Cu2x>+5P{$e)Io!(d8$?`vR{E{;@K)K?*<6NQBP^-V}HoJ3L5vcP2=^U%=~A zJTi3W0O9ox{P+Hql+*Q}4m`g9pzD{|C4OE~{&DQEjLbt)?{7+Ym4mG7A9;*H=x@Lu z<%G8b9-m(@Ps;wN`j1&scP;Sj?HBmR+W)hV@O=;c{{NrA`04f|;pYI4`zOM3+J9NV z}OM~j4KC3d>_bxC6^rLcz4^f7{)@1juD|KPvp>IcI{#ZKo^WIy(T!j2D9b--58W{! z^<9C-`#1Wh%d+?1PT)!Z(T$y*e+WFz9}*9z^RMqQ*7}LQNgty9?h^5*54;xm$NJcQ zyoTr`!UqFC6?jhCj`j(k3%nulr2px*f$$%J$MM5{BW0Y#KRTDye&o?NT^ppHGw?Y7 zvHhI%0pT-&C-aAtaT0$u@YBIRnY%>0vq5~xA7{-!T=%hzQ{Do2j2}5{Kd}oRyG*2B z3h=o8V}2kUocg~7Jih9!@joh$_4_M4i#9lY{#gz@ng2a$|3%>O{)7Ip z?VPT^0w-Agk36=C)BE>a;Bo&&*Dw0PMEY+f@S4Emy3v#QUr5D|{*mW&{re0&&VLdQ z-55yyNhewThxi~~)hi>0te8m4n;Bov(o~{j2za4me;IZH6_8q(bxrHpgr|Zvp;0?h)iJK_;=qi!; z>wst9e{{vLpCi2FS?+#6?#d;91b8!Q`~=wp?B+9x{~PcYT<|lCeqTRU;FHt-PXvBE z_$TjOI9)%AfG7JOyarXfX*W4d+Rt~6b^T)8I0rfPKLdE|f6{KE#LwT9_}>7$KJemD z5zFXaLxiuS;wOB+zd8J)obZz8S^xhDbo~-Dgr5ieOo$)*4*MVXA#@Vq4+D?uKk^v+ zRXQ-#A^dCLjVT_-j#K{{7yg^aHqc4Le+ck+{b2mK_u|xl3Gg_7kjJ^hDKA#c`u8`; zV@#a#w!j-v{&5a)%5MdJ7RC3Z{mO3-vPWOHGVjMIGz73z&tl=g6x;cirC1(M%UJLMe-I@MxR-9k34em_;q}U&@ zP3*ismxE&e-GBqrKPlF~2?y#eN-IE-y9)=7Qzeyu0LlkPEtP)^irf=Q>p?Nq!-3^b z;lPB7`36d#f#P_*h658S=0Ct84Tm69#`;2(3S$NmCyH^30f+4vK=EBERvAduV^>^< zWT71UK@JqF$W!%D@uLEzic~o&epI6J?21Lo@CWUwQ0GxGKMWM(9SMr3M&Tby@uM32 z!SfnaIVxVa6F{;5^gwZb7=wy|+JIvE|3Wc-Tgo3Qezc=>KBWt=5E3eWw5Rf@_|XCW z;QHqRDg^3_ga%2BaiJSY||hd)>^ zmCCQiLP)4sZw-}4MStm_ShNBD;CO8XMf*FjkW$QNK_2Vx1w}jisPpWK{gp$Nvn%pP zDJ~Zjs~o55p$>xl6;PZvx2SSzfi<;mM>MQCzD*Agv<=GX>-$FUsdrzH5#c}uy z+8>l3D^V%}Dh_$9I)Ezw|FdE{20}ZqDTAo?uqzfxQRS%EFS4M>4WY{EDAt#Q`Z#}; zDGn9Ohk{~}DwQ9G8Az!3aRgO9k}B^?asAe!>Y<{2{O{hQYE$K?_)&+-vn$SniBOKu zyECZssMzjVpjc!Ef3O{MF+-^WXfWi_|58x&w~RWEiup)Tv=d8}qoTj%)cFJ|pG2KU z#g8fQ2lJ;g2wA4rVCDxN{+o>(?2o92NOuP~7KV zqssp`6yv!I_Au`IpxFLu%04RQ>p-#S38hb|^5>w~z89cqr-jPD1I2`j?fFb;J1DMC zzd+G0FF3_^38HgK(Vh_Gp$bEUDrZ-;Cl2LkM+y}4LqPHVG#nKE#~1~F#$gMJ2^BvsfIk?AJt%UHlsZxB0t)|QxKnvgO1&uc0Y!c>mG=WhKS5NU zNogom9s!C8726XHihK+xo{Fb5kt$z7X%eN$)cIAQ$gidH>D2iRpg5m)fZ{v$o z6+ix<@~C+JCzWScEbpMs{{qD-JkV$?=cSYnI{^~A;(30m92GwbPDo4eS)2KWu^2Ssi75&Ws z#rB(0=Vwvp*%i6j)Oj=NJSuW?s5~mxv!wEysw z0L4T{(XJ=OFQU|oQg6x*D%SI%bTOsAl=@NXPiX+9fs_VO8cZpZ(hy2RDGj4^2`IKd z0uEHKb3`T5cPyDxHKgCn!s5p<4;K1=ph658S_T#_r$FMj4`+XVq)4%V>I=iLw zy&3k$zwgIb>;J#+$5`{?-}hsze)#wO7^@%teLu$9pRm6d!=AxB-jDx%KgQ|@_V;4g zKbXh<`S<-8>;CfZ`!SpqoV`E$_x;$v@5laqKgPOl{(V2jdd}sC_XLx05T@ z&k5My{#pLKPTvWE`;QB6co*3uxALbN|1Gt-0X$w3NzIKs4KsM+3%8|aUaW07HhIm$ zvd=GEzIsf3pp3s|BX-Fd=knPZHeB?0!F_3R%3Q$hT+h6%8T?Zta%njHr_aBJow(Y7{5OH z7O$p0o?Nuxa>}_8<%{aBmani%&XF$9WJU(TKSBCWKj6FI|II}D7vDXT#MiWZz)=;| z^H;CT9qT7Hd56dMfWP zS)&u83wiUK@V8CGF7E9};`Jf^BuqjE6+{oVE%r}P3|?&t00ZQ&_9G~Q~gN9J@x zms9fQ7q`vcTG?T+bIYApMen$pk<#BMjw$ddTyEinzmp<%@w+aP_%cQvpW^dte%s=W zuL}BJs0L9yU6CG*ot6pLRY<{PB5*adNy`v-&-G<7lmzru}|a zknu>tIxs}+;&;C!@fqK>j<)5iyF7NJ@<>A=p0nnOQ{P#K#GBtawb{3A#`u&;KAQy! zhCRv}W%cFMm`R&@6|8Mtt2}9DQGLDY(c=LXBft=`i{G7+#3xvrzQU`IPQOoz8)Fx$ z7oSiX%Nx;lMXqN2@b^LZN8hp5Q!Im<3SQ%s@+%qKH1@~wOXDm8BkMQ z{owq};?o;>cr^OP8oH(~zq9mc{0gs=Nm&XHM;d3(++Y77MtSMv*B$P4=e^&H^c}ei z3=zBdn*x&fl=JfEz7^*CQ8Vzsgzaf_-rDP&dRsr=qwv}F5nfK~mKU0QsU7#hWY{5Ij-c+4kE0yPxV?VibJiz!0%3N{oW?HLm}7@kIUnjm~9a62HEsTkWnW z%*!-r$}92fJtAG{%fjN+h+@4}q2aevs+mz>SZ^Qc|$WBm5~v|7tALxx97z4Dp*yg4D`+17NAk;B&u z2RJb2&hNEH)#kx~3^uz1*zGbshE44V|9I?-uwBR#4HdERsgYB9W!^azDl5OfXpYvJ zx=EEYERD{zm>-mTZxR`EUvjz2_a~~0Hf^2xt{~#7(F-=a_+2?kd?!9wgeG`;$cv}u zuh1N|^-AH_11f7vDh1`o-7nN1eLCKKq5hpqnQP9jzoBU9dfUO?=V$x;X|6#lf1I^e z+oSr@2n>;akRV1u`7#~yre4o-uG}XlY&2-XcCXdvW0l=gb8Qd%8XFE0-dKIF%v^Os4Vzv34H-#%({z=J{M-jjHsh~hj5@P$ z?V8!`hwttjWs-Tzr9pYO*XbJb6Uw*BU3{`uc%}8dsuViit|~b<;cW89!+G^NVphw* z5Q$fk7zO1U62;%amz}&qXl>Q215u*~Y0aBhd^s)Z#dxR7M)J?zama&^H zS{z=^KmKmZu?CO5>Oz-_EzB*wa-(zD>`JlQ4S2h7=qukDcZ+1VdX?PUTi3Q}qI+^+ z>VsXi@9v&dp0|9X&c@XJl3y;Sd!I@@m*hA+M0xR{uo0E@%;~cn)=HkrWwVQGF-d&4 zmgV(L{FHG;X;w^L-G_4JpJ|Cal75l8W1KJSS(;lezfNYWoBPrmwYe)Kl;Tyw3r1Xb zt=REB`Axyd(B>*DG1hlmto01Pn~Jh|K6UNA|Iq3~@S z|2W0vTgR+#Ki94@P0H5gYV-H}@z!SFKWHhaHC$Wz^M(1t*;Ds}A=1BtiBV9#iOpkT zo12f`OIv?NQ9FM7Ng0W@%<3oBjhP1`cJ11;aH*2YT87l_7h(BV>(5?FFpkkW6*TW; zpiA+atxsf9HYJQ^vn$JP*LFZfea*JH6TXef>gWAs=iI36j;@actKHVysC)eEyW_E> zQKM*qvvz>f*hT8fio($Y2HFV7R~xSNTxssH@TwX6`Y?pu?xJ&(glu%O&qWV)Yx~ez zbMxo5(xp|CF1=W`H=t!iV(;i_J74S<@tdxjrKjgqSM;Lv%{c*)XO|v(Kf7zztNEw$ zYPNXsH#;Qp-T#qwG~xP&Wrc4h6ueq6px-a8=>jJuuE+&nSKsqY@%RqjA7eJvlot&s zR<=K3{oKZC`s3-BPi=XT<*#}n>1x4HcDwS#C@A0U!Z)V(ZiQ^_FnJ$;*o%2gZTsjc zvT@UrdOtGbElU=a{4900f0C`Bt60eGMWGwUu79SO^ybNWov0=4h zQ$WtYE%9O4D7o-i83J>ZXYCxDBOny`Y0(z*e&IWh%+240_Z||j61&~SBTSeDQP)#X z42c!cc`80Q+$llhq+(%=Ca;p$3um2<5u0Zim$$mCkp5U-;@a!W4t^0!BkxQR@6-qK z;zhm(KeE|XX1Cj9|3$>ns`}pMEes<-D?1xD=__vKry|B>U%y0hrJ1rJ3 za^Br{{AieQ@_=Z@zTB-NzLdmW-Q;xQsvX)Q@nWBl#3y}d)BNG{8fN_(e3$Rc<@JHG zQG=b{<<6V0Vs!qbZsFKVkrlzY&&6)9J|w-&>>*=>bA-lSyHDE#QW^&iEM2v>67QA7 zt_m><%9knFUvj}aW9gTIhc>socAO~IT)6wh!T7LGuf@mgo~^~ZwQ$Ij3%y>C8C~kR zUi84R-WpB1n-3dTefs68y;En51kPDvSC!rFrUP%%JkzoSsv^tdrd-I-iQMlwn-e_hV%iL@+Z@zjq-?&NqrBqq<=S6tc89UsRY_mZ zdt!KN$@D%I8&(e=8*L@U9rNy6t8V^7l5W6JCAz2}K&j5)phN!z*OA1c$rqtqqO zl+Q{SQ+)U{Px950GM!Z)K7C-n52>@;9WriIocOY1NxtsclVm0yj1teEe16y0g2*wS z^9LJv-IPBd>D~L4?c?|BCRGSF21sSyQogb>Fy$L#O{(ZLFR`~X*y6=|2T6Q}`5Ap) z%$aHRLeW+6q|rI~Ce0yxdb=t{2o7!<)^N_7i(hnNMC@7ys(a+w3H~W`qS*|i}3rmO|dM4tGV(Ylq{x?3gtUZ}1 zX5pP(HYYlG{h=Zg44CJ5#FY%;9~qQ+#$he|#Z-{*1s*HoIfl z?Ot|SuIPXKt6$Kmv5hNKgbE(cl#37GKfWZ#Kl9cC(Y{9%^M3g0+Gd~o9{6NJ?GX39 zGrU#5WS%}ds6_bKw?(1`pV;hbv)eUzE!;8stL(A@2d4!iXZ4-?VxR2$chd!?UA%L> zVe*J~w|d3R+7#Sx-_0LZcNld>dV|)O=1n^s7JhX~%C>pu%=xO>?2co%>v7d?-RYgY zEpIbrC4VZ!m8(VB3suc1t<&ZZbz@(7o>`Ye%z!JP<2;(-^~)y>~9w8H|yLwR+LG!CW^Ys=+=m| ztJua3XnuGtd-(p*>m$zXuW22=LSee|gK3$4*zAsHw_BT3cr8dr{@Kb?DI;^=++0%L zD|_LYTdDTEu{OCzagX?H<_jqO81u>7l&3K#ZTx%JpyHaoL#ul~+a9%T^4)2Xer$Ge zE|bJpYkf^Nd`X1C)m3gPyI%XLI18N~bw>X9ZL`WZc5#;BqB2WfWW^_TY?M4)*Sze9 zy|>UCiMi`$8#NAyTKT=frzHgpk?UW_J?1-I%3o zTNAWebz>7GFUa3F{OTaIIm=MMqF(sbHSONLUkuiqoI7izuI`XqGn^m&40N6PUD{h% zNkQbmk$E@A_tK7h%4T;myIt8M=NihF)k8g$!(f4jd}j7qLbJ5 zc#(PEGEdwIYJM}pXlu2C;UU!#OT8k74LRv?^;*ar3HIw^3cFo3eyNHShqg&mI{MW_ z3@TEcy<9x6aOo^{gF~APPgvUjy5VO1uCM9rf(=#Yt)~ubtrC*YST*>VpGi% z<5d3E<_(`*VsE#8B+7G%f zjYfSc8y1u&TD_^NDzB`0+C)41%Yrj`2gt1QH(xcsiOsG7yWO7>wjpQBOHWVG&$*Fx zYhDJgY_B>+NpPYH@ZTP0i`u>f>(#DAj-%2gxb34AzD#@*JMsL{^LC>Mm z_>PZU7l!P1?>Bp$`#D;AOkU2G3-_}x8An)`GJ zJ$g|qdG_q>2mYo?r^{NTULTn)m)Ls%n_VMzyL)TE?9$RoMH%nBDH)N#i%Y6G&`(z3JA9wO2>@4CZgu&s#j)`I^Z`wG!jm z**V#^`i50neNv7xE+4od7QRxnF5g)-_r@%-HJWGjmbL$cPuh08sH*uW_jF^~ z)&zV3l5@Lk+ve{7sN?^zc2{9lbf7}eO-e)*jd&ZaxcHp5-8~LwYy&DQN^UBa=pxA;a+r9fG55&vYQu(JjBOJsm7|>?Ct0Mw%OFS5nP}*{2ITkI*!yd?fVNK zE`hd#B$v6%!&FQVBP#St!|&egX2V6W^yEJm;+4;HmIJ!He}bxe36WX?^J=nZ$$G{v zk<04U`I$7?8?|U-Dtj7AjF!o9ynZ|GuzH=EXTDpamgL_^1Kkm!< zP#);|^+qC6Q*bhLM9DFNupT00oz~tmH?R@G_P5UTR@}fo;FIm*v9;;O4|^=SO1vHIPs_XWHD=YszGyx)1iBWY`A+^u`EoC)XsCeqES&Hr48SD@#t1ay<&*F_<>r$V?wIIk8DO|QNjZKc{xtC{r%auPZy$kXRh;K0i_ zSx@E}w6x_PS#1Xf+T1JCRrRJ0?{RHGF2B6n3;BFY{^GuTM!*5Otl#M1lSHz}=PE8y z8cLT5u)85aPs|h<{-V*uD1>52J~JcI;YAiiV~52|^yOB}e_4)}I&F_N&IT<_Yts_A zuT}x0&lzN-=;xT1=`HIN<3?#|`+!~CEmGnwl!6$cR7^Z#fbkmv^Yp7V&1X+y;hj`* zIROK;l6&?tVFqiP$Ni(9cz+L`4e;kp73f+JJ1Q!pw(hN;EM~xQDCLcCpt0iqNNTi~ zguFQt#}9uTbTPA~6bo<*7FP-nyd@0zbVR_V(p*i69w{9Sml6SR)qt+Y{URfwpHyQi z8l=Q4mpTWv(OA=r=Kr9o|8xW_}&-w$$qXJV{8ouAzQw z!5#uU&#MF7-V<#-IInUlug|LfZ5{)^bxu92OblQh^+V%7vJBNqL_(h~y z;a((NC)^!U+IJ`>GJ*yr}(fMyT-(n+v(O#i$!`dh;*yEF9za@GEVrZOI|1jio9< z6~p11FE7t5xLz$V`kX->p%||(rSo(!a~+gTHQt|exP`6MK`g7EWX!7e#I1iL2GlwkoDnx1fbQ>9^3bWw(_L9@Z>v}zk)9uI?vc}!ua^2wRx&HG1E??C3O8S1vz&k)$v z0i(|uw2rR8nY{Jw{0n|H6mR75$=jjgX%C@au#T7Fr6{*EZ-_Z(1@@V}p#3iMYKcJ= zncnnFmpWKptU1wXo}qk!Z2@4A2kq#!-lQq zN1y~zJhUvNwjY{OGMr3kfhcl$bsaQEaoh&?L)v8tsHrHG@U2GuI+tnv3Tou{qCW%=R?%b72b7Fz6=h4>X$`uqdw(x8cM ze@hvymtVpAUsoTDK4;L_7SrR|pW#9jkA5O^HUB^9OzKZWlzQ8r*w zU$^J8|NSH$SSyAyHHmM@>0XlBbF={W6Wiy%UsRJkRd2m2}}9t zk(zc$=<@xAkOuzE>;LW`$Md4g=0C; z+5c;w8Ya}d>#U@^Rx2%b_|vyv2DvS+xEOff66w}R8gri^@HiNO(dP_OV)!;WpAqLl z;%}MXu1qGotng=IcnYoTxYokSN-e*|G@V6&PzMe-hl9IJvYdN!JjRX0{v^Abkojv% z>*IUie)1#GjZK^7DyII@JM|%kF$L0V9fbK?BloQ)-nmfARxOu_^)6Lb&Ef^|(hxSJ zw6c6Wrn~kWO1+DoIoudBR9p%!8KB;mo+3Cvi=FhFYy)gRGNpQlJY%iIT8zuwIH1v| zvC*Ce2hP`iw}cgbrIL^D5g-d5u?_y=JkEYy|EU?XLsJ7^(R$#0;WGpt2NN**oIwQ$ zMa?dW-r;4I5p<5!gbqTcYCM*o*xO3&g+C1aVi0#^ojHOv5xCpbzKsrFXsn*_9F*5h zSQDeY`76!-cXt)wngZQZ%D=4#$p|!aj9WtWzX!dNhZQdq+KTRLY+BUwkuYeu7PA*= z_S-)BlIoh3nOC4_wkCfgUS&y7m5zNN_W-?|RlxO{0bMJRkD#es%exUvt@iI10aS8` zd|cyrL&q2Ig=p)Agjo7IpcAxIQ^JEp5@W^IDq7Rc>BN>tgl0<{I`(1zOaBc4yyyt4t z2n3WD@XjYnk<06pOTOB}xQa*huzu{(_=&Uwa4mr@gg7(N(gwE5&O>RADkA22t*v4x z>ZF?LJHk6oXqZ2CD#(Hdr2_r=D+48@PC~Bg3k?$>PNJ*3G?M$t6!t_Xs&~6EH+lQzu zf>WHUy{TggJkMJL-2Wf{1V0ZiJtS~|yqytR_U+RczNjPpgr~@e=S2vW;J3ktct7?? ze=*GQw-kd`SazjKgx?L}@8K#U))bNSrqL1o&Arg4bZuH(;QaeiJ2*hYTX1OHqongl z!{W2NTZzfFzVY|a5!uuGA0ITkpSqv|5gR;yDCds)WrX6HEZUBoE5YS1+G7P$kI zg+^VNOrba@wLhkuO2+G?-OQQzc=*0J;5o|<=w1<4d3@Kr$015tw>Ziq9;S*Yvq-Gy z_7i>k3we~%IHzP#>jQ~0R9;VxO?|S%7C}?h8macEve4gBNMbV{stiEA_CU8UJjaI& za?3~)9bs3?Rs;EQ?(zZRR2z%p=M?R0392_69!Gm~SkQVmbaYX$>&kD_J5>$(>{nzI z9-9dg@6LhyCRItA8~yh zcH|-}hTnZFYTkXefw}tj$x_J}f9O+m%nG_qp=muWeRVRc=@MVO1aKT)dVk;m5wz?| zbCNYmCG$wYp-{h7fFMk?nn*<8I$4hDT82qyjd6K>@o7jeXhompRY}kd-}MJPOTC+Q zSNkXQLb-cV;B)2-MxQfC)=d)I#^7GHX@wuH7T!Pb{kQyD{1G(1E{BQ5gmO<1w28OE z-bvQcc-!}|N!XYHd@EKz>14EQDD#{Wr{7U8XCUx%_8I7oBGRM{uW8m>jC|j7@qkSp zv|1a>k*Tj5sLV0{<2=Hljy*{2=dYHkWBl`%UC)-rn5Z?z$PO8b*XVY!@+11oTn=_! zfUbaZ7V|h=^^#k`9u-qh`oldb0qRf-Zv#?*)oV=Ovi{!gN)*D-N7NeSZvmv0jBMrXY1ddEk}hK*RNy$UyN=mArvWAnX12#2Eyh~~$ zwkCk<4s@}Ncj*xhx}xU4MNGxU?@*Ur)xvI z3qc0`b}Btgs9SG^YAi4>avle`9za+7lXl!0u0;oq9s?!ZmmgSXe%Y$N8u{TqzJX|y z^i;2o4??(H&vCzRiYL>R#go{1ZOn@z=vr`$*u{Fc1q%S@Ur(Uhv^yWzVYAAo*MM%Yu*H3+U*TJsFv zzlLYSGXj)q$>oGU=D3lCzRZo_pPM((<#UM^^nNTcdPP{2BneBqjS`6THzfXA|I=el z0OY;+Mo`xDC^F6;!yToy*5HKIZNDsipFy+yOi&SG3hS@DV}Sbw=yux@dTU@(T=BeS z+Q4TrP_mA#^?_=;2$Ya8W~be`Y_=zkj|u4Q`y2F^CS|oMWTNn*B5BoA9pc>Ks1&P1zsV)qd&{-<;?c`KEG~DWL%xf)@}nvqZ4Z;mv(lPLY|fI zLkGu#yjSfEC6#rVL{CIN$8)7)_%BS(5n`~uLr&HAXas!3O76ZD1h|1f_l$QqprUR^ zuAdm!km9&&I_Iy=b({=xqK{Ai_@B-b;fwa>D~ix9xy*N0)|ofe5dC~e43wW61iQ)@ zMYS3lY5{H#(4DIIib~=B{wZfc>9_#bgZv0;giXgfUcaDxMm|oU)@HhkmUCO9*DtV}scYj7bUrW*NDQ)GuoL+cc zY{fdSb|$yEm#V^B#&o>%c5TMy_Nn-|;v8fC(NN|7*>tV- zCaUd$1`_m#&k(rYm(K_|K=bEgXpAXGmJy8RbA~e_B=?QT`4{D8=N{G*Jrl<1iGg`a zlgoxeOGN%!>*_eVPHw|TwIq2IEblcxwU`A%zw`#cZWtJS&LI7di5~S;1iqJRT}!IB zEdFazMDDX6j>8Ig&f?S1bXMpW=iaOIjwW@gzuRT1=hQh<>-$nN+riH2>WKLTvt$V1 zzTD}617zq#G0B#?asF!%Yqjh#HEVXwa_CDzSjmOv;CdOputLkXu-mvGC>UE<{rS-gid@ujt7Ro+ydv|R+X19=kQ`W6Fp<0Ojb zVaVy9kSAC|LtdH2at|i(4zO9>4MF_muMesGGC|24YV47HK@i{DjEg3fhZZgCjr)7l zTrv^Egv>B06Hsp~&}|I6qw=2jIFHqu))&#WXG*H)m@zHvXs7tv=DSaX+=!qEFD>f0 zG&45Q_e-A2hwbSgo>a52WPZg^zhtVF<7F=b9*3_$_cO9VbZV6Em0ZlZ{y>(NAc(Xk zK%gIP0ND_Q-0quR)`MHkTtAeCa>uM4j$mtS3Ik*NN(RNsSLZIN=v|uRmoppKjRU%E zzXUzr^TPT@uyX4dVa=5EI)A+ooBQ~bSQyd3TPxKDLiZa&d$s#r@wfQ&2WPFr_(=<% zyf0n8@ActNqVp6J0d73dC8|>0Czg;aa`ww`H~)ca^)#!3iVLwtI=FD4aVyD?1E7fix@GCVbLEHZ=klp5%YAe0g-ETA zDifr%xMjv^CO;JA)tDbEB)esu#vzNibSrSK`R_IC7}+E=-1+HS+8W*Xz4YS1rN?|o2_lD8lsBCv0wl0ha=$JROYy)fPxr^rL9|v~290JbMqJ;q6SQ2;D z#>4v%bjktohV+JO;!Tz&EP-xDpFpo>oZTH%77hHctm-onR+*o&;DCePMH za?NMx@{e>}(?^P3xZ_1(w1h3*q6F4#yIxty2}A}Y9^ZDex14AI00}3cG0v z50c$ZAHr%Za?;R)yyx0E@k*b>>ud^YfSV3y!d32k z8SlQ?$9i#p?#}IBSv_V^&k*_|kts7AkR8Td>}!8C&CdgZ)rX)H1h_9}PjG1C z%goEay>vr=hQL3!m$?lbpzr1^CoY*ET}N%PfZ%ba`xlOROPR{57A3BNGlYVVk+-4+CsBz|94^srcW?amE(WN651H1L{oW z=OPKd1zg)#SLm0I8gLlk#jl)*C%{nlPJFAfMwvWna4!XUCfLc2#Xi*A-re*9`-tCx zZfMhErMQfv2*|-RX!+u5=(X(Pw`jbMA>#t7g0d2rUF3&Qen^td)BZzpH+;=7^@WqVnDqwb1^tTA;^#Q6qeo<=n&zr#EfBY%I4@QF4S`UsPz(E?yggF zFcvd)*ZI5(YHBi(G>BYZzseQjI)r$&F>6S{aFvXH_Y8rbhkP*loI#=$c$UZ4jdVjk zez|{(Lbgok@w7`r31G^+K;esP?**`VghuWZbxz+AsNcjsO+fQ zWY^NJrV%$}n$z_CwaO-wR>F>olaTE#xh#TeVUVmtbrepEKd^5D+?O5)I6#sXbcy}R z(DA>x+j0KD6@}N4l0N()^3jACGwWQ4Fs;!-nR)fP0Xg0U%XRt&@Y`gHB6 zC-ti)NCfT~0@wQkj6P>jfkQkaIq@39Ph!_f7udcJd%c9xkRiy}!q$m(9QXRJXw-V2 z*BwkHXo(>Ya&5$PX1=Z6;PonI{)=qqHK0^DMt3wle^1#=}K@L4+BZ!pXa`40v< zce^dmZ|UIhx=khb%P={$H6QzLMI98TMo_t!mkF^&nIqocCCjyzPVVA(f#-{tXBixz zUs-yZfnE7_=TSihj@rRNh&Jqhgw4XPuS0CEE14~NPw*7kc~isaA=#}_h#h#o`#l)> zsoAm;kgFYwpM~L_JVW4dC8B`VdKt1i6+brTPQPv3e%ej6+`9@E9@tAZtz9x>Q zS0#Z0)9O-l-Hk}xX3ek&C+G5*qg#;A?U*?+OGb%N($?`W% z^(^oiAI^}V6h8Xk=&5p$B|wj^Y3OCA^ez}LV$D;r;0&vJL>8jyi#-KK*Jq3}KEBlW z+>?6s>N%GK-NX7L8uj2Nj|>RO!YGu2Yl*AZ?9&wu=t&`#zf(wJnZ(FE=%P&r^$o8W z%eHBfecmKF9^`1oMf^VaQT^Eg`Q@zr@;<=}UIBE!gz>u~E&0h|iSf?_5MXF06frnt zl@UmG{FbJweeEv4EEkL~(lvhMjEV81VlSI!GY=`A3bvJQsEFdJZ7MW4yi67&Mfrzr6^4liys&`m)ih9L)ql^Wl7 zll%7g{tD(g5{Wg&Nz8)DW2u?m|J;G=Hz%;`0X2nq=(US{bS;Z2*2dRBP7=N0U^1kI zF8H4d@#@8`0lK%6vFOT@#XSW5eD4gSD@O464Xa$%5qvv0htAv_=?e2RV^QW>10@+t zA@(g-`ZGFYCt{tS~kaN6)bg)xJ-o<$FeJN$ivN8_t*T#Ll#kMXBln^TnZ&~Bx#M@kK(^0I7#bMRsZzZK|a32#c3IC1n zzx(cHF#4Q9ZLpmbYz^NshhpU1>%X3jo3sYM=c$IEt9u|Zj6kfdY=-6@4_M5k$7&&n zA=M1iCE`Io^fY8xRg9h=ymx0aem21KWDC$m9BD(v0_j+`n0?&6`KZy1w73-%FR9tV z8(TtI(34b4*7lnLBe%)4s@yJIZ+L~ELz#n9$6$q3(kVYiVLQ?Z;I;x?3b`X!r=L-V z9I7ONquYF_o?S?~phAMw)4NyguwQFj1vO&{)t1bsAnt!r@Z2Pc>N$nm&@wPWeT*Si zFT%k1H}Cu#hc=-5X*mD7RcYksG!or$kZl$jzk?S?XMH|;LMJ@b9c3Y<78WwkSZPy& z=0mh@0Kd&&qS(iH3~J-<%eX=Bbcc>#lE` zN_l^Xk=Kexh3}HZOde)urH`VVk)o}-v6By_CTE`n{)nJ!uV__~WcWRr+cKCCQHx zh%U)FzLz-{{B!FBx*Li)-jX~XJ!c6tdbK?I^eQy1#G)E(M>QTjqVKO~_RY*XklN+g zR(oVNoZ$Jmr7t_nIWi(mOjTjk`}890f%jQmK(}{K*@~opCEozOPCZDoInU-gVESiL zcW(RFgj8XXbriif9)_o!n^#x371i%koTE%pjeV0&18NG&K~`&f%F=*(yMeA$)i;Pa zqyxFB@Q@zUM}GP(DHd-QJOsR-Y41v;SJ-3_Cn?CMG z^zI@@yV=fDVyG>NI8{+fGp}({Ah4Pl0==}yrP^K%Eey*ZXeLStR{H- zmv5Z0Tv|gY*`}XoeTvXi$!T({fX!Wy`@E2x9)UR?1u|{~Etz>8@jCiYB@D+KcF~4m z=1{-!NnrP-M({k@4|F#W4!*<~q!Xd$hrk8R3-iUn!&;pgUmGfqGchI31WT>Y;-%%C zI{o1`9r)?|6E|kgfoAurYySQ8k)WT0jg{E{xG(G50MON!;3JXsGM7}C;9YesX(mA$ zck_xoS&|w5xG3^^u5&A&XFankz8(h+yRcb$hoimQo@atf%yUNh&Rxj(zVv0!3to>0 zfo|LMoT&YcBDc(h>clpa+i|{m|CekR8sfGjyjEqC6nO=w*2OLT#b_mDq*>=zj+>P@ z-i`JzH>q97X$>8|zpzEIOG6yak8hvMfjkm^J)23ATb zETbRx)}|4RKPX_*#ux~;JWNE8++E~Dn|Ghg^&X-PXG;>rli71`Msr(w`fl8&Jw2+k zSDR=S{i$<)StG#f&NZjL76e5i|GEF>$)7+MQSe=^t&$fdVk2|f)%oDh zB%CHKJJRnWlF>4}jF~Z{3gLwgG1M#6c@qsMB8_$!4%ssUyD&A57LS6TF*)Eq0o+lb zd(mu!t8(`Dr(YGKR!eLoM|wMl`zl&n05q9Pi0_+~Cq|dg2tKfi1U0-{shge{;w7`3 zhuoYh#kOkgzH2Urz&_#_(7k@V!hSUcS#ui2hw<&zRN0Ru6LkM|mwOs`p)5X2J*RcU zM4QJQ_wjM=p_8xWb4tAZEklpreZE5dDt+S>s|Fm0mpL9BASLe-+`aO)@2UE5(l|22 zCYEU`q*!KmbMlQ!3fG0Uq}kZ5tc<}fIh`BJ`*{gQ(zlEy;V8eK?4ndf0&VxjUY-H) z{4fqipEKxYyMjlVc(|MmOA2!25(yI>2luzLk!8fb{(JcPYf@p#$gt5z%jiyYl9lwV z1& zuYK1TcV%UNdlF+d@cQ6@#K@WayOc}kSm*)B#Io&RR=DnEZUomm0dz&RF#cXQ+bw;o zDqokEDQ5l{fYz979~Bx3#Yy=k(T%7VJ0SQZu^$zCPi7vqku17}^);EeXIfHNY<0<1 zhbC}*CxPx3buK%t++IzYq`W#me~QL#a^{CKvITN;@aZr;rd zZ86^Su1h3qL2n;|)?s`0EBr12^-clZ3CTj(cWnJ-9Kp0|RdHK~9KQy?CyM=`FrsQ# zRQZ_A`6(;+Jh#M3w?QRtw$jHhjm}$V`(!jy#R!k`eFIZG@Hv|Xx&+K{OtTr5LR8sD zf2&Y5?K6IU_}TGVva7kD>o-{t>NhGs0Y`B+8kyP4{O@l*z~jM*>#A{c9HHVJlEsXR zy8Q*zI|FoOVwEBxwf$Yt0_6`N`P`K;Gkhc7tMCus2cEzZ-&8rgceaW77Rz$iFO6`p zSE&t$6iSSK1y61Lm_42`U2Wh4aA$#TMlepmQj#M=syL0rqzmfo`s%_>Ujv)vuZz zAP(w~2-r3ZzkWPaRGg>pN(w{#BdgfhpGk>6P$gG#D!n5%YJAHi8%lk>q0&X4)nBi3 zv;y2eECJo-gwpgii1M${cqZisY1vJVznQA28;bE7_UOe!R!SrTTJinPzpnE2NglY+ z9!}9H^hx4OCiwSBrYO^}r#j(|B)W zV3r5{hM?aoY=U7dQm2x(#Ex-EU)4bi zAH$*Z=%KNrBV@%17-+?pL$_6UEMzn-rjKVbGd*KOA<-o|x9WIPqw1=PfxmQC0? zaZ4@{e~Utz9u)Exh!PF4Dh9ZlKv#3h|7(|I?`vGLc`viYi|f+n-uV#8k7C2BC0a_U zp*t#srKA?`b4+&^hWjTTQs(;jMY&6)YN;mqNaR#vVzU757SPoR*+elk^5kh=~{>O=)?Sv@I(`sQ+o`?xIan| z3t2St)boU?ieMRq&ThRhXWXA5@cOm`MxQfCNGS1p-3Ug5Lt&AbABSPoqU=dn4#lfs zTEX5M$H4tyuMCXxgo1$Y+X9Lmv1)y0Pm>4pb@B^_yLM@(wA zO+(H*WWp5gg+JdS^1IH;kTW)_@I-xN8}g0ceOp~+is(v+m-z+b?PKlfnJ~x1gWhWU z7@oA&)xpae40iW`F7bp=gj_0O)Qbh7zZj z8gGpFnSN=JcpEqu6V7n+scMY3)!HD$zZx~oEX1DSFiXgwOhFur@P|eHQ;&Op8)LB> zjq{Ul`Vnxya|m=_7rQT8TdSrx8lAgMrX=WwAZ1IFmjuNvuq?(?Y>2JkWv8=E1aiHj z6{zHSeH_zNIVUt|ZDI8J1~w#fN;S{}Q121Y<-WW_x5Pk-uz|f}kO^*&q`nrJ#M|Xt zbqlwKoO@#yb)J!mR55_ltx&4|ZoS(96T4`F$=o`nGS1n9<;8m`;iA|YYmo8LeY5`3z0Dsjn|{}D9~ zb*x-i`)Gnu;P401bh>v@ndE7v%Kkx(p;%01n4Ees5`VItI9wm#zRbno0JWVDQBM%2 zC~#{`1w8888B2wv#*{MT@5tZ!%b2ixX1dd~nCny(>!VwsvehsAv?_2}}?{Tic=yL{*{S;^Wvy<)*3aZS$sIN-( z<+=&G(Ds(KbHHIL)AfSLyZ$vZF$`r2ga7w2g3z^<#43=%Mr+ZjOaG|)^4$Gp4+$RM zm%T7JK%$F^M7JU5cP@2r2j9Ta)rvIy+%G(cjvsz1VOJIE58RpEdgRVD7uXF=8@J3? zva&K&Ra^IyDlJqquU8090KTVi4Mv|cNK9RsL|+n54=&E7AZLE9oge*jugQ_5lR@ao z0M?eKz%vjBK9H&lJNV6P9`-Mh)AYp-Hk`;r-Dv^X?>7zlGS3FM-W#BMB(qIjq%OW> z=f`p>URjw-}QGBK=Rc^z{tEIQ67?4_t(Z zCImV!dvvgS3v`dE9TE<3M9!xcX4g=-U6ihO_Y&@WXhO?lJ@|g?J1!j`-Txl4a)wO< zsSI`~dGHnU9sj`G2q;rDMUJRH-Gl|WcR-gBwz8YjW44jE^(#`%gw-(2h3Wd4^!yU? z^f$LFX~-xo>}0h%IL8c~SoaaRN$k@a=?y<)EW2TvYo$YoV#4n?xeM6=X1% z&X`n)9J(eLy9ybYZ8Do+mhlb{~OmQb5r?o3(q`Lq}Uct6rP@ zCe?w9Y|QoCg3nF~S4-}0 z+W9~UzbTuw4U;eqnIy@6-kh1ssZ9tIX78(WpdAzfa3O*21I_W;0@EP0kavi9fq?m5 z&|f_M-=%{4Aa5)AU2%!J>^k*X8fW`%(=Lo2lgKPyRQq|oOr{DKb0?jJuW0!{04@~J zT@J`lJVIyIZw^=zOsPGjjYut$KZ+vR`h+23yf5)9ul1TLX{|=k!V4l3 guqAcD* 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 literal 27616 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 KOaSD6D*PWAblzkD diff --git a/pkgs/core/index.ts b/pkgs/core/index.ts index ab91bcda..519707b8 100644 --- a/pkgs/core/index.ts +++ b/pkgs/core/index.ts @@ -9,7 +9,8 @@ import { g } from "./utils/global"; import { createLogger } from "./utils/logger"; import { preparePrisma } from "./utils/prisma"; import { syncActionDefinition } from "utils/sync-def"; -import { user } from "../../app/srv/ws/sync/user"; +import { user } from "../../app/srv/ws/sync/entity/user"; +import { snapshot } from "../../app/srv/ws/sync/entity/snapshot"; g.status = "init"; @@ -24,7 +25,10 @@ if (g.mode === "dev") { await startDevWatcher(); } +/** init lmdb */ user.conf.init(); +snapshot.init(); + await preparePrisma(); await ensureNotRunning(); @@ -37,8 +41,8 @@ if (g.db) { await syncActionDefinition(); await generateAPIFrm(); await prepareApiRoutes(); -await createServer(); await prepareAPITypes(); await parcelBuild(); +await createServer(); g.status = "ready"; diff --git a/pkgs/web-utils/src/global.ts b/pkgs/web-utils/src/global.ts index 6759005c..ffb46b20 100644 --- a/pkgs/web-utils/src/global.ts +++ b/pkgs/web-utils/src/global.ts @@ -1,5 +1,6 @@ import goober from "goober"; import type { PrismaClient } from "../../../app/db/db"; +import * as Yjs from "yjs"; declare global { const navigate: (path: string) => void; const params: any; @@ -9,5 +10,6 @@ declare global { const db: PrismaClient; const prasiContext: any; const serverurl: string; + const Y: typeof Yjs; } export {};