topkat-utils 1.0.32 → 1.0.36

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 CHANGED
@@ -1,3 +1,6 @@
1
+ ### v1.0.35
2
+ * fix in asArray typing
3
+
1
4
  ### v1.0.32
2
5
  * safer generateToken
3
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "topkat-utils",
3
- "version": "1.0.32",
3
+ "version": "1.0.36",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "UTILS BIG TIME",
package/utils.d.ts CHANGED
@@ -79,7 +79,7 @@ declare function ENV(): {
79
79
  * @param {any} mayBeAstring
80
80
  * @return !!value
81
81
  */
82
- declare function parseBool(mayBeAstring: string | boolean): boolean;
82
+ declare function parseBool(mayBeAstring: string | boolean | number): boolean;
83
83
  declare type Config = {
84
84
  env: string;
85
85
  isProd: boolean;
@@ -152,7 +152,7 @@ declare function strAsArray(arrOrStr: any): any;
152
152
  /** If not an array provided, return the array with the value
153
153
  * /!\ NOTE /!\ In case the value is null or undefined, it will return that value
154
154
  */
155
- declare function asArray<T>(item: T | T[]): T[] | undefined;
155
+ declare function asArray<T extends any[] | any>(item: T): T extends undefined ? undefined : T extends any[] ? T : T[];
156
156
  /** Array comparison
157
157
  * @return {object} { inCommon, notInB, notInA }
158
158
  */
@@ -446,12 +446,12 @@ declare function isValid(...paramsToValidate: any[]): boolean;
446
446
  declare function isType(value: any, type: BaseTypes): boolean;
447
447
  declare function validatorReturnErrArray(...paramsToValidate: ValidatorObject[]): [string?, number?, object?];
448
448
  declare function isEmpty(objOrArr: object | any[] | string | null | undefined): boolean;
449
- declare function getDateAsInt12(dateAllFormat?: Date | string | number, errIfNotValid?: any): number;
449
+ declare function getDateAsInt12(dateAllFormat?: Date | string | number, errIfNotValid?: any): string;
450
450
  declare function humanReadableTimestamp(dateAllFormat: any): number;
451
451
  /** format for 6/8/2018 => 20180806
452
452
  * @param dateAllFormat multiple format allowed 2012, 20120101, 201201011200, new Date(), "2019-12-08T16:19:10.341Z" and all string that new Date() can parse
453
453
  */
454
- declare function getDateAsInt(dateAllFormat?: Date | string | number, errIfNotValid$?: boolean, withHoursAndMinutes$?: boolean): number;
454
+ declare function getDateAsInt(dateAllFormat?: Date | string | number, errIfNotValid$?: boolean, withHoursAndMinutes$?: boolean): string;
455
455
  declare function getMonthAsInt(dateAllFormat?: Date | string | number): number;
456
456
  /**
457
457
  * @param dateAllFormat multiple format allowed 2012, 20120101, 201201011200, new Date(), "2019-12-08T16:19:10.341Z" and all string that new Date() can parse
@@ -481,7 +481,7 @@ declare function getTimeAsInt(timeOrDateInt?: any): number | "dateInvalid";
481
481
  * @param {timeInt|dateInt12} Eg: 2222 OR 201201012222. Default, actual dateInt12
482
482
  * @param {String} separator default: ":"
483
483
  */
484
- declare function getIntAsTime(intOrDateTimeInt?: number, separator?: string): string;
484
+ declare function getIntAsTime(intOrDateTimeInt?: string, separator?: string): string;
485
485
  declare function isTimeStringValid(timeStr: any, outputAnError$?: boolean): boolean;
486
486
  declare function getDuration(startDate: any, endDate: any, inMinutes?: boolean): number | number[];
487
487
  /** compare two object with DATE INT, if they overlap return true
@@ -493,50 +493,28 @@ declare function getDuration(startDate: any, endDate: any, inMinutes?: boolean):
493
493
  * @param {Boolean} strict$ if true,
494
494
  */
495
495
  declare function doDateOverlap(event1: any, event2: any, fieldNameForStartDate$?: string, fieldNameForEndDate$?: string, allowNull$?: boolean, strict$?: boolean): boolean;
496
- /** Get all dates at specified days between two dates
497
- * @param daysArray [0,1,2,3,4,5,6]
498
- * @param {*} startDate all format
499
- * @param {*} endDate all format
500
- * @param {'int'|'object'} outputFormat default: int
501
- */
502
- declare function getDatesForDaysArrayBetweenTwoDates(daysArray: any, startDate: any, endDate: any, outputFormat?: string): (number | Date)[];
503
- declare function getEndTimeFromDurationAndStartTime(startTime: any, duration: any): {
504
- days: number;
505
- time: string;
506
- };
507
- declare function getDate12FromDateAndTime(dateAllFormat: Date | string | number, timeAllFormat: any): any;
508
- declare function eachDayOfInterval(startDateAllFormat: any, endDateAllFormat: any, outputFormat?: string): (number | Date)[];
509
- declare function eachMonthOfInterval(startDateAllFormat: any, endDateAllFormat: any): any[];
510
- declare function isSunday(dateAllFormat?: Date | string | number): boolean;
511
- declare function isMonday(dateAllFormat?: Date | string | number): boolean;
512
- declare function isTuesday(dateAllFormat?: Date | string | number): boolean;
513
- declare function isWednesday(dateAllFormat?: Date | string | number): boolean;
514
- declare function isThursday(dateAllFormat?: Date | string | number): boolean;
515
- declare function isFriday(dateAllFormat?: Date | string | number): boolean;
516
- declare function isSaturday(dateAllFormat?: Date | string | number): boolean;
517
- declare function isWeekend(dateAllFormat?: Date | string | number): boolean;
518
496
  declare function nextWeekDay(fromDate: any, weekDayInt?: 0 | 1 | 2 | 3 | 4 | 5 | 6, outputFormat?: 'dateInt8' | 'dateInt12' | 'humanReadableTimestamp', sameDayAllowed?: boolean): number;
519
497
  declare function nextWeekDay(fromDate: any, weekDayInt?: 0 | 1 | 2 | 3 | 4 | 5 | 6, outputFormat?: 'date', sameDayAllowed?: boolean): Date;
520
498
  /**
521
499
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
522
500
  */
523
- declare function addDays(dateAllFormat?: Date | string | number, numberOfDays?: number, outputFormat?: string): number | Date;
501
+ declare function addDays(dateAllFormat?: Date | string | number, numberOfDays?: number, outputFormat?: string): string | number | Date;
524
502
  /**
525
503
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
526
504
  */
527
- declare function addMinutes(dateAllFormat?: Date | string | number, numberOfMinutes?: number, outputFormat?: string): number | Date;
505
+ declare function addMinutes(dateAllFormat?: Date | string | number, numberOfMinutes?: number, outputFormat?: string): string | number | Date;
528
506
  /**
529
507
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
530
508
  */
531
- declare function addHours(dateAllFormat?: Date | string | number, numberOfHours?: number, outputFormat?: string): number | Date;
509
+ declare function addHours(dateAllFormat?: Date | string | number, numberOfHours?: number, outputFormat?: string): string | number | Date;
532
510
  /**
533
511
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
534
512
  */
535
- declare function addMonths(dateAllFormat?: Date | string | number, numberOfMonths?: number, outputFormat?: string): number | Date;
513
+ declare function addMonths(dateAllFormat?: Date | string | number, numberOfMonths?: number, outputFormat?: string): string | number | Date;
536
514
  /**
537
515
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
538
516
  */
539
- declare function addYears(dateAllFormat?: Date | string | number, numberOfYears?: number, outputFormat?: string): number | Date;
517
+ declare function addYears(dateAllFormat?: Date | string | number, numberOfYears?: number, outputFormat?: string): string | number | Date;
540
518
  declare function getDayOfMonth(dateAllFormat?: Date | string | number): any;
541
519
  declare function getYear(dateAllFormat?: Date | string | number): any;
542
520
  declare function getHours(dateAllFormat?: Date | string | number): any;
@@ -544,40 +522,17 @@ declare function getMinutes(dateAllFormat?: Date | string | number): any;
544
522
  /**
545
523
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
546
524
  */
547
- declare function lastDayOfMonth(dateAllFormat?: Date | string | number, outputFormat?: string): number | Date;
525
+ declare function lastDayOfMonth(dateAllFormat?: Date | string | number, outputFormat?: string): string | number | Date;
548
526
  /**
549
527
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
550
528
  */
551
- declare function firstDayOfMonth(dateAllFormat?: Date | string | number, outputFormat?: string): number | Date;
529
+ declare function firstDayOfMonth(dateAllFormat?: Date | string | number, outputFormat?: string): string | number | Date;
552
530
  declare function differenceInMilliseconds(startDateAllFormat: any, endDateAllFormat: any): number;
553
531
  declare function differenceInSeconds(startDateAllFormat: any, endDateAllFormat: any): number;
554
532
  declare function differenceInMinutes(startDateAllFormat: any, endDateAllFormat: any): number;
555
533
  declare function differenceInHours(startDateAllFormat: any, endDateAllFormat: any): number;
556
534
  declare function differenceInDays(startDateAllFormat: any, endDateAllFormat: any): number;
557
535
  declare function differenceInWeeks(startDateAllFormat: any, endDateAllFormat: any): number;
558
- declare function differenceInMonths(startDateAllFormat: any, endDateAllFormat: any): number;
559
- /** Will check if that date exists, and if not, this will
560
- * Usefull for monthly subscription or reccuring month dates
561
- * @param {any} dateAllFormat default: new Date()
562
- * @returns {Date} Date object
563
- */
564
- declare function getClosestExistingDateOfMonth(dateAllFormat?: Date | string | number): any;
565
- /** Compute the best possible date for next month same day
566
- * Usefull for monthly subscription or reccuring month dates
567
- * @param {any} dateAllFormat default: new Date()
568
- * @param {Boolean} onlyFuture if true return the future date relative to any date in the past, else, it return the next month date possible relative to the dateAllFormat
569
- * @returns {Date} Date object
570
- */
571
- declare function getNextMonthlyDate(dateAllFormat?: Date | string | number, onlyFuture?: boolean): any;
572
- declare function getHolidayReferenceYear(dateAllFormat: Date | string | number): number;
573
- /**
574
- * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
575
- */
576
- declare function getFirstDayOfHolidayReferenceYear(dateAllFormat: Date | string | number, outputFormat?: string): number | Date;
577
- /**
578
- * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
579
- */
580
- declare function getLastDayOfHolidayReferenceYear(dateAllFormat: Date | string | number, outputFormat?: string): number | Date;
581
536
  /**
582
537
  // console colored output
583
538
  // * console.log(C.green(C.dim('Hey bro !')))
@@ -823,18 +778,7 @@ declare const _: {
823
778
  isTimeStringValid: typeof isTimeStringValid;
824
779
  getDuration: typeof getDuration;
825
780
  doDateOverlap: typeof doDateOverlap;
826
- getDatesForDaysArrayBetweenTwoDates: typeof getDatesForDaysArrayBetweenTwoDates;
827
- getEndTimeFromDurationAndStartTime: typeof getEndTimeFromDurationAndStartTime;
828
- getDate12FromDateAndTime: typeof getDate12FromDateAndTime;
829
781
  getMonthAsInt: typeof getMonthAsInt;
830
- isSunday: typeof isSunday;
831
- isMonday: typeof isMonday;
832
- isTuesday: typeof isTuesday;
833
- isWednesday: typeof isWednesday;
834
- isThursday: typeof isThursday;
835
- isFriday: typeof isFriday;
836
- isSaturday: typeof isSaturday;
837
- isWeekend: typeof isWeekend;
838
782
  nextWeekDay: typeof nextWeekDay;
839
783
  addMinutes: typeof addMinutes;
840
784
  addHours: typeof addHours;
@@ -847,20 +791,12 @@ declare const _: {
847
791
  getMinutes: typeof getMinutes;
848
792
  firstDayOfMonth: typeof firstDayOfMonth;
849
793
  lastDayOfMonth: typeof lastDayOfMonth;
850
- eachDayOfInterval: typeof eachDayOfInterval;
851
- eachMonthOfInterval: typeof eachMonthOfInterval;
852
794
  differenceInMilliseconds: typeof differenceInMilliseconds;
853
795
  differenceInSeconds: typeof differenceInSeconds;
854
796
  differenceInMinutes: typeof differenceInMinutes;
855
797
  differenceInHours: typeof differenceInHours;
856
798
  differenceInDays: typeof differenceInDays;
857
799
  differenceInWeeks: typeof differenceInWeeks;
858
- differenceInMonths: typeof differenceInMonths;
859
- getClosestExistingDateOfMonth: typeof getClosestExistingDateOfMonth;
860
- getNextMonthlyDate: typeof getNextMonthlyDate;
861
- getHolidayReferenceYear: typeof getHolidayReferenceYear;
862
- getFirstDayOfHolidayReferenceYear: typeof getFirstDayOfHolidayReferenceYear;
863
- getLastDayOfHolidayReferenceYear: typeof getLastDayOfHolidayReferenceYear;
864
800
  getDateAsArrayFormatted: typeof dateArray;
865
801
  getDateAsArray: typeof dateStringToArray;
866
802
  convertDateAsInt: typeof getDateAsInt;
@@ -928,4 +864,4 @@ declare const _: {
928
864
  export default _;
929
865
  export { round, random, cln, pad, int, minMax, generateToken, moyenne, average, sumArray, sortUrlsByDeepnessInArrayOrObject, urlPathJoin, miniTemplater, isBetween, simpleObjectMaskOrSelect, ENV, parseBool, registerConfig, configFn, findByAddress, objForceWrite, objForceWriteIfNotSet, strAsArray, asArray, compareArrays, getArrayInCommon, getArrayDiff, getNotInArrayA, noDuplicateFilter, arrayCount, arrayToObjectSorted, pushIfNotExist, isNotEmptyArray, randomItemInArray, arrayUniqueValue, deepClone, cloneObject, JSONstringyParse, has, isObject, mergeDeep, flattenObject, unflattenObject, recursiveGenericFunction, recursiveGenericFunctionSync, findByAddressAll, objFilterUndefined, readOnly, reassignForbidden, readOnlyForAll, mergeDeepOverrideArrays, mergeDeepConfigurable, objFilterUndefinedRecursive, removeUndefinedKeys, // alias
930
866
  sortObjKeyAccordingToValue, ensureObjectProp, filterKeys, deleteByAddress, ensureIsArrayAndPush, removeCircularJSONstringify, isset, cleanStackTrace, shuffleArray, shuffleArray as randomizeArray, round2, camelCase, snakeCase, kebabCase, kebabCase as dashCase, snakeCase as underscoreCase, titleCase, pascalCase, lowerCase, upperCase, capitalize1st, camelCaseToWords, firstMatch, allMatches, getValuesBetweenSeparator, getValuesBetweenStrings, escapeRegexp, validator, validator as required, // alias for readability
931
- validatorReturnErrArray, assert, restTestMini, isValid, isType, isDateObject, issetOr, isEmptyOrNotSet, errIfNotSet, err500IfNotSet, errIfEmptyOrNotSet, err500IfEmptyOrNotSet, errXXXIfNotSet, isEmpty, checkAllObjectValuesAreEmpty, checkCtxIntegrity, issetOr as orIsset, getDateAsInt12, humanReadableTimestamp, getDateAsInt, getDateAsObject, isDateIntOrStringValid, isDateIsoOrObjectValid, dateStringToArray, dateArray, dateArrayInt, dateFormatted as dateSlash, dateFormatted, dateOffset, getTimeAsInt, getIntAsTime, isTimeStringValid, getDuration, doDateOverlap, getDatesForDaysArrayBetweenTwoDates, getEndTimeFromDurationAndStartTime, getDate12FromDateAndTime, getMonthAsInt, isSunday, isMonday, isTuesday, isWednesday, isThursday, isFriday, isSaturday, isWeekend, nextWeekDay, addMinutes, addHours, addDays, addMonths, addYears, getYear, getDayOfMonth, getHours, getMinutes, firstDayOfMonth, lastDayOfMonth, eachDayOfInterval, eachMonthOfInterval, differenceInMilliseconds, differenceInSeconds, differenceInMinutes, differenceInHours, differenceInDays, differenceInWeeks, differenceInMonths, getClosestExistingDateOfMonth, getNextMonthlyDate, getHolidayReferenceYear, getFirstDayOfHolidayReferenceYear, getLastDayOfHolidayReferenceYear, getDateAsInt as convertDateAsInt, getDateAsObject as convertDateAsObject, C, cliProgressBar, cliLoadingSpinner, convertAccentedCharacters, executeInDelayedLoop, timeout, runAsync, waitUntilTrue, transaction, waitForTransaction, getId, mergeMixins, mongoFilterMerger, mongoPush, tryCatch, };
867
+ validatorReturnErrArray, assert, restTestMini, isValid, isType, isDateObject, issetOr, isEmptyOrNotSet, errIfNotSet, err500IfNotSet, errIfEmptyOrNotSet, err500IfEmptyOrNotSet, errXXXIfNotSet, isEmpty, checkAllObjectValuesAreEmpty, checkCtxIntegrity, issetOr as orIsset, getDateAsInt12, humanReadableTimestamp, getDateAsInt, getDateAsObject, isDateIntOrStringValid, isDateIsoOrObjectValid, dateStringToArray, dateArray, dateArrayInt, dateFormatted as dateSlash, dateFormatted, dateOffset, getTimeAsInt, getIntAsTime, isTimeStringValid, getDuration, doDateOverlap, getMonthAsInt, nextWeekDay, addMinutes, addHours, addDays, addMonths, addYears, getYear, getDayOfMonth, getHours, getMinutes, firstDayOfMonth, lastDayOfMonth, differenceInMilliseconds, differenceInSeconds, differenceInMinutes, differenceInHours, differenceInDays, differenceInWeeks, getDateAsInt as convertDateAsInt, getDateAsObject as convertDateAsObject, C, cliProgressBar, cliLoadingSpinner, convertAccentedCharacters, executeInDelayedLoop, timeout, runAsync, waitUntilTrue, transaction, waitForTransaction, getId, mergeMixins, mongoFilterMerger, mongoPush, tryCatch, };
package/utils.js CHANGED
@@ -348,7 +348,7 @@ function strAsArray(arrOrStr) {
348
348
  * /!\ NOTE /!\ In case the value is null or undefined, it will return that value
349
349
  */
350
350
  function asArray(item) {
351
- return typeof item === 'undefined' ? item : Array.isArray(item) ? item : [item];
351
+ return (typeof item === 'undefined' ? item : Array.isArray(item) ? item : [item]);
352
352
  }
353
353
  /** Array comparison
354
354
  * @return {object} { inCommon, notInB, notInA }
@@ -1006,9 +1006,6 @@ function validator(...paramsToValidate) {
1006
1006
  }
1007
1007
  const restTestMini = {
1008
1008
  reset() {
1009
- restTestMini.nbSuccess = 0;
1010
- restTestMini.nbError = 0;
1011
- restTestMini.lastErrors = [];
1012
1009
  },
1013
1010
  printStats() {
1014
1011
  // TODO print last errz
@@ -1223,7 +1220,12 @@ function humanReadableTimestamp(dateAllFormat) {
1223
1220
  */
1224
1221
  function getDateAsInt(dateAllFormat = new Date(), errIfNotValid$ = false, withHoursAndMinutes$ = false) {
1225
1222
  let dateInt;
1226
- if (isDateIntOrStringValid(dateAllFormat)) {
1223
+ if (typeof dateAllFormat === 'string' && dateAllFormat.includes('/')) {
1224
+ // 01/01/2020 format
1225
+ const [d, m, y] = dateAllFormat.split('/');
1226
+ return y + m.toString().padStart(2, '0') + d.toString().padStart(2, '0');
1227
+ }
1228
+ else if (isDateIntOrStringValid(dateAllFormat)) {
1227
1229
  // we can pass an int or string format (20180106)
1228
1230
  dateInt = (dateAllFormat + '00000000').substr(0, 12); // add default 000000 for "month days minutes:sec" if not set
1229
1231
  }
@@ -1409,92 +1411,6 @@ function doDateOverlap(event1, event2, fieldNameForStartDate$ = 'startDate', fie
1409
1411
  return (!event2[fieldNameForEndDate$] || event1[fieldNameForStartDate$] < event2[fieldNameForEndDate$]) && (!event1[fieldNameForEndDate$] || event1[fieldNameForEndDate$] > event2[fieldNameForStartDate$]);
1410
1412
  return (!event2[fieldNameForEndDate$] || event1[fieldNameForStartDate$] <= event2[fieldNameForEndDate$]) && (!event1[fieldNameForEndDate$] || event1[fieldNameForEndDate$] >= event2[fieldNameForStartDate$]);
1411
1413
  }
1412
- /** Get all dates at specified days between two dates
1413
- * @param daysArray [0,1,2,3,4,5,6]
1414
- * @param {*} startDate all format
1415
- * @param {*} endDate all format
1416
- * @param {'int'|'object'} outputFormat default: int
1417
- */
1418
- function getDatesForDaysArrayBetweenTwoDates(daysArray, startDate, endDate, outputFormat = 'int') {
1419
- const dateArr = [];
1420
- let actualDate = getDateAsObject(startDate);
1421
- endDate = getDateAsObject(endDate);
1422
- while (actualDate <= endDate) {
1423
- if (daysArray.includes(actualDate.getUTCDay()))
1424
- dateArr.push(getDateAsObject(actualDate)); // cloned
1425
- actualDate.setUTCDate(actualDate.getUTCDate() + 1);
1426
- }
1427
- return dateArr.map(d => getDateAs(d, outputFormat));
1428
- }
1429
- function getEndTimeFromDurationAndStartTime(startTime, duration) {
1430
- const timeArr = startTime.split(':').map(n => parseInt(n));
1431
- let endTime = (timeArr[0] * 60 + timeArr[1]) + duration;
1432
- return {
1433
- days: Math.floor(endTime / 1440),
1434
- time: pad(Math.floor((endTime % 1440) / 60)) + ':' + pad(endTime % 60)
1435
- };
1436
- }
1437
- function getDate12FromDateAndTime(dateAllFormat, timeAllFormat) {
1438
- if (typeof dateAllFormat !== 'number' || dateAllFormat > 99991231 || dateAllFormat < 0)
1439
- dateAllFormat = getDateAsInt(dateAllFormat);
1440
- if (typeof timeAllFormat !== 'number' || timeAllFormat > 2359 || timeAllFormat < 0)
1441
- timeAllFormat = getTimeAsInt(timeAllFormat);
1442
- return dateAllFormat * 10000 + timeAllFormat;
1443
- }
1444
- function eachDayOfInterval(startDateAllFormat, endDateAllFormat, outputFormat = 'int') {
1445
- const start = getDateAsObject(startDateAllFormat);
1446
- const end = getDateAsObject(endDateAllFormat);
1447
- let days = [];
1448
- let current = new Date();
1449
- current.setTime(start.getTime());
1450
- while (current <= end) {
1451
- days.push(new Date(current.getTime()));
1452
- current.setTime(current.getTime() + 1000 * 60 * 60 * 24);
1453
- }
1454
- return days.map(d => getDateAs(d, outputFormat));
1455
- }
1456
- function eachMonthOfInterval(startDateAllFormat, endDateAllFormat) {
1457
- const months = [];
1458
- const current = firstDayOfMonth(startDateAllFormat, 'Object');
1459
- const end = firstDayOfMonth(endDateAllFormat, 'Object');
1460
- while (current <= end) {
1461
- months.push(getMonthAsInt(current));
1462
- current.setUTCMonth(current.getUTCMonth() + 1);
1463
- }
1464
- return months;
1465
- }
1466
- function isSunday(dateAllFormat = getDateAsInt()) {
1467
- let date = getDateAsObject(dateAllFormat);
1468
- return date.getUTCDay() === 0;
1469
- }
1470
- function isMonday(dateAllFormat = getDateAsInt()) {
1471
- let date = getDateAsObject(dateAllFormat);
1472
- return date.getUTCDay() === 1;
1473
- }
1474
- function isTuesday(dateAllFormat = getDateAsInt()) {
1475
- let date = getDateAsObject(dateAllFormat);
1476
- return date.getUTCDay() === 2;
1477
- }
1478
- function isWednesday(dateAllFormat = getDateAsInt()) {
1479
- let date = getDateAsObject(dateAllFormat);
1480
- return date.getUTCDay() === 3;
1481
- }
1482
- function isThursday(dateAllFormat = getDateAsInt()) {
1483
- let date = getDateAsObject(dateAllFormat);
1484
- return date.getUTCDay() === 4;
1485
- }
1486
- function isFriday(dateAllFormat = getDateAsInt()) {
1487
- let date = getDateAsObject(dateAllFormat);
1488
- return date.getUTCDay() === 5;
1489
- }
1490
- function isSaturday(dateAllFormat = getDateAsInt()) {
1491
- let date = getDateAsObject(dateAllFormat);
1492
- return date.getUTCDay() === 6;
1493
- }
1494
- function isWeekend(dateAllFormat = getDateAsInt()) {
1495
- let date = getDateAsObject(dateAllFormat);
1496
- return date.getUTCDay() === 6 || date.getUTCDay() === 0;
1497
- }
1498
1414
  function nextWeekDay(fromDate, weekDayInt, outputFormat = 'date', sameDayAllowed = false) {
1499
1415
  const date = getDateAsObject(fromDate);
1500
1416
  if (!isset(weekDayInt))
@@ -1606,103 +1522,6 @@ function differenceInDays(startDateAllFormat, endDateAllFormat) {
1606
1522
  function differenceInWeeks(startDateAllFormat, endDateAllFormat) {
1607
1523
  return differenceInDays(startDateAllFormat, endDateAllFormat) / 7;
1608
1524
  }
1609
- function differenceInMonths(startDateAllFormat, endDateAllFormat) {
1610
- const startDate = getDateAsInt(startDateAllFormat);
1611
- const endDate = getDateAsInt(endDateAllFormat);
1612
- const monthesForStart = parseInt(getYear(startDate)) * 12 + parseInt(getMonthForHuman(startDate));
1613
- const monthesForEnd = parseInt(getYear(endDate)) * 12 + parseInt(getMonthForHuman(endDate));
1614
- if (monthesForStart === monthesForEnd) {
1615
- const firstDay = firstDayOfMonth(startDate);
1616
- const lastDay = lastDayOfMonth(endDate);
1617
- const differenceBetweenStartAndEnd = differenceInDays(startDate, endDate);
1618
- const numberOfDaysInMonth = differenceInDays(firstDay, lastDay);
1619
- return round(differenceBetweenStartAndEnd / numberOfDaysInMonth, 2);
1620
- }
1621
- const firstDayOfStartDateMonth = firstDayOfMonth(startDate);
1622
- const lastDayOfStartDateMonth = lastDayOfMonth(startDate);
1623
- const firstDayOfEndDateMonth = firstDayOfMonth(endDate);
1624
- const lastDayOfEndDateMonth = lastDayOfMonth(endDate);
1625
- const differenceBetweenStartDateAndEndOfStartMonth = differenceInDays(startDate, lastDayOfStartDateMonth);
1626
- const differenceBetweenStartOfEndMonthAndEndDate = differenceInDays(firstDayOfEndDateMonth, endDate);
1627
- const numberOfDaysInStartMonth = differenceInDays(firstDayOfStartDateMonth, lastDayOfStartDateMonth);
1628
- const numberOfDaysInEndMonth = differenceInDays(firstDayOfEndDateMonth, lastDayOfEndDateMonth);
1629
- return round(monthesForEnd - monthesForStart - 1 + differenceBetweenStartDateAndEndOfStartMonth / numberOfDaysInStartMonth + differenceBetweenStartOfEndMonthAndEndDate / numberOfDaysInEndMonth, 2);
1630
- }
1631
- /** Will check if that date exists, and if not, this will
1632
- * Usefull for monthly subscription or reccuring month dates
1633
- * @param {any} dateAllFormat default: new Date()
1634
- * @returns {Date} Date object
1635
- */
1636
- function getClosestExistingDateOfMonth(dateAllFormat = getDateAsInt()) {
1637
- let [day, month, year] = dateArrayInt(dateAllFormat);
1638
- const zeroBasedMonth = minMax(month - 1, 0, 11);
1639
- if (!isBetween(month, 1, 12))
1640
- console.error('Wrong month provided for getClosestExistingDateOfMonth: ' + month + ' Shall be between 1-12. Converted to ' + zeroBasedMonth);
1641
- let dayNb = minMax(day, 1, 31);
1642
- let date;
1643
- let increment = dayNb < 1;
1644
- let tooMuchRecursionCount = 0;
1645
- do
1646
- date = new Date(year, zeroBasedMonth, (increment ? dayNb++ : dayNb--), 12);
1647
- while (date.getUTCMonth() !== zeroBasedMonth && tooMuchRecursionCount < 99);
1648
- if (tooMuchRecursionCount)
1649
- throw new dataValidationUtilErrorHandler(`tooMuchRecursionCount`, 500, { origin: 'getClosestExistingDateOfMonth', day, month, year });
1650
- return date;
1651
- }
1652
- /** Compute the best possible date for next month same day
1653
- * Usefull for monthly subscription or reccuring month dates
1654
- * @param {any} dateAllFormat default: new Date()
1655
- * @param {Boolean} onlyFuture if true return the future date relative to any date in the past, else, it return the next month date possible relative to the dateAllFormat
1656
- * @returns {Date} Date object
1657
- */
1658
- function getNextMonthlyDate(dateAllFormat = getDateAsInt(), onlyFuture = false) {
1659
- let [day, month, year] = dateArrayInt(dateAllFormat);
1660
- day = minMax(day, 1, 31);
1661
- month = minMax(month, 1, 12);
1662
- err422IfNotSet({ year, month, day });
1663
- const isDatePast = getDateAsInt(dateAllFormat) <= getDateAsInt();
1664
- if (onlyFuture && isDatePast) {
1665
- let [, todayMonth, todayYear] = dateArrayInt();
1666
- month = todayMonth;
1667
- year = todayYear;
1668
- }
1669
- let nextMonth;
1670
- if (month === 12) {
1671
- nextMonth = 1;
1672
- year++;
1673
- }
1674
- else
1675
- nextMonth = month + 1;
1676
- return getClosestExistingDateOfMonth(new Date(year, nextMonth - 1, day));
1677
- }
1678
- function getHolidayReferenceYear(dateAllFormat) {
1679
- let date = getDateAsObject(dateAllFormat);
1680
- if (date.getUTCMonth() > 4)
1681
- return date.getUTCFullYear();
1682
- return date.getUTCFullYear() - 1;
1683
- }
1684
- /**
1685
- * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
1686
- */
1687
- function getFirstDayOfHolidayReferenceYear(dateAllFormat, outputFormat = 'int') {
1688
- const date = getDateAsObject(dateAllFormat);
1689
- let year = date.getUTCFullYear();
1690
- if (date.getUTCMonth() < 4)
1691
- year = date.getUTCFullYear() - 1;
1692
- const firstDayAsInt = year + '0601';
1693
- return getDateAs(firstDayAsInt, outputFormat);
1694
- }
1695
- /**
1696
- * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
1697
- */
1698
- function getLastDayOfHolidayReferenceYear(dateAllFormat, outputFormat = 'int') {
1699
- let date = getDateAsObject(dateAllFormat);
1700
- let year = date.getUTCFullYear() + 1;
1701
- if (date.getUTCMonth() < 4)
1702
- year = date.getUTCFullYear();
1703
- const firstDayAsInt = year + '0531';
1704
- return getDateAs(firstDayAsInt, outputFormat);
1705
- }
1706
1525
  /**
1707
1526
  * @param {String} outputDateFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
1708
1527
  */
@@ -2352,18 +2171,7 @@ const _ = {
2352
2171
  isTimeStringValid,
2353
2172
  getDuration,
2354
2173
  doDateOverlap,
2355
- getDatesForDaysArrayBetweenTwoDates,
2356
- getEndTimeFromDurationAndStartTime,
2357
- getDate12FromDateAndTime,
2358
2174
  getMonthAsInt,
2359
- isSunday,
2360
- isMonday,
2361
- isTuesday,
2362
- isWednesday,
2363
- isThursday,
2364
- isFriday,
2365
- isSaturday,
2366
- isWeekend,
2367
2175
  nextWeekDay,
2368
2176
  addMinutes,
2369
2177
  addHours,
@@ -2376,20 +2184,12 @@ const _ = {
2376
2184
  getMinutes,
2377
2185
  firstDayOfMonth,
2378
2186
  lastDayOfMonth,
2379
- eachDayOfInterval,
2380
- eachMonthOfInterval,
2381
2187
  differenceInMilliseconds,
2382
2188
  differenceInSeconds,
2383
2189
  differenceInMinutes,
2384
2190
  differenceInHours,
2385
2191
  differenceInDays,
2386
2192
  differenceInWeeks,
2387
- differenceInMonths,
2388
- getClosestExistingDateOfMonth,
2389
- getNextMonthlyDate,
2390
- getHolidayReferenceYear,
2391
- getFirstDayOfHolidayReferenceYear,
2392
- getLastDayOfHolidayReferenceYear,
2393
2193
  // ALIASES
2394
2194
  getDateAsArrayFormatted: dateArray,
2395
2195
  getDateAsArray: dateStringToArray,
@@ -2430,7 +2230,7 @@ issetOr as orIsset,
2430
2230
  // DATE
2431
2231
  getDateAsInt12, humanReadableTimestamp, getDateAsInt, getDateAsObject, isDateIntOrStringValid, isDateIsoOrObjectValid, dateStringToArray, dateArray, dateArrayInt, dateFormatted as dateSlash, dateFormatted, dateOffset, getTimeAsInt, getIntAsTime, isTimeStringValid,
2432
2232
  // isDateObject <= see validator.js
2433
- getDuration, doDateOverlap, getDatesForDaysArrayBetweenTwoDates, getEndTimeFromDurationAndStartTime, getDate12FromDateAndTime, getMonthAsInt, isSunday, isMonday, isTuesday, isWednesday, isThursday, isFriday, isSaturday, isWeekend, nextWeekDay, addMinutes, addHours, addDays, addMonths, addYears, getYear, getDayOfMonth, getHours, getMinutes, firstDayOfMonth, lastDayOfMonth, eachDayOfInterval, eachMonthOfInterval, differenceInMilliseconds, differenceInSeconds, differenceInMinutes, differenceInHours, differenceInDays, differenceInWeeks, differenceInMonths, getClosestExistingDateOfMonth, getNextMonthlyDate, getHolidayReferenceYear, getFirstDayOfHolidayReferenceYear, getLastDayOfHolidayReferenceYear,
2233
+ getDuration, doDateOverlap, getMonthAsInt, nextWeekDay, addMinutes, addHours, addDays, addMonths, addYears, getYear, getDayOfMonth, getHours, getMinutes, firstDayOfMonth, lastDayOfMonth, differenceInMilliseconds, differenceInSeconds, differenceInMinutes, differenceInHours, differenceInDays, differenceInWeeks,
2434
2234
  // ALIASES
2435
2235
  getDateAsInt as convertDateAsInt, getDateAsObject as convertDateAsObject,
2436
2236
  // LOGGER
package/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,MAAM,GAAG,GAAG,QAAQ,CAAC;AACrB,MAAM,OAAO,GAAG,OAAO,CAAC;AACxB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAC3C,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAMxD,uDAAuD;AACvD,SAAS,KAAK,CAAC,MAAc,EAAE,QAAQ,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7H,uDAAuD;AACvD,SAAS,MAAM,CAAC,MAAc,EAAE,QAAQ,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE9H,8DAA8D;AAC9D,SAAS,SAAS,CAAC,MAAc,EAAE,GAAW,EAAE,GAAW,EAAE,SAAS,GAAG,IAAI,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;AAEpK,kEAAkE;AAClE,SAAS,MAAM,CAAC,GAAW,EAAE,GAAW,EAAE,YAAY,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAE9H,6DAA6D;AAC7D,SAAS,QAAQ,CAAC,KAAe;IAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAChH,CAAC;AAED;;EAEE;AACF,SAAS,OAAO,CAAC,KAAe,EAAE,YAAY,GAAG,CAAC;IAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC/D,CAAC;AAED,sGAAsG;AACtG,SAAS,GAAG,CAAC,GAAG,EAAE,4BAA4B,GAAG,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAErL,6CAA6C;AAC7C,SAAS,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1F;;;;;GAKG;AACH,SAAS,MAAM,CAAC,EAAU,EAAE,GAAW,EAAE,GAAW,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAElG,KAAK,UAAU,QAAQ,CAAC,QAAQ,EAAE,QAAkB,GAAG,EAAE,GAAG,CAAC;IACzD,IAAI;QACA,OAAO,MAAM,QAAQ,EAAE,CAAA;KAC1B;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;KAC1B;AACL,CAAC;AAGD,IAAI,eAAe,GAAG,EAAE,CAAC,CAAC,2BAA2B;AACrD,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAClC;;;;;EAKE;AACF,SAAS,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,GAAG,cAAc;IACpE,IAAI,eAAe,GAAG,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,CAAA;IACT,IAAI,OAAO,CAAA;IACX,GAAG;QACC,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;QAChC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC,MAAM,GAAG,MAAM;YAAE,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,8BAA8B;KAC9H,QAAQ,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC;IACzC,IAAI,MAAM,GAAG,OAAO,EAAE;QAClB,eAAe,GAAG,EAAE,CAAA,CAAC,gEAAgE;KACxF;IACD,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAC;AACjB,CAAC;AAGD;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAG,IAAI;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iCAAiC,CAAC,WAAW,EAAE,0BAA0B;IAC9E,aAAa;IACb,sCAAsC;IACtC,iGAAiG;IACjG,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC5D,sBAAsB;IACtB,iHAAiH;IACjH,kCAAkC;IAClC,kDAAkD;IAClD,MAAM,kBAAkB,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAErI,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QACpB,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,aAAa;YACnD,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,2BAA2B;YAClF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,6BAA6B;IAChE,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO;IACzC,OAAO,GAAG;QACN,eAAe,EAAE,EAAE;QACnB,MAAM,EAAE,oBAAoB;QAC5B,GAAG,OAAO;KACb,CAAC;IACF,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC5G,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,GAAG,IAAI,EAAE,sCAAsC,GAAG,KAAK;IAC3H,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACxC,IAAI,MAAM;YAAE,OAAO,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;YACvD,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,IAAI,sCAAsC,EAAE;QACxC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;KACjB;SAAM;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5D,OAAO,SAAS,CAAC;QACrB,CAAC,EAAE,EAAE,CAAC,CAAC;KACV;AACL,CAAC;AAED,oHAAoH;AACpH,SAAS,QAAQ,CAAC,GAAG;IACjB,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;QACjB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,GAAG,KAAK,WAAW;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;aAC1C,IAAI,GAAG,KAAK,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aACrC,IAAI,GAAG,KAAK,OAAO;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACvC,IAAI,GAAG,KAAK,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;;YACrC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,GAAG;IACR,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpC,GAAG,EAAE,QAAQ;QACb,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,YAAuC;IACtD,IAAI,OAAO,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;;QACtD,OAAO,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AACnG,CAAC;AAGD,SAAS,GAAG,CAAC,GAAG,GAAG,EAAE;IACjB,OAAO,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;AACtH,CAAC;AAwBD,IAAI,MAAM,GAAW;IACjB,GAAG,EAAE,aAAa;IAClB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE;QACN,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACH,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;YACrB,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;SACjC;KACJ;CACJ,CAAC;AAEF,uCAAuC;AACvC,SAAS,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC;AAGtC;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,cAAc,CAAC,YAAY;IAChC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;QAAE,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC9D,MAAM,SAAS,GAAG;QACd,GAAG,MAAM;QACT,GAAG,YAAY;KAClB,CAAC;IACF,SAAS,CAAC,QAAQ,GAAG;QACjB,GAAG,MAAM,CAAC,QAAQ;QAClB,GAAG,YAAY,CAAC,QAAQ;KAC3B,CAAC;IACF,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG;QACvB,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK;QACxB,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;KACzC,CAAC;IACF,MAAM,GAAG,SAAS,CAAC;IAEnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,0CAA0C;AAC1C,gBAAgB;AAChB,0CAA0C;AAE1C,MAAM,8BAA+B,SAAQ,KAAK;IAM9C,YAAY,GAAG,EAAE,IAAI,EAAE,UAAW;QAC9B,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,2CAA2C;QAC3E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG;YACpB,GAAG;YACH,IAAI;YACJ,GAAG,UAAU;SAChB,CAAA;IACL,CAAC;CACJ;AAED,0CAA0C;AAC1C,sBAAsB;AACtB,0CAA0C;AAE1C;;;;GAIG;AACH,SAAS,GAAG,CAAC,GAAW,EAAE,IAAY;IAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO;IACnD,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB;IACvF,IAAI,QAAQ,GAAG,GAAG,CAAC;IACnB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACzB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,IAAY;IAC5C,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IAC9I,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;IAC/F,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO;;YAClF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,EAAE,GAAG,CAAC,CAAC;IACR,OAAO,MAAM,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,IAAY,EAAE,IAAI;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,QAAQ,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;aAC/C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC/B,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;;gBACnE,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAC7B;aAAM,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ;YAAE,MAAM,IAAI,8BAA8B,CAAC,qDAAqD,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9O,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,GAAW,EAAE,IAAY,EAAE,IAAI;IAC1D,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,kGAAkG;AAClG,SAAS,WAAW,CAAC,IAAI,EAAE,GAAG,MAAM;IAChC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACnB,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;SAChC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAKD,wEAAwE;AACxE,SAAS,UAAU,CAAC,QAAQ;IACxB,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAwB,IAAO;IAC3C,OAAQ,CAAC,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAiE,CAAA;AACtJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IACxE,OAAO;QACH,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QACnD,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QAC/C,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;KAClD,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;;QAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IACzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;SAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IACvE,OAAO,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACpG,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IAC5D,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,iDAAiD;AACjD,SAAS,UAAU,CAAC,IAAS,EAAE,GAAU;IACrC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAAK,EAAE,gBAAgB;IAChD,MAAM,GAAG,GAAG,EAAE,CAAC;IAEf,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,eAAe,EAAE,8BAA8B,EAAE,kBAAkB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IAC3G,MAAM,YAAY,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/H,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IACtC,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,GAAG;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAI,KAAU;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAID,SAAS,WAAW,CAAC,CAAC;IAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,kDAAkD;AAClD,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE;IAE9B,IAAI,IAAI,CAAC;IACT,wDAAwD;IACxD,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC5B,IAAI,GAAG,YAAY,IAAI;QAAE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IAE7C,eAAe;IACf,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,GAAG,EAAE,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC;KACf;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE;QAC5F,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,GAAG,EAAE,CAAC;QACV,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;YACjB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBAChD,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC7C;SACJ;QACD,OAAO,IAAI,CAAC;KACf;IAED,OAAO,GAAG,CAAC,CAAC,oBAAoB;AACpC,CAAC;AAED,0EAA0E;AAC1E,SAAS,QAAQ,CAAC,CAAM,IAAa,OAAO,CAAC,YAAY,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAE7G;;;iDAGiD;AACjD,SAAS,SAAS,CAAC,GAAG,OAAO;IACzB,OAAO,qBAAqB,CACxB,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAC5G,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,EAC/D,SAAS,EACT,GAAG,OAAO,CACb,CAAC;AACN,CAAC;AAED;;;kDAGkD;AAClD,SAAS,uBAAuB,CAAC,GAAG,OAAO;IACvC,OAAO,qBAAqB,CACxB,SAAS,EACT,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,uBAAuB,CAAC,WAAW,EAAE,UAAU,CAAC,EAC7E,SAAS,EACT,GAAG,OAAO,CACb,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO;IAC3I,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAE5B,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACzD,cAAc,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;aACpE;iBAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACtD,cAAc,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;aACrE;iBAAM;gBACH,cAAc,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;aAClE;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAI,EAAE,SAA8E,EAAE;IACzG,MAAM,EAAE,kBAAkB,GAAG,KAAK,EAAE,uBAAuB,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IAC9E,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,2CAA2C;IACnE,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,kBAAkB;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;iBACxC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gBACzF,IAAI,CAAC,IAAI,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACjC;SACJ;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY;YACpC,IAAI;gBACA,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,iDAAiD;;oBACjG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE3B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;gBAE9C,KAAK,MAAM,CAAC,IAAI,GAAG;oBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,oDAAoD;gBAE5I,IAAI,OAAO,IAAI,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aAC1C;YAAC,OAAO,KAAK,EAAE;gBACZ,CAAC,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;aACzE;SACJ;;YAAM,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IAC9B,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClB,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,+BAA+B;AAC/B,SAAS,eAAe,CAAC,IAAI;IACzB,MAAM,IAAI,GAAG,EAAE,CAAA;IACf,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAClF,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,EAAE,MAAO,EAAE,kCAAkC,GAAG,EAAE;IACrI,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7B,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpD,MAAM,MAAM,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAEzF,IAAI,MAAM,KAAK,KAAK,EAAE;YAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACvB,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CACtB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,kCAAkC,CAAC,CACrH,CAAC,CAAC;aACN;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvB,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CACtC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kCAAkC,CAAC,CACzI,CAAC,CAAC;aACN;SACJ;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,4BAA4B,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,EAAE,MAAO,EAAE,kCAAkC,GAAG,EAAE;IACnI,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7B,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACpD,MAAM,MAAM,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAEnF,IAAI,MAAM,KAAK,KAAK,EAAE;YAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACvB,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB;gBACrE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC,CAAC;aACxI;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvB,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC,CAAC;aAC5K;SACJ;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,wDAAwD;AACxD,SAAS,kBAAkB,CAAC,CAAC;IACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,yDAAyD;AACzD,SAAS,QAAQ,CAAC,CAAC;IACf,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,MAAM,IAAI,8BAA8B,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpH,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE;QAChB,GAAG,EAAE,QAAQ;QACb,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AAED,+DAA+D;AAC/D,SAAS,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE;QAChB,cAAc,EAAE,UAAU,IAAI,EAAE,GAAG,EAAE,KAAK;YACtC,IAAI,GAAG,IAAI,IAAI;gBAAE,MAAM,IAAI,8BAA8B,CAAC,gCAAgC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;iBAC3H;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;gBACjB,OAAO,IAAI,CAAA;aACd;QACL,CAAC;QACD,cAAc,EAAE,UAAU,CAAC,EAAE,GAAG;YAC5B,MAAM,IAAI,8BAA8B,CAAC,8BAA8B,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACjH,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,kEAAkE;AAClE,SAAS,cAAc,CAAC,MAAM;IAC1B,4BAA4B,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE;QACrE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,2BAA2B,CAAC,GAAG;IACpC,IAAI,GAAG,EAAE;QACL,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC3B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;aAC5B;QACL,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;KACxC;;QAAM,OAAO,GAAG,CAAC;AACtB,CAAC;AAED,mEAAmE;AACnE,SAAS,gBAAgB,CAAC,GAAG,EAAE,IAAI;IAC/B,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI;SACnC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,6BAA6B;SAC7D,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,mDAAmD;UAC9E,GAAG,CAAC,CAAC;IAEX,MAAM,aAAa,GAAG,EAAE,CAAC;IAEzB,4BAA4B,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAChD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,0BAA0B,CAAC,YAAY,EAAE,SAAS,GAAG,IAAI;IAC9D,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;SACpB,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;SAC5F,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,GAAW,EAAE,IAAY,EAAE,YAAY,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,GAAW,EAAE,IAAY,EAAE,SAAS,EAAE,gBAA0B;IAC1F,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE;QAC9C,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE;YACzB,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,OAAO,gBAAgB,KAAK,UAAU;gBAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;;gBAC3G,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc;gBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjD;;YAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW,EAAE,MAAM;IACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,4BAA4B,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;QAC7D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAW,EAAE,IAAY;IAC9C,IAAI,OAAO,GAAG,GAAG,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,2CAA2C;AAC3C,SAAS,KAAK,CAAC,MAAW,EAAE;IACxB,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,YAAY;IAC9B,IAAI,GAAG,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SAClC,IAAI,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC;QAAE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,eAAe,CAAC,KAAK;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzC,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,eAAe,GAAG;QACpB,iBAAiB;QACjB,YAAY;QACZ,kBAAkB;QAClB,qCAAqC;QACrC,wBAAwB;QACxB,yCAAyC;QACzC,4BAA4B;QAC5B,wCAAwC;QACxC,aAAa;QACb,0BAA0B;QAC1B,wBAAwB;QACxB,gCAAgC;QAChC,WAAW;QACX,kBAAkB;QAClB,iBAAiB;QACjB,kBAAkB;QAClB,eAAe;QACf,oBAAoB;QACpB,cAAc;QACd,oBAAoB;QACpB,gCAAgC;KACnC,CAAC;IACF,MAAM,UAAU,GAAG,KAAK;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;aAClB;YACD,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,IAAI,EAAE,CAAC;YACpF,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,QAAQ,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC;SACvG;IACL,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO,UAAU,CAAC;AACtB,CAAC;AAGD,SAAS,KAAK,CAAC,GAAG,IAAI;IAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;AACzE,CAAC;AACD,SAAS,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC;IACnD,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;gBAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACjB,OAAO;iBACV;gBACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACnB;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAGD,SAAS,YAAY,CAAC,KAAK;IACvB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAGD,mBAAmB;AACnB,SAAS,SAAS,CAAC,GAAG,QAAQ;IAC1B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAG,QAAQ;IAC1B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AACD;;;GAGG;AACH,SAAS,SAAS,CAAC,GAAG,QAAQ;IAC1B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9E,CAAC;AACD,6CAA6C;AAC7C,SAAS,UAAU,CAAC,GAAG,QAAQ;IAC3B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,4CAA4C;AAC5C,SAAS,SAAS,CAAC,GAAG,QAAQ;IAC1B,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,4CAA4C;AAC5C,SAAS,SAAS,CAAC,GAAG,QAAQ;IAC1B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,4CAA4C;AAC5C,SAAS,SAAS,CAAC,GAAG,QAAQ;IAC1B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAAC,GAAG,GAAG,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhF,SAAS,gBAAgB,CAAC,GAAG;IACzB,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrF,CAAC;AAID,SAAS,YAAY,CAAC,GAAW,EAAE,SAAsC,EAAE;IACvE,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IACxC,IAAI,aAAa;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;;QACxF,OAAO,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW,EAAE,MAAc,IAAwB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7G;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW,EAAE,GAAW;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,OAAO,CAAC;IACZ,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,CAAC,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC5F;QACD,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAC9B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;gBACV,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;gBACvE,MAAM;aACT;SACJ;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,GAAW,EAAE,SAAiB,EAAE,oBAAoB,GAAG,IAAI;IAC1F,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACjH,OAAO,KAAK,CAAC;AACjB,CAAC;AAGD;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,GAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,kBAAkB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI;IACzL,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAEnD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,WAAW,GAAqB,KAAK,CAAC;IAC1C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,aAAa,GAAG,EAAE,CAAC;IAEvB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC,OAAO;QAAE,aAAa,GAAG,IAAI,CAAC;IAEnC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEjE,MAAM,eAAe,GAAG,GAAG,EAAE;QACzB,IAAI,KAAK,KAAK,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;;YAC9G,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACtG,WAAW,GAAG,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACzB,oHAAoH;QACpH,mBAAmB;QACnB,IAAI,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,aAAa,KAAK,IAAI;YAAE,WAAW,GAAG,KAAK,CAAC;aAClF,IAAI,WAAW,IAAI,IAAI,KAAK,WAAW;YAAE,IAAI,CAAC;aAC9C,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;YACvE,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC/C;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACpC,2BAA2B;YAC3B,IAAI,CAAC,aAAa,IAAI,KAAK,KAAK,CAAC;gBAAE,eAAe,EAAE,CAAC;YACrD,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,aAAa;gBAAE,OAAO;SAC9B;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACpC,2BAA2B;YAC3B,IAAI,CAAC,aAAa,IAAI,KAAK,KAAK,CAAC;gBAAE,eAAe,EAAE,CAAC;YACrD,KAAK,EAAE,CAAC;SACX;aAAM,IAAI,aAAa,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE;YAC3D,iBAAiB;YACjB,eAAe,EAAE,CAAC;YAClB,OAAO;SACV;QACD,WAAW,IAAI,IAAI,CAAC;QACpB,aAAa,GAAG,IAAI,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,eAAe,EAAE,CAAC;IAElB,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtG,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;AACjF,CAAC;AAQD,SAAS,OAAO,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;AAElG,SAAS,eAAe,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3F,SAAS,WAAW,CAAC,uBAAuB,EAAE,iBAAiB,IAAI,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAEhI,SAAS,cAAc,CAAC,uBAAuB,IAAI,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAEhH,SAAS,kBAAkB,CAAC,uBAAuB,IAAI,OAAO,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAEnH,SAAS,qBAAqB,CAAC,uBAAuB,IAAI,OAAO,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAEtH,SAAS,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,uBAAuB;IAChE,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,IAAI,IAAI,IAAI,uBAAuB,EAAE;QACtC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/H;IACD,IAAI,WAAW,CAAC,MAAM;QAAE,MAAM,IAAI,8BAA8B,CAAC,+BAA+B,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1K,CAAC;AAGD,SAAS,YAAY,CAAC,QAAQ,IAAI,OAAO,QAAQ,YAAY,IAAI,CAAC,CAAC,CAAC;AAEpE,+BAA+B;AAC/B,SAAS,4BAA4B,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnG,4DAA4D;AAC5D,SAAS,iBAAiB,CAAC,GAAG;IAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,8BAA8B,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACpG,CAAC;AA+DD,SAAS,SAAS,CAAC,GAAG,gBAAmC;IACrD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,MAAM;QAAE,MAAM,IAAI,8BAA8B,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,YAAY,GAAG;IACjB,KAAK;IACL,CAAC;IACD,UAAU;QACN,uBAAuB;QACvB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACjC,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM;YAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnD,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,UAAU;YAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACtE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACf,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACzB,CAAC,CAAC,IAAI,CAAC,UAAU,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAA;QACjE,CAAC,CAAC,OAAO,CAAC,YAAY,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;QAC/C,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,YAAY,CAAC,OAAO,EAAE,CAAC,CAAA;IACzD,CAAC;IACD,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,EAAE;CACjB,CAAA;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,KAAU,EAAE,kBAA+D,EAAE;IACtG,IAAI;QACA,IAAI,OAAO,eAAe,KAAK,QAAQ;YAAE,eAAe,GAAG,EAAE,EAAE,EAAE,eAAe,EAAE,CAAA;QAClF,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;QAC3C,eAAe,CAAC,KAAK,GAAG,KAAK,CAAA;QAC7B,eAAe,CAAC,IAAI,GAAG,GAAG,CAAA;QAC1B,MAAM,CAAC,MAAM,EAAE,AAAD,EAAG,UAAU,CAAC,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAA;QACvE,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAA;QAC9H,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAChB,YAAY,CAAC,SAAS,EAAE,CAAA;YACxB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAClB;aAAM;YACH,YAAY,CAAC,OAAO,EAAE,CAAA;YACtB,MAAM,GAAG,GAAG,IAAI,GAAG,SAAS,MAAM,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAA;YACvE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACjC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;SACtB;KACJ;IAAC,OAAO,GAAG,EAAE;QACV,YAAY,CAAC,OAAO,EAAE,CAAA;QACtB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KACf;AACL,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,GAAG,gBAAgB;IAChC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC9D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,MAAM,CAAC,KAAK,EAAE,IAAe,IAAI,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAEnG,SAAS,uBAAuB,CAAC,GAAG,gBAAmC;IACnE,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,6IAA6I;IAC7I,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACjD,MAAM,IAAI,8BAA8B,CAAC,mCAAmC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAEvM,iDAAiD;QACjD,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;YAChI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE;QACpC,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACzB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC1C,IAAI,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC,YAAY,IAAI,KAAK,CAAC;QAC9D,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAA4B,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;QAE/Q,kDAAkD;QAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACd,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACvN,IAAI,KAAK,CAAC,IAAI,CAAC;gBAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,qHAAqH;SACjK;QACD,8CAA8C;QAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,QAAQ,GAAG,IAAI,CAAC;SACnB;QAED,wBAAwB;QACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ;YAAE,SAAS;QACxC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,YAAY;YAAE,OAAO,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAClF,IAAI,QAAQ,CAAC,YAAY;YAAE,SAAS,CAAC,OAAO;QAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAE3E,OAAO;QACP,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B;YAC1G,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAEvC,MAAM,QAAQ,GAAqB;oBAC/B,UAAU;oBACV,UAAU;oBACV,SAAS;oBACT,UAAU;oBACV,WAAW;oBACX,MAAM;oBACN,wBAAwB;oBACxB,MAAM;oBACN,YAAY;oBACZ,OAAO;oBACP,QAAQ;oBACR,QAAQ;oBACR,QAAQ;oBACR,UAAU;oBACV,SAAS;oBACT,QAAQ;oBACR,QAAQ;oBACR,MAAM;oBACN,wCAAwC;iBAC3C,CAAC;gBAEF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,8BAA8B,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExG,MAAM,cAAc,GAAG;oBACnB,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;oBAChD,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBACpD,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrD,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;oBACvD,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC;oBAC9D,sBAAsB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE;oBACvD,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC;oBAC9C,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC;oBACpD,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;oBAChC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,IAAI;oBACzE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACnC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;iBACtC,CAAC;gBAEF,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;oBAC7D,OAAO,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,iCAAiC;oBAC/E,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB;gBAAE,OAAO,OAAO,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACjJ;QAED,iBAAiB;QACjB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,oCAAoC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3I,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC,oCAAoC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3I,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,QAAQ,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC,6BAA6B,EAAE,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAClI,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,QAAQ,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC,6BAA6B,EAAE,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAElI,YAAY;QACZ,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,kBAAkB,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACrI;QAED,4BAA4B;QAC5B,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,kBAAkB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjI;QAED,YAAY;QACZ,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAChC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9E,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxI;QAED,WAAW;QACX,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC9D,OAAO,OAAO,CAAC,kBAAkB,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9E,SAAS;QACT,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACtD,OAAO,OAAO,CAAC,kBAAkB,EAAE,EAAE,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE1F,qEAAqE;QACrE,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM;YACxG,OAAO,OAAO,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM;YACxG,OAAO,OAAO,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM;YACpG,OAAO,OAAO,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;KACxE;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAGD,SAAS,OAAO,CAAC,QAAoD;IACjE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;SACpF,IAAI,OAAO,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,YAAY,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;;QAC9H,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,KAAK,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5C,IAAI,CAAC,CAAC,MAAM;QAAE,MAAM,IAAI,8BAA8B,CAAC,+BAA+B,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjJ,CAAC;AAED,SAAS,cAAc,CAAC,aAAsC,EAAE,aAAc,IAAY,OAAO,YAAY,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;AAE7J,SAAS,sBAAsB,CAAC,aAAkB;IAC9C,IAAI,KAAK,CAAC,aAAa,CAAC;QAAE,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IACzE,OAAO,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,aAAa,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACrK,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,gBAAwC,IAAI,IAAI,EAAE,EAAE,cAAc,GAAG,KAAK,EAAE,oBAAoB,GAAG,KAAK;IAC1H,IAAI,OAAO,CAAC;IACZ,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAClE,oBAAoB;QACpB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;KAC3E;SAAM,IAAI,sBAAsB,CAAC,aAAa,CAAC,EAAE;QAC9C,iDAAiD;QACjD,OAAO,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,6DAA6D;KACtH;SAAM;QACH,IAAI,IAAI,GAAQ,aAAa,CAAC;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAS,IAAI,CAAA;QAC3B,4EAA4E;QAC5E,OAAO,GAAG,EAAE,GAAG,QAAQ,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;KACzK;IACD,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAChD,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAGD,SAAS,aAAa,CAAC,gBAAwC,IAAI,IAAI,EAAE;IACrE,IAAI,OAAO,CAAC;IACZ,IAAI,sBAAsB,CAAC,aAAa,CAAC,EAAE;QACvC,iDAAiD;QACjD,OAAO,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC/C;SAAM;QACH,IAAI,IAAI,GAAQ,aAAa,CAAC;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,4EAA4E;QAC5E,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;KACtE;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AACD;;GAEG;AACH,SAAS,eAAe,CAAC,gBAAqB,IAAI,IAAI,EAAE,EAAE,cAAc,GAAG,IAAI;IAC3E,IAAI,OAAO,GAAG,aAAa,CAAC;IAC5B,IAAI,sBAAsB,CAAC,aAAa,CAAC,EAAE;QACvC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACzD,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAClD;SAAM,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;QAC1C,OAAO,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;KACrC;SAAM;QACH,OAAO,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ;KACxD;IACD,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,eAAe,EAAE,aAAa,GAAG,KAAK,EAAE,MAAO;IAC3E,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;IAE3C,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QAAE,MAAM,IAAI,8BAA8B,CAAC,uBAAuB,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,eAAe,eAAe,MAAM,EAAE,EAAE,CAAC,CAAC;IAE1O,IAAI,CAAC,OAAO,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAElI,MAAM,OAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;IAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI;IACzD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;IAC9C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;IAC3D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;IAC9D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;IAE9D,IAAI,aAAa,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,8BAA8B,CAAC,8BAA8B,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,4DAA4D,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9Y,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAY,EAAE,aAAa,GAAG,KAAK;IAC/D,IAAI,OAAO,GAA2B,YAAY,CAAC;IACnD,IAAI,OAAO,YAAY,KAAK,QAAQ;QAAE,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IACvE,IAAI,KAAK,GAAG,OAAO,YAAY,IAAI,CAAC;IACpC,IAAI,aAAa,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,8BAA8B,CAAC,iCAAiC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1K,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,mBAAmB;AACnB,SAAS,iBAAiB,CAAC,QAAQ;IAC/B,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACpC,OAAO;QACH,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI;QAC5B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI;QAC5B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI;QAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI;QAC7B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI;QAC7B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,KAAK;KACxC,CAAC;AACN,CAAC;AAED;;0EAE0E;AAC1E,SAAS,SAAS,CAAC,gBAAwC,YAAY,EAAE;IACrE,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvD,OAAO;QACH,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI;KAC7B,CAAC;AACN,CAAC;AAED;;0EAE0E;AAC1E,SAAS,YAAY,CAAC,gBAAwC,YAAY,EAAE;IACxE,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvD,OAAO;QACH,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;KAClC,CAAC;AACN,CAAC;AAGD;;GAEG;AACH,SAAS,aAAa,CAAC,aAAqC,EAAE,SAAS,GAAG,GAAG,IAAI,OAAO,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAEnI,kDAAkD;AAClD,SAAS,UAAU,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,IAAI,EAAE;IAEjD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,EACpF,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE7E,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,0CAA0C;AAC1C,aAAa;AACb,0CAA0C;AAE1C,OAAO;AACP,SAAS,YAAY,CAAC,gBAAqB,cAAc,EAAE;IACvD,IAAI,sBAAsB,CAAC,aAAa,CAAC,EAAE;QACvC,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAC3C,OAAO,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KAC9D;SAAM,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrG,OAAO,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;;QAC1C,OAAO,aAAa,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,gBAAgB,GAAG,cAAc,EAAE,EAAE,SAAS,GAAG,GAAG;IACtE,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IACvB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,KAAK;IACtD,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,cAAc,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,8BAA8B,CAAC,sBAAsB,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;;QACxI,OAAO,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,0CAA0C;AAC1C,YAAY;AACZ,0CAA0C;AAE1C,SAAS,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK;IACtD,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAEhG,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;;QAC5C,OAAO;YACR,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI;SAC5D,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,WAAW,EAAE,oBAAoB,GAAG,SAAS,EAAE,UAAU,GAAG,IAAI,EAAE,OAAO,GAAG,KAAK;IAC7I,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpK,IAAI,OAAO;QACP,OAAO,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEhN,OAAO,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAClN,CAAC;AAMD,SAAS,WAAW,CAAC,QAAQ,EAAE,UAAsC,EAAE,eAA8B,MAAM,EAAE,cAAc,GAAG,KAAK;IAC/H,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,UAAU,GAAI,IAAI,CAAC,MAAM,EAAgC,CAAA;IACjF,MAAM,KAAK,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrF,OAAO,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,gBAAwC,YAAY,EAAE,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK;IAC3G,IAAI,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE,OAAO,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AACD;;GAEG;AACH,SAAS,UAAU,CAAC,gBAAwC,YAAY,EAAE,EAAE,eAAe,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK;IACjH,IAAI,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/D,OAAO,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AACD;;GAEG;AACH,SAAS,QAAQ,CAAC,gBAAwC,YAAY,EAAE,EAAE,aAAa,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK;IAC7G,IAAI,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE,OAAO,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AACD;;GAEG;AACH,SAAS,SAAS,CAAC,gBAAwC,YAAY,EAAE,EAAE,cAAc,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK;IAC/G,IAAI,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,cAAc,CAAC,CAAC;IACtD,OAAO,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AACD;;GAEG;AACH,SAAS,QAAQ,CAAC,gBAAwC,YAAY,EAAE,EAAE,aAAa,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK;IAC7G,IAAI,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,aAAa,CAAC,CAAC;IAC3D,OAAO,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAGD,SAAS,gBAAgB,CAAC,gBAAwC,YAAY,EAAE;IAC5E,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,gBAAwC,YAAY,EAAE;IACzE,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,AAAD,EAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,gBAAwC,YAAY,EAAE;IACnE,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,CAAC;AACb,CAAC;AAGD,SAAS,QAAQ,CAAC,gBAAwC,YAAY,EAAE;IACpE,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,CAAC,EAAE,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,gBAAwC,YAAY,EAAE;IACtE,IAAI,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,AAAD,EAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,gBAAwC,YAAY,EAAE,EAAE,YAAY,GAAG,KAAK;IAChG,IAAI,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/G,OAAO,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,gBAAwC,YAAY,EAAE,EAAE,YAAY,GAAG,KAAK;IACjG,IAAI,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACxE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAChH,OAAO,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,wBAAwB,CAAC,kBAAkB,EAAE,gBAAgB;IAClE,MAAM,SAAS,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,mBAAmB,CAAC,kBAAkB,EAAE,gBAAgB;IAC7D,OAAO,wBAAwB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC;AACjF,CAAC;AAED,SAAS,mBAAmB,CAAC,kBAAkB,EAAE,gBAAgB;IAC7D,OAAO,mBAAmB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB;IAC3D,OAAO,mBAAmB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB;IAC1D,OAAO,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB;IAC3D,OAAO,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,gBAAwC,IAAI,IAAI,EAAE,EAAE,gBAAgB,GAAG,UAAU;IAChG,QAAQ,gBAAgB,EAAE;QACtB,KAAK,SAAS,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,UAAU;YACX,OAAO,YAAY,CAAC,aAAa,CAAC,CAAC;QACvC,KAAK,WAAW;YACZ,OAAO,cAAc,CAAC,aAAa,CAAC,CAAC;QACzC,KAAK,wBAAwB;YACzB,OAAO,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACjD,KAAK,MAAM,CAAC;QACZ,KAAK,YAAY,CAAC;QAClB;YACI,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC;KAC7C;AACL,CAAC;AAGD,0CAA0C;AAC1C,SAAS;AACT,0CAA0C;AAE1C,MAAM,MAAM,GAAG;IACX,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK;QACjB,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE,CAAC;QACrC,IAAI,OAAO,aAAa,KAAK,UAAU;YAAE,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QACzE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;aACxC,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEtB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpG,CAAC;IACD;;OAEG;IACH,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG;YACb,CAAC,EAAE,YAAY;YACf,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe,EAAE,OAAO;SAC/B,CAAC;QAEF,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACtD,oDAAoD;YACpD,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,KAAK,CAAC,EAAE;oBACT,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,gDAAgD,CAAC,IAAI,EAAE,CAAC;oBACrG,IAAI,OAAO,EAAE;wBACT,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;wBACjG,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;qBACjI;iBACJ;;oBAAM,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACjD;QACL,CAAC,CAAC,CAAC;QACH,OAAO,2BAA2B,QAAQ,YAAY,CAAC;IAC3D,CAAC;IACD,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;CACX,CAAC;AAEF;;;;;;EAME;AACF,MAAM,CAAC,GAAG;IACN,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAC/B,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAChC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IACjC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAC9B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAC9B,OAAO,EAAE,GAAG,CAAC,EAAE;QACX,MAAM,OAAO,GAAU,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAA;QACxD,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAA;IAC5C,CAAC;IACD,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS;IAC5I,sBAAsB;IACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;IAC3G,EAAE,EAAE,CAAC,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;IAC1G,6BAA6B;IAC7B,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,GAAG,GAAG,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;QAC7J,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;IACzH,CAAC;IACD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;QAE/G,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAClF,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAChF;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;YACvE,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;YACzC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,cAAc,CAAC;YAC1D,OAAO,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5F,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,wBAAwB;IACxB,GAAG,CAAC,GAAG,yBAAyB;QAC5B,yBAAyB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;QAChG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,GAAG,GAAG;QACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;gBAClE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,GAAG;QACV,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;;gBACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,yDAAyD;IACzD,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC;IACpE,yDAAyD;IACzD,OAAO,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;IACjE,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACrE,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtE,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAC7E,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;IAC9E,WAAW,CAAC,GAAG,IAAI;QACf,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7H,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,SAAS;QACL,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IACD;0CACsC;IACtC,YAAY,CAAC,IAAI,EAAE,GAAG,QAAQ;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE;YACzB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;aAC3B;iBAAM;gBACH,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;aAClD;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,aAAa,EAAE,EAAE;IACjB,kDAAkD;IAClD,WAAW,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;QAE3O,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAExE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC;QAE9E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;gBACxB,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC;YACvJ,CAAC,EAAE,EAAE,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,YAAY,CAAC,KAAK,EAAE,GAAG,MAAM;QACzB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,aAAa;IACb,QAAQ,KAAK,CAAC;CACjB,CAAC;AAEF,SAAS,aAAa,CAAC,IAAI,EAAE,KAAY,EAAE,GAAG,MAAM;IAChD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAEtF,IAAI,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAE3D,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;aACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;;gBACxD,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjE;aAAM,IAAI,GAAG,YAAY,KAAK,EAAE;YAC7B,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/E,IAAI,MAAM;gBAAE,UAAU,GAAG,MAAM,CAAC;YAChC,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAChC,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,GAAG,IAAI,2BAA2B,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAChG,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3F,IAAI,MAAM;gBAAE,UAAU,GAAG,MAAM,CAAC;YAChC,GAAG,IAAI,GAAG,CAAC;YACX,OAAO,GAAG,CAAC;SACd;;YAAM,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,UAAU,EAAE;gBAC7B,CAAC,CAAC,GAAG,EAAE,CAAA;gBACP,OAAO,EAAE,CAAA;aACZ;;gBAAM,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC,CAAC,CAAC;QACH,QAAQ;QACR,IAAI,YAAY,EAAE;YACd,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;SAC3E;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;KACvC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,EAAE,QAAe,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC;IACxF,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAClC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,UAAU,CAAC;IACf,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACnG,WAAW;IACX,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;IACzD,IAAI,GAAG,CAAC,KAAK;QAAE,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,gBAAgB;IACvD,aAAa;IACb,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACtB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACnG,IAAI,MAAM;YAAE,UAAU,GAAG,MAAM,CAAC;QAChC,GAAG,IAAI,IAAI,CAAC;KACf;IACD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC;IAClE,IAAI,UAAU,CAAC;IACf,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,iBAAiB,YAAY,KAAK,EAAE,EAAE,oDAAoD;QAC1F,OAAO,wBAAwB,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACnE;SAAM;QACH,MAAM,SAAS,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;YAChE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAC9B,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,KAAK,EAAE;oBACtC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;oBACxG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,UAAU,GAAG,MAAM,CAAC;oBACpB,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAC9B;aACJ;SACJ;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;YAC/B,UAAU,CAAC,IAAI,CACX,2BAA2B,CAAC,SAAS,EAAE,CAAC,CAAC;iBACpC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC;iBAC1C,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;iBACxB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACtD;QACD,OAAO;YACH,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzH,UAAU;SACb,CAAC;KACL;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,2BAA2B;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC5E,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB;KACvF;AACL,CAAC;AAED,2HAA2H;AAC3H,MAAM,iBAAiB;IAWnB,YAAY,IAAI,GAAG,MAAM,EAAE,aAAa,GAAG,OAAO;QAC9C,MAAM,KAAK,GAAG;YACV,KAAK,EAAE;gBACH,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;aACjE;YACD,IAAI,EAAE;gBACF,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAC7D;SACJ,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,GAAG;QACL,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QACpF,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,GAAG,CAAC,KAAK,GAAG,KAAK;QACb,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAC3B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;YAC/C,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC9B,CAAC;IACD,KAAK;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACJ;AAED,0CAA0C;AAC1C,eAAe;AACf,0CAA0C;AAE1C;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,GAAG,EAAE,SAA4F,EAAE;IAClI,IAAI,MAAM,GAAG,GAAG;SACX,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI;QAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI;QAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;QAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,0CAA0C;AAC1C,cAAc;AACd,0CAA0C;AAE1C;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK;IAChE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,IAAI,CAAC;KACvB;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,GAAG,CAAC;KACtB;IACD,IAAI,eAAe,EAAE;QACjB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC;KAClB;;QAAM,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,KAAU,EAAE,MAA4B;IACtE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;IAC3C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAChC,CAAC;AAGD,0CAA0C;AAC1C,gBAAgB;AAChB,0CAA0C;AAG1C,KAAK,UAAU,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvG,KAAK,UAAU,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,IAAI,OAAO,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEjG;;;;;;GAMG;AACH,KAAK,UAAU,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,EAAE,EAAE,kBAAkB,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI;IAC/F,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,sCAAsC,CAAC;IAEnI,IAAI,UAAU;QAAE,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,GAAG,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;IAE5E,OAAO,QAAQ,EAAE,KAAK,IAAI,IAAI,cAAc,EAAE;QAC1C,IAAI,SAAS;YAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;KACtB;IACD,IAAI,SAAS;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,cAAc,IAAI,kBAAkB;QAAE,MAAM,IAAI,8BAA8B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACtG,CAAC;AAGD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;;;GAIG;AACH,KAAK,UAAU,oBAAoB,CAAC,QAAQ,EAAE,IAAI,GAAG,GAAG,EAAE,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACrF,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IACxD,IAAI,WAAW;QAAE,OAAO;IACxB,WAAW,GAAG,IAAI,CAAC;IACnB,OAAO,iBAAiB,CAAC,MAAM,EAAE;QAC7B,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAClE,IAAI;YACA,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;SACvB;QAAC,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,GAAG,CAAC,CAAC;SACtB;KACJ;IACD,WAAW,GAAG,KAAK,CAAC;AACxB,CAAC;AAGD,0CAA0C;AAC1C,cAAc;AACd,0CAA0C;AAE1C,MAAM,kBAAkB,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChD,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAEhC;;;;;;;GAOG;AACH,KAAK,UAAU,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,EAAE,UAAU,GAAG,KAAK;IAChF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC5B,aAAa,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,WAAW,CAAC;KACtB;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAEvE,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,IAAI,UAAU;YAAE,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI;gBACA,UAAU,CAAC,GAAG,EAAE;oBACZ,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,sBAAsB;oBACvD,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC5C,CAAC,EAAE,OAAO,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,CAAC;aAChB;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,GAAG,CAAC,CAAC;aACf;QACL,CAAC,CAAC,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAI;IACnC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,WAAW;IAC1D,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,8BAA8B;IAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;QAAE,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO;IAC/D,kBAAkB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,6BAA6B;AACnE,CAAC,CAAC,iEAAiE;AACnE,iEAAiE;AAEjE;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,eAAe,EAAE,qBAAqB,GAAG,EAAE;IACzE,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,IAAI,kBAAkB,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;QAC/F,IAAI,GAAG;YAAE,MAAM;QACf,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;KACrB;AACL,CAAC;AAED,MAAM,CAAC,GAAG;IACN,KAAK;IACL,MAAM;IACN,GAAG;IACH,GAAG;IACH,UAAU;IACV,GAAG;IACH,MAAM;IACN,aAAa;IACb,OAAO;IACP,OAAO;IACP,QAAQ;IACR,iCAAiC;IACjC,WAAW;IACX,aAAa;IACb,SAAS;IACT,wBAAwB;IACxB,GAAG;IACH,SAAS;IAET,cAAc;IACd,QAAQ;IACR,aAAa;IACb,aAAa;IACb,qBAAqB;IAIrB,UAAU;IACV,OAAO;IACP,aAAa;IACb,gBAAgB;IAChB,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,UAAU;IACV,mBAAmB;IACnB,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,QAAQ;IACR,gBAAgB;IAGhB,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,GAAG;IACH,QAAQ;IACR,SAAS;IACT,aAAa;IACb,eAAe;IACf,wBAAwB;IACxB,4BAA4B;IAC5B,gBAAgB;IAChB,kBAAkB;IAClB,QAAQ;IACR,iBAAiB;IACjB,cAAc;IACd,uBAAuB;IACvB,qBAAqB;IACrB,2BAA2B;IAC3B,mBAAmB;IACnB,0BAA0B;IAC1B,gBAAgB;IAChB,UAAU;IACV,eAAe;IACf,oBAAoB;IACpB,2BAA2B;IAE3B,KAAK;IACL,eAAe;IACf,YAAY;IACZ,cAAc,EAAE,YAAY;IAC5B,MAAM;IAEN,SAAS;IACT,SAAS;IACT,SAAS;IACT,QAAQ,EAAE,SAAS;IACnB,cAAc,EAAE,SAAS;IACzB,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,aAAa;IACb,gBAAgB;IAEhB,UAAU;IACV,UAAU;IACV,yBAAyB;IACzB,uBAAuB;IACvB,YAAY;IAEZ,SAAS;IACT,QAAQ,EAAE,SAAS;IACnB,uBAAuB;IACvB,MAAM;IACN,YAAY;IACZ,OAAO;IACP,MAAM;IACN,YAAY;IACZ,OAAO;IACP,eAAe;IACf,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,qBAAqB;IACrB,cAAc;IACd,OAAO;IACP,4BAA4B;IAC5B,iBAAiB;IACjB,UAAU;IACV,OAAO,EAAE,OAAO;IAEhB,OAAO;IACP,cAAc;IACd,sBAAsB;IACtB,YAAY;IACZ,eAAe;IACf,sBAAsB;IACtB,sBAAsB;IACtB,iBAAiB;IACjB,kBAAkB,EAAE,SAAS;IAC7B,aAAa;IACb,SAAS,EAAE,aAAa;IACxB,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,aAAa;IACb,WAAW;IACX,UAAU;IACV,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,OAAO;IACP,aAAa;IACb,QAAQ;IACR,UAAU;IACV,eAAe;IACf,cAAc;IACd,wBAAwB;IACxB,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,uBAAuB,EAAE,SAAS;IAClC,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,YAAY;IAC9B,mBAAmB,EAAE,eAAe;IAEpC,SAAS;IACT,CAAC;IACD,cAAc;IACd,iBAAiB;IACjB,UAAU,EAAE,MAAM;IAElB,SAAS;IACT,yBAAyB;IAEzB,UAAU;IACV,oBAAoB;IACpB,OAAO;IACP,QAAQ;IACR,aAAa;IAEb,cAAc;IACd,WAAW;IACX,kBAAkB;IAClB,KAAK;IACL,WAAW;IAEX,QAAQ;IACR,iBAAiB;IACjB,SAAS;IACT,QAAQ;CACX,CAAA;AAED,eAAe,CAAC,CAAC;AACjB,OAAO,EACH,KAAK,EACL,MAAM,EACN,GAAG,EACH,GAAG;AACH,UAAU;AACV,GAAG,EACH,MAAM,EACN,aAAa,EACb,OAAO,EACP,OAAO,EACP,QAAQ,EACR,iCAAiC,EACjC,WAAW,EACX,aAAa,EACb,SAAS,EACT,wBAAwB,EACxB,GAAG,EACH,SAAS,EAET,cAAc,EACd,QAAQ,EACR,aAAa,EACb,aAAa,EACb,qBAAqB,EAIrB,UAAU,EACV,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,iBAAiB;AACjB,QAAQ;AACR,gBAAgB,EAGhB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,GAAG,EACH,QAAQ,EACR,SAAS,EACT,aAAa,EACb,eAAe,EACf,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,EAAE,QAAQ;AAC7B,0BAA0B,EAC1B,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,2BAA2B,EAE3B,KAAK,EACL,eAAe,EACf,YAAY,EACZ,YAAY,IAAI,cAAc,EAC9B,MAAM,EAEN,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,IAAI,QAAQ,EACrB,SAAS,IAAI,cAAc,EAC3B,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,gBAAgB,EAEhB,UAAU,EACV,UAAU,EACV,yBAAyB,EACzB,uBAAuB,EACvB,YAAY,EAEZ,SAAS,EACT,SAAS,IAAI,QAAQ,EAAE,wBAAwB;AAC/C,uBAAuB,EACvB,MAAM,EACN,YAAY,EACZ,OAAO,EACP,MAAM,EACN,YAAY,EACZ,OAAO,EACP,eAAe,EACf,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,OAAO,EACP,4BAA4B,EAC5B,iBAAiB;AACjB,UAAU;AACV,OAAO,IAAI,OAAO;AAElB,OAAO;AACP,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,aAAa,IAAI,SAAS,EAC1B,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB;AACjB,mCAAmC;AACnC,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,EACR,OAAO,EACP,aAAa,EACb,QAAQ,EACR,UAAU,EACV,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB;AACjB,UAAU;AACV,YAAY,IAAI,gBAAgB,EAChC,eAAe,IAAI,mBAAmB;AAEtC,SAAS;AACT,CAAC,EACD,cAAc,EACd,iBAAiB;AAEjB,SAAS;AACT,yBAAyB;AAEzB,UAAU;AACV,oBAAoB,EACpB,OAAO,EACP,QAAQ,EACR,aAAa;AAEb,cAAc;AACd,WAAW,EACX,kBAAkB,EAClB,KAAK,EACL,WAAW;AAEX,QAAQ;AACR,iBAAiB,EACjB,SAAS,EACT,QAAQ,GACX,CAAC"}
package/utils.ts CHANGED
@@ -189,7 +189,7 @@ function ENV(): { [key: string]: any } {
189
189
  * @param {any} mayBeAstring
190
190
  * @return !!value
191
191
  */
192
- function parseBool(mayBeAstring: string | boolean): boolean {
192
+ function parseBool(mayBeAstring: string | boolean | number): boolean {
193
193
  if (typeof mayBeAstring === 'boolean') return mayBeAstring;
194
194
  else return mayBeAstring === 'true' ? true : mayBeAstring === 'false' ? false : !!mayBeAstring;
195
195
  }
@@ -390,8 +390,8 @@ function strAsArray(arrOrStr) {
390
390
  /** If not an array provided, return the array with the value
391
391
  * /!\ NOTE /!\ In case the value is null or undefined, it will return that value
392
392
  */
393
- function asArray<T>(item: T | T[]): T[] | undefined {
394
- return typeof item === 'undefined' ? item : Array.isArray(item) ? item : [item]
393
+ function asArray<T extends any[] | any>(item: T): T extends undefined ? undefined : T extends any[] ? T : T[] {
394
+ return ((typeof item === 'undefined' ? item : Array.isArray(item) ? item : [item]) as T extends undefined ? undefined : T extends any[] ? T : T[])
395
395
  }
396
396
 
397
397
  /** Array comparison
@@ -1164,9 +1164,6 @@ function validator(...paramsToValidate: ValidatorObject[]) {
1164
1164
 
1165
1165
  const restTestMini = {
1166
1166
  reset() {
1167
- restTestMini.nbSuccess = 0
1168
- restTestMini.nbError = 0
1169
- restTestMini.lastErrors = []
1170
1167
  },
1171
1168
  printStats() {
1172
1169
  // TODO print last errz
@@ -1369,7 +1366,7 @@ function err422IfNotSet(o) {
1369
1366
  if (m.length) throw new dataValidationUtilErrorHandler(`requiredVariableEmptyOrNotSet`, 422, { origin: 'Validator', varNames: m.join(', ') })
1370
1367
  }
1371
1368
 
1372
- function getDateAsInt12(dateAllFormat?: Date | string | number, errIfNotValid?): number { return getDateAsInt(dateAllFormat, errIfNotValid, true); } // alias
1369
+ function getDateAsInt12(dateAllFormat?: Date | string | number, errIfNotValid?): string { return getDateAsInt(dateAllFormat, errIfNotValid, true); } // alias
1373
1370
 
1374
1371
  function humanReadableTimestamp(dateAllFormat: any): number {
1375
1372
  if (isset(dateAllFormat)) dateAllFormat = getDateAsObject(dateAllFormat);
@@ -1379,9 +1376,13 @@ function humanReadableTimestamp(dateAllFormat: any): number {
1379
1376
  /** format for 6/8/2018 => 20180806
1380
1377
  * @param dateAllFormat multiple format allowed 2012, 20120101, 201201011200, new Date(), "2019-12-08T16:19:10.341Z" and all string that new Date() can parse
1381
1378
  */
1382
- function getDateAsInt(dateAllFormat: Date | string | number = new Date(), errIfNotValid$ = false, withHoursAndMinutes$ = false): number { // optional
1379
+ function getDateAsInt(dateAllFormat: Date | string | number = new Date(), errIfNotValid$ = false, withHoursAndMinutes$ = false): string { // optional
1383
1380
  let dateInt;
1384
- if (isDateIntOrStringValid(dateAllFormat)) {
1381
+ if (typeof dateAllFormat === 'string' && dateAllFormat.includes('/')) {
1382
+ // 01/01/2020 format
1383
+ const [d, m, y] = dateAllFormat.split('/')
1384
+ return y + m.toString().padStart(2, '0') + d.toString().padStart(2, '0')
1385
+ } else if (isDateIntOrStringValid(dateAllFormat)) {
1385
1386
  // we can pass an int or string format (20180106)
1386
1387
  dateInt = (dateAllFormat + '00000000').substr(0, 12); // add default 000000 for "month days minutes:sec" if not set
1387
1388
  } else {
@@ -1578,106 +1579,6 @@ function doDateOverlap(event1, event2, fieldNameForStartDate$ = 'startDate', fie
1578
1579
  return (!event2[fieldNameForEndDate$] || event1[fieldNameForStartDate$] <= event2[fieldNameForEndDate$]) && (!event1[fieldNameForEndDate$] || event1[fieldNameForEndDate$] >= event2[fieldNameForStartDate$]);
1579
1580
  }
1580
1581
 
1581
-
1582
- /** Get all dates at specified days between two dates
1583
- * @param daysArray [0,1,2,3,4,5,6]
1584
- * @param {*} startDate all format
1585
- * @param {*} endDate all format
1586
- * @param {'int'|'object'} outputFormat default: int
1587
- */
1588
- function getDatesForDaysArrayBetweenTwoDates(daysArray, startDate, endDate, outputFormat = 'int') {
1589
- const dateArr = [];
1590
- let actualDate = getDateAsObject(startDate);
1591
- endDate = getDateAsObject(endDate);
1592
- while (actualDate <= endDate) {
1593
- if (daysArray.includes(actualDate.getUTCDay())) dateArr.push(getDateAsObject(actualDate)); // cloned
1594
- actualDate.setUTCDate(actualDate.getUTCDate() + 1);
1595
- }
1596
- return dateArr.map(d => getDateAs(d, outputFormat));
1597
- }
1598
-
1599
- function getEndTimeFromDurationAndStartTime(startTime, duration) {
1600
- const timeArr = startTime.split(':').map(n => parseInt(n));
1601
- let endTime = (timeArr[0] * 60 + timeArr[1]) + duration;
1602
-
1603
- return {
1604
- days: Math.floor(endTime / 1440),
1605
- time: pad(Math.floor((endTime % 1440) / 60)) + ':' + pad(endTime % 60)
1606
- };
1607
- }
1608
-
1609
- function getDate12FromDateAndTime(dateAllFormat: Date | string | number, timeAllFormat) {
1610
- if (typeof dateAllFormat !== 'number' || dateAllFormat > 99991231 || dateAllFormat < 0) dateAllFormat = getDateAsInt(dateAllFormat);
1611
-
1612
- if (typeof timeAllFormat !== 'number' || timeAllFormat > 2359 || timeAllFormat < 0) timeAllFormat = getTimeAsInt(timeAllFormat);
1613
-
1614
- return dateAllFormat * 10000 + timeAllFormat;
1615
- }
1616
-
1617
- function eachDayOfInterval(startDateAllFormat, endDateAllFormat, outputFormat = 'int') {
1618
- const start = getDateAsObject(startDateAllFormat);
1619
- const end = getDateAsObject(endDateAllFormat);
1620
- let days = [];
1621
- let current = new Date();
1622
- current.setTime(start.getTime());
1623
- while (current <= end) {
1624
- days.push(new Date(current.getTime()));
1625
- current.setTime(current.getTime() + 1000 * 60 * 60 * 24);
1626
- }
1627
- return days.map(d => getDateAs(d, outputFormat));
1628
- }
1629
-
1630
- function eachMonthOfInterval(startDateAllFormat, endDateAllFormat) {
1631
- const months = [];
1632
- const current: any = firstDayOfMonth(startDateAllFormat, 'Object');
1633
- const end = firstDayOfMonth(endDateAllFormat, 'Object');
1634
- while (current <= end) {
1635
- months.push(getMonthAsInt(current));
1636
- current.setUTCMonth(current.getUTCMonth() + 1);
1637
- }
1638
- return months;
1639
- }
1640
-
1641
- function isSunday(dateAllFormat: Date | string | number = getDateAsInt()) {
1642
- let date = getDateAsObject(dateAllFormat);
1643
- return date.getUTCDay() === 0;
1644
- }
1645
-
1646
- function isMonday(dateAllFormat: Date | string | number = getDateAsInt()) {
1647
- let date = getDateAsObject(dateAllFormat);
1648
- return date.getUTCDay() === 1;
1649
- }
1650
-
1651
- function isTuesday(dateAllFormat: Date | string | number = getDateAsInt()) {
1652
- let date = getDateAsObject(dateAllFormat);
1653
- return date.getUTCDay() === 2;
1654
- }
1655
-
1656
- function isWednesday(dateAllFormat: Date | string | number = getDateAsInt()) {
1657
- let date = getDateAsObject(dateAllFormat);
1658
- return date.getUTCDay() === 3;
1659
- }
1660
-
1661
- function isThursday(dateAllFormat: Date | string | number = getDateAsInt()) {
1662
- let date = getDateAsObject(dateAllFormat);
1663
- return date.getUTCDay() === 4;
1664
- }
1665
-
1666
- function isFriday(dateAllFormat: Date | string | number = getDateAsInt()) {
1667
- let date = getDateAsObject(dateAllFormat);
1668
- return date.getUTCDay() === 5;
1669
- }
1670
-
1671
- function isSaturday(dateAllFormat: Date | string | number = getDateAsInt()) {
1672
- let date = getDateAsObject(dateAllFormat);
1673
- return date.getUTCDay() === 6;
1674
- }
1675
-
1676
- function isWeekend(dateAllFormat: Date | string | number = getDateAsInt()) {
1677
- let date = getDateAsObject(dateAllFormat);
1678
- return date.getUTCDay() === 6 || date.getUTCDay() === 0;
1679
- }
1680
-
1681
1582
  type DateAllFormat = 'dateInt8' | 'dateInt12' | 'date' | 'humanReadableTimestamp'
1682
1583
 
1683
1584
  function nextWeekDay(fromDate, weekDayInt?: 0 | 1 | 2 | 3 | 4 | 5 | 6, outputFormat?: 'dateInt8' | 'dateInt12' | 'humanReadableTimestamp', sameDayAllowed?: boolean): number
@@ -1762,6 +1663,7 @@ function getMinutes(dateAllFormat: Date | string | number = getDateAsInt()) {
1762
1663
  const [, , , , m] = dateStringToArray(dateAsInt);
1763
1664
  return m;
1764
1665
  }
1666
+
1765
1667
  /**
1766
1668
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
1767
1669
  */
@@ -1771,6 +1673,7 @@ function lastDayOfMonth(dateAllFormat: Date | string | number = getDateAsInt(),
1771
1673
  lastDay.setUTCHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());
1772
1674
  return getDateAs(lastDay, outputFormat);
1773
1675
  }
1676
+
1774
1677
  /**
1775
1678
  * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
1776
1679
  */
@@ -1807,100 +1710,6 @@ function differenceInWeeks(startDateAllFormat, endDateAllFormat) {
1807
1710
  return differenceInDays(startDateAllFormat, endDateAllFormat) / 7;
1808
1711
  }
1809
1712
 
1810
- function differenceInMonths(startDateAllFormat, endDateAllFormat) {
1811
- const startDate = getDateAsInt(startDateAllFormat);
1812
- const endDate = getDateAsInt(endDateAllFormat);
1813
- const monthesForStart = parseInt(getYear(startDate)) * 12 + parseInt(getMonthForHuman(startDate));
1814
- const monthesForEnd = parseInt(getYear(endDate)) * 12 + parseInt(getMonthForHuman(endDate));
1815
- if (monthesForStart === monthesForEnd) {
1816
- const firstDay = firstDayOfMonth(startDate);
1817
- const lastDay = lastDayOfMonth(endDate);
1818
- const differenceBetweenStartAndEnd = differenceInDays(startDate, endDate);
1819
- const numberOfDaysInMonth = differenceInDays(firstDay, lastDay);
1820
- return round(differenceBetweenStartAndEnd / numberOfDaysInMonth, 2);
1821
- }
1822
- const firstDayOfStartDateMonth = firstDayOfMonth(startDate);
1823
- const lastDayOfStartDateMonth = lastDayOfMonth(startDate);
1824
- const firstDayOfEndDateMonth = firstDayOfMonth(endDate);
1825
- const lastDayOfEndDateMonth = lastDayOfMonth(endDate);
1826
- const differenceBetweenStartDateAndEndOfStartMonth = differenceInDays(startDate, lastDayOfStartDateMonth);
1827
- const differenceBetweenStartOfEndMonthAndEndDate = differenceInDays(firstDayOfEndDateMonth, endDate);
1828
- const numberOfDaysInStartMonth = differenceInDays(firstDayOfStartDateMonth, lastDayOfStartDateMonth);
1829
- const numberOfDaysInEndMonth = differenceInDays(firstDayOfEndDateMonth, lastDayOfEndDateMonth);
1830
- return round(monthesForEnd - monthesForStart - 1 + differenceBetweenStartDateAndEndOfStartMonth / numberOfDaysInStartMonth + differenceBetweenStartOfEndMonthAndEndDate / numberOfDaysInEndMonth, 2);
1831
- }
1832
-
1833
-
1834
- /** Will check if that date exists, and if not, this will
1835
- * Usefull for monthly subscription or reccuring month dates
1836
- * @param {any} dateAllFormat default: new Date()
1837
- * @returns {Date} Date object
1838
- */
1839
- function getClosestExistingDateOfMonth(dateAllFormat: Date | string | number = getDateAsInt()) {
1840
- let [day, month, year] = dateArrayInt(dateAllFormat);
1841
- const zeroBasedMonth = minMax(month - 1, 0, 11);
1842
- if (!isBetween(month, 1, 12)) console.error('Wrong month provided for getClosestExistingDateOfMonth: ' + month + ' Shall be between 1-12. Converted to ' + zeroBasedMonth);
1843
- let dayNb = minMax(day, 1, 31);
1844
- let date;
1845
- let increment = dayNb < 1;
1846
- let tooMuchRecursionCount = 0;
1847
- do date = new Date(year, zeroBasedMonth, (increment ? dayNb++ : dayNb--), 12);
1848
- while (date.getUTCMonth() !== zeroBasedMonth && tooMuchRecursionCount < 99);
1849
- if (tooMuchRecursionCount) throw new dataValidationUtilErrorHandler(`tooMuchRecursionCount`, 500, { origin: 'getClosestExistingDateOfMonth', day, month, year });
1850
- return date;
1851
- }
1852
-
1853
- /** Compute the best possible date for next month same day
1854
- * Usefull for monthly subscription or reccuring month dates
1855
- * @param {any} dateAllFormat default: new Date()
1856
- * @param {Boolean} onlyFuture if true return the future date relative to any date in the past, else, it return the next month date possible relative to the dateAllFormat
1857
- * @returns {Date} Date object
1858
- */
1859
- function getNextMonthlyDate(dateAllFormat: Date | string | number = getDateAsInt(), onlyFuture = false) {
1860
- let [day, month, year] = dateArrayInt(dateAllFormat);
1861
- day = minMax(day, 1, 31);
1862
- month = minMax(month, 1, 12);
1863
- err422IfNotSet({ year, month, day });
1864
- const isDatePast = getDateAsInt(dateAllFormat) <= getDateAsInt();
1865
- if (onlyFuture && isDatePast) {
1866
- let [, todayMonth, todayYear] = dateArrayInt();
1867
- month = todayMonth
1868
- year = todayYear
1869
- }
1870
- let nextMonth;
1871
- if (month === 12) {
1872
- nextMonth = 1;
1873
- year++;
1874
- } else nextMonth = month + 1;
1875
- return getClosestExistingDateOfMonth(new Date(year, nextMonth - 1, day));
1876
- }
1877
-
1878
- function getHolidayReferenceYear(dateAllFormat: Date | string | number) {
1879
- let date = getDateAsObject(dateAllFormat);
1880
- if (date.getUTCMonth() > 4) return date.getUTCFullYear();
1881
- return date.getUTCFullYear() - 1;
1882
- }
1883
- /**
1884
- * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
1885
- */
1886
- function getFirstDayOfHolidayReferenceYear(dateAllFormat: Date | string | number, outputFormat = 'int') {
1887
- const date = getDateAsObject(dateAllFormat);
1888
- let year = date.getUTCFullYear();
1889
- if (date.getUTCMonth() < 4) year = date.getUTCFullYear() - 1;
1890
- const firstDayAsInt = year + '0601';
1891
- return getDateAs(firstDayAsInt, outputFormat);
1892
- }
1893
- /**
1894
- * @param {String} outputFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
1895
- */
1896
- function getLastDayOfHolidayReferenceYear(dateAllFormat: Date | string | number, outputFormat = 'int') {
1897
- let date = getDateAsObject(dateAllFormat);
1898
- let year = date.getUTCFullYear() + 1;
1899
- if (date.getUTCMonth() < 4) year = date.getUTCFullYear();
1900
- const firstDayAsInt = year + '0531';
1901
- return getDateAs(firstDayAsInt, outputFormat);
1902
- }
1903
-
1904
1713
  /**
1905
1714
  * @param {String} outputDateFormat dateInt, dateInt8, dateInt12, date, humanReadableTimestamp, int (dateInt8)
1906
1715
  */
@@ -2566,18 +2375,7 @@ const _ = {
2566
2375
  isTimeStringValid,
2567
2376
  getDuration,
2568
2377
  doDateOverlap,
2569
- getDatesForDaysArrayBetweenTwoDates,
2570
- getEndTimeFromDurationAndStartTime,
2571
- getDate12FromDateAndTime,
2572
2378
  getMonthAsInt,
2573
- isSunday,
2574
- isMonday,
2575
- isTuesday,
2576
- isWednesday,
2577
- isThursday,
2578
- isFriday,
2579
- isSaturday,
2580
- isWeekend,
2581
2379
  nextWeekDay,
2582
2380
  addMinutes,
2583
2381
  addHours,
@@ -2590,20 +2388,12 @@ const _ = {
2590
2388
  getMinutes,
2591
2389
  firstDayOfMonth,
2592
2390
  lastDayOfMonth,
2593
- eachDayOfInterval,
2594
- eachMonthOfInterval,
2595
2391
  differenceInMilliseconds,
2596
2392
  differenceInSeconds,
2597
2393
  differenceInMinutes,
2598
2394
  differenceInHours,
2599
2395
  differenceInDays,
2600
2396
  differenceInWeeks,
2601
- differenceInMonths,
2602
- getClosestExistingDateOfMonth,
2603
- getNextMonthlyDate,
2604
- getHolidayReferenceYear,
2605
- getFirstDayOfHolidayReferenceYear,
2606
- getLastDayOfHolidayReferenceYear,
2607
2397
  // ALIASES
2608
2398
  getDateAsArrayFormatted: dateArray,
2609
2399
  getDateAsArray: dateStringToArray,
@@ -2772,18 +2562,7 @@ export {
2772
2562
  // isDateObject <= see validator.js
2773
2563
  getDuration,
2774
2564
  doDateOverlap,
2775
- getDatesForDaysArrayBetweenTwoDates,
2776
- getEndTimeFromDurationAndStartTime,
2777
- getDate12FromDateAndTime,
2778
2565
  getMonthAsInt,
2779
- isSunday,
2780
- isMonday,
2781
- isTuesday,
2782
- isWednesday,
2783
- isThursday,
2784
- isFriday,
2785
- isSaturday,
2786
- isWeekend,
2787
2566
  nextWeekDay,
2788
2567
  addMinutes,
2789
2568
  addHours,
@@ -2796,20 +2575,12 @@ export {
2796
2575
  getMinutes,
2797
2576
  firstDayOfMonth,
2798
2577
  lastDayOfMonth,
2799
- eachDayOfInterval,
2800
- eachMonthOfInterval,
2801
2578
  differenceInMilliseconds,
2802
2579
  differenceInSeconds,
2803
2580
  differenceInMinutes,
2804
2581
  differenceInHours,
2805
2582
  differenceInDays,
2806
2583
  differenceInWeeks,
2807
- differenceInMonths,
2808
- getClosestExistingDateOfMonth,
2809
- getNextMonthlyDate,
2810
- getHolidayReferenceYear,
2811
- getFirstDayOfHolidayReferenceYear,
2812
- getLastDayOfHolidayReferenceYear,
2813
2584
  // ALIASES
2814
2585
  getDateAsInt as convertDateAsInt,
2815
2586
  getDateAsObject as convertDateAsObject,