ical-generator 3.6.2-develop.3 → 4.0.0-develop.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.
@@ -1,306 +0,0 @@
1
- import ICalEvent from './event';
2
- export interface ICalAttendeeData {
3
- name?: string | null;
4
- email?: string | null;
5
- mailto?: string | null;
6
- sentBy?: string | null;
7
- status?: ICalAttendeeStatus | null;
8
- role?: ICalAttendeeRole;
9
- rsvp?: boolean | null;
10
- type?: ICalAttendeeType | null;
11
- delegatedTo?: ICalAttendee | ICalAttendeeData | string | null;
12
- delegatedFrom?: ICalAttendee | ICalAttendeeData | string | null;
13
- delegatesTo?: ICalAttendee | ICalAttendeeData | string | null;
14
- delegatesFrom?: ICalAttendee | ICalAttendeeData | string | null;
15
- x?: {
16
- key: string;
17
- value: string;
18
- }[] | [string, string][] | Record<string, string>;
19
- }
20
- export interface ICalAttendeeJSONData {
21
- name: string | null;
22
- email: string | null;
23
- mailto: string | null;
24
- sentBy: string | null;
25
- status: ICalAttendeeStatus | null;
26
- role: ICalAttendeeRole;
27
- rsvp: boolean | null;
28
- type: ICalAttendeeType | null;
29
- delegatedTo: string | null;
30
- delegatedFrom: string | null;
31
- x: {
32
- key: string;
33
- value: string;
34
- }[];
35
- }
36
- export declare enum ICalAttendeeRole {
37
- CHAIR = "CHAIR",
38
- REQ = "REQ-PARTICIPANT",
39
- OPT = "OPT-PARTICIPANT",
40
- NON = "NON-PARTICIPANT"
41
- }
42
- export declare enum ICalAttendeeStatus {
43
- ACCEPTED = "ACCEPTED",
44
- TENTATIVE = "TENTATIVE",
45
- DECLINED = "DECLINED",
46
- DELEGATED = "DELEGATED",
47
- NEEDSACTION = "NEEDS-ACTION"
48
- }
49
- export declare enum ICalAttendeeType {
50
- INDIVIDUAL = "INDIVIDUAL",
51
- GROUP = "GROUP",
52
- RESOURCE = "RESOURCE",
53
- ROOM = "ROOM",
54
- UNKNOWN = "UNKNOWN"
55
- }
56
- /**
57
- * Usually you get an `ICalAttendee` object like this:
58
- *
59
- * ```javascript
60
- * import ical from 'ical-generator';
61
- * const calendar = ical();
62
- * const event = calendar.createEvent();
63
- * const attendee = event.createAttendee();
64
- * ```
65
- *
66
- * You can also use the [[`ICalAttendee`]] object directly:
67
- *
68
- * ```javascript
69
- * import ical, {ICalAttendee} from 'ical-generator';
70
- * const attendee = new ICalAttendee();
71
- * event.attendees([attendee]);
72
- * ```
73
- */
74
- export default class ICalAttendee {
75
- private readonly data;
76
- private readonly event;
77
- /**
78
- * Constructor of [[`ICalAttendee`]]. The event reference is
79
- * required to query the calendar's timezone when required.
80
- *
81
- * @param data Attendee Data
82
- * @param calendar Reference to ICalEvent object
83
- */
84
- constructor(data: ICalAttendeeData, event: ICalEvent);
85
- /**
86
- * Get the attendee's name
87
- * @since 0.2.0
88
- */
89
- name(): string | null;
90
- /**
91
- * Set the attendee's name
92
- * @since 0.2.0
93
- */
94
- name(name: string | null): this;
95
- /**
96
- * Get the attendee's email address
97
- * @since 0.2.0
98
- */
99
- email(): string | null;
100
- /**
101
- * Set the attendee's email address
102
- * @since 0.2.0
103
- */
104
- email(email: string | null): this;
105
- /**
106
- * Get the attendee's email address
107
- * @since 1.3.0
108
- */
109
- mailto(): string | null;
110
- /**
111
- * Set the attendee's email address
112
- * @since 1.3.0
113
- */
114
- mailto(mailto: string | null): this;
115
- /**
116
- * Get the acting user's email adress
117
- * @since 3.3.0
118
- */
119
- sentBy(): string | null;
120
- /**
121
- * Set the acting user's email adress
122
- * @since 3.3.0
123
- */
124
- sentBy(email: string | null): this;
125
- /**
126
- * Get attendee's role
127
- * @since 0.2.0
128
- */
129
- role(): ICalAttendeeRole;
130
- /**
131
- * Set the attendee's role, defaults to `REQ` / `REQ-PARTICIPANT`.
132
- * Checkout [[`ICalAttendeeRole`]] for available roles.
133
- *
134
- * @since 0.2.0
135
- */
136
- role(role: ICalAttendeeRole): this;
137
- /**
138
- * Get attendee's RSVP expectation
139
- * @since 0.2.1
140
- */
141
- rsvp(): boolean | null;
142
- /**
143
- * Set the attendee's RSVP expectation
144
- * @since 0.2.1
145
- */
146
- rsvp(rsvp: boolean | null): this;
147
- /**
148
- * Get attendee's status
149
- * @since 0.2.0
150
- */
151
- status(): ICalAttendeeStatus | null;
152
- /**
153
- * Set the attendee's status. See [[`ICalAttendeeStatus`]]
154
- * for available status options.
155
- *
156
- * @since 0.2.0
157
- */
158
- status(status: ICalAttendeeStatus | null): this;
159
- /**
160
- * Get attendee's type (a.k.a. CUTYPE)
161
- * @since 0.2.3
162
- */
163
- type(): ICalAttendeeType;
164
- /**
165
- * Set attendee's type (a.k.a. CUTYPE).
166
- * See [[`ICalAttendeeType`]] for available status options.
167
- *
168
- * @since 0.2.3
169
- */
170
- type(type: ICalAttendeeType | null): this;
171
- /**
172
- * Get the attendee's delegated-to value.
173
- * @since 0.2.0
174
- */
175
- delegatedTo(): ICalAttendee | null;
176
- /**
177
- * Set the attendee's delegated-to field.
178
- *
179
- * Creates a new Attendee if the passed object is not already a
180
- * [[`ICalAttendee`]] object. Will set the `delegatedTo` and
181
- * `delegatedFrom` attributes.
182
- *
183
- * Will also set the `status` to `DELEGATED`, if attribute is set.
184
- *
185
- * ```javascript
186
- * const cal = ical();
187
- * const event = cal.createEvent();
188
- * const attendee = cal.createAttendee();
189
- *
190
- * attendee.delegatesTo({email: 'foo@bar.com', name: 'Foo'});
191
- ```
192
- *
193
- * @since 0.2.0
194
- */
195
- delegatedTo(delegatedTo: ICalAttendee | ICalAttendeeData | string | null): this;
196
- /**
197
- * Get the attendee's delegated-from field
198
- * @since 0.2.0
199
- */
200
- delegatedFrom(): ICalAttendee | null;
201
- /**
202
- * Set the attendee's delegated-from field
203
- *
204
- * Creates a new Attendee if the passed object is not already a
205
- * [[`ICalAttendee`]] object. Will set the `delegatedTo` and
206
- * `delegatedFrom` attributes.
207
- *
208
- * @param delegatedFrom
209
- */
210
- delegatedFrom(delegatedFrom: ICalAttendee | ICalAttendeeData | string | null): this;
211
- /**
212
- * Create a new attendee this attendee delegates to and returns
213
- * this new attendee. Creates a new attendee if the passed object
214
- * is not already an [[`ICalAttendee`]].
215
- *
216
- * ```javascript
217
- * const cal = ical();
218
- * const event = cal.createEvent();
219
- * const attendee = cal.createAttendee();
220
- *
221
- * attendee.delegatesTo({email: 'foo@bar.com', name: 'Foo'});
222
- * ```
223
- *
224
- * @since 0.2.0
225
- */
226
- delegatesTo(options: ICalAttendee | ICalAttendeeData | string): ICalAttendee;
227
- /**
228
- * Create a new attendee this attendee delegates from and returns
229
- * this new attendee. Creates a new attendee if the passed object
230
- * is not already an [[`ICalAttendee`]].
231
- *
232
- * ```javascript
233
- * const cal = ical();
234
- * const event = cal.createEvent();
235
- * const attendee = cal.createAttendee();
236
- *
237
- * attendee.delegatesFrom({email: 'foo@bar.com', name: 'Foo'});
238
- * ```
239
- *
240
- * @since 0.2.0
241
- */
242
- delegatesFrom(options: ICalAttendee | ICalAttendeeData | string): ICalAttendee;
243
- /**
244
- * Set X-* attributes. Woun't filter double attributes,
245
- * which are also added by another method (e.g. status),
246
- * so these attributes may be inserted twice.
247
- *
248
- * ```javascript
249
- * attendee.x([
250
- * {
251
- * key: "X-MY-CUSTOM-ATTR",
252
- * value: "1337!"
253
- * }
254
- * ]);
255
- *
256
- * attendee.x([
257
- * ["X-MY-CUSTOM-ATTR", "1337!"]
258
- * ]);
259
- *
260
- * attendee.x({
261
- * "X-MY-CUSTOM-ATTR": "1337!"
262
- * });
263
- * ```
264
- *
265
- * @since 1.9.0
266
- */
267
- x(keyOrArray: {
268
- key: string;
269
- value: string;
270
- }[] | [string, string][] | Record<string, string>): this;
271
- /**
272
- * Set a X-* attribute. Woun't filter double attributes,
273
- * which are also added by another method (e.g. status),
274
- * so these attributes may be inserted twice.
275
- *
276
- * ```javascript
277
- * attendee.x("X-MY-CUSTOM-ATTR", "1337!");
278
- * ```
279
- *
280
- * @since 1.9.0
281
- */
282
- x(keyOrArray: string, value: string): this;
283
- /**
284
- * Get all custom X-* attributes.
285
- * @since 1.9.0
286
- */
287
- x(): {
288
- key: string;
289
- value: string;
290
- }[];
291
- /**
292
- * Return a shallow copy of the attendee's options for JSON stringification.
293
- * Can be used for persistence.
294
- *
295
- * @since 0.2.4
296
- */
297
- toJSON(): ICalAttendeeJSONData;
298
- /**
299
- * Return generated attendee as a string.
300
- *
301
- * ```javascript
302
- * console.log(attendee.toString()); // → ATTENDEE;ROLE=…
303
- * ```
304
- */
305
- toString(): string;
306
- }
package/dist/attendee.js DELETED
@@ -1,324 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ICalAttendeeType = exports.ICalAttendeeStatus = exports.ICalAttendeeRole = void 0;
4
- const tools_1 = require("./tools");
5
- var ICalAttendeeRole;
6
- (function (ICalAttendeeRole) {
7
- ICalAttendeeRole["CHAIR"] = "CHAIR";
8
- ICalAttendeeRole["REQ"] = "REQ-PARTICIPANT";
9
- ICalAttendeeRole["OPT"] = "OPT-PARTICIPANT";
10
- ICalAttendeeRole["NON"] = "NON-PARTICIPANT";
11
- })(ICalAttendeeRole = exports.ICalAttendeeRole || (exports.ICalAttendeeRole = {}));
12
- var ICalAttendeeStatus;
13
- (function (ICalAttendeeStatus) {
14
- ICalAttendeeStatus["ACCEPTED"] = "ACCEPTED";
15
- ICalAttendeeStatus["TENTATIVE"] = "TENTATIVE";
16
- ICalAttendeeStatus["DECLINED"] = "DECLINED";
17
- ICalAttendeeStatus["DELEGATED"] = "DELEGATED";
18
- ICalAttendeeStatus["NEEDSACTION"] = "NEEDS-ACTION";
19
- })(ICalAttendeeStatus = exports.ICalAttendeeStatus || (exports.ICalAttendeeStatus = {}));
20
- // ref: https://tools.ietf.org/html/rfc2445#section-4.2.3
21
- var ICalAttendeeType;
22
- (function (ICalAttendeeType) {
23
- ICalAttendeeType["INDIVIDUAL"] = "INDIVIDUAL";
24
- ICalAttendeeType["GROUP"] = "GROUP";
25
- ICalAttendeeType["RESOURCE"] = "RESOURCE";
26
- ICalAttendeeType["ROOM"] = "ROOM";
27
- ICalAttendeeType["UNKNOWN"] = "UNKNOWN";
28
- })(ICalAttendeeType = exports.ICalAttendeeType || (exports.ICalAttendeeType = {}));
29
- /**
30
- * Usually you get an `ICalAttendee` object like this:
31
- *
32
- * ```javascript
33
- * import ical from 'ical-generator';
34
- * const calendar = ical();
35
- * const event = calendar.createEvent();
36
- * const attendee = event.createAttendee();
37
- * ```
38
- *
39
- * You can also use the [[`ICalAttendee`]] object directly:
40
- *
41
- * ```javascript
42
- * import ical, {ICalAttendee} from 'ical-generator';
43
- * const attendee = new ICalAttendee();
44
- * event.attendees([attendee]);
45
- * ```
46
- */
47
- class ICalAttendee {
48
- /**
49
- * Constructor of [[`ICalAttendee`]]. The event reference is
50
- * required to query the calendar's timezone when required.
51
- *
52
- * @param data Attendee Data
53
- * @param calendar Reference to ICalEvent object
54
- */
55
- constructor(data, event) {
56
- this.data = {
57
- name: null,
58
- email: null,
59
- mailto: null,
60
- sentBy: null,
61
- status: null,
62
- role: ICalAttendeeRole.REQ,
63
- rsvp: null,
64
- type: null,
65
- delegatedTo: null,
66
- delegatedFrom: null,
67
- x: []
68
- };
69
- this.event = event;
70
- if (!this.event) {
71
- throw new Error('`event` option required!');
72
- }
73
- data.name !== undefined && this.name(data.name);
74
- data.email !== undefined && this.email(data.email);
75
- data.mailto !== undefined && this.mailto(data.mailto);
76
- data.sentBy !== undefined && this.sentBy(data.sentBy);
77
- data.status !== undefined && this.status(data.status);
78
- data.role !== undefined && this.role(data.role);
79
- data.rsvp !== undefined && this.rsvp(data.rsvp);
80
- data.type !== undefined && this.type(data.type);
81
- data.delegatedTo !== undefined && this.delegatedTo(data.delegatedTo);
82
- data.delegatedFrom !== undefined && this.delegatedFrom(data.delegatedFrom);
83
- data.delegatesTo && this.delegatesTo(data.delegatesTo);
84
- data.delegatesFrom && this.delegatesFrom(data.delegatesFrom);
85
- data.x !== undefined && this.x(data.x);
86
- }
87
- name(name) {
88
- if (name === undefined) {
89
- return this.data.name;
90
- }
91
- this.data.name = name || null;
92
- return this;
93
- }
94
- email(email) {
95
- if (!email) {
96
- return this.data.email;
97
- }
98
- this.data.email = email;
99
- return this;
100
- }
101
- mailto(mailto) {
102
- if (mailto === undefined) {
103
- return this.data.mailto;
104
- }
105
- this.data.mailto = mailto || null;
106
- return this;
107
- }
108
- sentBy(email) {
109
- if (!email) {
110
- return this.data.sentBy;
111
- }
112
- this.data.sentBy = email;
113
- return this;
114
- }
115
- role(role) {
116
- if (role === undefined) {
117
- return this.data.role;
118
- }
119
- this.data.role = (0, tools_1.checkEnum)(ICalAttendeeRole, role);
120
- return this;
121
- }
122
- rsvp(rsvp) {
123
- if (rsvp === undefined) {
124
- return this.data.rsvp;
125
- }
126
- if (rsvp === null) {
127
- this.data.rsvp = null;
128
- return this;
129
- }
130
- this.data.rsvp = Boolean(rsvp);
131
- return this;
132
- }
133
- status(status) {
134
- if (status === undefined) {
135
- return this.data.status;
136
- }
137
- if (!status) {
138
- this.data.status = null;
139
- return this;
140
- }
141
- this.data.status = (0, tools_1.checkEnum)(ICalAttendeeStatus, status);
142
- return this;
143
- }
144
- type(type) {
145
- if (type === undefined) {
146
- return this.data.type;
147
- }
148
- if (!type) {
149
- this.data.type = null;
150
- return this;
151
- }
152
- this.data.type = (0, tools_1.checkEnum)(ICalAttendeeType, type);
153
- return this;
154
- }
155
- delegatedTo(delegatedTo) {
156
- if (delegatedTo === undefined) {
157
- return this.data.delegatedTo;
158
- }
159
- if (!delegatedTo) {
160
- this.data.delegatedTo = null;
161
- if (this.data.status === ICalAttendeeStatus.DELEGATED) {
162
- this.data.status = null;
163
- }
164
- return this;
165
- }
166
- if (typeof delegatedTo === 'string') {
167
- this.data.delegatedTo = new ICalAttendee((0, tools_1.checkNameAndMail)('delegatedTo', delegatedTo), this.event);
168
- }
169
- else if (delegatedTo instanceof ICalAttendee) {
170
- this.data.delegatedTo = delegatedTo;
171
- }
172
- else {
173
- this.data.delegatedTo = new ICalAttendee(delegatedTo, this.event);
174
- }
175
- this.data.status = ICalAttendeeStatus.DELEGATED;
176
- return this;
177
- }
178
- delegatedFrom(delegatedFrom) {
179
- if (delegatedFrom === undefined) {
180
- return this.data.delegatedFrom;
181
- }
182
- if (!delegatedFrom) {
183
- this.data.delegatedFrom = null;
184
- }
185
- else if (typeof delegatedFrom === 'string') {
186
- this.data.delegatedFrom = new ICalAttendee((0, tools_1.checkNameAndMail)('delegatedFrom', delegatedFrom), this.event);
187
- }
188
- else if (delegatedFrom instanceof ICalAttendee) {
189
- this.data.delegatedFrom = delegatedFrom;
190
- }
191
- else {
192
- this.data.delegatedFrom = new ICalAttendee(delegatedFrom, this.event);
193
- }
194
- return this;
195
- }
196
- /**
197
- * Create a new attendee this attendee delegates to and returns
198
- * this new attendee. Creates a new attendee if the passed object
199
- * is not already an [[`ICalAttendee`]].
200
- *
201
- * ```javascript
202
- * const cal = ical();
203
- * const event = cal.createEvent();
204
- * const attendee = cal.createAttendee();
205
- *
206
- * attendee.delegatesTo({email: 'foo@bar.com', name: 'Foo'});
207
- * ```
208
- *
209
- * @since 0.2.0
210
- */
211
- delegatesTo(options) {
212
- const a = options instanceof ICalAttendee ? options : this.event.createAttendee(options);
213
- this.delegatedTo(a);
214
- a.delegatedFrom(this);
215
- return a;
216
- }
217
- /**
218
- * Create a new attendee this attendee delegates from and returns
219
- * this new attendee. Creates a new attendee if the passed object
220
- * is not already an [[`ICalAttendee`]].
221
- *
222
- * ```javascript
223
- * const cal = ical();
224
- * const event = cal.createEvent();
225
- * const attendee = cal.createAttendee();
226
- *
227
- * attendee.delegatesFrom({email: 'foo@bar.com', name: 'Foo'});
228
- * ```
229
- *
230
- * @since 0.2.0
231
- */
232
- delegatesFrom(options) {
233
- const a = options instanceof ICalAttendee ? options : this.event.createAttendee(options);
234
- this.delegatedFrom(a);
235
- a.delegatedTo(this);
236
- return a;
237
- }
238
- x(keyOrArray, value) {
239
- if (keyOrArray === undefined) {
240
- return (0, tools_1.addOrGetCustomAttributes)(this.data);
241
- }
242
- if (typeof keyOrArray === 'string' && typeof value === 'string') {
243
- (0, tools_1.addOrGetCustomAttributes)(this.data, keyOrArray, value);
244
- }
245
- else if (typeof keyOrArray === 'object') {
246
- (0, tools_1.addOrGetCustomAttributes)(this.data, keyOrArray);
247
- }
248
- else {
249
- throw new Error('Either key or value is not a string!');
250
- }
251
- return this;
252
- }
253
- /**
254
- * Return a shallow copy of the attendee's options for JSON stringification.
255
- * Can be used for persistence.
256
- *
257
- * @since 0.2.4
258
- */
259
- toJSON() {
260
- var _a, _b;
261
- return Object.assign({}, this.data, {
262
- delegatedTo: ((_a = this.data.delegatedTo) === null || _a === void 0 ? void 0 : _a.email()) || null,
263
- delegatedFrom: ((_b = this.data.delegatedFrom) === null || _b === void 0 ? void 0 : _b.email()) || null,
264
- x: this.x()
265
- });
266
- }
267
- /**
268
- * Return generated attendee as a string.
269
- *
270
- * ```javascript
271
- * console.log(attendee.toString()); // → ATTENDEE;ROLE=…
272
- * ```
273
- */
274
- toString() {
275
- let g = 'ATTENDEE';
276
- if (!this.data.email) {
277
- throw new Error('No value for `email` in ICalAttendee given!');
278
- }
279
- // ROLE
280
- g += ';ROLE=' + this.data.role;
281
- // TYPE
282
- if (this.data.type) {
283
- g += ';CUTYPE=' + this.data.type;
284
- }
285
- // PARTSTAT
286
- if (this.data.status) {
287
- g += ';PARTSTAT=' + this.data.status;
288
- }
289
- // RSVP
290
- if (this.data.rsvp !== null) {
291
- g += ';RSVP=' + this.data.rsvp.toString().toUpperCase();
292
- }
293
- // SENT-BY
294
- if (this.data.sentBy !== null) {
295
- g += ';SENT-BY="mailto:' + this.data.sentBy + '"';
296
- }
297
- // DELEGATED-TO
298
- if (this.data.delegatedTo) {
299
- g += ';DELEGATED-TO="' + this.data.delegatedTo.email() + '"';
300
- }
301
- // DELEGATED-FROM
302
- if (this.data.delegatedFrom) {
303
- g += ';DELEGATED-FROM="' + this.data.delegatedFrom.email() + '"';
304
- }
305
- // CN / Name
306
- if (this.data.name) {
307
- g += ';CN="' + (0, tools_1.escape)(this.data.name, true) + '"';
308
- }
309
- // EMAIL
310
- if (this.data.email && this.data.mailto) {
311
- g += ';EMAIL=' + (0, tools_1.escape)(this.data.email, false);
312
- }
313
- // CUSTOM X ATTRIBUTES
314
- if (this.data.x.length) {
315
- g += ';' + this.data.x
316
- .map(([key, value]) => key.toUpperCase() + '=' + (0, tools_1.escape)(value, false))
317
- .join(';');
318
- }
319
- g += ':MAILTO:' + (0, tools_1.escape)(this.data.mailto || this.data.email, false) + '\r\n';
320
- return g;
321
- }
322
- }
323
- exports.default = ICalAttendee;
324
- //# sourceMappingURL=attendee.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attendee.js","sourceRoot":"","sources":["../src/attendee.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAGb,mCAAsF;AAgDtF,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;AAC3B,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B;AAED,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;IACvB,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;IACvB,kDAA4B,CAAA;AAChC,CAAC,EANW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAM7B;AAED,yDAAyD;AACzD,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,6CAAyB,CAAA;IACzB,mCAAe,CAAA;IACf,yCAAqB,CAAA;IACrB,iCAAa,CAAA;IACb,uCAAmB,CAAA;AACvB,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B;AAGD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAqB,YAAY;IAI7B;;;;;;OAMG;IACH,YAAY,IAAsB,EAAE,KAAgB;QAChD,IAAI,CAAC,IAAI,GAAG;YACR,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,gBAAgB,CAAC,GAAG;YAC1B,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,IAAI;YACnB,CAAC,EAAE,EAAE;SACR,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAcD,IAAI,CAAC,IAAoB;QACrB,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IAcD,KAAK,CAAC,KAAqB;QACvB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAaD,MAAM,CAAC,MAAsB;QACzB,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAcD,MAAM,CAAC,KAAqB;QACxB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAgBD,IAAI,CAAC,IAAuB;QACxB,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAA,iBAAS,EAAC,gBAAgB,EAAE,IAAI,CAAqB,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;IAcD,IAAI,CAAC,IAAqB;QACtB,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;QACD,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAgBD,MAAM,CAAC,MAAkC;QACrC,IAAI,MAAM,KAAK,SAAS,EAAE;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B;QACD,IAAI,CAAC,MAAM,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACxB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAA,iBAAS,EAAC,kBAAkB,EAAE,MAAM,CAAuB,CAAC;QAC/E,OAAO,IAAI,CAAC;IAChB,CAAC;IAgBD,IAAI,CAAC,IAA8B;QAC/B,IAAI,IAAI,KAAK,SAAS,EAAE;YACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAA,iBAAS,EAAC,gBAAgB,EAAE,IAAI,CAAqB,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;IA6BD,WAAW,CAAC,WAA6D;QACrE,IAAI,WAAW,KAAK,SAAS,EAAE;YAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;SAChC;QACD,IAAI,CAAC,WAAW,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS,EAAE;gBACnD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aAC3B;YACD,OAAO,IAAI,CAAC;SACf;QAED,IAAG,OAAO,WAAW,KAAK,QAAQ,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CACpC,IAAA,wBAAgB,EAAC,aAAa,EAAE,WAAW,CAAC,EAC5C,IAAI,CAAC,KAAK,CACb,CAAC;SACL;aACI,IAAG,WAAW,YAAY,YAAY,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SACvC;aACI;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACrE;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IAmBD,aAAa,CAAC,aAA+D;QACzE,IAAI,aAAa,KAAK,SAAS,EAAE;YAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;SAClC;QAED,IAAI,CAAC,aAAa,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAClC;aACI,IAAG,OAAO,aAAa,KAAK,QAAQ,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CACtC,IAAA,wBAAgB,EAAC,eAAe,EAAE,aAAa,CAAC,EAChD,IAAI,CAAC,KAAK,CACb,CAAC;SACL;aACI,IAAG,aAAa,YAAY,YAAY,EAAE;YAC3C,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAC3C;aACI;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACzE;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAE,OAAiD;QAC1D,MAAM,CAAC,GAAG,OAAO,YAAY,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACzF,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,CAAC,CAAC;IACb,CAAC;IAGD;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAE,OAAiD;QAC5D,MAAM,CAAC,GAAG,OAAO,YAAY,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACzF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;IA8CD,CAAC,CAAE,UAAoG,EAAE,KAAc;QACnH,IAAG,UAAU,KAAK,SAAS,EAAE;YACzB,OAAO,IAAA,gCAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C;QAED,IAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC5D,IAAA,gCAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;SAC3D;aACI,IAAG,OAAO,UAAU,KAAK,QAAQ,EAAE;YACpC,IAAA,gCAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SACpD;aACI;YACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SAC3D;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD;;;;;OAKG;IACH,MAAM;;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE;YAChC,WAAW,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,WAAW,0CAAE,KAAK,EAAE,KAAI,IAAI;YACnD,aAAa,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,0CAAE,KAAK,EAAE,KAAI,IAAI;YACvD,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE;SACd,CAAC,CAAC;IACP,CAAC;IAGD;;;;;;OAMG;IACH,QAAQ;QACJ,IAAI,CAAC,GAAG,UAAU,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAClE;QAED,OAAO;QACP,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE/B,OAAO;QACP,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAChB,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SACpC;QAED,WAAW;QACX,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAClB,CAAC,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SACxC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACzB,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;SAC3D;QAED,UAAU;QACV,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YAC3B,CAAC,IAAI,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACrD;QAED,eAAe;QACf,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACvB,CAAC,IAAI,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;SAChE;QAED,iBAAiB;QACjB,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACzB,CAAC,IAAI,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;SACpE;QAED,YAAY;QACZ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAChB,CAAC,IAAI,OAAO,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;SACrD;QAED,QAAQ;QACR,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACrC,CAAC,IAAI,SAAS,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,sBAAsB;QACtB,IAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;YACnB,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;iBACjB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG,IAAA,cAAM,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;iBACrE,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;QAED,CAAC,IAAI,UAAU,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;QAE9E,OAAO,CAAC,CAAC;IACb,CAAC;CACJ;AAvgBD,+BAugBC"}