@cubejs-backend/prestodb-driver 0.31.11 → 0.31.12
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/CHANGELOG.md +11 -0
- package/dist/src/PrestoDriver.d.ts +46 -0
- package/dist/src/PrestoDriver.d.ts.map +1 -0
- package/dist/src/PrestoDriver.js +149 -0
- package/dist/src/PrestoDriver.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -0
- package/dist/test/presto-driver.test.d.ts +2 -0
- package/dist/test/presto-driver.test.d.ts.map +1 -0
- package/dist/test/presto-driver.test.js +63 -0
- package/dist/test/presto-driver.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +5301 -0
- package/package.json +15 -10
- package/src/PrestoDriver.ts +192 -0
- package/src/index.ts +4 -0
- package/test/{PrestoDriverTest.js → presto-driver.test.ts} +12 -20
- package/tsconfig.json +12 -0
- package/driver/PrestoDriver.js +0 -109
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.31.12](https://github.com/cube-js/cube.js/compare/v0.31.11...v0.31.12) (2022-11-05)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* Trino driver ([e58c392](https://github.com/cube-js/cube.js/commit/e58c3924781b65f5631ee241b39a0bee1366273d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [0.31.11](https://github.com/cube-js/cube.js/compare/v0.31.10...v0.31.11) (2022-11-02)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Cube Dev, Inc.
|
|
3
|
+
* @license Apache-2.0
|
|
4
|
+
* @fileoverview The `PrestoDriver` and related types declaration.
|
|
5
|
+
*/
|
|
6
|
+
import { DownloadQueryResultsOptions, DownloadQueryResultsResult, DriverCapabilities, DriverInterface, StreamOptions, StreamTableData, TableStructure, BaseDriver } from '@cubejs-backend/base-driver';
|
|
7
|
+
export declare type PrestoDriverConfiguration = {
|
|
8
|
+
host?: string;
|
|
9
|
+
port?: string;
|
|
10
|
+
catalog?: string;
|
|
11
|
+
schema?: string;
|
|
12
|
+
user?: string;
|
|
13
|
+
basic_auth?: {
|
|
14
|
+
user: string;
|
|
15
|
+
password: string;
|
|
16
|
+
};
|
|
17
|
+
ssl?: string;
|
|
18
|
+
dataSource?: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Presto driver class.
|
|
22
|
+
*/
|
|
23
|
+
export declare class PrestoDriver extends BaseDriver implements DriverInterface {
|
|
24
|
+
/**
|
|
25
|
+
* Returns default concurrency value.
|
|
26
|
+
*/
|
|
27
|
+
static getDefaultConcurrency(): number;
|
|
28
|
+
private config;
|
|
29
|
+
private catalog;
|
|
30
|
+
private client;
|
|
31
|
+
/**
|
|
32
|
+
* Class constructor.
|
|
33
|
+
*/
|
|
34
|
+
constructor(config?: PrestoDriverConfiguration);
|
|
35
|
+
testConnection(): Promise<void>;
|
|
36
|
+
query(query: string, values: unknown[]): Promise<any[]>;
|
|
37
|
+
prepareQueryWithParams(query: string, values: unknown[]): string;
|
|
38
|
+
queryPromised(query: string, streaming: boolean): Promise<any[] | StreamTableData>;
|
|
39
|
+
downloadQueryResults(query: string, values: unknown[], options: DownloadQueryResultsOptions): Promise<DownloadQueryResultsResult>;
|
|
40
|
+
normalizeResultOverColumns(data: any[], columns: TableStructure): {
|
|
41
|
+
[x: string]: unknown;
|
|
42
|
+
}[];
|
|
43
|
+
stream(query: string, values: unknown[], _options: StreamOptions): Promise<StreamTableData>;
|
|
44
|
+
capabilities(): DriverCapabilities;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=PrestoDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrestoDriver.d.ts","sourceRoot":"","sources":["../../src/PrestoDriver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,2BAA2B,EAAE,0BAA0B,EACvD,kBAAkB,EAAE,eAAe,EACnC,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,EACX,MAAM,6BAA6B,CAAC;AAarC,oBAAY,yBAAyB,GAAG;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAW,YAAW,eAAe;IACrE;;OAEG;WACW,qBAAqB;IAInC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,MAAM,CAAM;IAEpB;;OAEG;gBACgB,MAAM,GAAE,yBAA8B;IA8BlD,cAAc;IAWd,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIvD,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAMvD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;IA0DlF,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAOjI,0BAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,cAAc;;;IAM/D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAM3F,YAAY,IAAI,kBAAkB;CAK1C"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @copyright Cube Dev, Inc.
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
* @fileoverview The `PrestoDriver` and related types declaration.
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.PrestoDriver = void 0;
|
|
12
|
+
const base_driver_1 = require("@cubejs-backend/base-driver");
|
|
13
|
+
const shared_1 = require("@cubejs-backend/shared");
|
|
14
|
+
const stream_1 = require("stream");
|
|
15
|
+
const ramda_1 = require("ramda");
|
|
16
|
+
const sqlstring_1 = __importDefault(require("sqlstring"));
|
|
17
|
+
const presto = require('presto-client');
|
|
18
|
+
/**
|
|
19
|
+
* Presto driver class.
|
|
20
|
+
*/
|
|
21
|
+
class PrestoDriver extends base_driver_1.BaseDriver {
|
|
22
|
+
/**
|
|
23
|
+
* Class constructor.
|
|
24
|
+
*/
|
|
25
|
+
constructor(config = {}) {
|
|
26
|
+
super();
|
|
27
|
+
const dataSource = config.dataSource ||
|
|
28
|
+
shared_1.assertDataSource('default');
|
|
29
|
+
this.config = {
|
|
30
|
+
host: shared_1.getEnv('dbHost', { dataSource }),
|
|
31
|
+
port: shared_1.getEnv('dbPort', { dataSource }),
|
|
32
|
+
catalog: shared_1.getEnv('prestoCatalog', { dataSource }) ||
|
|
33
|
+
shared_1.getEnv('dbCatalog', { dataSource }),
|
|
34
|
+
schema: shared_1.getEnv('dbName', { dataSource }) ||
|
|
35
|
+
shared_1.getEnv('dbSchema', { dataSource }),
|
|
36
|
+
user: shared_1.getEnv('dbUser', { dataSource }),
|
|
37
|
+
basic_auth: shared_1.getEnv('dbPass', { dataSource })
|
|
38
|
+
? {
|
|
39
|
+
user: shared_1.getEnv('dbUser', { dataSource }),
|
|
40
|
+
password: shared_1.getEnv('dbPass', { dataSource }),
|
|
41
|
+
}
|
|
42
|
+
: undefined,
|
|
43
|
+
ssl: this.getSslOptions(dataSource),
|
|
44
|
+
...config
|
|
45
|
+
};
|
|
46
|
+
this.catalog = this.config.catalog;
|
|
47
|
+
this.client = new presto.Client(this.config);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns default concurrency value.
|
|
51
|
+
*/
|
|
52
|
+
static getDefaultConcurrency() {
|
|
53
|
+
return 2;
|
|
54
|
+
}
|
|
55
|
+
testConnection() {
|
|
56
|
+
const query = sqlstring_1.default.format('show catalogs like ?', [`%${this.catalog}%`]);
|
|
57
|
+
return this.queryPromised(query, false)
|
|
58
|
+
.then(catalogs => {
|
|
59
|
+
if (catalogs.length === 0) {
|
|
60
|
+
throw new Error(`Catalog not found '${this.catalog}'`);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
query(query, values) {
|
|
65
|
+
return this.queryPromised(this.prepareQueryWithParams(query, values), false);
|
|
66
|
+
}
|
|
67
|
+
prepareQueryWithParams(query, values) {
|
|
68
|
+
return sqlstring_1.default.format(query, (values || []).map(value => (typeof value === 'string' ? {
|
|
69
|
+
toSqlString: () => sqlstring_1.default.escape(value).replace(/\\\\([_%])/g, '\\$1'),
|
|
70
|
+
} : value)));
|
|
71
|
+
}
|
|
72
|
+
queryPromised(query, streaming) {
|
|
73
|
+
const toError = (error) => new Error(error.error ? `${error.message}\n${error.error}` : error.message);
|
|
74
|
+
if (streaming) {
|
|
75
|
+
const rowStream = new stream_1.Transform({
|
|
76
|
+
writableObjectMode: true,
|
|
77
|
+
readableObjectMode: true,
|
|
78
|
+
transform(obj, encoding, callback) {
|
|
79
|
+
callback(null, obj);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
return new Promise((resolve, reject) => {
|
|
83
|
+
this.client.execute({
|
|
84
|
+
query,
|
|
85
|
+
schema: this.config.schema || 'default',
|
|
86
|
+
columns: (error, columns) => {
|
|
87
|
+
resolve({
|
|
88
|
+
rowStream,
|
|
89
|
+
types: columns
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
data: (error, data, columns) => {
|
|
93
|
+
const normalData = this.normalizeResultOverColumns(data, columns);
|
|
94
|
+
for (const obj of normalData) {
|
|
95
|
+
rowStream.write(obj);
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
success: () => {
|
|
99
|
+
rowStream.end();
|
|
100
|
+
},
|
|
101
|
+
error: (error) => {
|
|
102
|
+
reject(toError(error));
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return new Promise((resolve, reject) => {
|
|
109
|
+
let fullData = [];
|
|
110
|
+
this.client.execute({
|
|
111
|
+
query,
|
|
112
|
+
schema: this.config.schema || 'default',
|
|
113
|
+
data: (error, data, columns) => {
|
|
114
|
+
const normalData = this.normalizeResultOverColumns(data, columns);
|
|
115
|
+
fullData = ramda_1.concat(normalData, fullData);
|
|
116
|
+
},
|
|
117
|
+
success: () => {
|
|
118
|
+
resolve(fullData);
|
|
119
|
+
},
|
|
120
|
+
error: (error) => {
|
|
121
|
+
reject(toError(error));
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
downloadQueryResults(query, values, options) {
|
|
128
|
+
if (options.streamImport) {
|
|
129
|
+
return this.stream(query, values, options);
|
|
130
|
+
}
|
|
131
|
+
return super.downloadQueryResults(query, values, options);
|
|
132
|
+
}
|
|
133
|
+
normalizeResultOverColumns(data, columns) {
|
|
134
|
+
const columnNames = ramda_1.map(ramda_1.prop('name'), columns || []);
|
|
135
|
+
const arrayToObject = ramda_1.zipObj(columnNames);
|
|
136
|
+
return ramda_1.map(arrayToObject, data || []);
|
|
137
|
+
}
|
|
138
|
+
stream(query, values, _options) {
|
|
139
|
+
const queryWithParams = this.prepareQueryWithParams(query, values);
|
|
140
|
+
return this.queryPromised(queryWithParams, true);
|
|
141
|
+
}
|
|
142
|
+
capabilities() {
|
|
143
|
+
return {
|
|
144
|
+
unloadWithoutTempTable: true
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.PrestoDriver = PrestoDriver;
|
|
149
|
+
//# sourceMappingURL=PrestoDriver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrestoDriver.js","sourceRoot":"","sources":["../../src/PrestoDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PrestoDriver = void 0;
|
|
4
|
+
const PrestoDriver_1 = require("./PrestoDriver");
|
|
5
|
+
Object.defineProperty(exports, "PrestoDriver", { enumerable: true, get: function () { return PrestoDriver_1.PrestoDriver; } });
|
|
6
|
+
exports.default = PrestoDriver_1.PrestoDriver;
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAGrC,6FAHA,2BAAY,OAGA;AADrB,kBAAe,2BAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presto-driver.test.d.ts","sourceRoot":"","sources":["../../test/presto-driver.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const PrestoDriver_1 = require("../src/PrestoDriver");
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const { DockerComposeEnvironment, Wait } = require('testcontainers');
|
|
6
|
+
describe('PrestoHouseDriver', () => {
|
|
7
|
+
jest.setTimeout(6 * 60 * 1000);
|
|
8
|
+
let env;
|
|
9
|
+
let config;
|
|
10
|
+
const doWithDriver = async (callback) => {
|
|
11
|
+
const driver = new PrestoDriver_1.PrestoDriver(config);
|
|
12
|
+
await callback(driver);
|
|
13
|
+
};
|
|
14
|
+
// eslint-disable-next-line consistent-return,func-names
|
|
15
|
+
beforeAll(async () => {
|
|
16
|
+
const authOpts = {
|
|
17
|
+
basic_auth: {
|
|
18
|
+
user: 'presto',
|
|
19
|
+
password: ''
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
if (process.env.TEST_PRESTO_HOST) {
|
|
23
|
+
config = {
|
|
24
|
+
host: process.env.TEST_PRESTO_HOST || 'localhost',
|
|
25
|
+
port: process.env.TEST_PRESTO_PORT || '8080',
|
|
26
|
+
catalog: process.env.TEST_PRESTO_CATALOG || 'tpch',
|
|
27
|
+
schema: 'sf1',
|
|
28
|
+
...authOpts
|
|
29
|
+
};
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const dc = new DockerComposeEnvironment(path.resolve(path.dirname(__filename), '../../'), 'docker-compose.yml');
|
|
33
|
+
env = await dc
|
|
34
|
+
.withStartupTimeout(240 * 1000)
|
|
35
|
+
.withWaitStrategy('coordinator', Wait.forHealthCheck())
|
|
36
|
+
.up();
|
|
37
|
+
config = {
|
|
38
|
+
host: env.getContainer('coordinator').getHost(),
|
|
39
|
+
port: env.getContainer('coordinator').getMappedPort(8080),
|
|
40
|
+
catalog: 'tpch',
|
|
41
|
+
schema: 'sf1',
|
|
42
|
+
...authOpts
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
// eslint-disable-next-line consistent-return,func-names
|
|
46
|
+
afterAll(async () => {
|
|
47
|
+
if (env) {
|
|
48
|
+
await env.down();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
it('should construct', async () => {
|
|
52
|
+
await doWithDriver(() => {
|
|
53
|
+
//
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
// eslint-disable-next-line func-names
|
|
57
|
+
it('should test connection', async () => {
|
|
58
|
+
await doWithDriver(async (driver) => {
|
|
59
|
+
await driver.testConnection();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=presto-driver.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presto-driver.test.js","sourceRoot":"","sources":["../../test/presto-driver.test.ts"],"names":[],"mappings":";;AAAA,sDAAmD;AAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAErE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAE/B,IAAI,GAAQ,CAAC;IACb,IAAI,MAAW,CAAC;IAEhB,MAAM,YAAY,GAAG,KAAK,EAAE,QAAa,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,IAAI,2BAAY,CAAC,MAAM,CAAC,CAAC;QAExC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,wDAAwD;IACxD,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,QAAQ,GAAG;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;QAEF,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAChC,MAAM,GAAG;gBACP,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,WAAW;gBACjD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM;gBAC5C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM;gBAClD,MAAM,EAAE,KAAK;gBACb,GAAG,QAAQ;aACZ,CAAC;YAEF,OAAO;SACR;QAED,MAAM,EAAE,GAAG,IAAI,wBAAwB,CACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,EAChD,oBAAoB,CACrB,CAAC;QAEF,GAAG,GAAG,MAAM,EAAE;aACX,kBAAkB,CAAC,GAAG,GAAG,IAAI,CAAC;aAC9B,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;aACtD,EAAE,EAAE,CAAC;QAER,MAAM,GAAG;YACP,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;YAC/C,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;YACzD,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,KAAK;YACb,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,IAAI,GAAG,EAAE;YACP,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;SAClB;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,YAAY,CAAC,GAAG,EAAE;YACtB,EAAE;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,YAAY,CAAC,KAAK,EAAE,MAAW,EAAE,EAAE;YACvC,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|