lazy-render-virtual-scroll 1.0.5 → 1.0.6

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.
Files changed (47) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/adapters/react/useLazyList.d.ts +10 -1
  3. package/dist/cjs/adapters/react/useLazyList.d.ts.map +1 -1
  4. package/dist/cjs/core/Engine.d.ts +8 -4
  5. package/dist/cjs/core/Engine.d.ts.map +1 -1
  6. package/dist/cjs/core/IntelligentScrollDetector.d.ts +19 -0
  7. package/dist/cjs/core/IntelligentScrollDetector.d.ts.map +1 -0
  8. package/dist/cjs/core/NetworkAwarePrefetchManager.d.ts +10 -0
  9. package/dist/cjs/core/NetworkAwarePrefetchManager.d.ts.map +1 -0
  10. package/dist/cjs/core/NetworkAwareRequestQueue.d.ts +20 -0
  11. package/dist/cjs/core/NetworkAwareRequestQueue.d.ts.map +1 -0
  12. package/dist/cjs/core/NetworkSpeedDetector.d.ts +16 -0
  13. package/dist/cjs/core/NetworkSpeedDetector.d.ts.map +1 -0
  14. package/dist/cjs/core/PrefetchManager.d.ts +7 -4
  15. package/dist/cjs/core/PrefetchManager.d.ts.map +1 -1
  16. package/dist/cjs/core/WindowManager.d.ts +4 -0
  17. package/dist/cjs/core/WindowManager.d.ts.map +1 -1
  18. package/dist/cjs/core/types.d.ts +8 -0
  19. package/dist/cjs/core/types.d.ts.map +1 -1
  20. package/dist/cjs/index.d.ts +5 -1
  21. package/dist/cjs/index.d.ts.map +1 -1
  22. package/dist/cjs/index.js +436 -13
  23. package/dist/cjs/index.js.map +1 -1
  24. package/dist/esm/adapters/react/useLazyList.d.ts +10 -1
  25. package/dist/esm/adapters/react/useLazyList.d.ts.map +1 -1
  26. package/dist/esm/core/Engine.d.ts +8 -4
  27. package/dist/esm/core/Engine.d.ts.map +1 -1
  28. package/dist/esm/core/IntelligentScrollDetector.d.ts +19 -0
  29. package/dist/esm/core/IntelligentScrollDetector.d.ts.map +1 -0
  30. package/dist/esm/core/NetworkAwarePrefetchManager.d.ts +10 -0
  31. package/dist/esm/core/NetworkAwarePrefetchManager.d.ts.map +1 -0
  32. package/dist/esm/core/NetworkAwareRequestQueue.d.ts +20 -0
  33. package/dist/esm/core/NetworkAwareRequestQueue.d.ts.map +1 -0
  34. package/dist/esm/core/NetworkSpeedDetector.d.ts +16 -0
  35. package/dist/esm/core/NetworkSpeedDetector.d.ts.map +1 -0
  36. package/dist/esm/core/PrefetchManager.d.ts +7 -4
  37. package/dist/esm/core/PrefetchManager.d.ts.map +1 -1
  38. package/dist/esm/core/WindowManager.d.ts +4 -0
  39. package/dist/esm/core/WindowManager.d.ts.map +1 -1
  40. package/dist/esm/core/types.d.ts +8 -0
  41. package/dist/esm/core/types.d.ts.map +1 -1
  42. package/dist/esm/index.d.ts +5 -1
  43. package/dist/esm/index.d.ts.map +1 -1
  44. package/dist/esm/index.js +433 -14
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/index.d.ts +101 -10
  47. package/package.json +1 -1
package/dist/esm/index.js CHANGED
@@ -34,24 +34,33 @@ class WindowManager {
34
34
  updateItemHeight(height) {
35
35
  this.itemHeight = height;
36
36
  }
37
+ /**
38
+ * Update buffer size if it changes
39
+ */
40
+ updateBufferSize(size) {
41
+ this.bufferSize = size;
42
+ }
37
43
  }
38
44
 
39
45
  class PrefetchManager {
40
- constructor(bufferSize = 5) {
41
- this.bufferSize = bufferSize;
42
- }
43
46
  /**
44
- * Determine if more items should be fetched based on visible range and loaded items
47
+ * This class is kept for backward compatibility
48
+ * Intelligent prefetching is now handled in the Engine class
49
+ */
50
+ constructor() { }
51
+ /**
52
+ * Legacy method - not used in intelligent mode
45
53
  */
46
54
  shouldPrefetch(visibleEnd, totalLoaded) {
47
55
  // Simple rule: if visible end is approaching the loaded boundary, fetch more
48
- return visibleEnd >= totalLoaded - this.bufferSize;
56
+ return visibleEnd >= totalLoaded - 5; // Default buffer
49
57
  }
50
58
  /**
51
- * Update buffer size if it changes
59
+ * Update buffer size if it changes (for backward compatibility)
52
60
  */
53
61
  updateBufferSize(size) {
54
- this.bufferSize = size;
62
+ // This method exists for backward compatibility
63
+ // Intelligent prefetching is now handled in the Engine class
55
64
  }
56
65
  }
57
66
 
@@ -114,6 +123,369 @@ class RequestQueue {
114
123
  }
115
124
  }
116
125
 
126
+ class IntelligentScrollDetector {
127
+ constructor() {
128
+ this.lastScrollTop = 0;
129
+ this.lastTime = 0;
130
+ this.velocityHistory = [];
131
+ this.HISTORY_SIZE = 5;
132
+ this.scrollTimeout = null;
133
+ this.isIdle = true;
134
+ this.lastTime = performance.now();
135
+ }
136
+ // Calculate velocity from scroll event
137
+ calculateVelocity(scrollTop) {
138
+ const now = performance.now();
139
+ const deltaY = scrollTop - this.lastScrollTop;
140
+ const deltaTime = now - this.lastTime;
141
+ // Calculate velocity (pixels per millisecond)
142
+ const velocity = deltaTime > 0 ? deltaY / deltaTime : 0;
143
+ // Store in history for smoothing
144
+ this.velocityHistory.push(velocity);
145
+ if (this.velocityHistory.length > this.HISTORY_SIZE) {
146
+ this.velocityHistory.shift();
147
+ }
148
+ // Update for next calculation
149
+ this.lastScrollTop = scrollTop;
150
+ this.lastTime = now;
151
+ // Update idle state
152
+ this.isIdle = false;
153
+ this.resetIdleTimer();
154
+ // Return smoothed velocity (average of recent values)
155
+ return this.getAverageVelocity();
156
+ }
157
+ // Get smoothed velocity from history
158
+ getAverageVelocity() {
159
+ if (this.velocityHistory.length === 0)
160
+ return 0;
161
+ const sum = this.velocityHistory.reduce((acc, vel) => acc + vel, 0);
162
+ return sum / this.velocityHistory.length;
163
+ }
164
+ // Determine scroll direction from velocity
165
+ getDirection(velocity) {
166
+ if (Math.abs(velocity) < 0.1)
167
+ return 'stationary';
168
+ return velocity > 0 ? 'down' : 'up';
169
+ }
170
+ // Calculate buffer size based on scroll velocity
171
+ calculateBuffer(velocity) {
172
+ const absVelocity = Math.abs(velocity);
173
+ if (absVelocity > 1.5) {
174
+ return 20; // Large buffer for fast scrolling
175
+ }
176
+ else if (absVelocity > 1.0) {
177
+ return 10; // Medium buffer
178
+ }
179
+ else if (absVelocity > 0.3) {
180
+ return 7; // Small buffer for medium scrolling
181
+ }
182
+ else {
183
+ return 5; // Minimal buffer when nearly stationary
184
+ }
185
+ }
186
+ // Calculate prefetch distance based on velocity
187
+ calculatePrefetchDistance(velocity) {
188
+ const absVelocity = Math.abs(velocity);
189
+ if (absVelocity > 2.0)
190
+ return 1200; // Far ahead for fast scrolling
191
+ if (absVelocity > 1.0)
192
+ return 800; // Medium distance
193
+ if (absVelocity > 0.3)
194
+ return 400; // Close distance for slow scroll
195
+ return 200; // Minimal prefetch when nearly stationary
196
+ }
197
+ // Predict where user will be in X milliseconds
198
+ predictPosition(currentPosition, velocity, msAhead = 500) {
199
+ return currentPosition + (velocity * msAhead);
200
+ }
201
+ // Check if user is currently idle
202
+ getIsIdle() {
203
+ return this.isIdle;
204
+ }
205
+ // Reset idle timer
206
+ resetIdleTimer() {
207
+ if (this.scrollTimeout) {
208
+ clearTimeout(this.scrollTimeout);
209
+ }
210
+ this.scrollTimeout = window.setTimeout(() => {
211
+ this.isIdle = true;
212
+ }, 150); // 150ms after last scroll = idle
213
+ }
214
+ // Clean up resources
215
+ cleanup() {
216
+ if (this.scrollTimeout) {
217
+ clearTimeout(this.scrollTimeout);
218
+ }
219
+ }
220
+ }
221
+
222
+ class NetworkSpeedDetector {
223
+ constructor() {
224
+ this.bandwidthHistory = [];
225
+ this.latencyHistory = [];
226
+ this.HISTORY_SIZE = 5;
227
+ }
228
+ // Estimate available bandwidth
229
+ async estimateBandwidth() {
230
+ const startTime = performance.now();
231
+ const testData = new Array(10000).fill('test_data').join('');
232
+ try {
233
+ // Send test request to measure bandwidth
234
+ const response = await fetch('/api/network-test', {
235
+ method: 'POST',
236
+ body: testData
237
+ });
238
+ const endTime = performance.now();
239
+ const duration = (endTime - startTime) / 1000; // seconds
240
+ const dataSize = testData.length; // bytes
241
+ const bandwidth = dataSize / duration; // bytes per second
242
+ this.bandwidthHistory.push(bandwidth);
243
+ if (this.bandwidthHistory.length > this.HISTORY_SIZE) {
244
+ this.bandwidthHistory.shift();
245
+ }
246
+ return this.getAverageBandwidth();
247
+ }
248
+ catch (error) {
249
+ // If network test fails, return a conservative estimate
250
+ return 100000; // 100 KB/s as fallback
251
+ }
252
+ }
253
+ // Measure network latency
254
+ async measureLatency() {
255
+ try {
256
+ const startTime = performance.now();
257
+ await fetch('/api/ping');
258
+ const endTime = performance.now();
259
+ const latency = endTime - startTime;
260
+ this.latencyHistory.push(latency);
261
+ if (this.latencyHistory.length > this.HISTORY_SIZE) {
262
+ this.latencyHistory.shift();
263
+ }
264
+ return this.getAverageLatency();
265
+ }
266
+ catch (error) {
267
+ // If ping fails, return a high latency as fallback
268
+ return 1000; // 1 second as fallback
269
+ }
270
+ }
271
+ // Assess overall connection quality
272
+ async assessConnectionQuality() {
273
+ try {
274
+ const [bandwidth, latency] = await Promise.all([
275
+ this.estimateBandwidth(),
276
+ this.measureLatency()
277
+ ]);
278
+ if (latency > 1000)
279
+ return 'poor'; // High latency
280
+ if (bandwidth < 100000)
281
+ return 'poor'; // Low bandwidth (< 100 KB/s)
282
+ if (latency > 500 || bandwidth < 500000)
283
+ return 'good'; // Moderate
284
+ return 'excellent'; // Fast and responsive
285
+ }
286
+ catch (_a) {
287
+ return 'offline';
288
+ }
289
+ }
290
+ getAverageBandwidth() {
291
+ if (this.bandwidthHistory.length === 0)
292
+ return 0;
293
+ const sum = this.bandwidthHistory.reduce((a, b) => a + b, 0);
294
+ return sum / this.bandwidthHistory.length;
295
+ }
296
+ getAverageLatency() {
297
+ if (this.latencyHistory.length === 0)
298
+ return 0;
299
+ const sum = this.latencyHistory.reduce((a, b) => a + b, 0);
300
+ return sum / this.latencyHistory.length;
301
+ }
302
+ // Get current network statistics
303
+ getNetworkStats() {
304
+ return {
305
+ bandwidth: this.getAverageBandwidth(),
306
+ latency: this.getAverageLatency(),
307
+ history: [...this.bandwidthHistory]
308
+ };
309
+ }
310
+ }
311
+
312
+ class NetworkAwarePrefetchManager {
313
+ constructor(networkDetector) {
314
+ this.basePrefetchDistance = 400; // Base prefetch distance in pixels
315
+ this.networkDetector = networkDetector;
316
+ }
317
+ // Calculate prefetch distance based on network conditions
318
+ async calculateNetworkAdjustedPrefetch(velocity) {
319
+ const connectionQuality = await this.networkDetector.assessConnectionQuality();
320
+ // Base prefetch distance from scroll velocity
321
+ let baseDistance = this.basePrefetchDistance;
322
+ if (Math.abs(velocity) > 2.0)
323
+ baseDistance = 1200;
324
+ else if (Math.abs(velocity) > 1.0)
325
+ baseDistance = 800;
326
+ else if (Math.abs(velocity) > 0.3)
327
+ baseDistance = 400;
328
+ else
329
+ baseDistance = 200;
330
+ // Adjust based on network quality
331
+ switch (connectionQuality) {
332
+ case 'excellent':
333
+ return Math.round(baseDistance * 1.5); // Extra prefetch on fast networks
334
+ case 'good':
335
+ return Math.round(baseDistance * 1.2); // Slightly more prefetch
336
+ case 'poor':
337
+ return Math.round(baseDistance * 0.7); // Less prefetch on slow networks
338
+ case 'offline':
339
+ return Math.round(baseDistance * 0.3); // Minimal prefetch when offline
340
+ default:
341
+ return baseDistance;
342
+ }
343
+ }
344
+ // Calculate batch size based on network conditions
345
+ async calculateNetworkAdjustedBatchSize(velocity) {
346
+ const connectionQuality = await this.networkDetector.assessConnectionQuality();
347
+ // Base batch size from scroll velocity
348
+ let baseBatchSize = 10; // Default batch size
349
+ if (Math.abs(velocity) > 2.0)
350
+ baseBatchSize = 20; // Fast scroll needs more
351
+ else if (Math.abs(velocity) > 1.0)
352
+ baseBatchSize = 15;
353
+ else if (Math.abs(velocity) > 0.3)
354
+ baseBatchSize = 10;
355
+ else
356
+ baseBatchSize = 5; // Slow scroll needs less
357
+ // Adjust based on network quality
358
+ switch (connectionQuality) {
359
+ case 'excellent':
360
+ return Math.min(baseBatchSize * 2, 50); // Large batches on fast networks
361
+ case 'good':
362
+ return Math.min(baseBatchSize * 1.5, 30); // Medium batches
363
+ case 'poor':
364
+ return Math.max(Math.round(baseBatchSize * 0.5), 5); // Small batches on slow networks
365
+ case 'offline':
366
+ return Math.max(Math.round(baseBatchSize * 0.3), 3); // Minimal batches when offline
367
+ default:
368
+ return baseBatchSize;
369
+ }
370
+ }
371
+ // Determine if prefetch should be delayed based on network conditions
372
+ async shouldDelayPrefetch() {
373
+ const connectionQuality = await this.networkDetector.assessConnectionQuality();
374
+ return connectionQuality === 'poor';
375
+ }
376
+ }
377
+
378
+ class NetworkAwareRequestQueue {
379
+ constructor(networkDetector) {
380
+ this.queue = [];
381
+ this.processing = false;
382
+ this.maxConcurrent = 1;
383
+ this.offlineQueue = [];
384
+ this.networkDetector = networkDetector;
385
+ }
386
+ // Add request with network-aware concurrency
387
+ async add(requestFn) {
388
+ // Adjust concurrency based on network conditions
389
+ const connectionQuality = await this.networkDetector.assessConnectionQuality();
390
+ switch (connectionQuality) {
391
+ case 'excellent':
392
+ this.maxConcurrent = 3; // Allow more concurrent requests
393
+ break;
394
+ case 'good':
395
+ this.maxConcurrent = 2; // Moderate concurrency
396
+ break;
397
+ case 'poor':
398
+ this.maxConcurrent = 1; // Sequential requests on slow networks
399
+ break;
400
+ case 'offline':
401
+ // Queue for later when online
402
+ return this.handleOfflineRequest(requestFn);
403
+ default:
404
+ this.maxConcurrent = 1;
405
+ }
406
+ return new Promise((resolve, reject) => {
407
+ this.queue.push(() => requestFn().then(resolve).catch(reject));
408
+ if (!this.processing) {
409
+ this.processQueue();
410
+ }
411
+ });
412
+ }
413
+ // Process queue with network-aware concurrency
414
+ async processQueue() {
415
+ if (this.queue.length === 0) {
416
+ this.processing = false;
417
+ return;
418
+ }
419
+ this.processing = true;
420
+ // Process up to maxConcurrent requests
421
+ const concurrentRequests = [];
422
+ const count = Math.min(this.maxConcurrent, this.queue.length);
423
+ for (let i = 0; i < count; i++) {
424
+ const requestFn = this.queue.shift();
425
+ if (requestFn) {
426
+ concurrentRequests.push(requestFn());
427
+ }
428
+ }
429
+ try {
430
+ await Promise.all(concurrentRequests);
431
+ }
432
+ catch (error) {
433
+ console.error('Network-aware request queue error:', error);
434
+ }
435
+ // Process remaining items
436
+ await this.processQueue();
437
+ }
438
+ // Handle requests when offline
439
+ async handleOfflineRequest(requestFn) {
440
+ // Store request for later execution
441
+ return new Promise((resolve, reject) => {
442
+ // Add to offline queue
443
+ this.offlineQueue.push(() => requestFn().then(resolve).catch(reject));
444
+ // Check for network restoration periodically
445
+ const checkOnline = () => {
446
+ if (navigator.onLine) {
447
+ // Process offline queue
448
+ this.processOfflineQueue();
449
+ resolve(null); // Resolve with null since we can't return the actual result
450
+ }
451
+ else {
452
+ setTimeout(checkOnline, 5000); // Check again in 5 seconds
453
+ }
454
+ };
455
+ checkOnline();
456
+ });
457
+ }
458
+ // Process offline queue when back online
459
+ async processOfflineQueue() {
460
+ const offlineRequests = [...this.offlineQueue];
461
+ this.offlineQueue = [];
462
+ for (const requestFn of offlineRequests) {
463
+ try {
464
+ await requestFn();
465
+ }
466
+ catch (error) {
467
+ console.error('Offline request failed:', error);
468
+ // Add back to offline queue for retry
469
+ this.offlineQueue.push(requestFn);
470
+ }
471
+ }
472
+ }
473
+ // Get current queue status
474
+ getQueueStatus() {
475
+ return {
476
+ pending: this.queue.length,
477
+ offline: this.offlineQueue.length,
478
+ maxConcurrent: this.maxConcurrent
479
+ };
480
+ }
481
+ // Clear all queues
482
+ clear() {
483
+ this.queue = [];
484
+ this.offlineQueue = [];
485
+ this.processing = false;
486
+ }
487
+ }
488
+
117
489
  class Engine {
118
490
  constructor(config) {
119
491
  this.fetchMoreCallback = null;
@@ -124,6 +496,10 @@ class Engine {
124
496
  this.windowManager = new WindowManager(this.config.itemHeight, this.config.viewportHeight, this.config.bufferSize);
125
497
  this.prefetchManager = new PrefetchManager(this.config.bufferSize);
126
498
  this.requestQueue = new RequestQueue(1); // Single request at a time
499
+ this.intelligentScrollDetector = new IntelligentScrollDetector();
500
+ this.networkDetector = new NetworkSpeedDetector();
501
+ this.networkAwarePrefetchManager = new NetworkAwarePrefetchManager(this.networkDetector);
502
+ this.networkAwareRequestQueue = new NetworkAwareRequestQueue(this.networkDetector);
127
503
  this.totalItems = this.config.totalItems || Number.MAX_SAFE_INTEGER;
128
504
  this.state = {
129
505
  scrollTop: 0,
@@ -133,9 +509,16 @@ class Engine {
133
509
  };
134
510
  }
135
511
  /**
136
- * Update scroll position and recalculate visible range
512
+ * Update scroll position and recalculate visible range with intelligent detection
137
513
  */
138
514
  updateScrollPosition(scrollTop) {
515
+ // Calculate velocity and other intelligent metrics
516
+ const velocity = this.intelligentScrollDetector.calculateVelocity(scrollTop);
517
+ this.intelligentScrollDetector.getDirection(velocity);
518
+ // Calculate adaptive buffer based on scroll behavior
519
+ const adaptiveBuffer = this.intelligentScrollDetector.calculateBuffer(velocity);
520
+ // Update window manager with adaptive buffer
521
+ this.windowManager.updateBufferSize(adaptiveBuffer);
139
522
  this.state.scrollTop = scrollTop;
140
523
  this.state.visibleRange = this.windowManager.calculateVisibleRange(scrollTop);
141
524
  // Check if we need to fetch more items
@@ -150,26 +533,35 @@ class Engine {
150
533
  return this.state.visibleRange;
151
534
  }
152
535
  /**
153
- * Check if more items should be fetched
536
+ * Check if more items should be fetched with intelligent and network-aware detection
154
537
  */
155
- shouldFetchMore() {
538
+ async shouldFetchMore() {
156
539
  if (!this.fetchMoreCallback)
157
540
  return false;
158
541
  if (this.state.isLoading)
159
542
  return false;
160
543
  if (this.state.loadedItems >= this.totalItems)
161
544
  return false;
162
- return this.prefetchManager.shouldPrefetch(this.state.visibleRange.end, this.state.loadedItems);
545
+ // Get current velocity for intelligent prefetching
546
+ const velocity = this.intelligentScrollDetector.calculateVelocity(this.state.scrollTop);
547
+ // Calculate network-adjusted prefetch distance
548
+ const prefetchDistance = await this.networkAwarePrefetchManager.calculateNetworkAdjustedPrefetch(velocity);
549
+ // Use intelligent prefetch logic
550
+ const visibleEnd = this.state.visibleRange.end;
551
+ const totalLoaded = this.state.loadedItems;
552
+ // Intelligent prefetch: if visible end is approaching the loaded boundary
553
+ return visibleEnd >= totalLoaded - prefetchDistance;
163
554
  }
164
555
  /**
165
- * Fetch more items
556
+ * Fetch more items with network awareness
166
557
  */
167
558
  async fetchMore() {
168
559
  if (!this.fetchMoreCallback || this.state.isLoading)
169
560
  return;
170
561
  this.state.isLoading = true;
171
562
  try {
172
- const result = await this.requestQueue.add(this.fetchMoreCallback);
563
+ // Use network-aware request queue
564
+ const result = await this.networkAwareRequestQueue.add(this.fetchMoreCallback);
173
565
  // Assuming the result contains new items
174
566
  // In a real implementation, this would update the loaded items count
175
567
  this.state.loadedItems += Array.isArray(result) ? result.length : 1;
@@ -213,7 +605,9 @@ class Engine {
213
605
  */
214
606
  cleanup() {
215
607
  this.requestQueue.clear();
608
+ this.networkAwareRequestQueue.clear();
216
609
  this.fetchMoreCallback = null;
610
+ this.intelligentScrollDetector.cleanup();
217
611
  }
218
612
  }
219
613
 
@@ -292,6 +686,14 @@ const useLazyList = (config) => {
292
686
  const [visibleRange, setVisibleRange] = useState({ start: 0, end: 0 });
293
687
  const [loadedItems, setLoadedItems] = useState([]);
294
688
  const [isLoading, setIsLoading] = useState(false);
689
+ const [scrollAnalysis, setScrollAnalysis] = useState({
690
+ velocity: 0,
691
+ direction: 'stationary',
692
+ buffer: 5,
693
+ prefetchDistance: 400,
694
+ predictedPosition: 0,
695
+ isIdle: true
696
+ });
295
697
  // Initialize engine
296
698
  useEffect(() => {
297
699
  engineRef.current = new Engine(engineConfig);
@@ -341,6 +743,7 @@ const useLazyList = (config) => {
341
743
  visibleRange,
342
744
  loadedItems,
343
745
  isLoading,
746
+ scrollAnalysis,
344
747
  setContainerRef,
345
748
  // Helper function to trigger manual refresh
346
749
  refresh: () => {
@@ -348,6 +751,22 @@ const useLazyList = (config) => {
348
751
  if (engineRef.current) {
349
752
  engineRef.current.updateScrollPosition(((_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.scrollTop) || 0);
350
753
  }
754
+ },
755
+ // Function to get current scroll analysis
756
+ getScrollAnalysis: () => {
757
+ if (engineRef.current) {
758
+ // In a real implementation, we would get the analysis from the engine
759
+ // For now, we'll return the current state
760
+ return scrollAnalysis;
761
+ }
762
+ return {
763
+ velocity: 0,
764
+ direction: 'stationary',
765
+ buffer: 5,
766
+ prefetchDistance: 400,
767
+ predictedPosition: 0,
768
+ isIdle: true
769
+ };
351
770
  }
352
771
  };
353
772
  };
@@ -421,5 +840,5 @@ function throttle(func, limit) {
421
840
  };
422
841
  }
423
842
 
424
- export { Engine, LazyList, PrefetchManager, RequestQueue, ScrollObserver, WindowManager, debounce, throttle, useLazyList };
843
+ export { Engine, IntelligentScrollDetector, LazyList, NetworkAwarePrefetchManager, NetworkAwareRequestQueue, NetworkSpeedDetector, PrefetchManager, RequestQueue, ScrollObserver, WindowManager, debounce, throttle, useLazyList };
425
844
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/core/WindowManager.ts","../../src/core/PrefetchManager.ts","../../src/core/RequestQueue.ts","../../src/core/Engine.ts","../../src/platform/browser/ScrollObserver.ts","../../src/adapters/react/useLazyList.ts","../../src/adapters/react/LazyList.tsx","../../src/utils/debounce.ts","../../src/utils/throttle.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/core/WindowManager.ts","../../src/core/PrefetchManager.ts","../../src/core/RequestQueue.ts","../../src/core/IntelligentScrollDetector.ts","../../src/core/NetworkSpeedDetector.ts","../../src/core/NetworkAwarePrefetchManager.ts","../../src/core/NetworkAwareRequestQueue.ts","../../src/core/Engine.ts","../../src/platform/browser/ScrollObserver.ts","../../src/adapters/react/useLazyList.ts","../../src/adapters/react/LazyList.tsx","../../src/utils/debounce.ts","../../src/utils/throttle.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;MAEa,aAAa,CAAA;AAKxB,IAAA,WAAA,CAAY,UAAkB,EAAE,cAAsB,EAAE,aAAqB,CAAC,EAAA;AAC5E,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;AAED;;AAEG;AACH,IAAA,qBAAqB,CAAC,SAAiB,EAAA;;AAErC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;AAG1E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;AAG3D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAC/C,MAAM,CAAC,gBAAgB;SACxB,CAAC;QAEF,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AAChD,YAAA,GAAG,EAAE,QAAQ;SACd,CAAC;KACH;AAED;;AAEG;AACH,IAAA,oBAAoB,CAAC,MAAc,EAAA;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;KAC9B;AAED;;AAEG;AACH,IAAA,gBAAgB,CAAC,MAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;KAC1B;AAED;;AAEG;AACH,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB;AACF;;MCvDY,eAAe,CAAA;AAC1B;;;AAGG;AACH,IAAA,WAAA,GAAA,GAAgB;AAEhB;;AAEG;IACH,cAAc,CAAC,UAAkB,EAAE,WAAmB,EAAA;;AAEpD,QAAA,OAAO,UAAU,IAAI,WAAW,GAAG,CAAC,CAAC;KACtC;AAED;;AAEG;AACH,IAAA,gBAAgB,CAAC,IAAY,EAAA;;;KAG5B;AACF;;MCtBY,YAAY,CAAA;AAKvB,IAAA,WAAA,CAAY,gBAAwB,CAAC,EAAA;QAJ7B,IAAK,CAAA,KAAA,GAA8B,EAAE,CAAC;QACtC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAIlC,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;KACpC;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,SAA6B,EAAA;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;;AAG/D,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;AACK,IAAA,MAAM,YAAY,GAAA;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO;SACR;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;QAGvB,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE9D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,SAAS,EAAE;AACb,gBAAA,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aACtC;SACF;AAED,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;SACvC;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;SAC9C;;AAGD,QAAA,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;AAED;;AAEG;IACH,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;KAC1B;AACF;;MCpEY,yBAAyB,CAAA;AAQpC,IAAA,WAAA,GAAA;QAPQ,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAW,CAAC,CAAC;QACrB,IAAe,CAAA,eAAA,GAAa,EAAE,CAAC;QACtB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAkB,IAAI,CAAC;QACpC,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC;AAG7B,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;KACnC;;AAGD,IAAA,iBAAiB,CAAC,SAAiB,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AAC9B,QAAA,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9C,QAAA,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;;AAGtC,QAAA,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;;AAGxD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;AACnD,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;SAC9B;;AAGD,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;;AAGpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;;AAGtB,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAClC;;IAGO,kBAAkB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC,CAAC;QAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACpE,QAAA,OAAO,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;KAC1C;;AAGD,IAAA,YAAY,CAAC,QAAgB,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG;AAAE,YAAA,OAAO,YAAY,CAAC;QAClD,OAAO,QAAQ,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;KACrC;;AAGD,IAAA,eAAe,CAAC,QAAgB,EAAA;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,GAAG,EAAE;YACrB,OAAO,EAAE,CAAC;SACX;AAAM,aAAA,IAAI,WAAW,GAAG,GAAG,EAAE;YAC5B,OAAO,EAAE,CAAC;SACX;AAAM,aAAA,IAAI,WAAW,GAAG,GAAG,EAAE;YAC5B,OAAO,CAAC,CAAC;SACV;aAAM;YACL,OAAO,CAAC,CAAC;SACV;KACF;;AAGD,IAAA,yBAAyB,CAAC,QAAgB,EAAA;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvC,IAAI,WAAW,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,WAAW,GAAG,GAAG;YAAE,OAAO,GAAG,CAAC;QAClC,IAAI,WAAW,GAAG,GAAG;YAAE,OAAO,GAAG,CAAC;QAClC,OAAO,GAAG,CAAC;KACZ;;AAGD,IAAA,eAAe,CAAC,eAAuB,EAAE,QAAgB,EAAE,UAAkB,GAAG,EAAA;AAC9E,QAAA,OAAO,eAAe,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC;KAC/C;;IAGD,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;;IAGO,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAClC;QAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACrB,SAAC,EAAE,GAAG,CAAC,CAAC;KACT;;IAGD,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAClC;KACF;AACF;;MCzGY,oBAAoB,CAAA;AAAjC,IAAA,WAAA,GAAA;QACU,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;QAChC,IAAc,CAAA,cAAA,GAAa,EAAE,CAAC;QACrB,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;KA0FnC;;AAvFC,IAAA,MAAM,iBAAiB,GAAA;AACrB,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACpC,QAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE7D,QAAA,IAAI;;AAEF,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE;AAChD,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA,CAAC,CAAC;AAEH,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC;AAC9C,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,YAAA,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;AACpD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;aAC/B;AAED,YAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;SACnC;QAAC,OAAO,KAAK,EAAE;;YAEd,OAAO,MAAM,CAAC;SACf;KACF;;AAGD,IAAA,MAAM,cAAc,GAAA;AAClB,QAAA,IAAI;AACF,YAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AAEpC,YAAA,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;AAEzB,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AAClC,YAAA,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;AAClD,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;aAC7B;AAED,YAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACjC;QAAC,OAAO,KAAK,EAAE;;YAEd,OAAO,IAAI,CAAC;SACb;KACF;;AAGD,IAAA,MAAM,uBAAuB,GAAA;AAC3B,QAAA,IAAI;YACF,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC7C,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,cAAc,EAAE;AACtB,aAAA,CAAC,CAAC;YAEH,IAAI,OAAO,GAAG,IAAI;gBAAE,OAAO,MAAM,CAAC;YAClC,IAAI,SAAS,GAAG,MAAM;gBAAE,OAAO,MAAM,CAAC;AACtC,YAAA,IAAI,OAAO,GAAG,GAAG,IAAI,SAAS,GAAG,MAAM;gBAAE,OAAO,MAAM,CAAC;YACvD,OAAO,WAAW,CAAC;SACpB;AAAC,QAAA,OAAA,EAAA,EAAM;AACN,YAAA,OAAO,SAAS,CAAC;SAClB;KACF;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,QAAA,OAAO,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;KAC3C;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,QAAA,OAAO,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KACzC;;IAGD,eAAe,GAAA;QACb,OAAO;AACL,YAAA,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE;AACrC,YAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE;AACjC,YAAA,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACpC,CAAC;KACH;AACF;;MC3FY,2BAA2B,CAAA;AAItC,IAAA,WAAA,CAAY,eAAqC,EAAA;AAFzC,QAAA,IAAA,CAAA,oBAAoB,GAAG,GAAG,CAAC;AAGjC,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;KACxC;;IAGD,MAAM,gCAAgC,CAAC,QAAgB,EAAA;QACrD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;;AAG/E,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;AAC7C,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG;YAAE,YAAY,GAAG,IAAI,CAAC;AAC7C,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG;YAAE,YAAY,GAAG,GAAG,CAAC;AACjD,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG;YAAE,YAAY,GAAG,GAAG,CAAC;;YACjD,YAAY,GAAG,GAAG,CAAC;;QAGxB,QAAO,iBAAiB;AACtB,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;AACxC,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;AACxC,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;AACxC,YAAA,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;AACxC,YAAA;AACE,gBAAA,OAAO,YAAY,CAAC;SACvB;KACF;;IAGD,MAAM,iCAAiC,CAAC,QAAgB,EAAA;QACtD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;;AAG/E,QAAA,IAAI,aAAa,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG;AAAE,YAAA,aAAa,GAAG,EAAE,CAAC;AAC5C,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG;YAAE,aAAa,GAAG,EAAE,CAAC;AACjD,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG;YAAE,aAAa,GAAG,EAAE,CAAC;;AACjD,YAAA,aAAa,GAAG,CAAC,CAAC;;QAGvB,QAAO,iBAAiB;AACtB,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACzC,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AAC3C,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,YAAA;AACE,gBAAA,OAAO,aAAa,CAAC;SACxB;KACF;;AAGD,IAAA,MAAM,mBAAmB,GAAA;QACvB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;QAC/E,OAAO,iBAAiB,KAAK,MAAM,CAAC;KACrC;AACF;;MCjEY,wBAAwB,CAAA;AAOnC,IAAA,WAAA,CAAY,eAAqC,EAAA;QALzC,IAAK,CAAA,KAAA,GAA8B,EAAE,CAAC;QACtC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAY,CAAA,YAAA,GAA8B,EAAE,CAAC;AAGnD,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;KACxC;;IAGD,MAAM,GAAG,CAAC,SAA6B,EAAA;;QAErC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;QAE/E,QAAO,iBAAiB;AACtB,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,SAAS;;AAEZ,gBAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAC9C,YAAA;AACE,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SAC1B;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/D,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;AACH,SAAC,CAAC,CAAC;KACJ;;AAGO,IAAA,MAAM,YAAY,GAAA;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO;SACR;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;QAGvB,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE9D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,SAAS,EAAE;AACb,gBAAA,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aACtC;SACF;AAED,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;SACvC;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;SAC5D;;AAGD,QAAA,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;KAC3B;;IAGO,MAAM,oBAAoB,CAAC,SAA6B,EAAA;;QAE9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;;YAErC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;;YAGtE,MAAM,WAAW,GAAG,MAAK;AACvB,gBAAA,IAAI,SAAS,CAAC,MAAM,EAAE;;oBAEpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;AACL,oBAAA,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;iBAC/B;AACH,aAAC,CAAC;AAEF,YAAA,WAAW,EAAE,CAAC;AAChB,SAAC,CAAC,CAAC;KACJ;;AAGO,IAAA,MAAM,mBAAmB,GAAA;QAC/B,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAEvB,QAAA,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;AACvC,YAAA,IAAI;gBACF,MAAM,SAAS,EAAE,CAAC;aACnB;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;;AAEhD,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACnC;SACF;KACF;;IAGD,cAAc,GAAA;QACZ,OAAO;AACL,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;AAC1B,YAAA,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;KACH;;IAGD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;AACF;;MCtHY,MAAM,CAAA;AAcjB,IAAA,WAAA,CAAY,MAAoB,EAAA;QAHxB,IAAiB,CAAA,iBAAA,GAA6B,IAAI,CAAC;QAIzD,IAAI,CAAC,MAAM,GAAG;AACZ,YAAA,GAAG,MAAM;AACT,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;SACnC,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CACpC,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,IAAI,CAAC,MAAM,CAAC,UAAU,CACvB,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,yBAAyB,EAAE,CAAC;AACjE,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,2BAA2B,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzF,IAAI,CAAC,wBAAwB,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEnF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC;QAEpE,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAClC,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE,KAAK;SACjB,CAAC;KACH;AAED;;AAEG;AACH,IAAA,oBAAoB,CAAC,SAAiB,EAAA;;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,QAAQ,EAAE;;QAGxE,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;;AAGhF,QAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAEpD,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;;AAG9E,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;AAED;;AAEG;IACH,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;KAChC;AAED;;AAEG;AACH,IAAA,MAAM,eAAe,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,iBAAiB;AAAE,YAAA,OAAO,KAAK,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS;AAAE,YAAA,OAAO,KAAK,CAAC;QACvC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;;AAG5D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;;QAGxF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC;;QAG3G,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;AAC/C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;;AAG3C,QAAA,OAAO,UAAU,IAAI,WAAW,GAAG,gBAAgB,CAAC;KACrD;AAED;;AAEG;AACH,IAAA,MAAM,SAAS,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;AAE5D,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;AAE5B,QAAA,IAAI;;AAEF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;;;YAG/E,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SACrE;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;SACpD;gBAAS;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;SAC9B;KACF;AAED;;AAEG;AACH,IAAA,oBAAoB,CAAC,QAA2B,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;KACnC;AAED;;AAEG;AACH,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;AAED;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;KAC1B;AAED;;AAEG;IACH,gBAAgB,CAAC,cAAsB,EAAE,UAAkB,EAAA;AACzD,QAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;;AAGhD,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;KAC1F;AAED;;AAEG;IACH,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC;KAC1C;AACF;;MCtKY,cAAc,CAAA;AAOzB,IAAA,WAAA,CACE,SAAsB,EACtB,QAAqC,EACrC,OAA2C,EAAA;QANrC,IAAQ,CAAA,QAAA,GAAgC,IAAI,CAAC;QAC7C,IAAe,CAAA,eAAA,GAAuB,IAAI,CAAC;AA4CnD;;AAEG;QACK,IAAQ,CAAA,QAAA,GAAG,MAAW;;AAE5B,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAK;gBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC1C,aAAC,EAAE,EAAE,CAAC,CAAC;AACT,SAAC,CAAC;AA7CA,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACjB,YAAA,GAAG,OAAO;SACX,CAAC;KACH;AAED;;AAEG;IACH,OAAO,GAAA;;QAEL,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;;QAG5D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;;QAGjD,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,KAAI;AACnD,YAAA,OAAO,CAAC,OAAO,CAAC,KAAK,IAAG;AACtB,gBAAA,IAAI,KAAK,CAAC,cAAc,EAAE;;oBAExB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;iBACzC;AACH,aAAC,CAAC,CAAC;AACL,SAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;;AAG5C,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;KAC7E;AAYD;;AAEG;IACK,QAAQ,CAAC,IAAgB,EAAE,IAAY,EAAA;AAC7C,QAAA,IAAI,OAAuB,CAAC;QAE5B,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,QAAA,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAClC;AAED;;AAEG;IACH,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B;QAED,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7D;AACF;;AC7EY,MAAA,WAAW,GAAG,CAAC,MAAsB,KAAI;IACpD,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;AAC9C,IAAA,MAAM,YAAY,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;AAEtD,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAe,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACrF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAQ,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClD,IAAA,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAiB;AACnE,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,gBAAgB,EAAE,GAAG;AACrB,QAAA,iBAAiB,EAAE,CAAC;AACpB,QAAA,MAAM,EAAE,IAAI;AACb,KAAA,CAAC,CAAC;;IAGH,SAAS,CAAC,MAAK;QACb,SAAS,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7C,QAAA,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAElD,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,gBAAA,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aAC7B;AACH,SAAC,CAAC;KACH,EAAE,EAAE,CAAC,CAAC;;IAGP,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,YAAA,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAChC,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,UAAU,CACxB,CAAC;SACH;KACF,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;;AAG3D,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,SAAiB,KAAI;AACrD,QAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,YAAA,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;YAGlD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC3C,YAAA,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACpC,YAAA,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/B;KACF,EAAE,EAAE,CAAC,CAAC;;AAGP,IAAA,MAAM,eAAe,GAAG,CAAC,OAA2B,KAAI;QACtD,IAAI,OAAO,EAAE;AACX,YAAA,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;;AAG/B,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,EAAE;;;gBAG5C,MAAM,iBAAiB,GAAG,MAAK;AAC7B,oBAAA,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,iBAAC,CAAC;AAEF,gBAAA,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;;AAGzE,gBAAA,OAAO,MAAK;AACV,oBAAA,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC3D,iBAAC,CAAC;aACH;SACF;AACH,KAAC,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,WAAW;QACX,SAAS;QACT,cAAc;QACd,eAAe;;QAEf,OAAO,EAAE,MAAK;;AACZ,YAAA,IAAI,SAAS,CAAC,OAAO,EAAE;AACrB,gBAAA,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA,CAAA,EAAA,GAAA,YAAY,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,KAAI,CAAC,CAAC,CAAC;aAC9E;SACF;;QAED,iBAAiB,EAAE,MAAK;AACtB,YAAA,IAAI,SAAS,CAAC,OAAO,EAAE;;;AAGrB,gBAAA,OAAO,cAAc,CAAC;aACvB;YACD,OAAO;AACL,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,gBAAgB,EAAE,GAAG;AACrB,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,MAAM,EAAE,IAAI;aACb,CAAC;SACH;KACF,CAAC;AACJ;;ACnGa,MAAA,QAAQ,GAAG,UAAU,CAAgC,CAAC,KAAK,EAAE,GAAG,KAAI;IAC/E,MAAM,EACJ,SAAS,EACT,UAAU,EACV,KAAK,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,GAAG,EAAE,EACd,KAAK,GAAG,EAAE,EACV,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;QAC/D,SAAS;QACT,UAAU;QACV,cAAc;QACd,UAAU;AACV,QAAA,GAAG,IAAI;AACR,KAAA,CAAC,CAAC;;AAGH,IAAA,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;AAClD,IAAA,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;;AAGvE,IAAA,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC;AAEnD,IAAA,QACE,KACE,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,CAAC,EAAE,KAAI;YACV,eAAe,CAAC,EAAE,CAAC,CAAC;YACpB,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;oBAC7B,GAAG,CAAC,EAAE,CAAC,CAAC;iBACT;qBAAM;AACL,oBAAA,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;iBAClB;aACF;SACF,EACD,SAAS,EAAE,CAAA,UAAA,EAAa,SAAS,CAAE,CAAA,EACnC,KAAK,EAAE;YACL,MAAM,EAAE,CAAG,EAAA,cAAc,CAAI,EAAA,CAAA;AAC7B,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,GAAG,KAAK;AACT,SAAA,EAAA,GACG,IAAI,EAAA;QAGR,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,EAAE,MAAM,EAAE,CAAG,EAAA,UAAU,CAAI,EAAA,CAAA,EAAE,EAAI,CAAA;QAG5C,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAC5B,KACE,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,YAAY,CAAC,KAAK,GAAG,KAAK,EAC/B,KAAK,EAAE,EAAE,MAAM,EAAE,CAAA,EAAG,UAAU,CAAI,EAAA,CAAA,EAAE,EACpC,SAAS,EAAC,WAAW,EAEpB,EAAA,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,CACzC,CACP,CAAC;AAGF,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,IAAI,YAAY,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAI,EAAA,CAAA;aAC9E,EACD,CAAA;QAGD,SAAS,KACR,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,cAAc,EAEvB,EAAA,uBAAA,CAAA,CACP,CACG,EACN;AACJ,CAAC,EAAE;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;;AC3FjC;;AAEG;AACa,SAAA,QAAQ,CACtB,IAAO,EACP,IAAY,EAAA;IAEZ,IAAI,OAAO,GAA0B,IAAI,CAAC;AAE1C,IAAA,OAAO,SAAS,gBAAgB,CAAC,GAAG,IAAmB,EAAA;QACrD,IAAI,OAAO,EAAE;YACX,YAAY,CAAC,OAAO,CAAC,CAAC;SACvB;AAED,QAAA,OAAO,GAAG,UAAU,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACxB,EAAE,IAAI,CAAC,CAAC;AACX,KAAC,CAAC;AACJ;;AClBA;;AAEG;AACa,SAAA,QAAQ,CACtB,IAAO,EACP,KAAa,EAAA;AAEb,IAAA,IAAI,UAAmB,CAAC;AAExB,IAAA,OAAO,SAAS,gBAAgB,CAAC,GAAG,IAAmB,EAAA;QACrD,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,UAAU,GAAG,IAAI,CAAC;YAClB,UAAU,CAAC,MAAK;gBACd,UAAU,GAAG,KAAK,CAAC;aACpB,EAAE,KAAK,CAAC,CAAC;SACX;AACH,KAAC,CAAC;AACJ;;;;"}