@openhealth/oht-custom-parser-lib 0.4.3 → 0.5.3

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.
Files changed (44) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.js +21 -2
  3. package/dist/index.js.map +1 -1
  4. package/dist/service/auxiliaryFunctions.service.d.ts +2 -0
  5. package/dist/service/auxiliaryFunctions.service.js +4 -3
  6. package/dist/service/auxiliaryFunctions.service.js.map +1 -1
  7. package/dist/service/fileUploadErrorHandler.service.d.ts +26 -0
  8. package/dist/service/fileUploadErrorHandler.service.js +257 -0
  9. package/dist/service/fileUploadErrorHandler.service.js.map +1 -0
  10. package/dist/service/ohtMeasurementsExtractor.service.js +24 -25
  11. package/dist/service/ohtMeasurementsExtractor.service.js.map +1 -1
  12. package/dist/service/ohtReportMeasurementsExtractor.service.d.ts +1 -0
  13. package/dist/service/ohtReportMeasurementsExtractor.service.js +35 -39
  14. package/dist/service/ohtReportMeasurementsExtractor.service.js.map +1 -1
  15. package/dist/service/processingLogger.service.d.ts +150 -0
  16. package/dist/service/processingLogger.service.js +533 -0
  17. package/dist/service/processingLogger.service.js.map +1 -0
  18. package/dist/service/reportCreator.service.d.ts +1 -1
  19. package/dist/service/reportCreator.service.js +53 -65
  20. package/dist/service/reportCreator.service.js.map +1 -1
  21. package/dist/service/slackMessages.service.js +4 -5
  22. package/dist/service/slackMessages.service.js.map +1 -1
  23. package/dist/service/transformationRules.service.js +3 -10
  24. package/dist/service/transformationRules.service.js.map +1 -1
  25. package/dist/types/error.types.d.ts +82 -0
  26. package/dist/types/error.types.js +195 -0
  27. package/dist/types/error.types.js.map +1 -1
  28. package/dist/types/oht.types.d.ts +5 -1
  29. package/dist/types/oht.types.js +4 -0
  30. package/dist/types/oht.types.js.map +1 -1
  31. package/dist/util-ts/apiUtils.js +2 -3
  32. package/dist/util-ts/apiUtils.js.map +1 -1
  33. package/dist/util-ts/dataUtils.d.ts +4 -3
  34. package/dist/util-ts/dataUtils.js +30 -19
  35. package/dist/util-ts/dataUtils.js.map +1 -1
  36. package/dist/util-ts/extractionUtils.js +4 -8
  37. package/dist/util-ts/extractionUtils.js.map +1 -1
  38. package/dist/util-ts/pinoLogger.js +28 -1
  39. package/dist/util-ts/pinoLogger.js.map +1 -1
  40. package/package.json +36 -34
  41. package/readme.md +115 -99
  42. package/dist/service/ohtAgnosticMeasurementsExtractor.service.d.ts +0 -59
  43. package/dist/service/ohtAgnosticMeasurementsExtractor.service.js +0 -603
  44. package/dist/service/ohtAgnosticMeasurementsExtractor.service.js.map +0 -1
@@ -14,12 +14,11 @@ exports.extractValueFromGreaterLowerThan = extractValueFromGreaterLowerThan;
14
14
  const crypto_1 = __importDefault(require("crypto"));
15
15
  const dataUtils_1 = require("../util-ts/dataUtils");
16
16
  const regexUtils_1 = require("../util-ts/regexUtils");
17
- const pinoLogger_1 = __importDefault(require("../util-ts/pinoLogger"));
17
+ const processingLogger_service_1 = require("./processingLogger.service");
18
18
  const apiUtils_1 = require("../util-ts/apiUtils");
19
19
  const oht_types_1 = require("../types/oht.types");
20
20
  const transformationRules_service_1 = require("./transformationRules.service");
21
21
  const auxiliaryFunctions_service_1 = require("./auxiliaryFunctions.service");
22
- const logger = (0, pinoLogger_1.default)();
23
22
  const OHT_CORE_URL = process.env.OHT_CORE_URL;
24
23
  let filename = '';
25
24
  function extractUnit(unitExtraction, rawData, ohtBiomarker, synonymUnits = null, partnerId = null) {
@@ -297,7 +296,7 @@ function checkValueForPlausibleValues(labToOhtMapper, ohtBiomarker, unit, value,
297
296
  const isPlausibleValue = value >= plausibleLowerValue && value <= plausibleUpperValue;
298
297
  // Log if the value is not plausible
299
298
  if (!isPlausibleValue) {
300
- logger.warn({ labToOhtMapper, value, standardUnit, plausibleLowerValue, plausibleUpperValue, filename }, `Value "${value} ${standardUnit}" not plausible "${plausibleLowerValue} to ${plausibleUpperValue}" for "${labToOhtMapper.ohtBmId}" | "${labToOhtMapper.labKey}", filename: ${filename}`);
299
+ processingLogger_service_1.processingLogger.logWarn(`Value "${value} ${standardUnit}" not plausible "${plausibleLowerValue} to ${plausibleUpperValue}" for "${labToOhtMapper.ohtBmId}" | "${labToOhtMapper.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { labToOhtMapper, value, standardUnit, plausibleLowerValue, plausibleUpperValue, filename: (0, processingLogger_service_1.getRequestScopedFilename)(filename) });
301
300
  }
302
301
  return isPlausibleValue;
303
302
  }
@@ -307,9 +306,9 @@ function checkValueForPlausibleValues(labToOhtMapper, ohtBiomarker, unit, value,
307
306
  *
308
307
  * @param exams - Array of original exam objects with synthetic IDs
309
308
  * @param transformationRules - Mapping of labKey to transformation rule chains
310
- * @param patientInfo - Patient information
311
- * @param documentDate - Document date
312
- * @returns Promise<ApplyTransformationRulesResult> - Array of transformed exams and error messages
309
+ * @param patientInfo - PatientInfo
310
+ * @param documentDate - Source DocumentDate
311
+ * @returns Promise<ApplyTransformationRulesResult[]> - Array of transformed exams
313
312
  */
314
313
  async function applyTransformationRulesToExams(exams, transformationRules, patientInfo, documentDate) {
315
314
  if (transformationRules.size === 0) {
@@ -331,7 +330,7 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
331
330
  const ohtReport = {
332
331
  exams: exams.map(e => e.ohtExam),
333
332
  };
334
- logger.info({ examsCount: exams.length, chainsCount: transformationRules.size, filename }, 'Applying transformation rules to exams...');
333
+ processingLogger_service_1.processingLogger.logInfo('Applying transformation rules to exams...', { exams_count: exams.length, chains_count: transformationRules.size, filename });
335
334
  let labKeysWithRulesCount = 0;
336
335
  let transformedLabKeysCount = 0;
337
336
  const applicationErrorMessages = [];
@@ -349,7 +348,7 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
349
348
  contextJson: reportContext,
350
349
  });
351
350
  if (result.errors.length > 0) {
352
- logger.warn({ labKey, errors: result.errors, filename }, 'Errors applying transformation rule(s) for labKey.');
351
+ processingLogger_service_1.processingLogger.logWarn('Errors applying transformation rule(s) for labKey.', { labKey, errors: result.errors, filename });
353
352
  applicationErrorMessages.push(`${labKey}: ${result.errors.map(e => `(rule ID ${e.ruleId}) ${e.error}`).join('; ')}`);
354
353
  // Keep original exam when transformation fails
355
354
  transformedExams.push(exam);
@@ -358,7 +357,7 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
358
357
  if (result.appliedRules.length > 0) {
359
358
  transformedLabKeysCount++;
360
359
  }
361
- logger.info({ labKey, appliedRules: result.appliedRules.length, filename }, 'Done applying transformation rule(s) for labKey.');
360
+ processingLogger_service_1.processingLogger.logInfo('Done applying transformation rule(s) for labKey.', { labKey, applied_rules: result.appliedRules.length, filename });
362
361
  // Preserve the synthetic ID through transformation
363
362
  transformedExams.push({
364
363
  _syntheticId: exam._syntheticId,
@@ -368,19 +367,19 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
368
367
  }
369
368
  }
370
369
  catch (error) {
371
- logger.error({ labKey, error, filename }, 'Failed to apply transformation rules for labKey.');
370
+ processingLogger_service_1.processingLogger.logError('Failed to apply transformation rules for labKey.', error instanceof Error ? error : undefined, { labKey, filename });
372
371
  applicationErrorMessages.push(`${labKey}: Unhandled error occurred.`);
373
372
  // Keep original exam when transformation throws
374
373
  transformedExams.push(exam);
375
374
  }
376
375
  }
377
- logger.info({
376
+ processingLogger_service_1.processingLogger.logInfo('Done applying the transformation rules to exams.', {
378
377
  filename,
379
- examsCount: exams.length,
380
- chainsCount: transformationRules.size,
381
- transformedLabKeysCount,
382
- labKeysWithRulesCount,
383
- }, 'Done applying the transformation rules to exams.');
378
+ exams_count: exams.length,
379
+ chains_count: transformationRules.size,
380
+ transformed_lab_keys_count: transformedLabKeysCount,
381
+ lab_keys_with_rules_count: labKeysWithRulesCount,
382
+ });
384
383
  return {
385
384
  transformedExams,
386
385
  applicationErrorMessages
@@ -414,10 +413,10 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
414
413
  transformedExamsResult = await applyTransformationRulesToExams(examsWithIds, transformationRules, labToOhtContract.patientInfo, labToOhtContract.documentDate);
415
414
  }
416
415
  catch (error) {
417
- logger.error({ error, filename }, 'Unhandled error while applying transformation rules to exams.');
416
+ processingLogger_service_1.processingLogger.logError('Unhandled error while applying transformation rules to exams.', error instanceof Error ? error : undefined, { filename: (0, processingLogger_service_1.getRequestScopedFilename)(filename) });
418
417
  labToOhtContract.errorMessages.push({
419
418
  destination: { slack: true, notes: true, bi: false },
420
- message: `Failed applying the transformation rules for filename ${filename}. ${error instanceof Error ? error.message : error}`,
419
+ message: `Failed applying the transformation rules for filename ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}. ${error instanceof Error ? error.message : error}`,
421
420
  });
422
421
  }
423
422
  if (transformedExamsResult.applicationErrorMessages.length > 0) {
@@ -460,7 +459,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
460
459
  if (!labToOhtMapper.rawExam) {
461
460
  labToOhtContract.errorMessages.push({
462
461
  destination: { slack: true, notes: false, bi: false },
463
- message: `Missing rawExam for labKey: ${labToOhtMapper.labKey} filename: ${filename}`,
462
+ message: `Missing rawExam for labKey: ${labToOhtMapper.labKey} filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`,
464
463
  });
465
464
  return;
466
465
  }
@@ -476,7 +475,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
476
475
  if (labToOhtMapper?.ohtBmId && labToOhtMapper?.ohtBmId !== -1) {
477
476
  // if BM is already in measurements, continue to the next one
478
477
  if (measurements.some(measurement => measurement.biomarkerId === labToOhtMapper.ohtBmId)) {
479
- logger.warn({ labToOhtMapper }, `Biomarker already in measurements array, should investigate, filename: ${filename}`);
478
+ processingLogger_service_1.processingLogger.logWarn(`Biomarker already in measurements array, should investigate, filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { labToOhtMapper });
480
479
  labToOhtContract.errorMessages.push({
481
480
  destination: { slack: false, notes: false, bi: true },
482
481
  message: `Biomarkers Duplicated keys:[PLACEHOLDER]`,
@@ -503,7 +502,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
503
502
  });
504
503
  }
505
504
  if (!isUnitParsedCorrectly) {
506
- logger.warn({ labToOhtMapper }, `Unit not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${filename}`);
505
+ processingLogger_service_1.processingLogger.logWarn(`Unit not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { labToOhtMapper });
507
506
  labToOhtContract.errorMessages.push({
508
507
  destination: { slack: true, notes: true, bi: true },
509
508
  message: `Unit not extracted correctly for:[PLACEHOLDER]`,
@@ -513,7 +512,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
513
512
  }
514
513
  let { valueType, alphanumericalValue, numberValue, valueComparator, isValueParsedCorrectly } = parseExamValue(examObj, labToOhtMapper.valueExtraction, ohtBiomarker);
515
514
  if (!isValueParsedCorrectly) {
516
- logger.warn({ labToOhtMapper }, `Value not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${filename}`);
515
+ processingLogger_service_1.processingLogger.logWarn(`Value not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { labToOhtMapper });
517
516
  labToOhtContract.errorMessages.push({
518
517
  destination: { slack: true, notes: true, bi: true },
519
518
  message: `Value not extracted correctly for:[PLACEHOLDER]`,
@@ -549,7 +548,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
549
548
  if (isValueParsedCorrectly && valueType === 'NUMERICAL') {
550
549
  const isPlausibleValue = numberValue !== null && checkValueForPlausibleValues(labToOhtMapper, ohtBiomarker, unit, numberValue, isUnitParsedCorrectly);
551
550
  if (!isPlausibleValue) {
552
- logger.warn({ labToOhtMapper }, `Value [${numberValue} ${unit}] is not plausible for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${filename}`);
551
+ processingLogger_service_1.processingLogger.logWarn(`Value [${numberValue} ${unit}] is not plausible for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { labToOhtMapper });
553
552
  labToOhtContract.errorMessages.push({
554
553
  destination: { slack: true, notes: true, bi: true },
555
554
  message: `Value is not plausible for:[PLACEHOLDER]`,
@@ -567,7 +566,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
567
566
  to = extractedRange.to ?? null;
568
567
  isRangeParsedCorrectly = extractedRange.isRangeParsedCorrectly;
569
568
  if (!isRangeParsedCorrectly) {
570
- logger.warn({ labToOhtMapper }, `Range not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${filename}`);
569
+ processingLogger_service_1.processingLogger.logWarn(`Range not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { labToOhtMapper });
571
570
  labToOhtContract.errorMessages.push({
572
571
  destination: { slack: true, notes: true, bi: true },
573
572
  message: `Range not extracted correctly for:[PLACEHOLDER]`,
@@ -624,7 +623,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
624
623
  measurements.push(measurement);
625
624
  }
626
625
  else {
627
- logger.warn(`Created an ungroupedBiomarker for id: ${labToOhtMapper.labKey}, filename: ${filename}`);
626
+ processingLogger_service_1.processingLogger.logWarn(`Created an ungroupedBiomarker for id: ${labToOhtMapper.labKey}, filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`);
628
627
  labToOhtContract.errorMessages.push({
629
628
  destination: { slack: false, notes: false, bi: true },
630
629
  message: `Created ungroupedBiomarkers for:[PLACEHOLDER]`,
@@ -1 +1 @@
1
- {"version":3,"file":"ohtMeasurementsExtractor.service.js","sourceRoot":"","sources":["../../service/ohtMeasurementsExtractor.service.ts"],"names":[],"mappings":";;;;;;AAg5BE,4DAAwB;AACxB,oEAA4B;AAC5B,wDAAsB;AACtB,gEAA0B;AAC1B,wCAAc;AAEd,kCAAW;AACX,4EAAgC;AAv5BlC,oDAA4B;AAW5B,oDAAiL;AACjL,sDAAmF;AACnF,uEAA+C;AAC/C,kDAAyD;AACzD,kDAQ4B;AAC5B,+EAAyD;AACzD,6EAA6D;AAE7D,MAAM,MAAM,GAAG,IAAA,oBAAU,GAAE,CAAC;AAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAC9C,IAAI,QAAQ,GAAG,EAAE,CAAC;AAKlB,SAAS,WAAW,CAClB,cAA0C,EAC1C,OAAY,EACZ,YAAuB,EACvB,eAAqC,IAAI,EACzC,YAAuC,IAAI;IAE3C,IAAI,CAAC,IAAA,qCAAyB,EAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IAChH,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,wBAAwB,KAAK,SAAS,CAAC;IAChF,IAAI,YAAY,GAAG,EAAE,CAAC;IAEtB,oDAAoD;IACpD,IAAI,cAAc,IAAI,cAAc,EAAE,cAAc,EAAE,CAAC;QACrD,MAAM,uBAAuB,GAAG,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvE,OAAO,EAAC,IAAI,EAAE,uBAAuB,IAAI,EAAE,EAAE,qBAAqB,EAAE,CAAC,CAAC,uBAAuB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IAC/J,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IACjE,IAAI,aAAa,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC;IACxC,aAAa,GAAG,aAAa,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAE1D,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAA;IAClD,MAAM,aAAa,GAAG;QACpB,YAAY,EAAE,WAAW,EAAE;QAC3B,GAAG,YAAY,CAAC,GAAG,EAAE,gBAAgB;YACnC,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CACtB,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CACjC,IAAI,EAAE;KACV,CAAC;IAEF,8HAA8H;IAC9H,IAAI,eAAe,EAAE,CAAC;QACpB,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IAC1I,CAAC;IAED,yEAAyE;IACzE,MAAM,uBAAuB,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACtE,IAAI,aAAa,EAAE,MAAM,GAAG,CAAC,IAAI,uBAAuB,EAAE,CAAC;QACzD,uEAAuE;QACvE,IAAI,WAAW,GAAG,YAAY,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,aAAa;YAClF,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,CACtC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,aAAa,CAC3F,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAElC,mFAAmF;QACnF,WAAW,GAAG,WAAW,IAAI,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAExD,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,qBAAqB,EAAE,IAAI;YAC3B,YAAY,EAAE,YAAY;YAC1B,eAAe,EAAE,eAAe;YAChC,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;IAGD,4CAA4C;IAC5C,IAAI,aAAa,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,YAAY,GAAkB,IAAI,CAAC;QAEvC,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAA,mCAAuB,EACtC,aAAa,EACb,YAAY,CAAC,EAAE,EACf,SAAS,EACT,YAAY,CACb,CAAC;YACF,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC1C,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,+BAA+B,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3F,IAAI,+BAA+B,EAAE,CAAC;gBACpC,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;YAC1I,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,cAAc,EAAE,CAAC;QACnC,MAAM,6BAA6B,GAAG,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1G,kFAAkF;QAClF,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IACrL,CAAC;IAED,IAAI,cAAc,EAAE,eAAe,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,wBAAwB,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QACnF,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,wBAAwB,EAAE,CAAC;YAC3C,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;QACxI,CAAC;IACH,CAAC;IACD,gFAAgF;IAChF,OAAO,EAAC,IAAI,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;AAC/G,CAAC;AAED,SAAS,0BAA0B,CAAC,cAA8B,EAAE,OAAY,EAAE,WAAwB,EAAE,YAAmB,EAAE,KAAc;IAC7I,MAAM,wBAAwB,GAAG,cAAc,EAAE,qBAAqB,EAAE,cAAc,CAAC;IAEvF,IAAI,UAAU,GAAW,EAAE,CAAC;IAE5B,uEAAuE;IACvE,IAAI,cAAc,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAA,mCAAuB,EAAC,KAAK,EAAE,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE;YACvG,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC,SAAS;YACpD,aAAa,EAAE,cAAc,CAAC,gBAAgB,CAAC,aAAa;YAC5D,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC,SAAS;SACrD,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAChC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,IAAI,wBAAwB,EAAE,CAAC;QAC7B,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACzG,IAAI,mBAAmB,EAAE,MAAM,EAAE,CAAC;YAChC,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC9E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,kBAAkB,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAA;QACjG,MAAM,SAAS,GAAG,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,kBAAkB,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,kBAAkB,CAAC;QAC7G,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;YACtB,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,UAAU,IAAI,SAAS,CAAC;AACjC,CAAC;AAED,MAAM,4BAA4B,GAAG,CAAC,eAAgC,EAAE,OAAY,EAGlF,EAAE;IACF,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;IACxD,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;IACpD,MAAM,KAAK,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAClG,MAAM,KAAK,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAEnD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,KAAK,EAAE,CAAC;YACV,wBAAwB;YACxB,4DAA4D;YAC5D,yDAAyD;YACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9F,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,QAAQ;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,SAAS;KACd,CAAC;AACJ,CAAC,CAAC;AA4sBA,oEAA4B;AA1sB9B,SAAS,sBAAsB,CAAC,cAA8B,EAAE,OAAY,EAAE,WAAwB,EAAE,YAAmB;IACzH,MAAM;IACN,MAAM,2BAA2B,GAA4B,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAC,CAAC;IACnH,MAAM,wBAAwB,GAA4B,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAC,CAAC;IAE/G,wDAAwD;IACxD,IAAI,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;QACtD,qIAAqI;QACrI,OAAO,wBAAwB,CAAC;IAClC,CAAC,CAAI,+BAA+B;IAEpC,4CAA4C;IAC5C,qDAAqD;IACrD,sFAAsF;IACtF,IAAI,qBAAqB,GAA4B,cAAc,EAAE,eAAe,EAAE,0BAA0B;QAC9G,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,0BAA0B,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;QAC/G,CAAC,CAAC,2BAA2B,CAAC;IAEhC,IAAI,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QACjD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,qDAAqD;IACrD,IAAI,cAAc,CAAC,eAAe,EAAE,cAAc,EAAE,CAAC;QACnD,qBAAqB,GAAG,cAAc,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAC1H,IAAI,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;YACjD,OAAO,qBAAqB,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,cAAc,CAAC,eAAe,EAAE,eAAe,EAAE,CAAC;QACpD,IAAI,EACF,IAAI,EACJ,EAAE,GACH,GAAG,4BAA4B,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1E,IACE,cAAc,CAAC,eAAe,EAAE,aAAa;eAC1C,CAAC,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC;eACjD,IAAI,IAAI,IAAI,CAAC,uEAAuE;eACpF,EAAE,IAAI,IAAI,CAAC,eAAe;UAC7B,CAAC;YACD,MAAM,sBAAsB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACvE,OAAO,EAAC,IAAI,EAAE,EAAE,EAAE,sBAAsB,EAA4B,CAAC;QACvE,CAAC;IAEH,CAAC;IAED,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED,SAAS,gCAAgC,CAAC,KAAa;IAKrD,sDAAsD;IACtD,MAAM,mBAAmB,GAAG,IAAA,mCAAsB,GAAE,CAAC;IACrD,MAAM,iBAAiB,GAAG,IAAA,iCAAoB,GAAE,CAAC;IAEjD,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE5B,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,sCAA0B,CAAC,YAAY,CAAC;YAChE,OAAO;gBACL,cAAc,EAAE,KAAK;gBACrB,wBAAwB,EAAE,eAAe;gBACzC,oBAAoB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;aAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,sCAA0B,CAAC,SAAS,CAAC;YAC7D,OAAO;gBACL,cAAc,EAAE,KAAK;gBACrB,wBAAwB,EAAE,eAAe;gBACzC,oBAAoB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;aAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iHAAiH;IACjH,OAAO,EAAC,cAAc,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAC,CAAC;AAC7F,CAAC;AAED,SAAS,cAAc,CAAC,UAAe,EAAE,eAA4C,EAAE,YAAuB;IAO5G,IAAI,KAAK,GAAG,IAAA,wBAAY,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;IAErE,4DAA4D;IAC5D,KAAK,GAAG,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAE9F,qDAAqD;IACrD,MAAM,SAAS,GAAG,IAAA,qCAAyB,EAAC,YAAY,CAAC;QACvD,CAAC,CAAC,8BAAkB,CAAC,SAAS;QAC9B,CAAC,CAAC,8BAAkB,CAAC,cAAc,CAAC;IAEtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,CAAC;IAET,IACE,SAAS,KAAK,8BAAkB,CAAC,cAAc;WAC5C,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACnC,CAAC;QACD,gCAAgC;QAChC,mBAAmB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED,IACE,SAAS,KAAK,8BAAkB,CAAC,SAAS;WACvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAClC,CAAC;QACD,gCAAgC;QAChC,MAAM,EAAC,cAAc,EAAE,wBAAwB,EAAE,oBAAoB,EAAC,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;QACjH,OAAO;YACL,SAAS;YACT,mBAAmB;YACnB,WAAW,EAAE,cAAc;YAC3B,eAAe,EAAE,wBAAwB,IAAI,sCAA0B,CAAC,KAAK;YAC7E,sBAAsB,EAAE,oBAAoB;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO;YACL,SAAS;YACT,mBAAmB;YACnB,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC;YAC9B,eAAe,EAAE,sCAA0B,CAAC,KAAK;YACjD,sBAAsB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACnC,OAAO;YACL,SAAS;YACT,mBAAmB;YACnB,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC;YAC9B,eAAe,EAAE,sCAA0B,CAAC,KAAK;YACjD,sBAAsB,EAAE,OAAO,CAAC,mBAAmB,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS;QACT,mBAAmB;QACnB,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,sCAA0B,CAAC,KAAK;QACjD,sBAAsB,EAAE,KAAK;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,cAA8B,EAAE,YAAuB,EAAE,IAAY,EAAE,KAAa,EAAE,qBAA8B;IACxJ,IAAI,CAAC,IAAA,qCAAyB,EAAC,YAAY,CAAC,IAAI,qBAAqB,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC;IACnD,MAAM,mBAAmB,GAAG,YAAY,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACpE,MAAM,mBAAmB,GAAG,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACxE,MAAM,yBAAyB,GAAG,YAAY,CAAC,GAAG,EAAE,eAAe,IAAI,CAAC,CAAC;IAEzE,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,CACtB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC;YAC/C,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,gBAAgB;YACpC,CAAC,CAAC,EAAE,CACP,EAAE,IAAI,CACL,CAAC,OAA0B,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CACtD,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC;YAE1D,KAAK,GAAG,CAAC,CACP,KAAK,GAAG,gBAAgB,CACzB,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,IAAI,mBAAmB,IAAI,KAAK,IAAI,mBAAmB,CAAC;IAEtF,oCAAoC;IACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CACT,EAAC,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAC,EACzF,UAAU,KAAK,IAAI,YAAY,oBAAoB,mBAAmB,OAAO,mBAAmB,UAAU,cAAc,CAAC,OAAO,QAAQ,cAAc,CAAC,MAAM,gBAAgB,QAAQ,EAAE,CACxL,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAOD;;;;;;;;;GASG;AACH,KAAK,UAAU,+BAA+B,CAC5C,KAA4B,EAC5B,mBAA8C,EAC9C,WAAwB,EACxB,YAAmB;IAEnB,IAAI,mBAAmB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,gBAAgB,EAAE,KAAK;YACvB,wBAAwB,EAAE,EAAE;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAA0B,EAAE,CAAC;IAEnD,2CAA2C;IAC3C,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE;YACP,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,GAAG,EAAE,IAAA,0CAAa,EAAC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC;SACxD;KACF,CAAC;IAEF,4BAA4B;IAC5B,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACjC,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAC7E,2CAA2C,CAC5C,CAAC;IAEF,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAEhC,MAAM,wBAAwB,GAAa,EAAE,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,qBAAqB,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAU,EAC7B,UAAU,EACV,IAAI,CAAC,OAA6C,EAClD;gBACE,aAAa,EAAE,SAAS;gBACxB,WAAW,EAAE,aAAa;aAC3B,CACF,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,EAC3C,oDAAoD,CACrD,CAAC;gBAEF,wBAAwB,CAAC,IAAI,CAC3B,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtF,CAAC;gBAEF,+CAA+C;gBAC/C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,uBAAuB,EAAE,CAAC;gBAC5B,CAAC;gBAED,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,EAC9D,kDAAkD,CACnD,CAAC;gBAEF,mDAAmD;gBACnD,gBAAgB,CAAC,IAAI,CAAC;oBACpB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,OAAO,EAAE,MAAM,CAAC,IAAsC;oBACtD,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAC3B,kDAAkD,CACnD,CAAC;YAEF,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,6BAA6B,CAAC,CAAC;YAEtE,gDAAgD;YAChD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC;QACV,QAAQ;QACR,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,WAAW,EAAE,mBAAmB,CAAC,IAAI;QACrC,uBAAuB;QACvB,qBAAqB;KACtB,EAAE,kDAAkD,CAAC,CAAC;IAEvD,OAAO;QACL,gBAAgB;QAChB,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,gBAAkC,EAClC,KAAa,EACb,mBAA8C,EAC9C,aAAqB,EACrB,SAAqC;IAErC,QAAQ,GAAG,gBAAgB,CAAC,cAAc,CAAC;IAC3C,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,mBAAmB,GAAyB,EAAE,CAAC;IACrD,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,IAAI,uBAAuB,GAAG,IAAI,CAAC;IACnC,IAAI,yBAAyB,GAAa,EAAE,CAAC;IAE7C,oFAAoF;IACpF,4DAA4D;IAC5D,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAA0B,CAAC;IACtE,MAAM,YAAY,GAA0B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpE,MAAM,WAAW,GAAG,gBAAM,CAAC,UAAU,EAAE,CAAC;QACxC,6DAA6D;QAC7D,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,cAAc,EAAE,CAAC;YACnB,2BAA2B,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO;YACL,GAAG,IAAI;YACP,YAAY,EAAE,WAAW;SAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,IAAI,sBAAsB,GAAmC,EAAE,gBAAgB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAE,CAAC;IACpH,IAAI,CAAC;QACH,sBAAsB,GAAG,MAAM,+BAA+B,CAC5D,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,CAAC,WAAW,EAC5B,gBAAgB,CAAC,YAAY,CAC9B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,+DAA+D,CAAC,CAAC;QAEnG,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;YAClC,WAAW,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE;YACnD,OAAO,EAAE,yDAAyD,QAAQ,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;SAChI,CAAC,CAAC;IACL,CAAC;IACD,IAAI,sBAAsB,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,yBAAyB,GAAG,sBAAsB,CAAC,wBAAwB,CAAC;QAE5E,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;YAClC,WAAW,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE;YACpD,OAAO,EAAE,+CAA+C,sBAAsB,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;SAC9I,CAAC,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,gBAAgB,CAAC;IACjE,uEAAuE;IACvE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CACxD,CAAC;IAEF,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC;QACE,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC;KAChD,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QACzB,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,WAAW,GAAG;QAClB,cAAc,EAAE,mBAAmB;QACnC,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,mBAAmB,CAAC,MAAM;KACvC,CAAA;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAoB,EAC3C,MAAM,EACN,GAAG,YAAY,0BAA0B,EACzC,WAAW,EACX,aAAa,CACd,CAAC;IAEF,0CAA0C;IAC1C,IAAI,YAAY,GAAyB,IAAI,CAAC;IAC9C,IAAI,SAAS,EAAE,CAAC;QACd,YAAY,GAAG,MAAM,IAAA,6BAAiB,EAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjE,+EAA+E;QAC/E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;QACvD,IAAI,4BAA4B,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC5B,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;gBAClC,WAAW,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAC,KAAK,EAAE;gBACnD,OAAO,EAAE,+BAA+B,cAAc,CAAC,MAAM,cAAc,QAAQ,EAAE;aACtF,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAEjD,0EAA0E;QAC1E,MAAM,WAAW,GAAG,2BAA2B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACpE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;YACpC,CAAC;QACH,CAAC;QAED,IAAI,cAAc,EAAE,OAAO,IAAI,cAAc,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YAC9D,6DAA6D;YAC7D,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,KAAK,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzF,MAAM,CAAC,IAAI,CACT,EAAC,cAAc,EAAC,EAChB,0EAA0E,QAAQ,EAAE,CACrF,CAAC;gBACF,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;oBAClC,WAAW,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAC,IAAI,EAAE;oBACnD,OAAO,EAAE,0CAA0C;oBACnD,IAAI,EAAE,QAAQ,cAAc,CAAC,OAAO,YAAY,cAAc,CAAC,MAAM,EAAE;iBACxE,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAElD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,OAAO,CAAC,CAAA;YAEvC,0BAA0B;YAC1B,MAAM,MAAM,GAAI,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC5C,QAAQ,YAAY,CAAC,GAAG,CAAC,SAAS,UAAU,cAAc,CAAC,OAAO,YAAY,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvG,QAAQ,cAAc,CAAC,OAAO,YAAY,cAAc,CAAC,MAAM,EAAE,CAAC;YAEpE,MAAM,EAAC,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAC,GAAG,WAAW,CAC3F,cAAc,CAAC,cAAc,EAC7B,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,SAAS,CACV,CAAC;YAEF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,YAAY,CAAC,IAAI,CAAC;oBAChB,WAAW,EAAE,YAAY,CAAC,EAAE;oBAC5B,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,OAAO,EAAE,cAAc,CAAC,OAAO;oBAC/B,YAAY,EAAE,cAAc,CAAC,YAAY;oBACzC,aAAa,EAAE,cAAc,CAAC,aAAa;oBAC3C,sBAAsB,EAAE,IAAI,EAAE,8DAA8D;iBAC7F,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CACT,EAAC,cAAc,EAAC,EAChB,qCAAqC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,gBAAgB,QAAQ,EAAE,CAC/G,CAAC;gBACF,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;oBAClC,WAAW,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAC,IAAI,EAAE;oBACjD,OAAO,EAAE,gDAAgD;oBACzD,IAAI,EAAE,GAAG,MAAM,EAAE;iBAClB,CAAC,CAAC;gBACH,4BAA4B,GAAG,KAAK,CAAC;YACvC,CAAC;YAED,IAAI,EACF,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,sBAAsB,EACvB,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAC1E,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CACT,EAAC,cAAc,EAAC,EAChB,sCAAsC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,gBAAgB,QAAQ,EAAE,CAChH,CAAC;gBACF,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;oBAClC,WAAW,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE;oBAClD,OAAO,EAAE,iDAAiD;oBAC1D,IAAI,EAAE,GAAG,MAAM,EAAE;iBAClB,CAAC,CAAC;gBACH,4BAA4B,GAAG,KAAK,CAAC;YACvC,CAAC;YAED,IAAI,IAAA,yCAA6B,EAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAE,CAAC;gBAC/E,MAAM,0BAA0B,GAAG,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACnE,MAAM,kBAAkB,GAAG;oBACzB,MAAM,EAAE,cAAc,CAAC,MAAM;oBAC7B,aAAa,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;oBACxC,KAAK,EAAE,0BAA0B;oBACjC,IAAI,EAAE,IAAI,IAAI,EAAE;oBAChB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;oBACpC,UAAU,EAAE,CAAC;4BACX,aAAa,EAAE,aAAa;4BAC5B,MAAM,EAAE,eAAe;4BACvB,aAAa,EAAE,uBAAuB;4BACtC,IAAI,EAAE,OAAO;yBACd,CAAC;oBACF,YAAY,EAAE,cAAc,EAAE,YAAY,IAAI,EAAE;oBAChD,YAAY,EAAE;wBACZ,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,cAAc,CAAC,OAAO,IAAI,EAAE;qBACnC;oBACD,OAAO,EAAE,OAAO;iBACjB,CAAC;gBAEF,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC7C,OAAO;YACX,CAAC;YAED,kCAAkC;YAClC,IAAI,sBAAsB,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBACxD,MAAM,gBAAgB,GAAG,WAAW,KAAK,IAAI,IAAI,4BAA4B,CAC3E,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,CACvE,CAAC;gBACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CACT,EAAC,cAAc,EAAC,EAChB,UAAU,WAAW,IAAI,IAAI,2BAA2B,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,gBAAgB,QAAQ,EAAE,CAClI,CAAC;oBACF,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;wBAClC,WAAW,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC;wBACjD,OAAO,EAAE,0CAA0C;wBACnD,IAAI,EAAE,GAAG,MAAM,WAAW,WAAW,GAAG,IAAI,EAAE;qBAC/C,CAAC,CAAC;oBACH,4BAA4B,GAAG,KAAK,CAAC;gBACvC,CAAC;YACH,CAAC;YAED,IAAI,IAAI,GAAkB,IAAI,EAAE,EAAE,GAAkB,IAAI,CAAC;YACzD,IAAI,sBAAsB,GAAG,IAAI,CAAC;YAElC,6DAA6D;YAC7D,IAAI,IAAA,qCAAyB,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC5C,MAAM,cAAc,GAAG,sBAAsB,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;gBACnI,IAAI,GAAG,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC;gBACnC,EAAE,GAAG,cAAc,CAAC,EAAE,IAAI,IAAI,CAAC;gBAC/B,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,CAAC;gBAC/D,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CACT,EAAC,cAAc,EAAC,EAChB,sCAAsC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,gBAAgB,QAAQ,EAAE,CAChH,CAAC;oBACF,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;wBAClC,WAAW,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE;wBAClD,OAAO,EAAE,iDAAiD;wBAC1D,IAAI,EAAE,GAAG,MAAM,EAAE;qBAClB,CAAC,CAAC;oBACH,4BAA4B,GAAG,KAAK,CAAA;gBACtC,CAAC;YACH,CAAC;YAED,IAAI,mBAAmB,CAAC;YACxB,IAAI,cAAc,EAAE,qBAAqB,EAAE,GAAG,IAAI,cAAc,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;gBAC5F,mBAAmB,GAAG,0BAA0B,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAC3J,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,UAAU,GAAW,CAAC,IAAA,qCAAyB,EAAC,YAAY,CAAC,IAAI,mBAAmB;gBACtF,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE;gBAC5B,CAAC,CAAC,EAAE,CAAC;YAEP,mDAAmD;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC1C,IAAI,YAAY,GAAG,IAAA,wBAAY,EAAC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;gBACvF,YAAY,GAAG,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;gBACxD,UAAU,GAAG,UAAU,IAAI,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YACpG,CAAC;YAED,mDAAmD;YACnD,MAAM,cAAc,GAAG,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACrH,MAAM,aAAa,GAAG,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAClH,MAAM,kBAAkB,GAAG,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjI,MAAM,iBAAiB,GAAG,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAE9H,wCAAwC;YACxC,MAAM,YAAY,GAAG,cAAc,EAAE,YAAY,IAAI,EAAE,CAAC;YAExD,IAAI,WAAW,GAAgB;gBAC7B,WAAW,EAAE,YAAY,CAAC,EAAE;gBAC5B,SAAS;gBACT,KAAK,EAAE,IAAA,qCAAyB,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;gBACnE,iBAAiB,EAAE,UAAU;gBAC7B,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI;gBAC/G,4BAA4B,EAAE,CAAC,CAAC,cAAc,EAAE,qBAAqB,EAAE,GAAG;gBAC1E,UAAU,EAAE,eAAe,IAAI,sCAA0B,CAAC,KAAK;gBAC/D,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,EAAE;gBAClB,IAAI;gBACJ,YAAY;gBACZ,eAAe;gBACf,QAAQ;gBACR,MAAM;gBACN,wBAAwB,EAAE,4BAA4B;gBACtD,eAAe,EAAE,4BAA4B;gBAC7C,cAAc,EAAE,cAAc;gBAC9B,aAAa,EAAE,aAAa;gBAC5B,kBAAkB,EAAE,kBAAkB;gBACtC,iBAAiB,EAAE,iBAAiB;gBACpC,YAAY,EAAE,YAAY;aAC3B,CAAC;YAEF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,yCAAyC,cAAc,CAAC,MAAM,eAAe,QAAQ,EAAE,CAAC,CAAC;YACrG,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC;gBAClC,WAAW,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;gBACpD,OAAO,EAAE,+CAA+C;gBACxD,IAAI,EAAE,UAAU,cAAc,CAAC,MAAM,EAAE;aACxC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,cAAc,EAAE,kBAAkB,EAAE,aAAa,IAAI,EAAE,CAAC;YAC9E,MAAM,KAAK,GAAG,cAAc,EAAE,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,cAAc,EAAE,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC;YAC5D,MAAM,UAAU,GAAG,cAAc,EAAE,kBAAkB,EAAE,UAAU,IAAI,EAAE,CAAC;YACxE,MAAM,YAAY,GAAG,cAAc,EAAE,kBAAkB,EAAE,YAAY,IAAI,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YACrC,MAAM,YAAY,GAAG,cAAc,EAAE,kBAAkB,EAAE,YAAY;gBACnE,CAAC,CAAC;oBACE,WAAW,EAAE,OAAO,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,WAAW,KAAK,QAAQ;wBACzF,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,WAAW;wBAC5D,CAAC,CAAC,EAAE;oBACN,IAAI,EAAE,OAAO,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ;wBAC3E,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI;wBACrD,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;iBACtE;gBACH,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,cAAc,EAAE,kBAAkB,EAAE,OAAO;gBACzD,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,OAAO;gBAC3C,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YACtJ,MAAM,UAAU,GAAG,cAAc,EAAE,kBAAkB,EAAE,UAAU;gBACjE,CAAC,CAAC,CAAC,cAAc,EAAE,kBAAkB,EAAE,UAAU,CAAC;gBAClD,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC;YAEf,MAAM,kBAAkB,GAAG;gBACzB,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,aAAa;gBAC5B,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,YAAY;gBAC1B,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,OAAO;aACjB,CAAC;YAEF,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/C,CAAC;QACD,uBAAuB,GAAG,uBAAuB,IAAI,4BAA4B,CAAC;IACpF,CAAC,CAAC,CAAA;IACF,OAAO;QACL,YAAY;QACZ,mBAAmB;QACnB,YAAY;QACZ,uBAAuB;QACvB,yBAAyB;KAC1B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"ohtMeasurementsExtractor.service.js","sourceRoot":"","sources":["../../service/ohtMeasurementsExtractor.service.ts"],"names":[],"mappings":"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"}
@@ -148,6 +148,7 @@ type ApplyTransformationRulesResult = {
148
148
  * @param ohtCoreApiKey - API key for OHT Core API calls
149
149
  * @param partnerId - Partner ID for fetching biomarker mappings and synonym units
150
150
  * @param errorMessages - Array to accumulate error messages (modified in-place)
151
+ * @param isReportPreview - isReportPreview Report Simulator
151
152
  * @returns Promise resolving to extraction result with measurements, unknownMeasurements, unknownUnits, unmappedLabKeys, parsing status, and transformation errors
152
153
  */
153
154
  declare function ohtReportMeasurementsExtractor(isReportPreview: boolean, exams: Exam[], sourceFilename: string, patientInfo: PatientInfo, documentDate: Date | undefined, transformationRules: TransformationRulesChains, allowMultiMeasurementsPerBiomarker: boolean, ohtCoreApiKey: string, partnerId: string, errorMessages: ErrorMessage[]): Promise<{
@@ -40,17 +40,13 @@ exports.ohtReportMeasurementsExtractor = ohtReportMeasurementsExtractor;
40
40
  const crypto_1 = __importDefault(require("crypto"));
41
41
  const dataUtils_1 = require("../util-ts/dataUtils");
42
42
  const extractionUtils_1 = require("../util-ts/extractionUtils");
43
- const pinoLogger_1 = __importDefault(require("../util-ts/pinoLogger"));
43
+ const processingLogger_service_1 = require("./processingLogger.service");
44
44
  const apiUtils_1 = require("../util-ts/apiUtils");
45
45
  const oht_types_1 = require("../types/oht.types");
46
46
  const transformationRules_service_1 = require("./transformationRules.service");
47
47
  const auxiliaryFunctions_service_1 = require("./auxiliaryFunctions.service");
48
48
  const path = __importStar(require("path"));
49
49
  const fs = __importStar(require("fs"));
50
- /**
51
- * Logger instance for the application
52
- */
53
- const logger = (0, pinoLogger_1.default)();
54
50
  // Import version from package.json file
55
51
  // Handle multiple possible paths: compiled (dist/service/), development (service/), or when used as dependency
56
52
  function getPackageJsonVersion() {
@@ -70,12 +66,11 @@ function getPackageJsonVersion() {
70
66
  }
71
67
  catch {
72
68
  // Continue to next path if this one fails
73
- continue;
74
69
  }
75
70
  }
76
71
  }
77
72
  // Fallback to a default version if package.json cannot be found
78
- logger.warn('Could not find package.json, using default version');
73
+ processingLogger_service_1.processingLogger.logWarn('Could not find package.json, using default version');
79
74
  return '0.0.0';
80
75
  }
81
76
  const ohtCustomParserLibVersion = getPackageJsonVersion();
@@ -117,7 +112,7 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
117
112
  const ohtReport = {
118
113
  exams: exams.map(e => e.ohtExam),
119
114
  };
120
- logger.info({ examsCount: exams.length, chainsCount: transformationRules.size, filename }, 'Applying transformation rules to exams...');
115
+ processingLogger_service_1.processingLogger.logInfo('Applying transformation rules to exams...', { exams_count: exams.length, chains_count: transformationRules.size, filename });
121
116
  let labKeysWithRulesCount = 0;
122
117
  let transformedLabKeysCount = 0;
123
118
  const applicationErrorMessages = [];
@@ -135,7 +130,7 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
135
130
  contextJson: reportContext,
136
131
  });
137
132
  if (result.errors.length > 0) {
138
- logger.warn({ labKey, errors: result.errors, filename }, 'Errors applying transformation rule(s) for labKey.');
133
+ processingLogger_service_1.processingLogger.logWarn('Errors applying transformation rule(s) for labKey.', { labKey, errors: result.errors, filename });
139
134
  applicationErrorMessages.push(`${labKey}: ${result.errors.map(e => `(rule ID ${e.ruleId}) ${e.error}`).join('; ')}`);
140
135
  // Keep original exam when transformation fails
141
136
  transformedExams.push(exam);
@@ -144,7 +139,7 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
144
139
  if (result.appliedRules.length > 0) {
145
140
  transformedLabKeysCount++;
146
141
  }
147
- logger.info({ labKey, appliedRules: result.appliedRules.length, filename }, 'Done applying transformation rule(s) for labKey.');
142
+ processingLogger_service_1.processingLogger.logInfo('Done applying transformation rule(s) for labKey.', { labKey, applied_rules: result.appliedRules.length, filename });
148
143
  // Preserve the synthetic ID through transformation
149
144
  transformedExams.push({
150
145
  _syntheticId: exam._syntheticId,
@@ -154,19 +149,19 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
154
149
  }
155
150
  }
156
151
  catch (error) {
157
- logger.error({ labKey, error, filename }, 'Failed to apply transformation rules for labKey.');
152
+ processingLogger_service_1.processingLogger.logError('Failed to apply transformation rules for labKey.', error instanceof Error ? error : undefined, { labKey, filename });
158
153
  applicationErrorMessages.push(`${labKey}: Unhandled error occurred.`);
159
154
  // Keep original exam when transformation throws
160
155
  transformedExams.push(exam);
161
156
  }
162
157
  }
163
- logger.info({
158
+ processingLogger_service_1.processingLogger.logInfo('Done applying the transformation rules to exams.', {
164
159
  filename,
165
- examsCount: exams.length,
166
- chainsCount: transformationRules.size,
167
- transformedLabKeysCount,
168
- labKeysWithRulesCount,
169
- }, 'Done applying the transformation rules to exams.');
160
+ exams_count: exams.length,
161
+ chains_count: transformationRules.size,
162
+ transformed_lab_keys_count: transformedLabKeysCount,
163
+ lab_keys_with_rules_count: labKeysWithRulesCount,
164
+ });
170
165
  return {
171
166
  transformedExams,
172
167
  applicationErrorMessages
@@ -312,6 +307,7 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
312
307
  * @param ohtCoreApiKey - API key for OHT Core API calls
313
308
  * @param partnerId - Partner ID for fetching biomarker mappings and synonym units
314
309
  * @param errorMessages - Array to accumulate error messages (modified in-place)
310
+ * @param isReportPreview - isReportPreview Report Simulator
315
311
  * @returns Promise resolving to extraction result with measurements, unknownMeasurements, unknownUnits, unmappedLabKeys, parsing status, and transformation errors
316
312
  */
317
313
  async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFilename, patientInfo, documentDate, transformationRules, allowMultiMeasurementsPerBiomarker, ohtCoreApiKey, partnerId, errorMessages) {
@@ -325,8 +321,8 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
325
321
  // Check if we have exams
326
322
  const labKeys = exams.map(e => e.ohtExam.labKey);
327
323
  if (labKeys.length === 0) {
328
- const errorMsg = `No lab keys found, filename: ${filename}`;
329
- logger.error(errorMsg);
324
+ const errorMsg = `No lab keys found, filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`;
325
+ processingLogger_service_1.processingLogger.logError(errorMsg);
330
326
  errorMessages.push({
331
327
  destination: { slack: true, notes: false, bi: false },
332
328
  message: errorMsg,
@@ -340,7 +336,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
340
336
  transformationRulesErrors,
341
337
  };
342
338
  }
343
- logger.info(`Processing lab file with ${labKeys.length} keys, filename: ${filename}`);
339
+ processingLogger_service_1.processingLogger.logInfo(`Processing lab file with ${labKeys.length} keys, filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`);
344
340
  // Call getMappedBiomarkers to get the biomarker mapping for the partner and if reportPreview is true, get the latest version regardless of active status
345
341
  const mappedBiomarkers = isReportPreview
346
342
  ? await (0, dataUtils_1.getMappedBiomarkersLatest)(partnerId, ohtCoreApiKey)
@@ -370,14 +366,14 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
370
366
  exams.push(emptyExam);
371
367
  }
372
368
  if (groupedLabKeys.length > 0) {
373
- logger.info(`Added ${groupedLabKeys.length} empty OhtExam objects for GROUPED_ biomarkers to check for appended mappings`);
369
+ processingLogger_service_1.processingLogger.logInfo(`Added ${groupedLabKeys.length} empty OhtExam objects for GROUPED_ biomarkers to check for appended mappings`);
374
370
  }
375
371
  }
376
372
  if (mappedBiomarkers) {
377
- logger.info(`Retrieved ${Object.keys(mappedBiomarkers).length} biomarker mappings from backend for partner: ${partnerId}`);
373
+ processingLogger_service_1.processingLogger.logInfo(`Retrieved ${Object.keys(mappedBiomarkers).length} biomarker mappings from backend for partner: ${partnerId}`);
378
374
  }
379
375
  else {
380
- logger.info(`No biomarker mappings found in backend for partner: ${partnerId}`);
376
+ processingLogger_service_1.processingLogger.logInfo(`No biomarker mappings found in backend for partner: ${partnerId}`);
381
377
  }
382
378
  // Assign UUIDs to exams for tracking through transformation.
383
379
  // This enables support for duplicate labKeys (double-hits).
@@ -391,10 +387,10 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
391
387
  transformedExamsResult = await applyTransformationRulesToExams(examsWithIds, transformationRules, patientInfo, documentDate);
392
388
  }
393
389
  catch (error) {
394
- logger.error({ error, filename }, 'Unhandled error while applying transformation rules to exams.');
390
+ processingLogger_service_1.processingLogger.logError('Unhandled error while applying transformation rules to exams.', error instanceof Error ? error : undefined, { filename });
395
391
  errorMessages.push({
396
392
  destination: { slack: true, notes: true, bi: false },
397
- message: `Failed applying the transformation rules for filename ${filename}. ${error instanceof Error ? error.message : error}`,
393
+ message: `Failed applying the transformation rules for filename ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}. ${error instanceof Error ? error.message : error}`,
398
394
  });
399
395
  }
400
396
  if (transformedExamsResult.applicationErrorMessages.length > 0) {
@@ -468,7 +464,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
468
464
  const backendMapping = mappedBiomarkers?.[labKey];
469
465
  // Skip processing if biomarker is marked as ignored
470
466
  if (backendMapping?.isIgnored === true) {
471
- logger.info(`Skipping ignored biomarker: ${labKey}`);
467
+ processingLogger_service_1.processingLogger.logInfo(`Skipping ignored biomarker: ${labKey}`);
472
468
  continue;
473
469
  }
474
470
  // Handle biomarker id
@@ -484,17 +480,17 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
484
480
  fallbackValue: backendMapping.annotationConfig?.fallbackValue,
485
481
  separator: backendMapping.annotationConfig?.separator,
486
482
  };
487
- logger.info(`Using mappings from custom parser studio (oht-core backend) for labKey: ${labKey} (ohtBmId: ${backendMapping.ohtBmId})`);
483
+ processingLogger_service_1.processingLogger.logInfo(`Using mappings from custom parser studio (oht-core backend) for labKey: ${labKey} (ohtBmId: ${backendMapping.ohtBmId})`);
488
484
  }
489
485
  else {
490
- logger.debug(`No backend mapping found for labKey: ${labKey}, will process as unmapped`);
486
+ processingLogger_service_1.processingLogger.logDebug(`No backend mapping found for labKey: ${labKey}, will process as unmapped`);
491
487
  }
492
488
  // Process as mapped biomarker if ohtBmId is valid
493
489
  if (finalOhtBmId !== undefined && finalOhtBmId !== -1) {
494
490
  let isMeasurementCorrectlyParsed = true;
495
491
  // if BM is already in measurements and multiple measurements are not allowed, continue to the next one
496
492
  if (!allowMultiMeasurementsPerBiomarker && measurements.some(measurement => measurement.biomarkerId === finalOhtBmId)) {
497
- logger.warn({ ohtBmId: finalOhtBmId, labKey }, `Biomarker already in measurements array, should investigate, filename: ${filename}`);
493
+ processingLogger_service_1.processingLogger.logWarn(`Biomarker already in measurements array, should investigate, filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { ohtBmId: finalOhtBmId, labKey });
498
494
  errorMessages.push({
499
495
  destination: { slack: false, notes: false, bi: true },
500
496
  message: `Biomarkers Duplicated keys:[PLACEHOLDER]`,
@@ -504,7 +500,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
504
500
  }
505
501
  const ohtBiomarker = biomarkers?.data?.items.find((bm) => bm.id === finalOhtBmId);
506
502
  if (!ohtBiomarker) {
507
- logger.warn({ ohtBmId: finalOhtBmId, labKey }, `Biomarker not found in API response for ohtBmId: ${finalOhtBmId}, labKey: ${transformedExamObj.labKey}, filename: ${filename}`);
503
+ processingLogger_service_1.processingLogger.logWarn(`Biomarker not found in API response for ohtBmId: ${finalOhtBmId}, labKey: ${transformedExamObj.labKey}, filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { ohtBmId: finalOhtBmId, labKey });
508
504
  errorMessages.push({
509
505
  destination: { slack: true, notes: true, bi: true },
510
506
  message: `Biomarker not found for:[PLACEHOLDER]`,
@@ -530,7 +526,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
530
526
  });
531
527
  }
532
528
  if (!isUnitParsedCorrectly) {
533
- logger.warn({ ohtBmId: finalOhtBmId, labKey }, `Unit not extracted correctly for "${finalOhtBmId}|${transformedExamObj.labKey}", filename: ${filename}`);
529
+ processingLogger_service_1.processingLogger.logWarn(`Unit not extracted correctly for "${finalOhtBmId}|${transformedExamObj.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { ohtBmId: finalOhtBmId, labKey });
534
530
  errorMessages.push({
535
531
  destination: { slack: true, notes: true, bi: true },
536
532
  message: `Unit not extracted correctly for:[PLACEHOLDER]`,
@@ -540,7 +536,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
540
536
  }
541
537
  let { valueType, alphanumericalValue, numberValue, valueComparator, isValueParsedCorrectly } = (0, extractionUtils_1.ohtReportParseExamValue)(transformedExamObj, ohtBiomarker);
542
538
  if (!isValueParsedCorrectly) {
543
- logger.warn({ ohtBmId: finalOhtBmId, labKey }, `Value not extracted correctly for "${finalOhtBmId}|${transformedExamObj.labKey}", filename: ${filename}`);
539
+ processingLogger_service_1.processingLogger.logWarn(`Value not extracted correctly for "${finalOhtBmId}|${transformedExamObj.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { ohtBmId: finalOhtBmId, labKey });
544
540
  errorMessages.push({
545
541
  destination: { slack: true, notes: true, bi: true },
546
542
  message: `Value not extracted correctly for:[PLACEHOLDER]`,
@@ -575,7 +571,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
575
571
  if (isValueParsedCorrectly && valueType === 'NUMERICAL') {
576
572
  const isPlausibleValue = numberValue !== null && (0, extractionUtils_1.ohtReportCheckValueForPlausibleValues)(finalOhtBmId, transformedExamObj.labKey, ohtBiomarker, unit, numberValue, isUnitParsedCorrectly, filename);
577
573
  if (!isPlausibleValue) {
578
- logger.warn({ ohtBmId: finalOhtBmId, labKey }, `Value [${numberValue} ${unit}] is not plausible for "${finalOhtBmId}|${transformedExamObj.labKey}", filename: ${filename}`);
574
+ processingLogger_service_1.processingLogger.logWarn(`Value [${numberValue} ${unit}] is not plausible for "${finalOhtBmId}|${transformedExamObj.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { ohtBmId: finalOhtBmId, labKey });
579
575
  errorMessages.push({
580
576
  destination: { slack: true, notes: true, bi: true },
581
577
  message: `Value is not plausible for:[PLACEHOLDER]`,
@@ -593,7 +589,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
593
589
  to = extractedRange.to ?? null;
594
590
  isRangeParsedCorrectly = extractedRange.isRangeParsedCorrectly;
595
591
  if (!isRangeParsedCorrectly) {
596
- logger.warn({ ohtBmId: finalOhtBmId, labKey }, `Range not extracted correctly for "${finalOhtBmId}|${transformedExamObj.labKey}", filename: ${filename}`);
592
+ processingLogger_service_1.processingLogger.logWarn(`Range not extracted correctly for "${finalOhtBmId}|${transformedExamObj.labKey}", filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`, { ohtBmId: finalOhtBmId, labKey });
597
593
  errorMessages.push({
598
594
  destination: { slack: true, notes: true, bi: true },
599
595
  message: `Range not extracted correctly for:[PLACEHOLDER]`,
@@ -686,11 +682,11 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
686
682
  // Log summary of processing
687
683
  const backendMappedCount = measurements.length;
688
684
  const unmappedCount = unknownMeasurements.length;
689
- logger.info(`Processing completed for ${filename}:`, {
690
- totalLabKeys: labKeys.length,
691
- backendMappedBiomarkers: backendMappedCount,
692
- unmappedBiomarkers: unmappedCount,
693
- totalProcessed: exams.length,
685
+ processingLogger_service_1.processingLogger.logInfo(`Processing completed for ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}:`, {
686
+ total_lab_keys: labKeys.length,
687
+ backend_mapped_biomarkers: backendMappedCount,
688
+ unmapped_biomarkers: unmappedCount,
689
+ total_processed: exams.length,
694
690
  errors: errorMessages.length,
695
691
  });
696
692
  return {