@haibun/utils 1.55.4 → 1.55.5
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/build/vcapture/index.js +3 -3
- package/build/vcapture/index.js.map +1 -1
- package/build/vcapture/vcapture-lib.d.ts +2 -3
- package/build/vcapture/vcapture-lib.d.ts.map +1 -1
- package/build/vcapture/vcapture-lib.js +34 -46
- package/build/vcapture/vcapture-lib.js.map +1 -1
- package/package.json +1 -1
package/build/vcapture/index.js
CHANGED
|
@@ -10,10 +10,10 @@ process.on('unhandledRejection', (err) => {
|
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
const args = process.argv.slice(2);
|
|
13
|
-
const { testToRun,
|
|
14
|
-
runContainer(testToRun,
|
|
13
|
+
const { testToRun, includeDirs, runOptions } = parseVCaptureArgs(args, printHelp);
|
|
14
|
+
runContainer(testToRun, includeDirs, runOptions);
|
|
15
15
|
function printHelp(exitCode = 1) {
|
|
16
|
-
console.error(`Usage: ${process.argv[1]} [--pass-env] [--recreate[=boolean]] [--tts[=boolean]] [--no-capture] [--help] [--res
|
|
16
|
+
console.error(`Usage: ${process.argv[1]} [--feature-filter] [--pass-env=<ENV=VAR,...>] [--recreate[=boolean]] [--tts[=boolean]] [--no-capture] [--help] [--res=WxH] script filter features files ...`);
|
|
17
17
|
process.exit(exitCode);
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vcapture/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAc,EAAE,EAAE;IACnD,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;AACF,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vcapture/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAc,EAAE,EAAE;IACnD,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;AACF,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAElF,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAEjD,SAAS,SAAS,CAAC,QAAQ,GAAG,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,8JAA8J,CAAC,CAAC;IACvM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
type TRunOptions = {
|
|
3
2
|
recreate: boolean;
|
|
4
3
|
tts: boolean;
|
|
5
4
|
capture: boolean;
|
|
6
5
|
res: string;
|
|
7
6
|
passEnv: string | undefined;
|
|
7
|
+
featureFilter: string | undefined;
|
|
8
8
|
};
|
|
9
|
-
export declare const runContainer: (testToRun: any,
|
|
9
|
+
export declare const runContainer: (testToRun: any, includeDirs: any[], thisRunOptions: TRunOptions) => void;
|
|
10
10
|
export declare function parseVCaptureArgs(args: string[], printHelp: (exitCode?: number) => void): {
|
|
11
11
|
runOptions: TRunOptions;
|
|
12
12
|
testToRun: string;
|
|
13
|
-
filter: string;
|
|
14
13
|
includeDirs: string[];
|
|
15
14
|
};
|
|
16
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcapture-lib.d.ts","sourceRoot":"","sources":["../../src/vcapture/vcapture-lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vcapture-lib.d.ts","sourceRoot":"","sources":["../../src/vcapture/vcapture-lib.ts"],"names":[],"mappings":"AAQA,KAAK,WAAW,GAAG;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,cAAS,EAAE,kBAAgB,EAAE,gBAAgB,WAAW,SA8EpF,CAAC;AAKF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI;;;;EAiEvF"}
|
|
@@ -1,20 +1,10 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { getPackageLocation } from '@haibun/core/build/lib/util/workspace-lib.js';
|
|
3
1
|
import { execSync } from 'child_process';
|
|
4
2
|
import { resolve } from 'path';
|
|
5
3
|
import { writeFileSync, unlinkSync, readFileSync, mkdirSync, existsSync } from 'fs';
|
|
6
4
|
import { tmpdir } from 'os';
|
|
5
|
+
import { getPackageLocation } from '@haibun/core/build/lib/util/workspace-lib.js';
|
|
7
6
|
import { HOST_PROJECT_DIR } from '@haibun/core/build/lib/defs.js';
|
|
8
|
-
|
|
9
|
-
console.error('cli Unhandled Rejection:', err);
|
|
10
|
-
if (err && err.stack) {
|
|
11
|
-
console.error(err.stack);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
console.error(err);
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
export const runContainer = (testToRun, filter, includeDirs = [], thisRunOptions) => {
|
|
7
|
+
export const runContainer = (testToRun, includeDirs = [], thisRunOptions) => {
|
|
18
8
|
try {
|
|
19
9
|
const utilDir = resolve(getPackageLocation(import.meta), '..', '..', 'vcapture');
|
|
20
10
|
const projectDir = process.cwd();
|
|
@@ -23,12 +13,8 @@ export const runContainer = (testToRun, filter, includeDirs = [], thisRunOptions
|
|
|
23
13
|
if (thisRunOptions.passEnv) {
|
|
24
14
|
envs.push(thisRunOptions.passEnv);
|
|
25
15
|
}
|
|
26
|
-
const haibunEnvc = (envs.length > 0) ? `HAIBUN_ENV=${envs.join(',')} ` : '';
|
|
27
|
-
if (thisRunOptions.passEnv) {
|
|
28
|
-
haibunEnvc;
|
|
29
|
-
}
|
|
16
|
+
const haibunEnvc = (envs.length > 0) ? `HAIBUN_ENV=${envs.join(',').replace(/,$/, '')} ` : '';
|
|
30
17
|
const captureDir = resolve(projectDir, 'capture');
|
|
31
|
-
console.info('vcapture running with options:', thisRunOptions);
|
|
32
18
|
if (!existsSync(captureDir)) {
|
|
33
19
|
console.log('Creating capture directory');
|
|
34
20
|
mkdirSync(captureDir, { recursive: true });
|
|
@@ -47,7 +33,7 @@ export const runContainer = (testToRun, filter, includeDirs = [], thisRunOptions
|
|
|
47
33
|
'DISPLAY=:99',
|
|
48
34
|
`RES=${thisRunOptions.res}`,
|
|
49
35
|
`${HOST_PROJECT_DIR}=${projectDir}`,
|
|
50
|
-
`COMMAND_TO_RECORD=${HOST_PROJECT_DIR}="${projectDir}" HAIBUN_LOG_LEVEL=log ${haibunEnvc} npm run ${testToRun} ${
|
|
36
|
+
`COMMAND_TO_RECORD=${HOST_PROJECT_DIR}="${projectDir}" HAIBUN_LOG_LEVEL=log ${haibunEnvc} npm run ${testToRun} -- ${thisRunOptions.featureFilter || ""} ${includeDirs.join(' ')}`
|
|
51
37
|
];
|
|
52
38
|
if (thisRunOptions.tts) {
|
|
53
39
|
composeEnvironment.push('HAIBUN_O_HAIBUN_TTS_CMD=/app/speak-to-wav.sh @WHAT@', 'HAIBUN_O_HAIBUN_TTS_PLAY=aplay @WHAT@');
|
|
@@ -68,7 +54,7 @@ ${(asYamlOptions(composeEnvironment))}
|
|
|
68
54
|
`;
|
|
69
55
|
writeFileSync(tmpFile, composeFile);
|
|
70
56
|
console.log(`Building then starting vcapture container using ${utilDir}`);
|
|
71
|
-
console.log(`Mounting directories:\n${composeVolumes}`);
|
|
57
|
+
console.log(`Mounting directories:\n${composeVolumes.join('\n')}`);
|
|
72
58
|
try {
|
|
73
59
|
const cmd = `docker compose -f docker-compose.yml -f ${tmpFile} up ${thisRunOptions.recreate ? '--force-recreate --build' : ''}`;
|
|
74
60
|
console.log('building with:', cmd);
|
|
@@ -99,44 +85,47 @@ export function parseVCaptureArgs(args, printHelp) {
|
|
|
99
85
|
recreate: false,
|
|
100
86
|
tts: false,
|
|
101
87
|
capture: true,
|
|
102
|
-
res: '
|
|
103
|
-
passEnv: undefined
|
|
88
|
+
res: '1280x1024',
|
|
89
|
+
passEnv: undefined,
|
|
90
|
+
featureFilter: undefined
|
|
104
91
|
};
|
|
105
|
-
|
|
92
|
+
// Collect all non-flag arguments in order
|
|
93
|
+
const positional = [];
|
|
106
94
|
for (let i = 0; i < args.length; i++) {
|
|
107
95
|
const arg = args[i];
|
|
108
96
|
if (arg.startsWith('--')) {
|
|
109
97
|
const [what, ...v] = arg.split('=');
|
|
110
98
|
const value = v.join('=');
|
|
111
|
-
const getValue = (defaultValue) => value || (i + 1 < args.length && !args[i + 1].startsWith('--') ? args[++i] : defaultValue);
|
|
112
99
|
switch (what) {
|
|
113
|
-
case '--recreate':
|
|
114
|
-
|
|
100
|
+
case '--recreate': {
|
|
101
|
+
const recreateValue = value;
|
|
102
|
+
runOptions.recreate = recreateValue !== 'false';
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
case '--tts': {
|
|
106
|
+
const ttsValue = value;
|
|
107
|
+
runOptions.tts = ttsValue !== 'false';
|
|
115
108
|
break;
|
|
116
|
-
|
|
117
|
-
|
|
109
|
+
}
|
|
110
|
+
case '--no-capture': {
|
|
111
|
+
const captureValue = value;
|
|
112
|
+
runOptions.capture = !(captureValue !== 'false');
|
|
118
113
|
break;
|
|
119
|
-
|
|
120
|
-
|
|
114
|
+
}
|
|
115
|
+
case '--feature-filter': {
|
|
116
|
+
runOptions.featureFilter = value;
|
|
121
117
|
break;
|
|
118
|
+
}
|
|
122
119
|
case '--pass-env': {
|
|
123
|
-
|
|
124
|
-
if (passEnvValue) {
|
|
125
|
-
runOptions.passEnv = passEnvValue;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
console.error('Missing value for --pass-env');
|
|
129
|
-
printHelp();
|
|
130
|
-
}
|
|
120
|
+
runOptions.passEnv = value;
|
|
131
121
|
break;
|
|
132
122
|
}
|
|
133
123
|
case '--res': {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
runOptions.res = resValue;
|
|
124
|
+
if (value && value.match(/^\d+x\d+$/)) {
|
|
125
|
+
runOptions.res = value;
|
|
137
126
|
}
|
|
138
127
|
else {
|
|
139
|
-
console.error(`Missing or incorrect WxH value for --res: ${
|
|
128
|
+
console.error(`Missing or incorrect WxH value for --res: ${value}`);
|
|
140
129
|
printHelp();
|
|
141
130
|
}
|
|
142
131
|
break;
|
|
@@ -150,13 +139,12 @@ export function parseVCaptureArgs(args, printHelp) {
|
|
|
150
139
|
}
|
|
151
140
|
}
|
|
152
141
|
else {
|
|
153
|
-
|
|
142
|
+
positional.push(arg);
|
|
154
143
|
}
|
|
155
144
|
}
|
|
156
|
-
const [testToRun,
|
|
157
|
-
if (!testToRun || includeDirs.length === 0)
|
|
145
|
+
const [testToRun, ...includeDirs] = positional;
|
|
146
|
+
if (!testToRun || includeDirs.length === 0)
|
|
158
147
|
printHelp();
|
|
159
|
-
}
|
|
160
|
-
return { runOptions, testToRun, filter, includeDirs };
|
|
148
|
+
return { runOptions, testToRun, includeDirs };
|
|
161
149
|
}
|
|
162
150
|
//# sourceMappingURL=vcapture-lib.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcapture-lib.js","sourceRoot":"","sources":["../../src/vcapture/vcapture-lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vcapture-lib.js","sourceRoot":"","sources":["../../src/vcapture/vcapture-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAWlE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,WAAW,GAAG,EAAE,EAAE,cAA2B,EAAE,EAAE;IACxF,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,2BAA2B,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,UAAU,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtI,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzE,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,MAAM,UAAU,WAAW,eAAe,GAAG,CAAC,CAAC;QACxD,QAAQ,CAAC,MAAM,OAAO,SAAS,OAAO,qBAAqB,eAAe,GAAG,CAAC,CAAC;QAC/E,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG;YACtB,GAAG,UAAU,uBAAuB;YACpC,GAAG,UAAU,cAAc;YAC3B,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;SACpE,CAAC;QACF,MAAM,kBAAkB,GAAG;YAC1B,aAAa;YACb,OAAO,cAAc,CAAC,GAAG,EAAE;YAC3B,GAAG,gBAAgB,IAAI,UAAU,EAAE;YACnC,qBAAqB,gBAAgB,KAAK,UAAU,0BAA0B,UAAU,YAAY,SAAS,OAAO,cAAc,CAAC,aAAa,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;SACjL,CAAC;QACF,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC;YACxB,kBAAkB,CAAC,IAAI,CACtB,qDAAqD,EACrD,uCAAuC,CACvC,CAAC;QACH,CAAC;QACD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,kBAAkB,CAAC,IAAI,CACtB,qDAAqD,EACrD,mDAAmD,CACnD,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG;;;;iBAIL,eAAe;oBACZ,OAAO;;EAEzB,aAAa,CAAC,cAAc,CAAC;;EAE7B,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;CACpC,CAAC;QACA,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,2CAA2C,OAAO,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;YAChI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACnC,QAAQ,CAAC,GAAG,EAAE;gBACb,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE;oBACJ,GAAG,OAAO,CAAC,GAAG;oBACd,WAAW,EAAE,UAAU;iBACvB;aACD,CAAC,CAAC;QACJ,CAAC;gBACO,CAAC;YACR,UAAU,CAAC,OAAO,CAAC,CAAC;YACpB,QAAQ,CAAC,UAAU,eAAe,EAAE,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC;AACF,SAAS,aAAa,CAAC,OAAiB;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAc,EAAE,SAAsC;IACvF,MAAM,UAAU,GAAgB;QAC/B,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,WAAW;QAChB,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,SAAS;KACxB,CAAC;IAEF,0CAA0C;IAC1C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE1B,QAAQ,IAAI,EAAE,CAAC;gBACd,KAAK,YAAY,CAAC,CAAC,CAAC;oBACnB,MAAM,aAAa,GAAG,KAAK,CAAC;oBAC5B,UAAU,CAAC,QAAQ,GAAG,aAAa,KAAK,OAAO,CAAC;oBAChD,MAAM;gBACP,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,MAAM,QAAQ,GAAG,KAAK,CAAC;oBACvB,UAAU,CAAC,GAAG,GAAG,QAAQ,KAAK,OAAO,CAAC;oBACtC,MAAM;gBACP,CAAC;gBACD,KAAK,cAAc,CAAC,CAAC,CAAC;oBACrB,MAAM,YAAY,GAAG,KAAK,CAAC;oBAC3B,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC;oBACjD,MAAM;gBACP,CAAC;gBACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACzB,UAAU,CAAC,aAAa,GAAG,KAAK,CAAC;oBACjC,MAAM;gBACP,CAAC;gBACD,KAAK,YAAY,CAAC,CAAC,CAAC;oBACnB,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC3B,MAAM;gBACP,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;wBACvC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,KAAK,CAAC,6CAA6C,KAAK,EAAE,CAAC,CAAC;wBACpE,SAAS,EAAE,CAAC;oBACb,CAAC;oBACD,MAAM;gBACP,CAAC;gBACD,KAAK,QAAQ;oBACZ,SAAS,CAAC,CAAC,CAAC,CAAC;oBACb,MAAM;gBACP;oBACC,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;oBACvC,SAAS,EAAE,CAAC;YACd,CAAC;QACF,CAAC;aAAM,CAAC;YACP,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IACD,MAAM,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC;IAC/C,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,SAAS,EAAE,CAAC;IACxD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC"}
|