@khang07/zing-mp3-api 1.1.0 → 1.3.2
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 +442 -476
- package/dist/cjs/index.cjs +301 -134
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/utils/refined.cjs +140 -0
- package/dist/cjs/utils/refined.cjs.map +1 -0
- package/dist/esm/index.js +301 -134
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/refined.js +132 -0
- package/dist/esm/utils/refined.js.map +1 -0
- package/dist/types/index.d.ts +34 -15
- package/dist/types/types/index.d.ts +7 -5
- package/dist/types/types/raw.d.ts +89 -0
- package/dist/types/types/response.d.ts +70 -0
- package/dist/types/utils/refined.d.ts +9 -0
- package/package.json +1 -2
- package/dist/types/types/fetch/response.d.ts +0 -22
- package/dist/types/types/fetch/uri.d.ts +0 -46
package/dist/esm/index.js
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import m3u8stream from 'm3u8stream';
|
|
3
|
-
import {
|
|
3
|
+
import { PassThrough } from 'node:stream';
|
|
4
|
+
import { URL } from 'node:url';
|
|
4
5
|
import { Cookies } from './utils/cookies.js';
|
|
5
6
|
import { createSignature } from './utils/encrypt.js';
|
|
6
7
|
import { Lapse } from './utils/lapse.js';
|
|
7
|
-
|
|
8
|
+
import { createArtist, createMedia, createSearchMedia, createPlayList, createSearchArtist, createSearchPlayList } from './utils/refined.js';
|
|
9
|
+
const isURL = (value) => {
|
|
10
|
+
try {
|
|
11
|
+
new URL(value);
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
class Client {
|
|
8
19
|
static BASE_URL = 'https://zingmp3.vn/';
|
|
9
20
|
static VERSION_URL_V1 = '1.6.34';
|
|
10
21
|
static VERSION_URL_V2 = '1.13.13';
|
|
@@ -12,33 +23,45 @@ class ZingClient {
|
|
|
12
23
|
static SECRET_KEY_V2 = '10a01dcf33762d3a204cb96429918ff6';
|
|
13
24
|
static API_KEY_V1 = '88265e23d4284f25963e6eedac8fbfa3';
|
|
14
25
|
static API_KEY_V2 = '38e8643fb0dc04e8d65b99994d3dafff';
|
|
26
|
+
static API_VIDEO_PATH = '/api/v2/page/get/video';
|
|
27
|
+
static API_MUSIC_PATH = '/api/v2/song/get/streaming';
|
|
28
|
+
static EXTRA_API_MUSIC_PATH = '/api/song/get-song-info';
|
|
29
|
+
static API_SEARCH_PATH = '/api/v2/search';
|
|
30
|
+
static API_PLAYLIST_PATH = '/api/v2/page/get/playlist';
|
|
31
|
+
static API_MEDIA_DETAILS_PATH = '/api/v2/song/get/info';
|
|
32
|
+
static API_ARTIST_PATH = '/api/v2/page/get/artist';
|
|
33
|
+
static getIDFromURL(url) {
|
|
34
|
+
if (typeof url !== 'string' || !url.trim().length)
|
|
35
|
+
throw new Lapse('URL must be a non-empty string', 'ERROR_INVALID_URL');
|
|
36
|
+
const match = url.match(/\/([A-Z0-9]{8})\.html(?:\?|#|$)/i) || url.match(/^https?:\/\/zingmp3\.vn\/([^/?#]+)\/?(?:[?#].*)?$/i);
|
|
37
|
+
if (!match)
|
|
38
|
+
throw new Lapse('Could not extract ID from URL', 'ERROR_INVALID_URL');
|
|
39
|
+
return match[1];
|
|
40
|
+
}
|
|
15
41
|
ctime = Math.floor(Date.now() / 1000).toString();
|
|
16
|
-
jar;
|
|
17
42
|
instance;
|
|
18
|
-
|
|
43
|
+
maxLoad;
|
|
44
|
+
maxHighWaterMark;
|
|
45
|
+
userAgent;
|
|
46
|
+
jar;
|
|
19
47
|
constructor(options = {}) {
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
baseURL: ZingClient.BASE_URL,
|
|
48
|
+
this.maxLoad = options.maxLoad ?? 1024 * 1024;
|
|
49
|
+
this.maxHighWaterMark = options.maxHighWaterMark ?? 16 * 1024;
|
|
50
|
+
this.userAgent = options?.userAgent ?? 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3';
|
|
51
|
+
this.jar = options.jar instanceof Cookies ? options.jar : new Cookies();
|
|
52
|
+
this.instance = axios.create({
|
|
53
|
+
baseURL: Client.BASE_URL,
|
|
27
54
|
params: {
|
|
28
|
-
version:
|
|
29
|
-
apiKey:
|
|
55
|
+
version: Client.VERSION_URL_V1,
|
|
56
|
+
apiKey: Client.API_KEY_V1,
|
|
30
57
|
ctime: this.ctime
|
|
31
58
|
},
|
|
32
|
-
maxRate:
|
|
33
|
-
100 * 1024,
|
|
34
|
-
this.maxRate[0]
|
|
35
|
-
],
|
|
59
|
+
maxRate: this.maxLoad,
|
|
36
60
|
headers: {
|
|
37
|
-
'User-Agent':
|
|
61
|
+
'User-Agent': this.userAgent
|
|
38
62
|
}
|
|
39
|
-
};
|
|
40
|
-
this.instance
|
|
41
|
-
this.instance.interceptors.request.use((options) => {
|
|
63
|
+
});
|
|
64
|
+
this.instance.interceptors.request.use(async (options) => {
|
|
42
65
|
const base = options.baseURL ?? '';
|
|
43
66
|
const url = new URL(options.url ?? '/', base).toString();
|
|
44
67
|
const additionalHeaders = this.jar.applyToHeaders(url);
|
|
@@ -51,34 +74,37 @@ class ZingClient {
|
|
|
51
74
|
const requestUrl = response.request?.res?.responseUrl ?? response.config.url;
|
|
52
75
|
if (requestUrl && Array.isArray(setCookie))
|
|
53
76
|
this.jar.setCookies(setCookie, requestUrl);
|
|
54
|
-
return response;
|
|
77
|
+
return response.data;
|
|
55
78
|
});
|
|
56
79
|
}
|
|
80
|
+
async ensureCookies() {
|
|
81
|
+
if (this.jar.getCookies(Client.BASE_URL).length === 0)
|
|
82
|
+
void await this.instance.get('/');
|
|
83
|
+
}
|
|
57
84
|
async video(videoID) {
|
|
58
|
-
|
|
85
|
+
const value = videoID instanceof URL ? videoID.toString() : videoID;
|
|
86
|
+
if (typeof value !== 'string' || !value.trim().length)
|
|
59
87
|
throw new Lapse('ID must be a non-empty string', 'ERROR_INVALID_ID');
|
|
60
|
-
const uri = '/api/v2/page/get/video';
|
|
61
88
|
try {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const response = await this.instance.get(
|
|
89
|
+
videoID = isURL(value) ? Client.getIDFromURL(value) : value;
|
|
90
|
+
void await this.ensureCookies();
|
|
91
|
+
const response = await this.instance.get(Client.API_VIDEO_PATH, {
|
|
65
92
|
params: {
|
|
66
93
|
id: videoID,
|
|
67
|
-
sig: createSignature(
|
|
94
|
+
sig: createSignature(Client.API_VIDEO_PATH, 'ctime=' + this.ctime + 'id=' + videoID + 'version=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
68
95
|
}
|
|
69
96
|
});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const videoURL = body.data?.streaming?.hls?.['360p'];
|
|
97
|
+
if (response.err !== 0)
|
|
98
|
+
throw new Lapse('Video could not be found', 'ERROR_VIDEO_NOT_FOUND', response.err, response);
|
|
99
|
+
const videoURL = response.data?.streaming?.hls?.['720p'] || response.data?.streaming?.hls?.['360p'];
|
|
74
100
|
if (!videoURL || !videoURL.length)
|
|
75
101
|
throw new Lapse('Streaming URL not found', 'ERROR_STREAM_URL_NOT_FOUND');
|
|
76
|
-
const
|
|
77
|
-
|
|
102
|
+
const source = m3u8stream(videoURL);
|
|
103
|
+
source.once('error', (error) => {
|
|
78
104
|
const lapse = new Lapse('Stream download failed', 'ERROR_STREAM_DOWNLOAD', void 0, error);
|
|
79
|
-
|
|
105
|
+
source.destroy(lapse);
|
|
80
106
|
});
|
|
81
|
-
return
|
|
107
|
+
return source;
|
|
82
108
|
}
|
|
83
109
|
catch (error) {
|
|
84
110
|
if (error instanceof Lapse)
|
|
@@ -86,78 +112,87 @@ class ZingClient {
|
|
|
86
112
|
throw new Lapse('Failed to fetch video stream', 'ERROR_VIDEO_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
87
113
|
}
|
|
88
114
|
}
|
|
89
|
-
|
|
90
|
-
const video = new PassThrough({ highWaterMark: this.
|
|
115
|
+
videoSync(videoID) {
|
|
116
|
+
const video = new PassThrough({ highWaterMark: this.maxHighWaterMark });
|
|
117
|
+
let copySource;
|
|
118
|
+
let closed = false;
|
|
119
|
+
let sourceDestroyed = false;
|
|
120
|
+
const destroy = () => {
|
|
121
|
+
if (!copySource || sourceDestroyed)
|
|
122
|
+
return;
|
|
123
|
+
sourceDestroyed = true;
|
|
124
|
+
if (!copySource)
|
|
125
|
+
return;
|
|
126
|
+
copySource.unpipe(video);
|
|
127
|
+
if (!copySource.destroyed)
|
|
128
|
+
copySource.destroy();
|
|
129
|
+
};
|
|
130
|
+
const closer = () => {
|
|
131
|
+
closed = true;
|
|
132
|
+
destroy();
|
|
133
|
+
};
|
|
134
|
+
video.once('close', closer);
|
|
135
|
+
video.once('error', closer);
|
|
91
136
|
void this.video(videoID)
|
|
92
137
|
.then((source) => {
|
|
138
|
+
copySource = source;
|
|
93
139
|
source.once('error', (error) => {
|
|
94
140
|
const lapse = error instanceof Lapse ? error : new Lapse('Stream download failed', 'ERROR_STREAM_DOWNLOAD', void 0, error);
|
|
95
141
|
video.destroy(lapse);
|
|
96
142
|
});
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
video.once('close', destroy);
|
|
102
|
-
video.once('error', destroy);
|
|
143
|
+
if (closed || video.destroyed) {
|
|
144
|
+
destroy();
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
103
147
|
source.pipe(video);
|
|
104
148
|
})
|
|
105
149
|
.catch((error) => {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
throw new Lapse('Failed to fetch video stream', 'ERROR_VIDEO_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
150
|
+
const lapse = error instanceof Lapse ? error : new Lapse('Failed to fetch video stream', 'ERROR_VIDEO_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
151
|
+
video.destroy(lapse);
|
|
109
152
|
});
|
|
110
153
|
return video;
|
|
111
154
|
}
|
|
112
155
|
async music(musicID) {
|
|
113
|
-
|
|
156
|
+
const value = musicID instanceof URL ? musicID.toString() : musicID;
|
|
157
|
+
if (typeof value !== 'string' || !value.trim().length)
|
|
114
158
|
throw new Lapse('ID must be a non-empty string', 'ERROR_INVALID_ID');
|
|
115
|
-
let musicURL;
|
|
116
|
-
const uri = '/api/v2/song/get/streaming';
|
|
117
159
|
try {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const response = await this.instance.get(
|
|
160
|
+
musicID = isURL(value) ? Client.getIDFromURL(value) : value;
|
|
161
|
+
void await this.ensureCookies();
|
|
162
|
+
const response = await this.instance.get(Client.API_MUSIC_PATH, {
|
|
121
163
|
params: {
|
|
122
164
|
id: musicID,
|
|
123
|
-
sig: createSignature(
|
|
165
|
+
sig: createSignature(Client.API_MUSIC_PATH, 'ctime=' + this.ctime + 'id=' + musicID + 'version=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
124
166
|
}
|
|
125
167
|
});
|
|
126
|
-
|
|
127
|
-
if (
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
const
|
|
168
|
+
let musicURL = response.data?.[320] && response.data[320] !== 'VIP' ? response.data[320] : response.data?.[128];
|
|
169
|
+
if (response.err === -1150) {
|
|
170
|
+
const retry = async (step, before) => {
|
|
171
|
+
if (step > 3)
|
|
172
|
+
throw new Lapse('Music requested by VIP, PRI', 'ERROR_MUSIC_VIP_ONLY', before ? before.err : void 0, before);
|
|
173
|
+
const retryData = await this.instance.get(Client.EXTRA_API_MUSIC_PATH, {
|
|
132
174
|
params: {
|
|
133
175
|
id: musicID,
|
|
134
|
-
api_key:
|
|
135
|
-
sig: createSignature('/song/get-song-info', 'ctime=' + this.ctime + 'id=' + musicID,
|
|
176
|
+
api_key: Client.API_KEY_V2,
|
|
177
|
+
sig: createSignature('/song/get-song-info', 'ctime=' + this.ctime + 'id=' + musicID, Client.SECRET_KEY_V2),
|
|
136
178
|
version: void 0,
|
|
137
179
|
apiKey: void 0
|
|
138
180
|
}
|
|
139
181
|
});
|
|
140
|
-
if (
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
if (!retrySuccess)
|
|
147
|
-
throw new Lapse('Music requested by VIP, PRI', 'ERROR_MUSIC_VIP_ONLY', response.status, body);
|
|
182
|
+
if (retryData.err === 0)
|
|
183
|
+
return retryData.data?.streaming?.default?.[128];
|
|
184
|
+
return retry(step + 1, retryData);
|
|
185
|
+
};
|
|
186
|
+
musicURL = await retry(0);
|
|
148
187
|
}
|
|
149
|
-
else if (body.err === 0)
|
|
150
|
-
musicURL = body.data?.[128];
|
|
151
|
-
else
|
|
152
|
-
throw new Lapse('This song could not be found', 'ERROR_MUSIC_NOT_FOUND', response.status, body);
|
|
153
188
|
if (!musicURL || !musicURL.length)
|
|
154
189
|
throw new Lapse('Streaming URL not found', 'ERROR_STREAM_URL_NOT_FOUND');
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
const lapse = new Lapse('Stream download failed', 'ERROR_STREAM_DOWNLOAD',
|
|
158
|
-
|
|
190
|
+
const source = await this.instance.get(musicURL, { responseType: 'stream' });
|
|
191
|
+
source.once('error', (error) => {
|
|
192
|
+
const lapse = new Lapse('Stream download failed', 'ERROR_STREAM_DOWNLOAD', void 0, error);
|
|
193
|
+
source.destroy(lapse);
|
|
159
194
|
});
|
|
160
|
-
return
|
|
195
|
+
return source;
|
|
161
196
|
}
|
|
162
197
|
catch (error) {
|
|
163
198
|
if (error instanceof Lapse)
|
|
@@ -165,82 +200,214 @@ class ZingClient {
|
|
|
165
200
|
throw new Lapse('Failed to fetch music stream', 'ERROR_MUSIC_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
166
201
|
}
|
|
167
202
|
}
|
|
168
|
-
|
|
169
|
-
const music = new PassThrough({ highWaterMark: this.
|
|
203
|
+
musicSync(musicID) {
|
|
204
|
+
const music = new PassThrough({ highWaterMark: this.maxHighWaterMark });
|
|
205
|
+
let copySource;
|
|
206
|
+
let closed = false;
|
|
207
|
+
let sourceDestroyed = false;
|
|
208
|
+
const destroy = () => {
|
|
209
|
+
if (!copySource || sourceDestroyed)
|
|
210
|
+
return;
|
|
211
|
+
sourceDestroyed = true;
|
|
212
|
+
copySource.unpipe(music);
|
|
213
|
+
if (!copySource.destroyed)
|
|
214
|
+
copySource.destroy();
|
|
215
|
+
};
|
|
216
|
+
const closer = () => {
|
|
217
|
+
closed = true;
|
|
218
|
+
destroy();
|
|
219
|
+
};
|
|
220
|
+
music.once('close', closer);
|
|
221
|
+
music.once('error', closer);
|
|
170
222
|
void this.music(musicID)
|
|
171
223
|
.then((source) => {
|
|
224
|
+
copySource = source;
|
|
172
225
|
source.once('error', (error) => {
|
|
173
226
|
const lapse = error instanceof Lapse ? error : new Lapse('Stream download failed', 'ERROR_STREAM_DOWNLOAD', void 0, error);
|
|
174
227
|
music.destroy(lapse);
|
|
175
228
|
});
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
music.once('close', destroy);
|
|
181
|
-
music.once('error', destroy);
|
|
229
|
+
if (closed || music.destroyed) {
|
|
230
|
+
destroy();
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
182
233
|
source.pipe(music);
|
|
183
234
|
})
|
|
184
235
|
.catch((error) => {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
throw new Lapse('Failed to fetch music stream', 'ERROR_MUSIC_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
236
|
+
const lapse = error instanceof Lapse ? error : new Lapse('Failed to fetch music stream', 'ERROR_MUSIC_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
237
|
+
music.destroy(lapse);
|
|
188
238
|
});
|
|
189
239
|
return music;
|
|
190
240
|
}
|
|
191
|
-
async
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
241
|
+
async playlist(playlistID) {
|
|
242
|
+
const value = playlistID instanceof URL ? playlistID.toString() : playlistID;
|
|
243
|
+
if (typeof value !== 'string' || !value.trim().length)
|
|
244
|
+
throw new Lapse('ID must be a non-empty string', 'ERROR_INVALID_ID');
|
|
245
|
+
try {
|
|
246
|
+
playlistID = isURL(value) ? Client.getIDFromURL(value) : value;
|
|
247
|
+
void await this.ensureCookies();
|
|
248
|
+
const response = await this.instance.get(Client.API_PLAYLIST_PATH, {
|
|
249
|
+
params: {
|
|
250
|
+
id: playlistID,
|
|
251
|
+
sig: createSignature(Client.API_PLAYLIST_PATH, 'ctime=' + this.ctime + 'id=' + playlistID + 'version=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
if (response.err !== 0)
|
|
255
|
+
throw new Lapse('Could not find playlist', 'ERROR_PLAYLIST_NOT_FOUND', response.err, response);
|
|
256
|
+
return createPlayList(response.data);
|
|
257
|
+
}
|
|
258
|
+
catch (error) {
|
|
259
|
+
if (error instanceof Lapse)
|
|
260
|
+
throw error;
|
|
261
|
+
throw new Lapse('Failed to fetch playlist', 'ERROR_PLAYLIST_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
async artist(aliasID) {
|
|
265
|
+
const value = aliasID instanceof URL ? aliasID.toString() : aliasID;
|
|
266
|
+
if (typeof value !== 'string' || !value.trim().length)
|
|
267
|
+
throw new Lapse('ID must be a non-empty string', 'ERROR_INVALID_ID');
|
|
195
268
|
try {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const response = await this.instance.get(
|
|
269
|
+
aliasID = isURL(value) ? Client.getIDFromURL(value) : value;
|
|
270
|
+
void await this.ensureCookies();
|
|
271
|
+
const response = await this.instance.get(Client.API_ARTIST_PATH, {
|
|
199
272
|
params: {
|
|
200
|
-
|
|
201
|
-
sig: createSignature(
|
|
273
|
+
alias: aliasID,
|
|
274
|
+
sig: createSignature(Client.API_ARTIST_PATH, 'ctime=' + this.ctime + 'version=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
202
275
|
}
|
|
203
276
|
});
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
return
|
|
209
|
-
id: song.encodeId,
|
|
210
|
-
name: song.title,
|
|
211
|
-
alias: song.alias,
|
|
212
|
-
isOffical: song.isOffical,
|
|
213
|
-
username: song.username,
|
|
214
|
-
artists: song.artists.map((artist) => ({
|
|
215
|
-
id: artist.id,
|
|
216
|
-
name: artist.name,
|
|
217
|
-
alias: artist.alias,
|
|
218
|
-
thumbnail: {
|
|
219
|
-
w240: artist.thumbnailM,
|
|
220
|
-
w360: artist.thumbnail
|
|
221
|
-
}
|
|
222
|
-
})),
|
|
223
|
-
thumbnail: {
|
|
224
|
-
w94: song.thumbnailM,
|
|
225
|
-
w240: song.thumbnail
|
|
226
|
-
},
|
|
227
|
-
duration: song.duration,
|
|
228
|
-
releaseDate: song.releaseDate
|
|
229
|
-
}));
|
|
277
|
+
if (response.err === -108)
|
|
278
|
+
throw new Lapse('Artist not found', 'ERROR_ARTIST_NOT_FOUND', response.err, response);
|
|
279
|
+
if (response.err !== 0)
|
|
280
|
+
throw new Lapse('Could not fetch artist', 'ERROR_ARTIST_FETCH', response.err, response);
|
|
281
|
+
return createArtist(response.data);
|
|
230
282
|
}
|
|
231
283
|
catch (error) {
|
|
232
284
|
if (error instanceof Lapse)
|
|
233
285
|
throw error;
|
|
234
|
-
throw new Lapse('Failed to
|
|
286
|
+
throw new Lapse('Failed to fetch artist', 'ERROR_ARTIST_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
async mediaDetails(mediaID) {
|
|
290
|
+
const value = mediaID instanceof URL ? mediaID.toString() : mediaID;
|
|
291
|
+
if (typeof value !== 'string' || !value.trim().length)
|
|
292
|
+
throw new Lapse('ID must be a non-empty string', 'ERROR_INVALID_ID');
|
|
293
|
+
try {
|
|
294
|
+
mediaID = isURL(value) ? Client.getIDFromURL(value) : value;
|
|
295
|
+
void await this.ensureCookies();
|
|
296
|
+
const response = await this.instance.get(Client.API_MEDIA_DETAILS_PATH, {
|
|
297
|
+
params: {
|
|
298
|
+
id: mediaID,
|
|
299
|
+
sig: createSignature(Client.API_MEDIA_DETAILS_PATH, 'ctime=' + this.ctime + 'id=' + mediaID + 'version=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
if (response.err === -1023)
|
|
303
|
+
throw new Lapse('Media not found', 'ERROR_MEDIA_NOT_FOUND', response.err, response);
|
|
304
|
+
if (response.err !== 0)
|
|
305
|
+
throw new Lapse('Could not fetch media', 'ERROR_MEDIA_FETCH', response.err, response);
|
|
306
|
+
return createMedia(response.data);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
if (error instanceof Lapse)
|
|
310
|
+
throw error;
|
|
311
|
+
throw new Lapse('Failed to fetch media', 'ERROR_MEDIA_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
async searchMusic(query) {
|
|
315
|
+
if (typeof query !== 'string' || !query.trim().length)
|
|
316
|
+
throw new Lapse('Query must be a non-empty string', 'ERROR_INVALID_QUERY');
|
|
317
|
+
try {
|
|
318
|
+
void await this.ensureCookies();
|
|
319
|
+
const response = await this.instance.get(Client.API_SEARCH_PATH, {
|
|
320
|
+
params: {
|
|
321
|
+
q: query,
|
|
322
|
+
type: 'song',
|
|
323
|
+
page: 1,
|
|
324
|
+
count: 20,
|
|
325
|
+
sig: createSignature(Client.API_SEARCH_PATH, 'count=20ctime=' + this.ctime + 'page=1type=songversion=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
if (response.err !== 0)
|
|
329
|
+
throw new Lapse('Search could not be fetched', 'ERROR_SEARCH_FAILED', response.err, response);
|
|
330
|
+
return response.data.items.map(createMedia);
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
if (error instanceof Lapse)
|
|
334
|
+
throw error;
|
|
335
|
+
throw new Lapse('Search could not be fetch', 'ERROR_SEARCH_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
async searchVideo(query) {
|
|
339
|
+
if (typeof query !== 'string' || !query.trim().length)
|
|
340
|
+
throw new Lapse('Query must be a non-empty string', 'ERROR_INVALID_QUERY');
|
|
341
|
+
try {
|
|
342
|
+
void await this.ensureCookies();
|
|
343
|
+
const response = await this.instance.get(Client.API_SEARCH_PATH, {
|
|
344
|
+
params: {
|
|
345
|
+
q: query,
|
|
346
|
+
type: 'video',
|
|
347
|
+
page: 1,
|
|
348
|
+
count: 20,
|
|
349
|
+
sig: createSignature(Client.API_SEARCH_PATH, 'count=20ctime=' + this.ctime + 'page=1type=videoversion=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
if (response.err !== 0)
|
|
353
|
+
throw new Lapse('Search could not be fetched', 'ERROR_SEARCH_FAILED', response.err, response);
|
|
354
|
+
return response.data.items.filter(item => item.artists).map(createSearchMedia);
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
if (error instanceof Lapse)
|
|
358
|
+
throw error;
|
|
359
|
+
throw new Lapse('Search could not be fetch', 'ERROR_SEARCH_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
async searchList(query) {
|
|
363
|
+
if (typeof query !== 'string' || !query.trim().length)
|
|
364
|
+
throw new Lapse('Query must be a non-empty string', 'ERROR_INVALID_QUERY');
|
|
365
|
+
try {
|
|
366
|
+
void await this.ensureCookies();
|
|
367
|
+
const response = await this.instance.get(Client.API_SEARCH_PATH, {
|
|
368
|
+
params: {
|
|
369
|
+
q: query,
|
|
370
|
+
type: 'playlist',
|
|
371
|
+
page: 1,
|
|
372
|
+
count: 20,
|
|
373
|
+
sig: createSignature(Client.API_SEARCH_PATH, 'count=20ctime=' + this.ctime + 'page=1type=playlistversion=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
if (response.err !== 0)
|
|
377
|
+
throw new Lapse('Search could not be fetched', 'ERROR_SEARCH_FAILED', response.err, response);
|
|
378
|
+
return response.data.items.map(createSearchPlayList);
|
|
379
|
+
}
|
|
380
|
+
catch (error) {
|
|
381
|
+
if (error instanceof Lapse)
|
|
382
|
+
throw error;
|
|
383
|
+
throw new Lapse('Search could not be fetch', 'ERROR_SEARCH_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
async searchArtist(query) {
|
|
387
|
+
if (typeof query !== 'string' || !query.trim().length)
|
|
388
|
+
throw new Lapse('Query must be a non-empty string', 'ERROR_INVALID_QUERY');
|
|
389
|
+
try {
|
|
390
|
+
void await this.ensureCookies();
|
|
391
|
+
const response = await this.instance.get(Client.API_SEARCH_PATH, {
|
|
392
|
+
params: {
|
|
393
|
+
q: query,
|
|
394
|
+
type: 'artist',
|
|
395
|
+
page: 1,
|
|
396
|
+
count: 20,
|
|
397
|
+
sig: createSignature(Client.API_SEARCH_PATH, 'count=20ctime=' + this.ctime + 'page=1type=artistversion=' + Client.VERSION_URL_V1, Client.SECRET_KEY_V1)
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
if (response.err !== 0)
|
|
401
|
+
throw new Lapse('Search could not be fetched', 'ERROR_SEARCH_FAILED', response.err, response);
|
|
402
|
+
return response.data.items.map(createSearchArtist);
|
|
403
|
+
}
|
|
404
|
+
catch (error) {
|
|
405
|
+
if (error instanceof Lapse)
|
|
406
|
+
throw error;
|
|
407
|
+
throw new Lapse('Search could not be fetch', 'ERROR_SEARCH_FETCH', axios.isAxiosError(error) ? error.response?.status : void 0, error);
|
|
235
408
|
}
|
|
236
409
|
}
|
|
237
410
|
}
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
-
100 * 1024,
|
|
241
|
-
16 * 1024
|
|
242
|
-
]
|
|
243
|
-
};
|
|
244
|
-
const client = new ZingClient(clientOptions);
|
|
245
|
-
export { client as default, ZingClient };
|
|
411
|
+
const client = new Client();
|
|
412
|
+
export { client as default, Client };
|
|
246
413
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"source/","sources":["index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"source/","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAmB5I,MAAM,KAAK,GAAG,CAAC,KAAa,EAAW,EAAE;IACrC,IAAI,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAA;AAED,MAAM,MAAM;IACD,MAAM,CAAU,QAAQ,GAAW,qBAAqB,CAAC;IAEzD,MAAM,CAAU,cAAc,GAAW,QAAQ,CAAC;IAClD,MAAM,CAAU,cAAc,GAAW,SAAS,CAAC;IAEnD,MAAM,CAAU,aAAa,GAAW,kCAAkC,CAAC;IAC3E,MAAM,CAAU,aAAa,GAAW,kCAAkC,CAAC;IAE3E,MAAM,CAAU,UAAU,GAAW,kCAAkC,CAAC;IACxE,MAAM,CAAU,UAAU,GAAW,kCAAkC,CAAC;IAExE,MAAM,CAAU,cAAc,GAAW,wBAAwB,CAAC;IAClE,MAAM,CAAU,cAAc,GAAW,4BAA4B,CAAC;IACtE,MAAM,CAAU,oBAAoB,GAAW,yBAAyB,CAAC;IACzE,MAAM,CAAU,eAAe,GAAW,gBAAgB,CAAC;IAC3D,MAAM,CAAU,iBAAiB,GAAW,2BAA2B,CAAC;IACxE,MAAM,CAAU,sBAAsB,GAAW,uBAAuB,CAAC;IACzE,MAAM,CAAU,eAAe,GAAW,yBAAyB,CAAC;IAEpE,MAAM,CAAC,YAAY,CAAC,GAAW;QAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM;YAC7C,MAAM,IAAI,KAAK,CAAC,gCAAgC,EAAE,mBAAmB,CAAC,CAAC;QAE3E,MAAM,KAAK,GAA4B,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAExJ,IAAI,CAAC,KAAK;YACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAAC;QAE1E,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAEgB,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzD,QAAQ,CAAgB;IACxB,OAAO,CAAqC;IAC5C,gBAAgB,CAA8C;IAC9D,SAAS,CAAuC;IAChD,GAAG,CAAiC;IAErD,YAAmB,UAAyB,EAAE;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,oHAAoH,CAAC;QAC5J,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAExE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC,QAAQ;YACxB,MAAM,EAAE;gBACJ,OAAO,EAAE,MAAM,CAAC,cAAc;gBAC9B,MAAM,EAAE,MAAM,CAAC,UAAU;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB;YACD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE;gBACL,YAAY,EAAE,IAAI,CAAC,SAAS;aAC/B;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAClC,KAAK,EAAE,OAAO,EAAE,EAAE;YACd,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACxD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAEpC,OAAO,OAAO,CAAC;QACnB,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAC,QAAQ,EAAE,EAAE;YACT,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;YAE7E,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAE/C,OAAO,QAAQ,CAAC,IAAI,CAAC;QACzB,CAAC,CACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;YACjD,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAqB;QACpC,MAAM,KAAK,GAAG,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAEpE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;QAEzE,IAAI,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE5D,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAA2B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE;gBACpF,MAAM,EAAE;oBACJ,EAAE,EAAE,OAAO;oBACX,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBAClJ;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,uBAAuB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAEjG,MAAM,QAAQ,GAAkB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;YAEnH,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAAC;YAE7E,MAAM,MAAM,GAAa,UAAU,CAAC,QAAQ,CAAC,CAAC;YAE9C,MAAM,CAAC,IAAI,CAAC,OAAO,EACf,CAAC,KAAc,EAAQ,EAAE;gBACrB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC1F,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CACJ,CAAC;YAEF,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,mBAAmB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7I,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,OAAqB;QAClC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAExE,IAAI,UAAgC,CAAC;QACrC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,MAAM,OAAO,GAAG,GAAS,EAAE;YACvB,IAAI,CAAC,UAAU,IAAI,eAAe;gBAC9B,OAAO;YAEX,eAAe,GAAG,IAAI,CAAC;YAEvB,IAAI,CAAC,UAAU;gBACX,OAAO;YAEX,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzB,IAAI,CAAC,UAAU,CAAC,SAAS;gBACrB,UAAU,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAA;QAED,MAAM,MAAM,GAAG,GAAS,EAAE;YACtB,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,EAAE,CAAC;QACd,CAAC,CAAA;QAED,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aACnB,IAAI,CACD,CAAC,MAAgB,EAAQ,EAAE;YACvB,UAAU,GAAG,MAAM,CAAC;YAEpB,MAAM,CAAC,IAAI,CAAC,OAAO,EACf,CAAC,KAAc,EAAQ,EAAE;gBACrB,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC3H,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CACJ,CAAC;YAEF,IAAI,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CACJ;aACA,KAAK,CACF,CAAC,KAAc,EAAQ,EAAE;YACrB,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,8BAA8B,EAAE,mBAAmB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAElL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CACJ,CAAC;QAEN,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAqB;QACpC,MAAM,KAAK,GAAG,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAEpE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;QAEzE,IAAI,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE5D,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAA2B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE;gBACpF,MAAM,EAAE;oBACJ,EAAE,EAAE,OAAO;oBACX,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBAClJ;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,GAAkB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;YAE/H,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,KAAK,EAAE,IAAY,EAAE,MAA+B,EAA0B,EAAE;oBAC1F,IAAI,IAAI,GAAG,CAAC;wBACR,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;oBAEjH,MAAM,SAAS,GAA2B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,EAAE;wBAC3F,MAAM,EAAE;4BACJ,EAAE,EAAE,OAAO;4BACX,OAAO,EAAE,MAAM,CAAC,UAAU;4BAC1B,GAAG,EAAE,eAAe,CAAC,qBAAqB,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC;4BAC1G,OAAO,EAAE,KAAK,CAAC;4BACf,MAAM,EAAE,KAAK,CAAC;yBACjB;qBACJ,CAAC,CAAC;oBAEH,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC;wBACnB,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;oBAErD,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;gBACtC,CAAC,CAAA;gBAED,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAAC;YAE7E,MAAM,MAAM,GAAa,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEvF,MAAM,CAAC,IAAI,CAAC,OAAO,EACf,CAAC,KAAc,EAAQ,EAAE;gBACrB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC1F,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CACJ,CAAC;YAEF,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,mBAAmB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7I,CAAC;IACL,CAAC;IAEM,SAAS,CAAC,OAAqB;QAClC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAExE,IAAI,UAAgC,CAAC;QACrC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,MAAM,OAAO,GAAG,GAAS,EAAE;YACvB,IAAI,CAAC,UAAU,IAAI,eAAe;gBAC9B,OAAO;YAEX,eAAe,GAAG,IAAI,CAAC;YACvB,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzB,IAAI,CAAC,UAAU,CAAC,SAAS;gBACrB,UAAU,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAA;QAED,MAAM,MAAM,GAAG,GAAS,EAAE;YACtB,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,EAAE,CAAC;QACd,CAAC,CAAA;QAED,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aACnB,IAAI,CACD,CAAC,MAAgB,EAAQ,EAAE;YACvB,UAAU,GAAG,MAAM,CAAC;YAEpB,MAAM,CAAC,IAAI,CAAC,OAAO,EACf,CAAC,KAAc,EAAQ,EAAE;gBACrB,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC3H,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CACJ,CAAC;YAEF,IAAI,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CACJ;aACA,KAAK,CACF,CAAC,KAAc,EAAQ,EAAE;YACrB,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,8BAA8B,EAAE,mBAAmB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAElL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CACJ,CAAC;QAEN,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,UAAwB;QAC1C,MAAM,KAAK,GAAG,UAAU,YAAY,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAE7E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;QAEzE,IAAI,CAAC;YACD,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE/D,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAA8B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBAC1F,MAAM,EAAE;oBACJ,EAAE,EAAE,UAAU;oBACd,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBACxJ;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,0BAA0B,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAEnG,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,sBAAsB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5I,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAqB;QACrC,MAAM,KAAK,GAAG,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAEpE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;QAEzE,IAAI,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE5D,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAA4B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE;gBACtF,MAAM,EAAE;oBACJ,KAAK,EAAE,OAAO;oBACd,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBACjI;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG;gBACrB,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE1F,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE5F,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACxI,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAqB;QAC3C,MAAM,KAAK,GAAG,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAEpE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,CAAC;QAEzE,IAAI,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE5D,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAA2B,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE;gBAC5F,MAAM,EAAE;oBACJ,EAAE,EAAE,OAAO;oBACX,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,sBAAsB,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBAC1J;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI;gBACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAExF,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE1F,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACtI,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAa;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,CAAC;QAE/E,IAAI,CAAC;YACD,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAAsC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE;gBAChG,MAAM,EAAE;oBACJ,CAAC,EAAE,KAAK;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,EAAE;oBACT,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAAC,KAAK,GAAG,yBAAyB,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBACxJ;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAElG,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3I,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAa;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,CAAC;QAE/E,IAAI,CAAC;YACD,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAA4C,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE;gBACtG,MAAM,EAAE;oBACJ,CAAC,EAAE,KAAK;oBACR,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,EAAE;oBACT,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAAC,KAAK,GAAG,0BAA0B,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBACzJ;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAElG,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3I,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,CAAC;QAE/E,IAAI,CAAC;YACD,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAA+C,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE;gBACzG,MAAM,EAAE;oBACJ,CAAC,EAAE,KAAK;oBACR,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,EAAE;oBACT,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAAC,KAAK,GAAG,6BAA6B,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBAC5J;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAElG,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3I,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa;QACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;YACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,CAAC;QAE/E,IAAI,CAAC;YACD,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAEhC,MAAM,QAAQ,GAA6C,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE;gBACvG,MAAM,EAAE;oBACJ,CAAC,EAAE,KAAK;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,EAAE;oBACT,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAAC,KAAK,GAAG,2BAA2B,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;iBAC1J;aACJ,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,qBAAqB,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAElG,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK;gBACtB,MAAM,KAAK,CAAC;YAEhB,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3I,CAAC;IACL,CAAC;;AAGL,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAE5B,OAAO,EACH,MAAM,IAAI,OAAO,EACjB,MAAM,EACT,CAAA"}
|