traceperf 0.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +608 -253
- package/dist/__tests__/helpers/console.d.ts +9 -0
- package/dist/__tests__/helpers/console.js +25 -0
- package/dist/__tests__/helpers/console.js.map +1 -0
- package/dist/auto.d.ts +30 -0
- package/dist/auto.js +91 -0
- package/dist/auto.js.map +1 -0
- package/dist/browser.d.ts +52 -144
- package/dist/browser.js +112 -439
- package/dist/browser.js.map +1 -1
- package/dist/cli.d.ts +68 -0
- package/dist/cli.js +528 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/allocations.d.ts +38 -0
- package/dist/core/allocations.js +85 -0
- package/dist/core/allocations.js.map +1 -0
- package/dist/core/cpu-profile.d.ts +84 -0
- package/dist/core/cpu-profile.js +181 -0
- package/dist/core/cpu-profile.js.map +1 -0
- package/dist/core/env.d.ts +10 -0
- package/dist/core/env.js +40 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/event-loop.d.ts +30 -0
- package/dist/core/event-loop.js +43 -0
- package/dist/core/event-loop.js.map +1 -0
- package/dist/core/explain.d.ts +48 -0
- package/dist/core/explain.js +236 -0
- package/dist/core/explain.js.map +1 -0
- package/dist/core/exporters.d.ts +111 -0
- package/dist/core/exporters.js +236 -0
- package/dist/core/exporters.js.map +1 -0
- package/dist/core/index.d.ts +9 -3
- package/dist/core/index.js +9 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/optimized-performance-monitor.d.ts +180 -26
- package/dist/core/optimized-performance-monitor.js +687 -175
- package/dist/core/optimized-performance-monitor.js.map +1 -1
- package/dist/core/prometheus.d.ts +36 -0
- package/dist/core/prometheus.js +93 -0
- package/dist/core/prometheus.js.map +1 -0
- package/dist/core/records.d.ts +97 -0
- package/dist/core/records.js +87 -0
- package/dist/core/records.js.map +1 -0
- package/dist/core/stats.d.ts +45 -0
- package/dist/core/stats.js +136 -0
- package/dist/core/stats.js.map +1 -0
- package/dist/core/timeline.d.ts +28 -0
- package/dist/core/timeline.js +65 -0
- package/dist/core/timeline.js.map +1 -0
- package/dist/drivers.d.ts +51 -0
- package/dist/drivers.js +205 -0
- package/dist/drivers.js.map +1 -0
- package/dist/esm/auto.d.ts +30 -0
- package/dist/esm/auto.js +87 -0
- package/dist/esm/auto.js.map +1 -0
- package/dist/esm/browser.d.ts +52 -144
- package/dist/esm/browser.js +101 -445
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/cli.d.ts +68 -0
- package/dist/esm/cli.js +520 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/core/allocations.d.ts +38 -0
- package/dist/esm/core/allocations.js +82 -0
- package/dist/esm/core/allocations.js.map +1 -0
- package/dist/esm/core/cpu-profile.d.ts +84 -0
- package/dist/esm/core/cpu-profile.js +176 -0
- package/dist/esm/core/cpu-profile.js.map +1 -0
- package/dist/esm/core/env.d.ts +10 -0
- package/dist/esm/core/env.js +35 -0
- package/dist/esm/core/env.js.map +1 -0
- package/dist/esm/core/event-loop.d.ts +30 -0
- package/dist/esm/core/event-loop.js +40 -0
- package/dist/esm/core/event-loop.js.map +1 -0
- package/dist/esm/core/explain.d.ts +48 -0
- package/dist/esm/core/explain.js +232 -0
- package/dist/esm/core/explain.js.map +1 -0
- package/dist/esm/core/exporters.d.ts +111 -0
- package/dist/esm/core/exporters.js +229 -0
- package/dist/esm/core/exporters.js.map +1 -0
- package/dist/esm/core/index.d.ts +10 -4
- package/dist/esm/core/index.js +10 -4
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/optimized-performance-monitor.d.ts +180 -26
- package/dist/esm/core/optimized-performance-monitor.js +685 -173
- package/dist/esm/core/optimized-performance-monitor.js.map +1 -1
- package/dist/esm/core/prometheus.d.ts +36 -0
- package/dist/esm/core/prometheus.js +89 -0
- package/dist/esm/core/prometheus.js.map +1 -0
- package/dist/esm/core/records.d.ts +97 -0
- package/dist/esm/core/records.js +82 -0
- package/dist/esm/core/records.js.map +1 -0
- package/dist/esm/core/stats.d.ts +45 -0
- package/dist/esm/core/stats.js +131 -0
- package/dist/esm/core/stats.js.map +1 -0
- package/dist/esm/core/timeline.d.ts +28 -0
- package/dist/esm/core/timeline.js +62 -0
- package/dist/esm/core/timeline.js.map +1 -0
- package/dist/esm/drivers.d.ts +51 -0
- package/dist/esm/drivers.js +197 -0
- package/dist/esm/drivers.js.map +1 -0
- package/dist/esm/index.d.ts +13 -5
- package/dist/esm/index.js +21 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instrument.d.ts +88 -0
- package/dist/esm/instrument.js +274 -0
- package/dist/esm/instrument.js.map +1 -0
- package/dist/esm/integrations.d.ts +70 -0
- package/dist/esm/integrations.js +197 -0
- package/dist/esm/integrations.js.map +1 -0
- package/dist/esm/node-builtins.d.ts +1 -0
- package/dist/esm/node-builtins.js +32 -0
- package/dist/esm/node-builtins.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/register.d.ts +20 -0
- package/dist/esm/register.js +98 -0
- package/dist/esm/register.js.map +1 -0
- package/dist/esm/report-html.d.ts +11 -0
- package/dist/esm/report-html.js +106 -0
- package/dist/esm/report-html.js.map +1 -0
- package/dist/esm/types/index.d.ts +4 -80
- package/dist/esm/types/index.js +1 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/options.d.ts +72 -0
- package/dist/esm/types/options.js +2 -0
- package/dist/esm/types/options.js.map +1 -0
- package/dist/esm/watch.d.ts +17 -0
- package/dist/esm/watch.js +87 -0
- package/dist/esm/watch.js.map +1 -0
- package/dist/index.d.ts +10 -2
- package/dist/index.js +26 -29
- package/dist/index.js.map +1 -1
- package/dist/instrument.d.ts +88 -0
- package/dist/instrument.js +282 -0
- package/dist/instrument.js.map +1 -0
- package/dist/integrations.d.ts +70 -0
- package/dist/integrations.js +205 -0
- package/dist/integrations.js.map +1 -0
- package/dist/node-builtins.d.ts +1 -0
- package/dist/node-builtins.js +67 -0
- package/dist/node-builtins.js.map +1 -0
- package/dist/register.d.ts +20 -0
- package/dist/register.js +103 -0
- package/dist/register.js.map +1 -0
- package/dist/report-html.d.ts +11 -0
- package/dist/report-html.js +109 -0
- package/dist/report-html.js.map +1 -0
- package/dist/traceperf.browser.js +1910 -0
- package/dist/traceperf.browser.min.js +6 -0
- package/dist/types/index.d.ts +4 -80
- package/dist/types/index.js +1 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +72 -0
- package/dist/types/{config.js → options.js} +1 -1
- package/dist/types/options.js.map +1 -0
- package/dist/watch.d.ts +17 -0
- package/dist/watch.js +90 -0
- package/dist/watch.js.map +1 -0
- package/package.json +99 -19
- package/dist/core/config.d.ts +0 -77
- package/dist/core/config.js +0 -116
- package/dist/core/config.js.map +0 -1
- package/dist/core/constants.d.ts +0 -78
- package/dist/core/constants.js +0 -109
- package/dist/core/constants.js.map +0 -1
- package/dist/core/logger.d.ts +0 -97
- package/dist/core/logger.js +0 -186
- package/dist/core/logger.js.map +0 -1
- package/dist/esm/core/config.d.ts +0 -77
- package/dist/esm/core/config.js +0 -112
- package/dist/esm/core/config.js.map +0 -1
- package/dist/esm/core/constants.d.ts +0 -78
- package/dist/esm/core/constants.js +0 -106
- package/dist/esm/core/constants.js.map +0 -1
- package/dist/esm/core/logger.d.ts +0 -97
- package/dist/esm/core/logger.js +0 -182
- package/dist/esm/core/logger.js.map +0 -1
- package/dist/esm/formatters/ascii.d.ts +0 -52
- package/dist/esm/formatters/ascii.js +0 -100
- package/dist/esm/formatters/ascii.js.map +0 -1
- package/dist/esm/formatters/cli.d.ts +0 -50
- package/dist/esm/formatters/cli.js +0 -96
- package/dist/esm/formatters/cli.js.map +0 -1
- package/dist/esm/formatters/index.d.ts +0 -3
- package/dist/esm/formatters/index.js +0 -4
- package/dist/esm/formatters/index.js.map +0 -1
- package/dist/esm/formatters/json.d.ts +0 -45
- package/dist/esm/formatters/json.js +0 -85
- package/dist/esm/formatters/json.js.map +0 -1
- package/dist/esm/trackers/execution.d.ts +0 -101
- package/dist/esm/trackers/execution.js +0 -226
- package/dist/esm/trackers/execution.js.map +0 -1
- package/dist/esm/trackers/index.d.ts +0 -2
- package/dist/esm/trackers/index.js +0 -3
- package/dist/esm/trackers/index.js.map +0 -1
- package/dist/esm/trackers/performance.d.ts +0 -68
- package/dist/esm/trackers/performance.js +0 -112
- package/dist/esm/trackers/performance.js.map +0 -1
- package/dist/esm/types/config.d.ts +0 -142
- package/dist/esm/types/config.js +0 -2
- package/dist/esm/types/config.js.map +0 -1
- package/dist/esm/types/logger.d.ts +0 -147
- package/dist/esm/types/logger.js +0 -2
- package/dist/esm/types/logger.js.map +0 -1
- package/dist/esm/utils/colors.d.ts +0 -87
- package/dist/esm/utils/colors.js +0 -146
- package/dist/esm/utils/colors.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -3
- package/dist/esm/utils/index.js +0 -4
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/proxy-tracker.d.ts +0 -68
- package/dist/esm/utils/proxy-tracker.js +0 -127
- package/dist/esm/utils/proxy-tracker.js.map +0 -1
- package/dist/esm/utils/stack.d.ts +0 -63
- package/dist/esm/utils/stack.js +0 -110
- package/dist/esm/utils/stack.js.map +0 -1
- package/dist/esm/utils/string.d.ts +0 -29
- package/dist/esm/utils/string.js +0 -45
- package/dist/esm/utils/string.js.map +0 -1
- package/dist/esm/utils/timing.d.ts +0 -65
- package/dist/esm/utils/timing.js +0 -99
- package/dist/esm/utils/timing.js.map +0 -1
- package/dist/formatters/ascii.d.ts +0 -52
- package/dist/formatters/ascii.js +0 -104
- package/dist/formatters/ascii.js.map +0 -1
- package/dist/formatters/cli.d.ts +0 -50
- package/dist/formatters/cli.js +0 -100
- package/dist/formatters/cli.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -3
- package/dist/formatters/index.js +0 -20
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/json.d.ts +0 -45
- package/dist/formatters/json.js +0 -89
- package/dist/formatters/json.js.map +0 -1
- package/dist/trackers/execution.d.ts +0 -101
- package/dist/trackers/execution.js +0 -230
- package/dist/trackers/execution.js.map +0 -1
- package/dist/trackers/index.d.ts +0 -2
- package/dist/trackers/index.js +0 -19
- package/dist/trackers/index.js.map +0 -1
- package/dist/trackers/performance.d.ts +0 -68
- package/dist/trackers/performance.js +0 -116
- package/dist/trackers/performance.js.map +0 -1
- package/dist/types/config.d.ts +0 -142
- package/dist/types/config.js.map +0 -1
- package/dist/types/logger.d.ts +0 -147
- package/dist/types/logger.js +0 -3
- package/dist/types/logger.js.map +0 -1
- package/dist/types.d.ts +0 -65
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -87
- package/dist/utils/colors.js +0 -160
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.js +0 -20
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/proxy-tracker.d.ts +0 -68
- package/dist/utils/proxy-tracker.js +0 -131
- package/dist/utils/proxy-tracker.js.map +0 -1
- package/dist/utils/stack.d.ts +0 -63
- package/dist/utils/stack.js +0 -116
- package/dist/utils/stack.js.map +0 -1
- package/dist/utils/string.d.ts +0 -29
- package/dist/utils/string.js +0 -50
- package/dist/utils/string.js.map +0 -1
- package/dist/utils/timing.d.ts +0 -65
- package/dist/utils/timing.js +0 -106
- package/dist/utils/timing.js.map +0 -1
package/dist/utils/timing.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* High-resolution timing utilities for performance tracking
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Get the current high-resolution time
|
|
6
|
-
*
|
|
7
|
-
* @returns The current high-resolution time
|
|
8
|
-
*/
|
|
9
|
-
export declare function getHighResTime(): [number, number];
|
|
10
|
-
/**
|
|
11
|
-
* Calculate the duration between a start time and now
|
|
12
|
-
*
|
|
13
|
-
* @param startTime - The start time from getHighResTime()
|
|
14
|
-
* @returns The duration in milliseconds
|
|
15
|
-
*/
|
|
16
|
-
export declare function getDuration(startTime: [number, number]): number;
|
|
17
|
-
/**
|
|
18
|
-
* Format a duration in milliseconds to a human-readable string
|
|
19
|
-
*
|
|
20
|
-
* @param duration - The duration in milliseconds
|
|
21
|
-
* @returns A formatted string (e.g., "1.23ms", "1.23s")
|
|
22
|
-
*/
|
|
23
|
-
export declare function formatDuration(duration: number): string;
|
|
24
|
-
/**
|
|
25
|
-
* A simple timer class for measuring durations
|
|
26
|
-
*/
|
|
27
|
-
export declare class Timer {
|
|
28
|
-
private _startTime;
|
|
29
|
-
private _endTime;
|
|
30
|
-
private _label;
|
|
31
|
-
/**
|
|
32
|
-
* Create a new Timer instance
|
|
33
|
-
*
|
|
34
|
-
* @param label - A label for the timer
|
|
35
|
-
*/
|
|
36
|
-
constructor(label: string);
|
|
37
|
-
/**
|
|
38
|
-
* Stop the timer
|
|
39
|
-
*
|
|
40
|
-
* @returns The duration in milliseconds
|
|
41
|
-
*/
|
|
42
|
-
stop(): number;
|
|
43
|
-
/**
|
|
44
|
-
* Get the duration of the timer
|
|
45
|
-
*
|
|
46
|
-
* @returns The duration in milliseconds
|
|
47
|
-
*/
|
|
48
|
-
getDuration(): number;
|
|
49
|
-
/**
|
|
50
|
-
* Get the label of the timer
|
|
51
|
-
*
|
|
52
|
-
* @returns The timer label
|
|
53
|
-
*/
|
|
54
|
-
getLabel(): string;
|
|
55
|
-
/**
|
|
56
|
-
* Reset the timer
|
|
57
|
-
*/
|
|
58
|
-
reset(): void;
|
|
59
|
-
/**
|
|
60
|
-
* Get a formatted string with the duration
|
|
61
|
-
*
|
|
62
|
-
* @returns A formatted string (e.g., "label: 1.23ms")
|
|
63
|
-
*/
|
|
64
|
-
toString(): string;
|
|
65
|
-
}
|
package/dist/utils/timing.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* High-resolution timing utilities for performance tracking
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Timer = void 0;
|
|
7
|
-
exports.getHighResTime = getHighResTime;
|
|
8
|
-
exports.getDuration = getDuration;
|
|
9
|
-
exports.formatDuration = formatDuration;
|
|
10
|
-
/**
|
|
11
|
-
* Get the current high-resolution time
|
|
12
|
-
*
|
|
13
|
-
* @returns The current high-resolution time
|
|
14
|
-
*/
|
|
15
|
-
function getHighResTime() {
|
|
16
|
-
return process.hrtime();
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Calculate the duration between a start time and now
|
|
20
|
-
*
|
|
21
|
-
* @param startTime - The start time from getHighResTime()
|
|
22
|
-
* @returns The duration in milliseconds
|
|
23
|
-
*/
|
|
24
|
-
function getDuration(startTime) {
|
|
25
|
-
const [seconds, nanoseconds] = process.hrtime(startTime);
|
|
26
|
-
return seconds * 1000 + nanoseconds / 1000000;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Format a duration in milliseconds to a human-readable string
|
|
30
|
-
*
|
|
31
|
-
* @param duration - The duration in milliseconds
|
|
32
|
-
* @returns A formatted string (e.g., "1.23ms", "1.23s")
|
|
33
|
-
*/
|
|
34
|
-
function formatDuration(duration) {
|
|
35
|
-
if (duration < 1) {
|
|
36
|
-
return `${(duration * 1000).toFixed(2)}μs`;
|
|
37
|
-
}
|
|
38
|
-
else if (duration < 1000) {
|
|
39
|
-
return `${duration.toFixed(2)}ms`;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
return `${(duration / 1000).toFixed(2)}s`;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* A simple timer class for measuring durations
|
|
47
|
-
*/
|
|
48
|
-
class Timer {
|
|
49
|
-
/**
|
|
50
|
-
* Create a new Timer instance
|
|
51
|
-
*
|
|
52
|
-
* @param label - A label for the timer
|
|
53
|
-
*/
|
|
54
|
-
constructor(label) {
|
|
55
|
-
this._endTime = null;
|
|
56
|
-
this._startTime = getHighResTime();
|
|
57
|
-
this._label = label;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Stop the timer
|
|
61
|
-
*
|
|
62
|
-
* @returns The duration in milliseconds
|
|
63
|
-
*/
|
|
64
|
-
stop() {
|
|
65
|
-
if (this._endTime === null) {
|
|
66
|
-
this._endTime = getHighResTime();
|
|
67
|
-
}
|
|
68
|
-
return this.getDuration();
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get the duration of the timer
|
|
72
|
-
*
|
|
73
|
-
* @returns The duration in milliseconds
|
|
74
|
-
*/
|
|
75
|
-
getDuration() {
|
|
76
|
-
if (this._endTime === null) {
|
|
77
|
-
return getDuration(this._startTime);
|
|
78
|
-
}
|
|
79
|
-
return getDuration(this._startTime);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Get the label of the timer
|
|
83
|
-
*
|
|
84
|
-
* @returns The timer label
|
|
85
|
-
*/
|
|
86
|
-
getLabel() {
|
|
87
|
-
return this._label;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Reset the timer
|
|
91
|
-
*/
|
|
92
|
-
reset() {
|
|
93
|
-
this._startTime = getHighResTime();
|
|
94
|
-
this._endTime = null;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get a formatted string with the duration
|
|
98
|
-
*
|
|
99
|
-
* @returns A formatted string (e.g., "label: 1.23ms")
|
|
100
|
-
*/
|
|
101
|
-
toString() {
|
|
102
|
-
return `${this._label}: ${formatDuration(this.getDuration())}`;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
exports.Timer = Timer;
|
|
106
|
-
//# sourceMappingURL=timing.js.map
|
package/dist/utils/timing.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/utils/timing.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAOH,wCAEC;AAQD,kCAGC;AAQD,wCAQC;AAlCD;;;;GAIG;AACH,SAAgB,cAAc;IAC5B,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,SAA2B;IACrD,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzD,OAAO,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,QAAgB;IAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;SAAM,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;QAC3B,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAa,KAAK;IAKhB;;;;OAIG;IACH,YAAY,KAAa;QARjB,aAAQ,GAA4B,IAAI,CAAC;QAS/C,IAAI,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,IAAI;QACT,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,cAAc,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,WAAW;QAChB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;CACF;AAhED,sBAgEC"}
|