@prestizni-software/server-dem 0.4.94 → 0.4.96

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.
@@ -12,172 +12,48 @@ export var DEMEventTypes;
12
12
  DEMEventTypes["get"] = "get";
13
13
  DEMEventTypes["startup"] = "startup";
14
14
  })(DEMEventTypes || (DEMEventTypes = {}));
15
- function setupSocketMiddleware(socket_server, loggers, managers, models) {
16
- socket_server.use(async (socket, next) => {
17
- socket.use((async (event, next) => {
18
- if (event.length !== 3 ||
19
- typeof event[0] !== "string" ||
20
- typeof event[2] !== "function") {
21
- loggers.warn("Invalid event: [" +
22
- event.map((e) => JSON.stringify(e)).join("], [") +
23
- "]");
24
- return;
25
- }
26
- if (!socket
27
- .eventNames()
28
- .some((e) => e.toString() === event[0] ||
29
- e.toString() === event[0].slice(0, -24))) {
30
- loggers.warn("Undefined event: [" +
31
- event.map((e) => JSON.stringify(e)).join("], [") +
32
- "]");
33
- event[2]({
34
- success: false,
35
- message: "Undefined event, event: " + event[0] + " not found",
36
- });
37
- return;
38
- }
39
- try {
40
- const e = event[0];
41
- let demEvent = {};
42
- const id = e.slice(-24);
43
- const managersRec = managers;
44
- switch (true) {
45
- case e.startsWith(EVENT_NEW):
46
- demEvent.type = DEMEventTypes.new;
47
- demEvent.manager = managersRec[e.replace(EVENT_NEW, "")];
48
- demEvent.data = event[1];
49
- break;
50
- case e.startsWith(EVENT_UPDATE):
51
- demEvent.type = DEMEventTypes.update;
52
- demEvent.manager =
53
- managersRec[e.replace(EVENT_UPDATE, "").replace(id, "")];
54
- demEvent.object = demEvent.manager.getObject(id);
55
- demEvent.data = event[1];
56
- break;
57
- case e.startsWith(EVENT_DELETE):
58
- demEvent.type = DEMEventTypes.delete;
59
- demEvent.manager = managersRec[e.replace(EVENT_DELETE, "")];
60
- demEvent.object = demEvent.manager.getObject(event[1]);
61
- if (!demEvent.object) {
62
- event[2]({
63
- success: true,
64
- message: "Object already deleted",
65
- data: undefined,
66
- });
67
- return;
68
- }
69
- break;
70
- case e.startsWith(EVENT_GET):
71
- demEvent.type = DEMEventTypes.get;
72
- demEvent.manager =
73
- managersRec[e.replace(EVENT_GET, "").replace(id, "")];
74
- demEvent.object = demEvent.manager.getObject(id);
75
- break;
76
- case e.startsWith(EVENT_STARTUP):
77
- demEvent.type = DEMEventTypes.startup;
78
- demEvent.manager = managersRec[e.replace(EVENT_STARTUP, "")];
79
- break;
80
- default:
81
- throw new Error("Unknown event: " +
82
- e +
83
- " - known events: [" +
84
- Object.values(DEMEventTypes).join(", ") +
85
- "]");
86
- }
87
- try {
88
- await demEvent.manager.options?.accessDefinitions?.eventMiddleware?.(demEvent, managers, socket);
89
- next();
90
- }
91
- catch (error) {
92
- loggers.warn("Someone got access denied:\nUser (" +
93
- JSON.stringify(socket.handshake.auth) +
94
- ")\nWith ID: '" +
95
- socket.id +
96
- "'\nFrom: '" +
97
- socket.handshake.address +
98
- "'\nTo the event: '" +
99
- event[0] +
100
- "'\nFor: '" +
101
- error.message +
102
- "'");
103
- event[2]({
104
- success: false,
105
- message: "You were denied access to this event '" +
106
- event[0] +
107
- "' by the server.\n" +
108
- error.message,
109
- });
110
- }
111
- }
112
- catch (error) {
113
- loggers.error("Error with event: " +
114
- event[0] +
115
- "\nError: " +
116
- error.message);
117
- return;
118
- }
119
- }));
120
- next();
121
- });
122
- }
123
15
  export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMessages = false, emitter = new EventEmitter(), models) {
124
16
  readyLoggers(loggers);
125
- if (disableDEMDebugMessages) {
126
- loggers.debug = (_) => { };
127
- }
128
- socket.use((socket, next) => {
129
- socket.onAny((event) => {
130
- loggers.debug("Recieved event: " + event + " from client: " + socket.id);
131
- });
132
- next();
133
- });
134
17
  const managers = {};
135
18
  for (const key in defs) {
136
- loggers.debug(`Creating manager for ${key}`);
137
19
  const def = defs[key];
138
20
  const model = getModelForClass(def.class);
139
- try {
140
- const c = new AutoUpdateServerManager(def.class, key, loggers, socket, model, managers, emitter, def.options);
141
- managers[key] = c;
142
- loggers.debug("Loading DB for manager: " + key);
143
- await managers[key].preLoad();
144
- }
145
- catch (error) {
146
- loggers.error("Error creating/loading manager: " + key);
147
- loggers.error(error.message);
148
- loggers.error(error.stack);
149
- }
21
+ const manager = new AutoUpdateServerManager(def.class, key, loggers, socket, model, managers, emitter, def.options);
22
+ managers[key] = manager;
150
23
  }
151
24
  for (const manager of Object.values(managers)) {
152
25
  try {
153
- await manager.loadReferences();
26
+ await manager.preLoad();
154
27
  }
155
28
  catch (error) {
156
- loggers.error("Error loading DB for manager: " +
157
- manager.className +
158
- " (loadReferences)");
159
- loggers.error(error.message);
160
- loggers.error(error.stack);
29
+ loggers?.error?.("Error preloading manager: " + manager.className + " - " + error.message);
161
30
  }
162
31
  }
163
- socket.on("connection", async (socket) => {
164
- loggers.debug(`Client connected: ${socket.id}`);
165
- for (const manager of Object.values(managers)) {
166
- manager.registerSocket(socket);
32
+ socket.on("connection", async (clientSocket) => {
33
+ loggers?.debug?.(`Client connected: ${clientSocket.id}`);
34
+ const startupData = {};
35
+ for (const [key, manager] of Object.entries(managers)) {
36
+ let objects = manager.objectsAsArray;
37
+ const options = manager.options;
38
+ if (options?.accessDefinitions?.startupMiddleware) {
39
+ try {
40
+ objects = await options.accessDefinitions.startupMiddleware(objects, managers, clientSocket);
41
+ }
42
+ catch (error) {
43
+ loggers?.error?.(`Error in startupMiddleware for ${key}: ${error.message}`);
44
+ objects = [];
45
+ }
46
+ }
47
+ startupData[key] = objects.map((obj) => obj.extractedData);
48
+ manager.registerSocket(clientSocket);
167
49
  }
168
- // Client disconnect
169
- socket.on("disconnect", () => {
170
- loggers.debug(`Client disconnected: ${socket.id}`);
50
+ if (typeof clientSocket.emit === 'function') {
51
+ clientSocket.emit(EVENT_STARTUP, startupData);
52
+ }
53
+ clientSocket.on("disconnect", () => {
54
+ loggers?.debug?.(`Client disconnected: ${clientSocket.id}`);
171
55
  });
172
56
  });
173
- try {
174
- setupSocketMiddleware(socket, loggers, managers, models);
175
- }
176
- catch (error) {
177
- loggers.error("Error setting up socket middleware");
178
- loggers.error(error.message);
179
- loggers.error(error.stack);
180
- }
181
57
  return managers;
182
58
  }
183
59
  export class AutoUpdateServerManager extends AutoUpdateManager {
@@ -194,177 +70,113 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
194
70
  async preLoad() {
195
71
  this.loggers.debug("Loading manager DB " + this.className);
196
72
  const docs = await this.model.find({});
197
- const dbIds = new Set(docs.map((d) => d._id.toString()));
198
- // Remove stale objects not in DB
199
- for (const id in this.objects_) {
200
- if (!dbIds.has(id)) {
201
- this.socket.emit("delete" + this.className, id);
202
- delete globalCache.objects[id];
203
- delete this.objects_[id];
204
- }
205
- }
206
- const creationPromises = docs.map(async (d) => {
73
+ for (const d of docs) {
207
74
  const docId = d._id.toString();
208
- if (!docId) {
209
- this.loggers.debug("Invalid document, no _id: " + JSON.stringify(d));
210
- return;
211
- }
212
- this.objects_[docId] =
213
- this.objects_[docId] ??
214
- (await createAutoUpdatedClass(this.classParam, this.className, this.socket, docId, this.loggers, this, this.emitter, d));
75
+ this.objects_[docId] = await createAutoUpdatedClass(this.classParam, this.className, this.socket, docId, this.loggers, this, this.emitter, d);
215
76
  globalCache.objects[docId] = {
216
77
  className: this.className,
217
78
  object: this.objects_[docId],
218
79
  };
219
- });
220
- await Promise.all(creationPromises);
221
- const initializationPromises = Object.values(this.objects_).map(async (object) => {
222
- await object.isPreLoadedAsync();
223
- await object.contactChildren();
224
- await object.loadMissingReferences();
225
- });
226
- await Promise.all(initializationPromises);
227
- this.loggers.debug("Loaded manager DB " +
228
- this.className +
229
- " - [" +
230
- docs.length +
231
- "] entries");
80
+ }
232
81
  }
233
82
  registerSocket(socket) {
234
83
  this.clientSockets.add(socket);
84
+ const runMiddleware = async (event) => {
85
+ if (this.options?.accessDefinitions?.eventMiddleware) {
86
+ await this.options.accessDefinitions.eventMiddleware(event, this.managers, socket);
87
+ }
88
+ };
235
89
  socket.on(EVENT_STARTUP + this.className, async (_, ack) => {
236
90
  try {
237
- const ids = ((await this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.managers, socket))?.map((obj) => obj._id) ?? this.objectIDs).filter(Boolean);
238
- this.loggers.debug("Sending startup data for manager " + this.className);
239
- if (ids.some((id) => this.objects_[id] === "undefined"))
240
- this.loggers.error(ids.find((id) => this.objects_[id] === "undefined"));
241
- ack({
242
- data: { ids, properties: this.properties },
243
- success: true,
244
- });
91
+ const objects = await (this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.managers, socket) ?? Promise.resolve(this.objectsAsArray));
92
+ const ids = objects.map((obj) => obj._id.toString());
93
+ if (typeof ack === 'function') {
94
+ ack({
95
+ data: { ids, properties: this.properties },
96
+ success: true,
97
+ });
98
+ }
245
99
  }
246
100
  catch (error) {
247
- this.loggers.error("Error sending startup data for manager " +
248
- this.className +
249
- ": " +
250
- error.message);
251
- this.loggers.error(error.stack);
252
- ack({
253
- success: false,
254
- message: error.message,
255
- });
101
+ if (typeof ack === 'function') {
102
+ ack({ success: false, message: error.message });
103
+ }
256
104
  }
257
105
  });
258
- socket.on(EVENT_DELETE + this.className, async (id, ack) => {
259
- this.loggers.debug("Deleting object from manager " + this.className + " - " + id);
106
+ socket.on(EVENT_NEW + this.className, async (data, ack) => {
260
107
  try {
261
- await this.deleteObject(id);
262
- ack({
263
- success: true,
264
- message: "Deleted successfully",
265
- data: undefined,
266
- });
108
+ // console.log("SERVER RECEIVED NEW for " + this.className, data);
109
+ await runMiddleware({ type: DEMEventTypes.new, manager: this, data, object: undefined });
110
+ const newObj = await this.createObject(data);
111
+ if (typeof ack === 'function') {
112
+ ack({ data: newObj.extractedData, success: true });
113
+ }
267
114
  }
268
115
  catch (error) {
269
- this.loggers.error("Error deleting object from manager " +
270
- this.className +
271
- " - " +
272
- id +
273
- ": " +
274
- error.message);
275
- this.loggers.error(error.stack);
276
- ack({ success: false, message: error.message });
116
+ if (typeof ack === 'function') {
117
+ ack({ success: false, message: error.message });
118
+ }
277
119
  }
278
120
  });
279
- socket.on(EVENT_NEW + this.className, async (data, ack) => {
280
- this.loggers.debug("Recieved new object creation in manager " + this.className);
121
+ socket.on(EVENT_DELETE + this.className, async (id, ack) => {
281
122
  try {
282
- const newDoc = await this.createObject(data);
283
- ack({
284
- data: newDoc.extractedData,
285
- success: true,
286
- message: "Created successfully",
287
- });
123
+ // console.log("SERVER RECEIVED DELETE for " + this.className, id);
124
+ const obj = this.getObject(id);
125
+ if (obj) {
126
+ await runMiddleware({ type: DEMEventTypes.delete, manager: this, object: obj, data: undefined });
127
+ }
128
+ const delRes = await this.deleteObject(id);
129
+ if (typeof ack === 'function') {
130
+ ack({ success: delRes.success, data: undefined, message: delRes.message });
131
+ }
288
132
  }
289
133
  catch (error) {
290
- this.loggers.error("Error creating new object creation in manager " +
291
- this.className +
292
- " - " +
293
- error.message);
294
- this.loggers.error(error.stack);
295
- ack({ success: false, message: error.message });
296
- }
297
- });
298
- socket.on(EVENT_UPDATE + this.className, async () => { });
299
- socket.on(EVENT_GET + this.className, async () => { });
300
- socket.onAny(async (event, data, ack) => {
301
- if (event.startsWith(EVENT_UPDATE + this.className) &&
302
- event.replace(EVENT_UPDATE + this.className, "").length === 24) {
303
- this.loggers.debug("Updating object in manager " +
304
- this.className +
305
- ": " +
306
- event +
307
- " - " +
308
- JSON.stringify(data));
309
- try {
310
- const id = event.replace(EVENT_UPDATE + this.className, "");
311
- let obj = this.objects_[id];
312
- if (typeof obj === "string")
313
- throw new Error(`Never... failed to get object somehow: ${obj}`);
314
- const res = await obj.setValue(data.key, data.value);
315
- if (res.success) {
316
- ack({
317
- data: null,
318
- success: true,
319
- message: res.msg,
320
- });
321
- }
322
- else {
323
- ack({
324
- success: false,
325
- message: res.msg,
326
- });
327
- }
328
- }
329
- catch (error) {
330
- this.loggers.warn("Failed to update object in manager " + this.className);
134
+ if (typeof ack === 'function') {
331
135
  ack({ success: false, message: error.message });
332
136
  }
333
137
  }
334
- else if (event.startsWith(EVENT_GET + this.className) &&
335
- event.replace(EVENT_GET + this.className, "").length === 24) {
336
- try {
337
- const id = event.replace(EVENT_GET + this.className, "");
338
- let obj = this.objects_[id];
339
- if (!obj) {
340
- this.loggers.warn(`Client requested non-existent object ${id} from manager ${this.className}`);
341
- ack({ success: false, message: "Object not found" });
138
+ });
139
+ socket.onAny(async (eventName, ...args) => {
140
+ if (typeof eventName !== 'string')
141
+ return;
142
+ const ack = args[args.length - 1];
143
+ try {
144
+ if (eventName.startsWith(EVENT_UPDATE + this.className)) {
145
+ const id = eventName.replace(EVENT_UPDATE + this.className, "");
146
+ const data = args[0];
147
+ if (!data || !data.key)
342
148
  return;
343
- }
344
- ack({
345
- data: obj.extractedData,
346
- success: true,
347
- message: "Updated successfully",
348
- });
149
+ const obj = this.getObject(id);
150
+ if (!obj)
151
+ return;
152
+ await runMiddleware({ type: DEMEventTypes.update, manager: this, object: obj, data });
153
+ const res = await obj.setValue(data.key, data.value, { silent: false });
154
+ if (typeof ack === 'function')
155
+ ack({ data: obj.extractedData, success: res.success, message: res.msg });
349
156
  }
350
- catch (error) {
351
- this.loggers.error("Error sending startup data for manager " +
352
- this.className +
353
- ": " +
354
- error.message);
355
- this.loggers.error(error.stack);
356
- ack({ success: false, message: error.message });
157
+ else if (eventName.startsWith(EVENT_GET + this.className)) {
158
+ const id = eventName.replace(EVENT_GET + this.className, "");
159
+ const obj = this.getObject(id);
160
+ if (!obj)
161
+ return;
162
+ await runMiddleware({ type: DEMEventTypes.get, manager: this, object: obj, data: undefined });
163
+ if (typeof ack === 'function')
164
+ ack({ data: obj.extractedData, success: true });
357
165
  }
358
166
  }
167
+ catch (error) {
168
+ if (typeof ack === 'function')
169
+ ack({ success: false, message: error.message });
170
+ }
359
171
  });
360
172
  socket.on("disconnect", () => {
361
173
  this.clientSockets.delete(socket);
362
174
  });
363
175
  }
364
176
  getObject(_id) {
365
- if (!_id)
177
+ if (_id === undefined)
366
178
  return null;
367
- return this.objects_[_id];
179
+ return this.objects_[_id] || undefined;
368
180
  }
369
181
  get objects() {
370
182
  return this.objects_;
@@ -373,65 +185,60 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
373
185
  return Object.values(this.objects_);
374
186
  }
375
187
  async handleGetMissingObject(_id) {
376
- if (this.getObject(_id))
377
- return this.getObject(_id);
378
- const document = await this.model.findById(_id);
379
- if (!document)
380
- throw new Error(`No document with id ${_id} in DB.`);
381
188
  if (!this.managers)
382
- throw new Error(`No managers.`);
383
- const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, document, this.loggers, this, this.emitter);
384
- await object.waitForPreloaded();
385
- this.objects_[object._id] = object;
386
- globalCache.objects[object._id] = { className: this.className, object };
387
- await object.isPreLoadedAsync();
388
- await object.loadMissingReferences();
389
- await object.contactChildren();
390
- return object;
189
+ throw new Error("No managers.");
190
+ if (this.objects_[_id])
191
+ return this.objects_[_id];
192
+ const doc = await this.model.findById(_id);
193
+ if (!doc)
194
+ throw new Error(`No document with id ${_id} in DB.`);
195
+ const obj = await createAutoUpdatedClass(this.classParam, this.className, this.socket, _id, this.loggers, this, this.emitter, doc);
196
+ this.objects_[_id] = obj;
197
+ globalCache.objects[_id] = { className: this.className, object: obj };
198
+ return obj;
391
199
  }
392
200
  async createObject(data) {
393
- if (!this.managers)
394
- throw new Error(`No managers.`);
395
- this.loggers.debug("Creating new object from manager " + this.className);
396
- delete data._id;
397
- const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, data, this.loggers, this, this.emitter);
398
- await object.waitForPreloaded();
399
- this.objects_[object._id] = object;
400
- globalCache.objects[object._id] = { className: this.className, object };
401
- await object.isPreLoadedAsync();
402
- await object.loadMissingReferences();
403
- await object.contactChildren();
404
- const notificationPromises = Array.from(this.clientSockets).map(async (socket) => {
405
- try {
406
- const theTruth = (await this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.managers, socket)) ?? ["gay"];
407
- if (theTruth.length > 0) {
408
- if (!object._id)
409
- this.loggers.error("Object ID is undefined for object: " + object);
410
- this.loggers.debug("Emitting new object " + object._id);
411
- socket.emit("new" + this.className, object._id);
201
+ const dataRec = { ...data };
202
+ if (dataRec._id === "" || dataRec._id === null)
203
+ delete dataRec._id;
204
+ const doc = await this.model.create(dataRec);
205
+ const id = doc._id.toString();
206
+ const obj = await createAutoUpdatedClass(this.classParam, this.className, this.socket, id, this.loggers, this, this.emitter, doc);
207
+ this.objects_[id] = obj;
208
+ globalCache.objects[id] = { className: this.className, object: obj };
209
+ this.socket.emit(EVENT_NEW + this.className, obj.extractedData);
210
+ return obj;
211
+ }
212
+ async deleteObject(_id) {
213
+ const idStr = _id.toString();
214
+ const obj = this.getObject(idStr);
215
+ if (obj) {
216
+ const res = await obj.destroy(true);
217
+ if (res.success) {
218
+ delete this.objects_[idStr];
219
+ delete globalCache.objects[idStr];
220
+ const callbacks = obj.callbacks;
221
+ if (callbacks && typeof callbacks.delete === 'function') {
222
+ await callbacks.delete(obj);
412
223
  }
413
224
  }
414
- catch (error) {
415
- this.loggers.error("Error when emitting new object to client: " + error.name);
416
- this.loggers.error(error.message);
417
- this.loggers.error(error.stack);
418
- }
419
- });
420
- await Promise.all(notificationPromises);
421
- if (!object._id)
422
- throw new Error(`Never... failed to get object somehow: ${object}`);
423
- return object;
225
+ return res;
226
+ }
227
+ return { success: true, message: "Already gone" };
424
228
  }
425
229
  }
426
230
  function readyLoggers(loggers) {
231
+ if (!loggers)
232
+ return;
427
233
  const warn = loggers.warn;
428
234
  loggers.warn = (s) => {
429
235
  if (s == "-_-" &&
430
236
  machineId.machineIdSync() ==
431
- "534d99b372d61249ade303f9fb4255e3e552e2731f8c455ba42b8f3bef19d8d2")
237
+ "534d99b372d61249ade303f9fb4255e3e552e2731f8c455ba42b8f3bef19d8d2") {
432
238
  for (let i = 0; i < 100; i++)
433
- loggers.warn("WE HAVE BEEN COMPROMISED!!!!!");
434
- warn(s);
239
+ warn?.("WE HAVE BEEN COMPROMISED!!!!!");
240
+ }
241
+ warn?.(s);
435
242
  };
436
243
  }
437
244
  //# sourceMappingURL=AutoUpdateServerManagerClass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoUpdateServerManagerClass.js","sourceRoot":"","sources":["../AutoUpdateServerManagerClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoUpdateServerManagerClass.js","sourceRoot":"","sources":["../AutoUpdateServerManagerClass.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAEL,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAQL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,aAAa,EACb,WAAW,GAKZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA+FxD,MAAM,CAAN,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,oCAAqB,CAAA;AACvB,CAAC,EANW,aAAa,KAAb,aAAa,QAMxB;AAqCD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAGrC,IAKC,EACD,OAAoB,EACpB,MAAc,EACd,0BAAmC,KAAK,EACxC,UAAyB,IAAI,YAAY,EAAE,EAC3C,MAAY;IAEZ,YAAY,CAAC,OAAO,CAAC,CAAC;IAGtB,MAAM,QAAQ,GAAG,EAAO,CAAC;IAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,uBAAuB,CACzC,GAAG,CAAC,KAAY,EAChB,GAAa,EACb,OAAO,EACP,MAAM,EACN,KAAY,EACZ,QAAQ,EACR,OAAO,EACP,GAAG,CAAC,OAAc,CACnB,CAAC;QACD,QAAgB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACnC,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC;YACD,MAAO,OAAe,CAAC,OAAO,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,CAAC,4BAA4B,GAAI,OAAe,CAAC,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;QAC7C,OAAO,EAAE,KAAK,EAAE,CAAC,qBAAqB,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,WAAW,GAA0B,EAAE,CAAC;QAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,IAAI,OAAO,GAAI,OAAe,CAAC,cAAc,CAAC;YAC9C,MAAM,OAAO,GAAI,OAAe,CAAC,OAA4B,CAAC;YAC9D,IAAI,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACD,OAAO,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CACvD,OAAO,EACP,QAAa,EACb,YAAY,CACf,CAAC;gBACN,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBAClB,OAAO,EAAE,KAAK,EAAE,CAAC,kCAAkC,GAAG,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5E,OAAO,GAAG,EAAE,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC/D,OAAe,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,OAAO,YAAY,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;QAED,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACjC,OAAO,EAAE,KAAK,EAAE,CAAC,wBAAwB,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,uBAGX,SAAQ,iBAAuB;IACf,KAAK,CAA8C;IAClD,aAAa,GAAgB,IAAI,GAAG,EAAU,CAAC;IAChD,OAAO,CAAmB;IACvB,QAAQ,GAAsB,EAAE,CAAC;IAGpD,YACE,UAA0B,EAC1B,SAAiB,EACjB,OAAoB,EACpB,MAAc,EACd,KAAkD,EAClD,QAAW,EACX,OAAsB,EACtB,OAAyB;QAEzB,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,MAA+B,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1F,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAI,CAAC,CAAC,GAAW,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,sBAAsB,CACjD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAa,EAClB,KAAY,EACZ,IAAI,CAAC,OAAO,EACZ,IAAW,EACX,IAAI,CAAC,OAAO,EACZ,CAAQ,CACT,CAAC;YACF,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC7B,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,cAAc,CAAC,MAAc;QAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,KAAK,EAAE,KAAqB,EAAE,EAAE;YAClD,IAAI,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;gBACnD,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,QAAe,EAAE,MAAM,CAAC,CAAC;YAC9F,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,CAAC,EAAE,CACP,aAAa,GAAG,IAAI,CAAC,SAAS,EAC9B,KAAK,EACH,CAAC,EACD,GAES,EACT,EAAE;YACF,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CACzE,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,QAAe,EACpB,MAAM,CACP,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAE3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrD,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC5B,GAAG,CAAC;wBACF,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;wBAC1C,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;gBACP,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC9B,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,IAA4B,EAAE,GAAqC,EAAE,EAAE;YAChH,IAAI,CAAC;gBACH,kEAAkE;gBAClE,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBACzF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC9B,GAAG,CAAC,EAAE,IAAI,EAAG,MAAc,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC9B,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAU,EAAE,GAA6C,EAAE,EAAE;YACzG,IAAI,CAAC;gBACH,mEAAmE;gBACnE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrG,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAS,CAAC,CAAC;gBAClD,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC5B,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;oBAC5B,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE;YACtC,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,OAAO;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAElC,IAAI,CAAC;gBACD,IAAI,SAAS,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtD,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAChE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAA2B,CAAC;oBAC/C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG;wBAAE,OAAO;oBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC/B,IAAI,CAAC,GAAG;wBAAE,OAAO;oBAEjB,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBAEtF,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAU,EAAE,IAAI,CAAC,KAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtF,IAAI,OAAO,GAAG,KAAK,UAAU;wBAAE,GAAG,CAAC,EAAE,IAAI,EAAG,GAAW,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBACrH,CAAC;qBAAM,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1D,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC/B,IAAI,CAAC,GAAG;wBAAE,OAAO;oBAEjB,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBAE9F,IAAI,OAAO,GAAG,KAAK,UAAU;wBAAE,GAAG,CAAC,EAAE,IAAI,EAAG,GAAW,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5F,CAAC;YACL,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,IAAI,OAAO,GAAG,KAAK,UAAU;oBAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,GAAY;QAC3B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IACzC,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAW;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,MAAM,sBAAsB,CACtC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAa,EAClB,GAAU,EACV,IAAI,CAAC,OAAO,EACZ,IAAW,EACX,IAAI,CAAC,OAAO,EACZ,GAAU,CACX,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACzB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACtE,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAA4B;QACpD,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAS,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG,KAAK,EAAE,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC;QACnE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,sBAAsB,CACtC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAa,EAClB,EAAS,EACT,IAAI,CAAC,OAAO,EACZ,IAAW,EACX,IAAI,CAAC,OAAO,EACZ,GAAU,CACX,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QACxB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAEpE,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAG,GAAW,CAAC,aAAa,CAAC,CAAC;QAElF,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAY;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,SAAS,GAAI,GAAW,CAAC,SAAS,CAAC;gBACzC,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACtD,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;YACL,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IACtD,CAAC;CACF;AAED,SAAS,YAAY,CAAC,OAAoB;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,OAAO,CAAC,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,IACE,CAAC,IAAI,KAAK;YACV,SAAS,CAAC,aAAa,EAAE;gBACvB,kEAAkE,EACpE,CAAC;YACC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;gBACxB,IAAI,EAAE,CAAC,+BAA+B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"}