@capgo/capacitor-uploader 0.0.1

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/dist/docs.json ADDED
@@ -0,0 +1,310 @@
1
+ {
2
+ "api": {
3
+ "name": "UploaderPlugin",
4
+ "slug": "uploaderplugin",
5
+ "docs": "",
6
+ "tags": [],
7
+ "methods": [
8
+ {
9
+ "name": "startUpload",
10
+ "signature": "(options: uploadOption) => any",
11
+ "parameters": [
12
+ {
13
+ "name": "options",
14
+ "docs": "",
15
+ "type": "uploadOption"
16
+ }
17
+ ],
18
+ "returns": "any",
19
+ "tags": [
20
+ {
21
+ "name": "since",
22
+ "text": "1.0.0"
23
+ },
24
+ {
25
+ "name": "description",
26
+ "text": "Start the upload"
27
+ }
28
+ ],
29
+ "docs": "",
30
+ "complexTypes": [
31
+ "uploadOption"
32
+ ],
33
+ "slug": "startupload"
34
+ },
35
+ {
36
+ "name": "removeUpload",
37
+ "signature": "(options: { id: string; }) => any",
38
+ "parameters": [
39
+ {
40
+ "name": "options",
41
+ "docs": "",
42
+ "type": "{ id: string; }"
43
+ }
44
+ ],
45
+ "returns": "any",
46
+ "tags": [
47
+ {
48
+ "name": "since",
49
+ "text": "1.0.0"
50
+ },
51
+ {
52
+ "name": "description",
53
+ "text": "Remove the upload"
54
+ }
55
+ ],
56
+ "docs": "",
57
+ "complexTypes": [],
58
+ "slug": "removeupload"
59
+ },
60
+ {
61
+ "name": "addListener",
62
+ "signature": "(eventName: 'events', listenerFunc: (state: UploadEvent) => void) => any",
63
+ "parameters": [
64
+ {
65
+ "name": "eventName",
66
+ "docs": "",
67
+ "type": "'events'"
68
+ },
69
+ {
70
+ "name": "listenerFunc",
71
+ "docs": "",
72
+ "type": "(state: UploadEvent) => void"
73
+ }
74
+ ],
75
+ "returns": "any",
76
+ "tags": [
77
+ {
78
+ "name": "since",
79
+ "text": "1.0.0"
80
+ },
81
+ {
82
+ "name": "description",
83
+ "text": "Add a listener for the upload events"
84
+ }
85
+ ],
86
+ "docs": "",
87
+ "complexTypes": [
88
+ "UploadEvent",
89
+ "PluginListenerHandle"
90
+ ],
91
+ "slug": "addlistenerevents-"
92
+ }
93
+ ],
94
+ "properties": []
95
+ },
96
+ "interfaces": [
97
+ {
98
+ "name": "uploadOption",
99
+ "slug": "uploadoption",
100
+ "docs": "",
101
+ "tags": [],
102
+ "methods": [],
103
+ "properties": [
104
+ {
105
+ "name": "filePath",
106
+ "tags": [
107
+ {
108
+ "text": "1.0.0",
109
+ "name": "since"
110
+ },
111
+ {
112
+ "text": "The file path of the file to upload",
113
+ "name": "description"
114
+ }
115
+ ],
116
+ "docs": "",
117
+ "complexTypes": [],
118
+ "type": "string"
119
+ },
120
+ {
121
+ "name": "serverUrl",
122
+ "tags": [
123
+ {
124
+ "text": "1.0.0",
125
+ "name": "since"
126
+ },
127
+ {
128
+ "text": "The url of the server",
129
+ "name": "description"
130
+ }
131
+ ],
132
+ "docs": "",
133
+ "complexTypes": [],
134
+ "type": "string"
135
+ },
136
+ {
137
+ "name": "notificationTitle",
138
+ "tags": [
139
+ {
140
+ "text": "1.0.0",
141
+ "name": "since"
142
+ },
143
+ {
144
+ "text": "'Uploading'",
145
+ "name": "default"
146
+ },
147
+ {
148
+ "text": "The title of the notification\nAndroid only",
149
+ "name": "description"
150
+ }
151
+ ],
152
+ "docs": "",
153
+ "complexTypes": [],
154
+ "type": "number | undefined"
155
+ },
156
+ {
157
+ "name": "headers",
158
+ "tags": [
159
+ {
160
+ "text": "1.0.0",
161
+ "name": "since"
162
+ },
163
+ {
164
+ "text": "The headers to send with the request",
165
+ "name": "description"
166
+ }
167
+ ],
168
+ "docs": "",
169
+ "complexTypes": [],
170
+ "type": "{ [key: string]: string; }"
171
+ },
172
+ {
173
+ "name": "method",
174
+ "tags": [
175
+ {
176
+ "text": "1.0.0",
177
+ "name": "since"
178
+ },
179
+ {
180
+ "text": "The method to use for the request",
181
+ "name": "description"
182
+ },
183
+ {
184
+ "text": "'POST'",
185
+ "name": "default"
186
+ }
187
+ ],
188
+ "docs": "",
189
+ "complexTypes": [],
190
+ "type": "'PUT' | 'POST' | undefined"
191
+ },
192
+ {
193
+ "name": "mimeType",
194
+ "tags": [
195
+ {
196
+ "text": "1.0.0",
197
+ "name": "since"
198
+ },
199
+ {
200
+ "text": "The mime type to use for the request",
201
+ "name": "description"
202
+ }
203
+ ],
204
+ "docs": "",
205
+ "complexTypes": [],
206
+ "type": "string | undefined"
207
+ },
208
+ {
209
+ "name": "parameters",
210
+ "tags": [
211
+ {
212
+ "text": "1.0.0",
213
+ "name": "since"
214
+ },
215
+ {
216
+ "text": "The parameters to send with the request",
217
+ "name": "description"
218
+ }
219
+ ],
220
+ "docs": "",
221
+ "complexTypes": [],
222
+ "type": "{ [key: string]: string; } | undefined"
223
+ },
224
+ {
225
+ "name": "maxRetries",
226
+ "tags": [
227
+ {
228
+ "text": "1.0.0",
229
+ "name": "since"
230
+ },
231
+ {
232
+ "text": "The maximum number of retries",
233
+ "name": "description"
234
+ }
235
+ ],
236
+ "docs": "",
237
+ "complexTypes": [],
238
+ "type": "number | undefined"
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "name": "UploadEvent",
244
+ "slug": "uploadevent",
245
+ "docs": "",
246
+ "tags": [],
247
+ "methods": [],
248
+ "properties": [
249
+ {
250
+ "name": "name",
251
+ "tags": [],
252
+ "docs": "Current status of upload, between 0 and 100.",
253
+ "complexTypes": [],
254
+ "type": "'uploading' | 'completed' | 'failed'"
255
+ },
256
+ {
257
+ "name": "payload",
258
+ "tags": [
259
+ {
260
+ "text": "1.0.0",
261
+ "name": "since"
262
+ },
263
+ {
264
+ "text": "The payload of the event",
265
+ "name": "description"
266
+ }
267
+ ],
268
+ "docs": "",
269
+ "complexTypes": [],
270
+ "type": "{ percent?: number | undefined; error?: string | undefined; statusCode?: number | undefined; }"
271
+ },
272
+ {
273
+ "name": "id",
274
+ "tags": [
275
+ {
276
+ "text": "1.0.0",
277
+ "name": "since"
278
+ },
279
+ {
280
+ "text": "The id of the upload",
281
+ "name": "description"
282
+ }
283
+ ],
284
+ "docs": "",
285
+ "complexTypes": [],
286
+ "type": "string"
287
+ }
288
+ ]
289
+ },
290
+ {
291
+ "name": "PluginListenerHandle",
292
+ "slug": "pluginlistenerhandle",
293
+ "docs": "",
294
+ "tags": [],
295
+ "methods": [],
296
+ "properties": [
297
+ {
298
+ "name": "remove",
299
+ "tags": [],
300
+ "docs": "",
301
+ "complexTypes": [],
302
+ "type": "() => any"
303
+ }
304
+ ]
305
+ }
306
+ ],
307
+ "enums": [],
308
+ "typeAliases": [],
309
+ "pluginConfigs": []
310
+ }
@@ -0,0 +1,92 @@
1
+ import type { PluginListenerHandle } from '@capacitor/core';
2
+ export interface uploadOption {
3
+ /**
4
+ * @since 1.0.0
5
+ * @description The file path of the file to upload
6
+ */
7
+ filePath: string;
8
+ /**
9
+ * @since 1.0.0
10
+ * @description The url of the server
11
+ */
12
+ serverUrl: string;
13
+ /**
14
+ * @since 1.0.0
15
+ * @default 'Uploading'
16
+ * @description The title of the notification
17
+ * Android only
18
+ */
19
+ notificationTitle?: number;
20
+ /**
21
+ * @since 1.0.0
22
+ * @description The headers to send with the request
23
+ */
24
+ headers: {
25
+ [key: string]: string;
26
+ };
27
+ /**
28
+ * @since 1.0.0
29
+ * @description The method to use for the request
30
+ * @default 'POST'
31
+ */
32
+ method?: 'PUT' | 'POST';
33
+ /**
34
+ * @since 1.0.0
35
+ * @description The mime type to use for the request
36
+ */
37
+ mimeType?: string;
38
+ /**
39
+ * @since 1.0.0
40
+ * @description The parameters to send with the request
41
+ */
42
+ parameters?: {
43
+ [key: string]: string;
44
+ };
45
+ /**
46
+ * @since 1.0.0
47
+ * @description The maximum number of retries
48
+ */
49
+ maxRetries?: number;
50
+ }
51
+ export interface UploadEvent {
52
+ /**
53
+ * Current status of upload, between 0 and 100.
54
+ *
55
+ */
56
+ name: 'uploading' | 'completed' | 'failed';
57
+ /**
58
+ * @since 1.0.0
59
+ * @description The payload of the event
60
+ */
61
+ payload: {
62
+ percent?: number;
63
+ error?: string;
64
+ statusCode?: number;
65
+ };
66
+ /**
67
+ * @since 1.0.0
68
+ * @description The id of the upload
69
+ */
70
+ id: string;
71
+ }
72
+ export interface UploaderPlugin {
73
+ /**
74
+ * @since 1.0.0
75
+ * @description Start the upload
76
+ */
77
+ startUpload(options: uploadOption): Promise<{
78
+ id: string;
79
+ }>;
80
+ /**
81
+ * @since 1.0.0
82
+ * @description Remove the upload
83
+ */
84
+ removeUpload(options: {
85
+ id: string;
86
+ }): Promise<void>;
87
+ /**
88
+ * @since 1.0.0
89
+ * @description Add a listener for the upload events
90
+ */
91
+ addListener(eventName: 'events', listenerFunc: (state: UploadEvent) => void): Promise<PluginListenerHandle>;
92
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\n\nexport interface uploadOption {\n /**\n * @since 1.0.0\n * @description The file path of the file to upload\n */\n filePath: string;\n /**\n * @since 1.0.0\n * @description The url of the server\n */\n serverUrl: string;\n /**\n * @since 1.0.0\n * @default 'Uploading'\n * @description The title of the notification\n * Android only\n */\n notificationTitle?: number;\n /**\n * @since 1.0.0\n * @description The headers to send with the request\n */\n headers: {\n [key: string]: string;\n };\n /**\n * @since 1.0.0\n * @description The method to use for the request\n * @default 'POST'\n */\n method?: 'PUT' | 'POST';\n /**\n * @since 1.0.0\n * @description The mime type to use for the request\n */\n mimeType?: string;\n /**\n * @since 1.0.0\n * @description The parameters to send with the request\n */\n parameters?: { [key: string]: string };\n /**\n * @since 1.0.0\n * @description The maximum number of retries\n */\n maxRetries?: number;\n}\nexport interface UploadEvent {\n /**\n * Current status of upload, between 0 and 100.\n *\n */\n name: 'uploading' | 'completed' | 'failed';\n /**\n * @since 1.0.0\n * @description The payload of the event\n */\n payload: {\n percent?: number;\n error?: string;\n statusCode?: number;\n };\n /**\n * @since 1.0.0\n * @description The id of the upload\n */\n id: string;\n}\n\nexport interface UploaderPlugin {\n /**\n * @since 1.0.0\n * @description Start the upload\n */\n startUpload(options: uploadOption): Promise<{ id: string }>;\n /**\n * @since 1.0.0\n * @description Remove the upload\n */\n removeUpload(options: { id: string }): Promise<void>;\n /**\n * @since 1.0.0\n * @description Add a listener for the upload events\n */\n addListener(\n eventName: 'events',\n listenerFunc: (state: UploadEvent) => void,\n ): Promise<PluginListenerHandle>;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { UploaderPlugin } from './definitions';
2
+ declare const Uploader: UploaderPlugin;
3
+ export * from './definitions';
4
+ export { Uploader };
@@ -0,0 +1,7 @@
1
+ import { registerPlugin } from '@capacitor/core';
2
+ const Uploader = registerPlugin('Uploader', {
3
+ web: () => import('./web').then(m => new m.UploaderWeb()),
4
+ });
5
+ export * from './definitions';
6
+ export { Uploader };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,QAAQ,GAAG,cAAc,CAAiB,UAAU,EAAE;IAC1D,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;CAC1D,CAAC,CAAC;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,CAAC","sourcesContent":["import { registerPlugin } from '@capacitor/core';\n\nimport type { UploaderPlugin } from './definitions';\n\nconst Uploader = registerPlugin<UploaderPlugin>('Uploader', {\n web: () => import('./web').then(m => new m.UploaderWeb()),\n});\n\nexport * from './definitions';\nexport { Uploader };\n"]}
@@ -0,0 +1,15 @@
1
+ import { WebPlugin } from '@capacitor/core';
2
+ import type { UploaderPlugin, uploadOption } from './definitions';
3
+ export declare class UploaderWeb extends WebPlugin implements UploaderPlugin {
4
+ echo(options: {
5
+ value: string;
6
+ }): Promise<{
7
+ value: string;
8
+ }>;
9
+ startUpload(options: uploadOption): Promise<{
10
+ id: string;
11
+ }>;
12
+ removeUpload(options: {
13
+ id: string;
14
+ }): Promise<void>;
15
+ }
@@ -0,0 +1,18 @@
1
+ import { WebPlugin } from '@capacitor/core';
2
+ export class UploaderWeb extends WebPlugin {
3
+ async echo(options) {
4
+ console.log('ECHO', options);
5
+ return options;
6
+ }
7
+ async startUpload(options) {
8
+ console.log('startUpload', options);
9
+ this.unimplemented('startUpload');
10
+ return { id: '123' };
11
+ }
12
+ async removeUpload(options) {
13
+ console.log('removeUpload', options);
14
+ this.unimplemented('removeUpload');
15
+ return;
16
+ }
17
+ }
18
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,OAAO,WAAY,SAAQ,SAAS;IACxC,KAAK,CAAC,IAAI,CAAC,OAA0B;QACnC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,OAAqB;QACrC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,OAAuB;QACxC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { UploaderPlugin, uploadOption } from './definitions';\n\nexport class UploaderWeb extends WebPlugin implements UploaderPlugin {\n async echo(options: { value: string }): Promise<{ value: string }> {\n console.log('ECHO', options);\n return options;\n }\n async startUpload(options: uploadOption): Promise<{ id: string }> {\n console.log('startUpload', options);\n this.unimplemented('startUpload');\n return { id: '123' };\n }\n async removeUpload(options: { id: string }): Promise<void> {\n console.log('removeUpload', options);\n this.unimplemented('removeUpload');\n return;\n }\n}\n"]}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@capacitor/core');
6
+
7
+ const Uploader = core.registerPlugin('Uploader', {
8
+ web: () => Promise.resolve().then(function () { return web; }).then(m => new m.UploaderWeb()),
9
+ });
10
+
11
+ class UploaderWeb extends core.WebPlugin {
12
+ async echo(options) {
13
+ console.log('ECHO', options);
14
+ return options;
15
+ }
16
+ async startUpload(options) {
17
+ console.log('startUpload', options);
18
+ this.unimplemented('startUpload');
19
+ return { id: '123' };
20
+ }
21
+ async removeUpload(options) {
22
+ console.log('removeUpload', options);
23
+ this.unimplemented('removeUpload');
24
+ return;
25
+ }
26
+ }
27
+
28
+ var web = /*#__PURE__*/Object.freeze({
29
+ __proto__: null,
30
+ UploaderWeb: UploaderWeb
31
+ });
32
+
33
+ exports.Uploader = Uploader;
34
+ //# sourceMappingURL=plugin.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Uploader = registerPlugin('Uploader', {\n web: () => import('./web').then(m => new m.UploaderWeb()),\n});\nexport * from './definitions';\nexport { Uploader };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class UploaderWeb extends WebPlugin {\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async startUpload(options) {\n console.log('startUpload', options);\n this.unimplemented('startUpload');\n return { id: '123' };\n }\n async removeUpload(options) {\n console.log('removeUpload', options);\n this.unimplemented('removeUpload');\n return;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;;;AACK,MAAC,QAAQ,GAAGA,mBAAc,CAAC,UAAU,EAAE;AAC5C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7D,CAAC;;ACFM,MAAM,WAAW,SAASC,cAAS,CAAC;AAC3C,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AAC1C,QAAQ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,YAAY,CAAC,OAAO,EAAE;AAChC,QAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AAC3C,QAAQ,OAAO;AACf,KAAK;AACL;;;;;;;;;"}
package/dist/plugin.js ADDED
@@ -0,0 +1,37 @@
1
+ var capacitorUploader = (function (exports, core) {
2
+ 'use strict';
3
+
4
+ const Uploader = core.registerPlugin('Uploader', {
5
+ web: () => Promise.resolve().then(function () { return web; }).then(m => new m.UploaderWeb()),
6
+ });
7
+
8
+ class UploaderWeb extends core.WebPlugin {
9
+ async echo(options) {
10
+ console.log('ECHO', options);
11
+ return options;
12
+ }
13
+ async startUpload(options) {
14
+ console.log('startUpload', options);
15
+ this.unimplemented('startUpload');
16
+ return { id: '123' };
17
+ }
18
+ async removeUpload(options) {
19
+ console.log('removeUpload', options);
20
+ this.unimplemented('removeUpload');
21
+ return;
22
+ }
23
+ }
24
+
25
+ var web = /*#__PURE__*/Object.freeze({
26
+ __proto__: null,
27
+ UploaderWeb: UploaderWeb
28
+ });
29
+
30
+ exports.Uploader = Uploader;
31
+
32
+ Object.defineProperty(exports, '__esModule', { value: true });
33
+
34
+ return exports;
35
+
36
+ })({}, capacitorExports);
37
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst Uploader = registerPlugin('Uploader', {\n web: () => import('./web').then(m => new m.UploaderWeb()),\n});\nexport * from './definitions';\nexport { Uploader };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class UploaderWeb extends WebPlugin {\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async startUpload(options) {\n console.log('startUpload', options);\n this.unimplemented('startUpload');\n return { id: '123' };\n }\n async removeUpload(options) {\n console.log('removeUpload', options);\n this.unimplemented('removeUpload');\n return;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;AACK,UAAC,QAAQ,GAAGA,mBAAc,CAAC,UAAU,EAAE;IAC5C,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7D,CAAC;;ICFM,MAAM,WAAW,SAASC,cAAS,CAAC;IAC3C,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;IACxB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;IAC/B,QAAQ,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC1C,QAAQ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IAC7B,KAAK;IACL,IAAI,MAAM,YAAY,CAAC,OAAO,EAAE;IAChC,QAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7C,QAAQ,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,OAAO;IACf,KAAK;IACL;;;;;;;;;;;;;;;;;"}