cruddl 3.1.4 → 3.2.0-0.deploy-test.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/.github/workflows/ci.yml +4 -3
  2. package/.nvmrc +1 -1
  3. package/README.md +8 -0
  4. package/dist/spec/{schema/ast-validation-modules/flex-search.spec.d.ts → database/arangodb/ttl.spec.d.ts} +0 -0
  5. package/dist/spec/database/arangodb/ttl.spec.js +346 -0
  6. package/dist/spec/database/arangodb/ttl.spec.js.map +1 -0
  7. package/dist/spec/model/create-model.spec.js +26 -0
  8. package/dist/spec/model/create-model.spec.js.map +1 -1
  9. package/dist/spec/model/implementation/field.spec.js +8 -0
  10. package/dist/spec/model/implementation/field.spec.js.map +1 -1
  11. package/dist/spec/model/implementation/flex-search-validation.spec.js +70 -5
  12. package/dist/spec/model/implementation/flex-search-validation.spec.js.map +1 -1
  13. package/dist/spec/performance/query-pipeline.perf.js +3 -2
  14. package/dist/spec/performance/query-pipeline.perf.js.map +1 -1
  15. package/dist/spec/regression/initialization.js +2 -1
  16. package/dist/spec/regression/initialization.js.map +1 -1
  17. package/dist/spec/schema/ast-validation-modules/helpers.d.ts +10 -8
  18. package/dist/spec/schema/ast-validation-modules/helpers.js +28 -24
  19. package/dist/spec/schema/ast-validation-modules/helpers.js.map +1 -1
  20. package/dist/spec/schema/ast-validation-modules/ttl.spec.d.ts +1 -0
  21. package/dist/spec/schema/ast-validation-modules/ttl.spec.js +362 -0
  22. package/dist/spec/schema/ast-validation-modules/ttl.spec.js.map +1 -0
  23. package/dist/spec/schema/schema-builder.spec.js +22 -0
  24. package/dist/spec/schema/schema-builder.spec.js.map +1 -1
  25. package/dist/spec/schema/source-validation-modules/sidecar-schema.spec.js +14 -0
  26. package/dist/spec/schema/source-validation-modules/sidecar-schema.spec.js.map +1 -1
  27. package/dist/spec/schema-generation/create-input-type-generator.spec.js +1 -5
  28. package/dist/spec/schema-generation/create-input-type-generator.spec.js.map +1 -1
  29. package/dist/src/database/arangodb/aql-generator.d.ts +8 -1
  30. package/dist/src/database/arangodb/aql-generator.js +18 -9
  31. package/dist/src/database/arangodb/aql-generator.js.map +1 -1
  32. package/dist/src/database/arangodb/arangodb-adapter.js +3 -1
  33. package/dist/src/database/arangodb/arangodb-adapter.js.map +1 -1
  34. package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.d.ts +2 -2
  35. package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.js +8 -58
  36. package/dist/src/database/arangodb/arangojs-instrumentation/custom-connection.js.map +1 -1
  37. package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.d.ts +18 -8
  38. package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.js +14 -2
  39. package/dist/src/database/arangodb/arangojs-instrumentation/custom-request.js.map +1 -1
  40. package/dist/src/database/arangodb/schema-migration/analyzer.js +4 -4
  41. package/dist/src/database/arangodb/schema-migration/analyzer.js.map +1 -1
  42. package/dist/src/database/arangodb/schema-migration/arango-search-helpers.d.ts +9 -9
  43. package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js +17 -9
  44. package/dist/src/database/arangodb/schema-migration/arango-search-helpers.js.map +1 -1
  45. package/dist/src/database/arangodb/schema-migration/migrations.d.ts +9 -5
  46. package/dist/src/database/arangodb/schema-migration/migrations.js.map +1 -1
  47. package/dist/src/database/arangodb/schema-migration/performer.js +6 -6
  48. package/dist/src/database/arangodb/schema-migration/performer.js.map +1 -1
  49. package/dist/src/database/inmemory/inmemory-adapter.d.ts +2 -1
  50. package/dist/src/database/inmemory/inmemory-adapter.js +16 -2
  51. package/dist/src/database/inmemory/inmemory-adapter.js.map +1 -1
  52. package/dist/src/database/inmemory/js-generator.d.ts +8 -1
  53. package/dist/src/database/inmemory/js-generator.js +16 -7
  54. package/dist/src/database/inmemory/js-generator.js.map +1 -1
  55. package/dist/src/execution/execution-options.d.ts +16 -0
  56. package/dist/src/execution/execution-options.js +10 -0
  57. package/dist/src/execution/execution-options.js.map +1 -1
  58. package/dist/src/execution/operation-resolver.js +4 -2
  59. package/dist/src/execution/operation-resolver.js.map +1 -1
  60. package/dist/src/model/config/indices.d.ts +3 -1
  61. package/dist/src/model/config/time-to-live.d.ts +8 -3
  62. package/dist/src/model/create-model.js +54 -25
  63. package/dist/src/model/create-model.js.map +1 -1
  64. package/dist/src/model/implementation/field-path.d.ts +19 -3
  65. package/dist/src/model/implementation/field-path.js +37 -3
  66. package/dist/src/model/implementation/field-path.js.map +1 -1
  67. package/dist/src/model/implementation/field.js +37 -2
  68. package/dist/src/model/implementation/field.js.map +1 -1
  69. package/dist/src/model/implementation/flex-search.d.ts +7 -2
  70. package/dist/src/model/implementation/flex-search.js +37 -3
  71. package/dist/src/model/implementation/flex-search.js.map +1 -1
  72. package/dist/src/model/implementation/relation.d.ts +22 -0
  73. package/dist/src/model/implementation/relation.js +6 -0
  74. package/dist/src/model/implementation/relation.js.map +1 -1
  75. package/dist/src/model/implementation/root-entity-type.js +3 -28
  76. package/dist/src/model/implementation/root-entity-type.js.map +1 -1
  77. package/dist/src/model/implementation/time-to-live.d.ts +5 -1
  78. package/dist/src/model/implementation/time-to-live.js +91 -5
  79. package/dist/src/model/implementation/time-to-live.js.map +1 -1
  80. package/dist/src/model/parse-ttl.js +10 -6
  81. package/dist/src/model/parse-ttl.js.map +1 -1
  82. package/dist/src/model/validation/message.d.ts +2 -2
  83. package/dist/src/model/validation/message.js +19 -6
  84. package/dist/src/model/validation/message.js.map +1 -1
  85. package/dist/src/project/project.js +16 -7
  86. package/dist/src/project/project.js.map +1 -1
  87. package/dist/src/project/time-to-live.d.ts +14 -6
  88. package/dist/src/project/time-to-live.js +35 -23
  89. package/dist/src/project/time-to-live.js.map +1 -1
  90. package/dist/src/schema/graphql-base.js +1 -1
  91. package/dist/src/schema/preparation/source-validation-modules/schema/schema.json +7 -0
  92. package/dist/src/schema/preparation/source-validation-modules/schema/validate-schema.js +1 -1
  93. package/dist/src/schema/schema-builder.js +5 -5
  94. package/dist/src/schema/schema-builder.js.map +1 -1
  95. package/dist/src/schema-generation/create-input-types/input-types.d.ts +3 -3
  96. package/dist/src/schema-generation/create-input-types/input-types.js +6 -9
  97. package/dist/src/schema-generation/create-input-types/input-types.js.map +1 -1
  98. package/dist/src/schema-generation/delete-all-generator.d.ts +9 -2
  99. package/dist/src/schema-generation/delete-all-generator.js +4 -2
  100. package/dist/src/schema-generation/delete-all-generator.js.map +1 -1
  101. package/dist/src/schema-generation/flex-search-generator.d.ts +2 -2
  102. package/dist/src/schema-generation/flex-search-generator.js +5 -5
  103. package/dist/src/schema-generation/flex-search-generator.js.map +1 -1
  104. package/dist/src/schema-generation/query-node-object-type/context.d.ts +5 -0
  105. package/dist/src/schema-generation/query-node-object-type/context.js.map +1 -1
  106. package/dist/src/schema-generation/query-node-object-type/query-node-generator.d.ts +2 -1
  107. package/dist/src/schema-generation/query-node-object-type/query-node-generator.js +14 -6
  108. package/dist/src/schema-generation/query-node-object-type/query-node-generator.js.map +1 -1
  109. package/dist/src/schema-generation/utils/relations.d.ts +9 -1
  110. package/dist/src/schema-generation/utils/relations.js +46 -14
  111. package/dist/src/schema-generation/utils/relations.js.map +1 -1
  112. package/docs/flexSearch.md +9 -6
  113. package/docs/modelling.md +2 -2
  114. package/docs/time-to-live.md +25 -0
  115. package/package.json +3 -3
  116. package/dist/spec/schema/ast-validation-modules/flex-search.spec.js +0 -15
  117. package/dist/spec/schema/ast-validation-modules/flex-search.spec.js.map +0 -1
@@ -4,6 +4,12 @@ exports.FieldPath = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const memorize_decorator_1 = tslib_1.__importDefault(require("memorize-decorator"));
6
6
  const validation_1 = require("../validation");
7
+ const defaultOptions = {
8
+ canFollowReferences: true,
9
+ canNavigateIntoLists: false,
10
+ canTraverseRootEntities: true,
11
+ canUseCollectFields: true,
12
+ };
7
13
  /**
8
14
  * A path to a single value
9
15
  *
@@ -13,6 +19,11 @@ class FieldPath {
13
19
  constructor(config) {
14
20
  this.config = config;
15
21
  this.path = config.path;
22
+ this.options = {
23
+ ...defaultOptions,
24
+ ...config,
25
+ };
26
+ this.location = config.location;
16
27
  }
17
28
  get fields() {
18
29
  return this.traversePath(() => undefined);
@@ -29,6 +40,25 @@ class FieldPath {
29
40
  validate(context) {
30
41
  this.traversePath(context.addMessage.bind(context));
31
42
  }
43
+ /**
44
+ * Gets the location for some fields within this path
45
+ *
46
+ * lastFieldIndex is exclusive (like with substring or slice)
47
+ */
48
+ getSubLocation(firstFieldIndex, lastFieldIndex) {
49
+ if (!this.location || !this.fields) {
50
+ return undefined;
51
+ }
52
+ const skipped = this.fields
53
+ .slice(0, firstFieldIndex)
54
+ .reduce((agg, field) => agg + field.name.length + 1 /* plus one for dot */, 0);
55
+ const included = this.fields
56
+ .slice(firstFieldIndex, lastFieldIndex)
57
+ .reduce((agg, field) => agg + field.name.length + 1 /* plus one for dot */, 0);
58
+ return (0, validation_1.locationWithinStringArgument)(this.location,
59
+ /* if we skipped any fields, also include the trailing dot of the skipped fields */
60
+ skipped + (skipped > 0 ? 1 : 0), included);
61
+ }
32
62
  traversePath(addMessage) {
33
63
  var _a;
34
64
  const segmentSpecifiers = this.path.split('.');
@@ -48,10 +78,14 @@ class FieldPath {
48
78
  addMessage(validation_1.ValidationMessage.error(`Type "${currentType.name}" is not an object type and cannot be navigated into.`, segmentLocation));
49
79
  return [];
50
80
  }
51
- if (lastField && lastField.isList) {
81
+ if (lastField && lastField.isList && !this.options.canNavigateIntoLists) {
52
82
  addMessage(validation_1.ValidationMessage.error(`Field "${lastField.declaringType.name}.${lastField.name}" is a list and cannot be navigated into.`, segmentLocation));
53
83
  return [];
54
84
  }
85
+ if (lastField && lastField.isReference && !this.options.canFollowReferences) {
86
+ addMessage(validation_1.ValidationMessage.error(`Field "${lastField.declaringType.name}.${lastField.name}" is a reference and cannot be navigated into.`, segmentLocation));
87
+ return [];
88
+ }
55
89
  if (!segmentSpecifier) {
56
90
  addMessage(validation_1.ValidationMessage.error(`The path should consist of dot-separated segments.`, this.config.location));
57
91
  return [];
@@ -71,10 +105,10 @@ class FieldPath {
71
105
  addMessage(validation_1.ValidationMessage.error(`Field "${currentType.name}.${field.name}" is a root field and cannot be used in a field path.`, segmentLocation));
72
106
  return [];
73
107
  }
74
- if (this.config.canUseCollectFields === false && field.isCollectField) {
108
+ if (!this.options.canUseCollectFields && field.isCollectField) {
75
109
  addMessage(validation_1.ValidationMessage.error(`Field "${currentType.name}.${field.name}" is a collect field, but collect fields cannot be used in this path.`, segmentLocation));
76
110
  }
77
- if (this.config.canTraverseRootEntities === false) {
111
+ if (!this.options.canTraverseRootEntities) {
78
112
  if (field.type.isRootEntityType ||
79
113
  (field.isCollectField && ((_a = field.collectPath) === null || _a === void 0 ? void 0 : _a.traversesRootEntityTypes))) {
80
114
  addMessage(validation_1.ValidationMessage.error(`Field "${currentType.name}.${field.name}" resolves to a different root entity, but this path cannot traverse root entity boundaries.`, segmentLocation));
@@ -1 +1 @@
1
- {"version":3,"file":"field-path.js","sourceRoot":"","sources":["../../../../src/model/implementation/field-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-path.js","sourceRoot":"","sources":["../../../../src/model/implementation/field-path.ts"],"names":[],"mappings":"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"}
@@ -723,6 +723,9 @@ class Field {
723
723
  context.addMessage(validation_1.ValidationMessage.error(`Calc mutation operator "${operator}" is not supported on type "${this.type.name}" (supported operators: ${supportedOperatorsDesc}).`, this.astNode));
724
724
  }
725
725
  }
726
+ if (this.declaringType.isValueObjectType) {
727
+ context.addMessage(validation_1.ValidationMessage.warn(`Calc mutations do not work within value objects because value objects cannot be updated. This will be an error in a future release.`, this.astNode));
728
+ }
726
729
  }
727
730
  validateParentField(context) {
728
731
  if (!this.isParentField) {
@@ -893,6 +896,22 @@ class Field {
893
896
  return;
894
897
  }
895
898
  }
899
+ const supportedNonNumberScalarTypeNames = [
900
+ graphql_1.GraphQLString.name,
901
+ graphql_1.GraphQLID.name,
902
+ date_time_1.GraphQLDateTime.name,
903
+ local_date_1.GraphQLLocalDate.name,
904
+ local_time_1.GraphQLLocalTime.name,
905
+ graphql_1.GraphQLBoolean.name,
906
+ ];
907
+ if (this.isFlexSearchIndexed &&
908
+ this.type.isScalarType &&
909
+ !this.type.isNumberType &&
910
+ !supportedNonNumberScalarTypeNames.includes(this.type.name)) {
911
+ // this used to be accepted silently in the past
912
+ // report a warning for the transition period, and change this to an error later
913
+ context.addMessage(validation_1.ValidationMessage.warn(`@flexSearch is not supported on type "${this.type.name}". Remove this directive. This will be an error in a future release.`, this.input.isFlexSearchIndexedASTNode));
914
+ }
896
915
  const supportedFullTextTypeNames = [graphql_1.GraphQLString.name, string_map_1.GraphQLI18nString.name];
897
916
  if (this.isFlexSearchFulltextIndexed &&
898
917
  !(this.type.isScalarType && supportedFullTextTypeNames.includes(this.type.name))) {
@@ -952,7 +971,11 @@ class Field {
952
971
  }
953
972
  }
954
973
  get isFlexSearchIndexed() {
955
- return !!this.input.isFlexSearchIndexed;
974
+ // @key-annotated fields are automatically flex-search indexed
975
+ return (!!this.input.isFlexSearchIndexed ||
976
+ (this.declaringType.isRootEntityType &&
977
+ this.declaringType.isFlexSearchIndexed &&
978
+ this.declaringType.keyField === this));
956
979
  }
957
980
  get isFlexSearchIndexCaseSensitive() {
958
981
  var _a;
@@ -999,7 +1022,19 @@ class Field {
999
1022
  return !!this.input.isFlexSearchFulltextIndexed;
1000
1023
  }
1001
1024
  get isIncludedInSearch() {
1002
- return !!this.input.isIncludedInSearch && this.isFlexSearchIndexed;
1025
+ // if flexsearch is manually configured, use that option
1026
+ if (this.input.isFlexSearchIndexed) {
1027
+ return !!this.input.isIncludedInSearch;
1028
+ }
1029
+ if (!this.type.isScalarType || this.type.name !== graphql_1.GraphQLString.name) {
1030
+ // includeInSearch only supported on string
1031
+ return false;
1032
+ }
1033
+ // key fields are included in search (unless manually configured or not supported)
1034
+ if (this.declaringType.isRootEntityType && this.declaringType.keyField === this) {
1035
+ return true;
1036
+ }
1037
+ return false;
1003
1038
  }
1004
1039
  get isFulltextIncludedInSearch() {
1005
1040
  return !!this.input.isFulltextIncludedInSearch && this.isFlexSearchFulltextIndexed;
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../../src/model/implementation/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../../src/model/implementation/field.ts"],"names":[],"mappings":";;;;AAAA,qCAAoG;AACpG,oFAA0C;AAC1C,sDAagC;AAChC,8DAAiE;AACjE,gEAAmE;AACnE,gEAAmE;AACnE,4EAA8E;AAC9E,gEAAoE;AACpE,sCAOmB;AACnB,0EAGwC;AACxC,kEAAsE;AACtE,8CAAkD;AAElD,qDAAmD;AACnD,iDAA6C;AAC7C,+CAAiD;AACjD,+CAAkD;AAIlD,yCAAoD;AACpD,uDAAmD;AACnD,iCAAuD;AAUvD,MAAa,KAAK;IAgCd,YACqB,KAAwB,EACzB,aAAyB;;QADxB,UAAK,GAAL,KAAK,CAAmB;QACzB,kBAAa,GAAb,aAAa,CAAY;QAEzC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACtC,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,KAAK,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;aAChE;SACJ;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;QACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK;YACN,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK;gBACxC,CAAC,CAAC,IAAI,gCAAc,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC7C,CAAC,CAAC,SAAS,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,MAAA,KAAK,CAAC,aAAa,mCAAI,KAAK,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,kDAAkD;QAClD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,MAAM,EAAE;YACxE,OAAO,IAAI,CAAC;SACf;QACD,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;YAC7E,OAAO,IAAI,CAAC;SACf;QACD,8BAA8B;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAW,IAAI;QACX,mDAAmD;QACnD,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC;SACrB;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO,IAAI,CAAC;SACf;QACD,OAAO,IAAI,kBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;IAC3C,CAAC;IAGD,IAAW,iBAAiB;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,IAAI,SAAS,EAAE;YACtF,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CACpD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,CAC/C,CAAC;IACN,CAAC;IAED,IAAW,SAAS;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,SAAS,EAAE;YAC5C,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;YACzB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;YAC5D,CAAC,CAAC,SAAS,CAAC;IACpB,CAAC;IAED,IAAW,QAAQ;QACf,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IACjC,CAAC;IAGD,IAAW,YAAY;QACnB,IACI,CAAC,IAAI,CAAC,UAAU;YAChB,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB;YACpC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAC7B;YACE,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,sBAAsB;YACtB,OAAO,IAAI,mBAAQ,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC,MAAM,CAAC;SACb;aAAM;YACH,wBAAwB;YACxB,OAAO,IAAI,mBAAQ,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,aAAa;gBAC5B,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,OAAO,EAAE,IAAI,CAAC,YAAY;aAC7B,CAAC,CAAC,QAAQ,CAAC;SACf;IACL,CAAC;IAEM,sBAAsB;QACzB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,iBAAQ,CAAC,WAAW,EAAE;YACxC,MAAM,IAAI,KAAK,CACX,+BAA+B,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,+BAA+B,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAC7I,CAAC;SACL;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,iBAAQ,CAAC,WAAW,EAAE;YACjD,MAAM,IAAI,KAAK,CACX,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,iCAAiC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CACjG,CAAC;SACL;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,oBAAoB,CAAC,CAAC;SACrF;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC;IAClD,CAAC;IAED,IAAI,oBAAoB;;QACpB,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,mCAAI,6BAAoB,CAAC,YAAY,CAAC;IAChF,CAAC;IAED;;;;OAIG;IAEH,IAAI,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC/B,OAAO,IAAI,CAAC;SACf;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrE,CAAC;IAED,2BAA2B;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CACX,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,mCAAmC,CACvF,CAAC;SACL;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IAEH,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAEM,eAAe,CAAC,eAAsC;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,QAAQ,CAAC,OAA0B;QAC/B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,YAAY,CAAC,OAA0B;QAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,CAAC,UAAU,CAAC,8BAAiB,CAAC,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAClF,OAAO;SACV;QAED,kFAAkF;QAClF,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,8CAA8C,EAC9C,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,+BAA+B;QAE/B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACzB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAAC,6CAA6C,EAAE,IAAI,CAAC,OAAO,CAAC,CACtF,CAAC;YACF,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAClB,sDAAsD,EACtD,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;IACL,CAAC;IAEO,YAAY,CAAC,OAA0B;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC1C,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,cAAc,EAC1C,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CACzC,CACJ,CAAC;SACL;IACL,CAAC;IAEO,sBAAsB,CAAC,OAA0B;QACrD,2CAA2C;QAC3C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;YACrC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,8CAA8C,EAC9C,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAQ,CAAC,WAAW,EAAE;YACzC,OAAO;SACV;QAED,mCAAmC;QACnC,IACI,CAAC,IAAI,CAAC,UAAU;YAChB,CAAC,IAAI,CAAC,WAAW;YACjB,CAAC,IAAI,CAAC,cAAc;YACpB,CAAC,IAAI,CAAC,aAAa;YACnB,CAAC,IAAI,CAAC,WAAW,EACnB;YACE,MAAM,WAAW,GAAG,CAAC,+BAAmB,CAAC,CAAC;YAE1C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,iBAAQ,CAAC,WAAW,EAAE;gBAClD,WAAW,CAAC,IAAI,CAAC,8BAAkB,CAAC,CAAC;aACxC;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,iBAAQ,CAAC,YAAY,EAAE;gBACnD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;oBACzD,WAAW,CAAC,IAAI,CAAC,4BAAgB,CAAC,CAAC;iBACtC;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;oBACvD,WAAW,CAAC,IAAI,CAAC,4BAAgB,CAAC,CAAC;iBACtC;aACJ;YAED,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,GACN,KAAK,CAAC,MAAM,KAAK,CAAC;gBACd,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE3E,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,mEAAmE,IAAI,GAAG,EACjG,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;IACL,CAAC;IAEO,gBAAgB,CAAC,OAA0B;QAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;YACtC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,wFAAwF,EACxF,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;QAED,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC7B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,uEAAuE,EAC9F,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,SAAS,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACpE,MAAM,gBAAgB,GAAG,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,+BAA+B,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;YACzJ,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,UAAU,IAAI,CAAC,KAAK,CAAC,kBAAkB,6BAA6B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EACtF,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAC9C,CACJ,CAAC;aACL;iBAAM,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE;gBAChE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,gBAAgB,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAI,4BAA4B,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EACjH,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAC9C,CACJ,CAAC;aACL;iBAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;gBAC9B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,gBAAgB,yCAAyC,EAC5D,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAC9C,CACJ,CAAC;aACL;iBAAM,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,EAAE;gBACzC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,gBAAgB,uCAAuC,EAC1D,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAC9C,CACJ,CAAC;aACL;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;gBACjC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,sDAAsD,EACtD,IAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,IAAI,CAAC,OAAO,CACzD,CACJ,CAAC;aACL;SACJ;aAAM;YACH,gEAAgE;YAChE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;YACnF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,4HAA4H;gBAC5H,2HAA2H;gBAC3H,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAC1C,CAAC,KAAK,EAAE,EAAE,CACN,KAAK,KAAK,IAAI;oBACd,KAAK,CAAC,UAAU;oBAChB,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa;oBACjC,KAAK,CAAC,KAAK,CAAC,kBAAkB,IAAI,SAAS,CAClD,CAAC;gBACF,IAAI,gBAAgB,EAAE;oBAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAClB,mBAAmB,gBAAgB,CAAC,aAAa,CAAC,IAAI,IAAI,gBAAgB,CAAC,IAAI,iHAAiH,EAChM,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;iBACL;aACJ;iBAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnF,mDAAmD;gBACnD,+EAA+E;gBAC/E,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;oBACtC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,oBAAoB,KAAK,2BAA2B,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAC5F,YAAY,CAAC,OAAO,CACvB,CACJ,CAAC;iBACL;gBACD,OAAO,CAAC,mDAAmD;aAC9D;YACD,MAAM,YAAY,GAAsB,aAAa,CAAC,CAAC,CAAC,CAAC;YAEzD,IAAI,IAAI,CAAC,oBAAoB,KAAK,6BAAoB,CAAC,OAAO,EAAE;gBAC5D,iGAAiG;gBACjG,kGAAkG;gBAClG,2EAA2E;gBAC3E,+FAA+F;gBAC/F,qFAAqF;gBACrF,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE;oBAClC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,uEAAuE,EACvE,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACzC,CACJ,CAAC;oBACF,OAAO;iBACV;qBAAM;oBACH,MAAM,aAAa,GAAG,IAAA,4CAAwB,EAAC,IAAI,CAAC,CAAC;oBACrD,IAAI,aAAa,EAAE;wBACf,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,aAAa,aAAa;6BACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;6BAClB,IAAI,CACD,GAAG,CACN,iKAAiK,EACtK,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACzC,CACJ,CAAC;wBACF,OAAO;qBACV;iBACJ;gBAED,mGAAmG;gBACnG,4DAA4D;gBAC5D,sGAAsG;gBACtG,0GAA0G;gBAC1G,6BAA6B;gBAC7B,qGAAqG;gBACrG,uGAAuG;gBACvG,4CAA4C;gBAC5C,2GAA2G;gBAC3G,sFAAsF;gBACtF,IAAI,CAAC,YAAY,EAAE;oBACf,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,+GACI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACxB,8DACI,IAAI,CAAC,IACT,oCAAoC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EACtD,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACzC,CACJ,CAAC;oBACF,OAAO;iBACV;qBAAM,IAAI,YAAY,CAAC,MAAM,EAAE;oBAC5B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,+GACI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACxB,sCAAsC,IAAI,CAAC,IAAI,CAAC,IAAI,IAChD,YAAY,CAAC,IACjB,SAAS,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EACnC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACzC,CACJ,CAAC;iBACL;aACJ;SACJ;IACL,CAAC;IAEO,iBAAiB,CAAC,OAA0B;QAChD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;QAED,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAQ,CAAC,WAAW,EAAE;YACzC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,wEAAwE,EAC1F,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,sHAAsH,EACtH,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACrB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,2FAA2F,EAC7G,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;QAED,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,eAAe,CAAC,OAA0B;QAC9C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACrB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,6BAAiB,SAAS,8BAAkB,sBAAsB,EACtE,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,6BAAiB,SAAS,+BAAmB,sBAAsB,EACvE,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,2BAA2B,EAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CACjC,CACJ,CAAC;YACF,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACrC,iCAAiC;YACjC,OAAO;SACV;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAChC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,qCAAqC,EACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CACjC,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,uBAAuB,EAAE;gBAClC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpF,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;oBAC3C,4HAA4H;oBAC5H,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAc,CAAC,IAAI,EAAE;wBACrD,uDAAuD;wBACvD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,yBACI,IAAI,CAAC,mBACT,gEACI,WAAW,CAAC,KAAK,CAAC,IACtB,mDACI,IAAI,CAAC,mBAAmB,GAAG,OAC/B,IAAI,EACJ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;qBACL;yBAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE;wBACtC,4EAA4E;wBAC5E,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,yBACI,IAAI,CAAC,mBACT,qGACI,WAAW,CAAC,KAAK,CAAC,IACtB,mBACI,IAAI,CAAC,mBAAmB,GAAG,WAC/B,wBAAwB,WAAW,CAAC,KAAK,CAAC,IAAI,kBAAkB,EAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;qBACL;yBAAM;wBACH,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,yBAAyB,IAAI,CAAC,mBAAmB,8EAA8E,WAAW,CAAC,KAAK,CAAC,IAAI,kBAAkB,EACvK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;qBACL;oBACD,OAAO;iBACV;gBAED,oIAAoI;gBACpI,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAc,CAAC,IAAI,EAAE;oBACpE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAClB,yBACI,IAAI,CAAC,mBACT,uCACI,WAAW,CAAC,KAAK,CAAC,IACtB,gEACI,IAAI,CAAC,mBAAmB,GAAG,OAC/B,yDAAyD,EACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;iBACL;aACJ;YACD,IAAI,QAAQ,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;gBACjE,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;gBACzD,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;oBACpC,QAAQ,GAAG,oBAAoB,YAAY,CAAC,MAAM,CAC9C,CAAC,EACD,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAC3C,EAAE,CAAC;iBACP;gBACD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,yBAAyB,IAAI,CAAC,mBAAmB,yFAAyF;oBACtI,QAAQ,EACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;gBACF,OAAO;aACV;YACD,IACI,aAAa;gBACb,QAAQ,CAAC,SAAS;gBAClB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAClD;gBACE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,yBACI,IAAI,CAAC,mBACT,+BACI,aAAa,CAAC,IAClB,uBAAuB,QAAQ,CAAC,SAAS;qBACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;qBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,EACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;gBACF,OAAO;aACV;YAED,IAAI,QAAQ,CAAC,YAAY,IAAI,aAAa,EAAE;gBACxC,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,EAAE;oBAChD,IAAI,QAAQ,CAAC;oBACb,IAAI,aAAa,CAAC,iBAAiB,EAAE;wBACjC,MAAM,eAAe,GACjB,mDAAmD,CAAC,aAAa,CAAC,CAAC;wBACvE,MAAM,mBAAmB,GAAG,eAAe;6BACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;6BACzB,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChB,QAAQ,GAAG,sBAAsB,aAAa,CAAC,IAAI,sBAC/C,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACzC,IAAI,mBAAmB,iDAAiD,CAAC;qBAC5E;yBAAM,IAAI,aAAa,CAAC,qBAAqB,EAAE;wBAC5C,QAAQ,GAAG,sGAAsG,CAAC;qBACrH;yBAAM;wBACH,QAAQ,GAAG,SACP,aAAa,CAAC,IAClB,8BAA8B,yCAAyC;6BAClE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;qBACtB;oBACD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,yBAAyB,IAAI,CAAC,mBAAmB,yBAAyB,QAAQ,GAAG,EACrF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;oBACF,OAAO;iBACV;gBACD,gGAAgG;gBAChG,IACI,CAAC,aAAa,CAAC,gBAAgB,IAAI,aAAa,CAAC,iBAAiB,CAAC;oBACnE,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB;oBAClC,CAAC,IAAI,CAAC,WAAW,CAAC,iCAAiC,EACrD;oBACE,MAAM,iBAAiB,GAAG,4BAA4B,CAClD,IAAI,CAAC,mBAAmB,CAC3B,CAAC;oBACF,IAAI,IAAI,CAAC,mBAAmB,KAAK,4BAAmB,CAAC,QAAQ,EAAE;wBAC3D,+BAA+B;wBAC/B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,yBAAyB,IAAI,CAAC,mBAAmB,yHAAyH,iCAAqB,cAAc,EAC7M,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;wBACF,OAAO;qBACV;yBAAM,IAAI,iBAAiB,EAAE;wBAC1B,kEAAkE;wBAClE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,4BAA4B,iBAAiB,wFAAwF,EACrI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAChD,CACJ,CAAC;wBACF,OAAO;qBACV;iBACJ;aACJ;YAED,IAAI,yBAA6C,CAAC;YAClD,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ,EAAE;gBAC7C,yBAAyB,GAAG,QAAQ,CAAC,cAAc,CAAC;aACvD;iBAAM,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,UAAU,IAAI,aAAa,EAAE;gBACvE,yBAAyB,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC3E;iBAAM;gBACH,yBAAyB,GAAG,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC;aACnE,CAAC,kEAAkE;YACpE,IAAI,yBAAyB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE;gBAC3E,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,oCAAoC,yBAAyB,4CAA4C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAC3H,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CACpC,CACJ,CAAC;gBACF,OAAO;aACV;YAED,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;gBACvC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,0DAA0D,EAC1D,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CACpC,CACJ,CAAC;gBACF,OAAO;aACV;YAED,IAAI,QAAQ,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACvC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,gEAAgE,IAAI,CAAC,mBAAmB,sBAAsB,EAC9G,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CACpC,CACJ,CAAC;gBACF,OAAO;aACV;SACJ;aAAM;YACH,qBAAqB;YAErB,IAAI,aAAa,EAAE;gBACf,IAAI,aAAa,CAAC,qBAAqB,EAAE;oBACrC,kIAAkI;oBAClI,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,sDAAsD,aAAa,CAAC,IAAI,mMAAmM,EAC3Q,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CACjC,CACJ,CAAC;oBACF,OAAO;iBACV;gBACD,IACI,aAAa,CAAC,UAAU;oBACxB,aAAa,CAAC,YAAY;oBAC1B,aAAa,CAAC,iBAAiB,EACjC;oBACE,uJAAuJ;oBACvJ,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU;wBACrC,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,aAAa,CAAC,iBAAiB;4BACjC,CAAC,CAAC,cAAc;4BAChB,CAAC,CAAC,QAAQ,CAAC;oBACf,MAAM,UAAU,GAAG,8BAA8B,CAAC,aAAa,CAAC;wBAC5D,CAAC,CAAC,6BAA6B,4BAAmB,CAAC,QAAQ,gBAAgB;wBAC3E,CAAC,CAAC,sIAAsI,CAAC;oBAC7I,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,+BAA+B,QAAQ,UAAU,aAAa,CAAC,IAAI,UAAU,QAAQ,kDAAkD;wBACnI,UAAU,EACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CACjC,CACJ,CAAC;oBACF,OAAO;iBACV;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,iCAAiC,EAAE;oBACpD,MAAM,4BAA4B,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CACpE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iCAAiC,CAC7C,CAAC;oBACF,MAAM,qBAAqB,GACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;oBAC5D,MAAM,0BAA0B,GAC5B,4BAA4B,IAAI,CAAC;wBAC7B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;6BAChB,KAAK,CAAC,GAAG,CAAC;6BACV,KAAK,CAAC,CAAC,EAAE,4BAA4B,GAAG,CAAC,CAAC;6BAC1C,IAAI,CAAC,GAAG,CAAC;wBAChB,CAAC,CAAC,EAAE,CAAC;oBACb,MAAM,IAAI,GACN,0BAA0B;wBAC1B,0BAA0B,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI;wBAChD,CAAC,CAAC,gBAAgB,0BAA0B,GAAG;wBAC/C,CAAC,CAAC,MAAM,CAAC;oBACjB,MAAM,UAAU,GAAG,qBAAqB;wBACpC,CAAC,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW;wBACrD,CAAC,CAAC,UAAU,CAAC;oBACjB,IAAI,MAAM,GAAG,EAAE,CAAC;oBAChB,IAAI,qBAAqB,IAAI,qBAAqB,CAAC,IAAI,KAAK,UAAU,EAAE;wBACpE,IAAI,qBAAqB,CAAC,YAAY,CAAC,WAAW,EAAE;4BAChD,MAAM,GAAG,cAAc,qBAAqB,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI,qBAAqB,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,8CAA8C,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,2BAA2B,CAAC;yBAC/R;6BAAM;4BACH,MAAM,GAAG,uCAAuC,qBAAqB,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,oDAAoD,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;yBAChP;qBACJ;oBACD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,OAAO,IAAI,0BAA0B,UAAU,GAAG,MAAM,0BAA0B,iCAAqB,SAAS,4BAAmB,CAAC,QAAQ,oFAAoF,EAChO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CACjC,CACJ,CAAC;oBACF,OAAO;iBACV;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;oBACnC,IAAI,SAAS,GAAG,EAAE,CAAC;oBACnB,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;yBACrD,OAAO,EAAE;yBACT,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;oBACtC,IAAI,mBAAmB,EAAE;wBACrB,SAAS,GAAG,aAAa,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC;qBAC1H;oBACD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,mDAAmD,SAAS,0BAA0B,iCAAqB,SAAS,4BAAmB,CAAC,QAAQ,qEAAqE,EACrN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CACjC,CACJ,CAAC;oBACF,OAAO;iBACV;gBAED,IAAI,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE;oBAC7B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,qCAAqC,aAAa,CAAC,IAAI,4CAA4C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EACrH,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CACpC,CACJ,CAAC;oBACF,OAAO;iBACV;aACJ;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,oDAAoD,EACpD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CACpC,CACJ,CAAC;gBACF,OAAO;aACV;SACJ;IACL,CAAC;IAEO,yBAAyB,CAAC,OAA0B;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC/B,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,cAAc,EAC/E,IAAI,CAAC,KAAK,CAAC,wBAAwB,CACtC,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,QAAQ,CAAC,aAAa,EAAE;YACxB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,qEAAqE,EAChI,IAAI,CAAC,KAAK,CAAC,wBAAwB,CACtC,CACJ,CAAC;YACF,OAAO;SACV;QAED,kEAAkE;QAClE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpD,OAAO;SACV;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAE1C,IAAI,cAAc,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;YACvC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,6BAA6B,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,gEAAgE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,EACrP,IAAI,CAAC,KAAK,CAAC,wBAAwB,CACtC,CACJ,CAAC;YACF,OAAO;SACV;QAED,gEAAgE;QAEhE,qDAAqD;QACrD,oFAAoF;QACpF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,iBAAiB,KAAK,QAAQ,CAAC,EAAE;YACvF,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,wDAAwD,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,EACxF,IAAI,CAAC,KAAK,CAAC,wBAAwB,CACtC,CACJ,CAAC;SACL;IACL,CAAC;IAEO,2BAA2B,CAAC,OAA0B;QAC1D,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAQ,CAAC,gBAAgB,EAAE;YAC9C,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,iBAAQ,CAAC,YAAY,EAAE;YACnD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,uFAAuF,IAAI,CAAC,aAAa,CAAC,IAAI,iEAAiE,IAAI,CAAC,IAAI,IAAI,EACnN,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACrC,+HAA+H;YAC/H,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,yFAAyF,IAAI,CAAC,IAAI,CAAC,IAAI,2EAA2E,EACzM,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;IACL,CAAC;IAEO,uBAAuB,CAAC,OAA0B;QACtD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAQ,CAAC,YAAY,EAAE;YAC1C,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,iBAAQ,CAAC,YAAY,EAAE;YACnD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,kFAAkF,IAAI,CAAC,aAAa,CAAC,IAAI,iEAAiE,IAAI,CAAC,IAAI,IAAI,EAC9M,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,uFAAuF,IAAI,CAAC,IAAI,CAAC,IAAI,8DAA8D,EAC1L,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;IACL,CAAC;IAEO,mBAAmB,CAAC,OAA0B;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAEjD,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,qBAAqB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YACjF,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,yIAAyI,EACzI,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,WAAW,CAAC,qBAAqB,IAAI,SAAS,IAAI,WAAW,CAAC,KAAK,IAAI,SAAS,EAAE;YAClF,MAAM,OAAO,GAAG,qEAAqE,CAAC;YACtF,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,OAAO,EACP,WAAW,CAAC,4BAA4B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CACjE,CACJ,CAAC;YACF,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CACpF,CAAC;SACL;QAED,IACI,WAAW,CAAC,qBAAqB,IAAI,SAAS;YAC9C,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAAC,WAAW,CAAC,qBAAqB,CAAC,EACvF;YACE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,uBAAuB,WAAW,CAAC,qBAAqB,cAAc,EACtE,WAAW,CAAC,4BAA4B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CACjE,CACJ,CAAC;SACL;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,iBAAiB,EAAE;YACnB,IAAI,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE;gBACrE,8BAAiB,CAAC,KAAK,CACnB,uBAAuB,WAAW,CAAC,qBAAqB,sEAAsE,EAC9H,WAAW,CAAC,4BAA4B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CACjE,CAAC;aACL;YACD,IAAI,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE;gBACrE,8BAAiB,CAAC,KAAK,CACnB,uBAAuB,WAAW,CAAC,qBAAqB,6DAA6D,EACrH,WAAW,CAAC,4BAA4B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CACjE,CAAC;aACL;SACJ;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAChC;IACL,CAAC;IAEO,oBAAoB,CAAC,OAA0B;QACnD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE;YACvC,OAAO;SACV;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,gDAAgD,EAChD,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CACjD,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,qDAAqD,EACrD,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CACjD,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,oDAAoD,EACpD,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CACjD,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,kDAAkD,EAClD,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CACjD,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,uDAAuD,EACvD,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CACjD,CACJ,CAAC;YACF,OAAO;SACV;QAED,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAClB,6DAA6D,EAC7D,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CACjD,CACJ,CAAC;IACN,CAAC;IAEO,qBAAqB,CAAC,OAA0B;QACpD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE;YAClC,OAAO;SACV;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,kDAAkD,EAClD,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,MAAM,kBAAkB,GAAG,oCAAwB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC9D,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7C,CAAC;QACF,MAAM,sBAAsB,GAAG,kBAAkB;aAC5C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC;aAChC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACnE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,iDAAiD,EACxE,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC/C,MAAM,IAAI,GAAG,oCAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,EAAE;gBACP,gDAAgD;gBAChD,SAAS;aACZ;YAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC/C,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,2BAA2B,QAAQ,+BAA+B,IAAI,CAAC,IAAI,CAAC,IAAI,2BAA2B,sBAAsB,IAAI,EACrI,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;aACL;SACJ;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;YACtC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAClB,qIAAqI,EACrI,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;IACL,CAAC;IAEO,mBAAmB,CAAC,OAA0B;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,cAAc,EAAE;YAC5C,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,4BAAgB,oDAAoD,EACxE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,4BAAgB,SAAS,+BAAmB,sBAAsB,EACtE,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,4BAAgB,SAAS,6BAAiB,sBAAsB,EACpE,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,kCAAkC,EAClC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE;YACtE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,8CAA8C,EAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CACrB,CACJ,CAAC;YACF,OAAO;SACV;QAED,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,IAAA,mDAA2B,EAC7E,IAAI,CAAC,aAAa,CACrB,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;YAC5B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,4EAA4E,EAC5G,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC9C,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,mDAAmD;YACnD,IACI,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAC1B,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EACvD;gBACE,MAAM,EAAE,wBAAwB,EAAE,GAAG,IAAA,uDAA+B,EAChE,IAAI,CAAC,aAAa,CACrB,CAAC;gBACF,IACI,wBAAwB,CAAC,IAAI,KAAK,CAAC;oBACnC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,EACvD;oBACE,UAAU,GAAG,mCAAmC,CAAC;iBACpD;aACJ;YAED,+GAA+G;YAC/G,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,+EAA+E,UAAU,EAAE,EAC3H,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE;YAC/B,+BAA+B;YAC/B,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,6BAA6B,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,gDAAgD,EAC/H,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;iBACL;qBAAM;oBACH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;oBACnD,MAAM,QAAQ,GACV,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACtE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,6BAA6B,QAAQ,+CAA+C,EACpH,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;iBACL;aACJ;iBAAM;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,uCAAuC,QAAQ,wCAAwC,EACvH,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;aACL;YACD,OAAO;SACV;QAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,mBAAmB,KAAK,IAAI,CAAC,IAAI,EAAE;YACnC,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,sBAAsB,IAAI,CAAC,IAAI,CAAC,IAAI,uDAAuD,mBAAmB,CAAC,IAAI,kDAAkD,mBAAmB,CAAC,IAAI,IAAI,EACjO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;aACL;iBAAM;gBACH,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,6BAA6B,mBAAmB,CAAC,IAAI,kDAAkD,mBAAmB,CAAC,IAAI,IAAI,EACnK,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;aACL;YACD,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC7B,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;gBACvD,MAAM,EAAE,wBAAwB,EAAE,GAAG,IAAA,uDAA+B,EAChE,IAAI,CAAC,aAAa,CACrB,CAAC;gBACF,IAAI,wBAAwB,CAAC,IAAI,KAAK,CAAC,EAAE;oBACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,QAAQ,GAAG,0CAA0C,QAAQ,CAAC,IAAI,aAAa,CAAC;iBACnF;aACJ;YACD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAClB,2GAA2G,QAAQ,EAAE,EACrH,IAAI,CAAC,KAAK,CAAC,mBAAmB,CACjC,CACJ,CAAC;SACL;IACL,CAAC;IAEO,iBAAiB,CAAC,OAA0B;QAChD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,4BAAgB,SAAS,0BAAc,sBAAsB,EACjE,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,cAAc,EAAE;YAC5C,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,0BAAc,oDAAoD,EACtE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC/B,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,0BAAc,SAAS,+BAAmB,sBAAsB,EACpE,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,0BAAc,SAAS,6BAAiB,sBAAsB,EAClE,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,gCAAgC,EAChC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC/B,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE;YACpE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,4CAA4C,EAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CACrB,CACJ,CAAC;YACF,OAAO;SACV;QAED,MAAM,EAAE,wBAAwB,EAAE,GAAG,IAAA,uDAA+B,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEzF,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;YAChC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,+EAA+E,EAC/G,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC/B,CACJ,CAAC;YACF,OAAO;SACV;QAED,IAAI,wBAAwB,CAAC,IAAI,GAAG,CAAC,EAAE;YACnC,+BAA+B;YAC/B,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAC1D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CACzB,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,kCAAkC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,8CAA8C,EAClI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC/B,CACJ,CAAC;iBACL;qBAAM;oBACH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;oBACnD,MAAM,QAAQ,GACV,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACtE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,kCAAkC,QAAQ,6CAA6C,EACvH,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC/B,CACJ,CAAC;iBACL;aACJ;iBAAM;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC7E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,4CAA4C,QAAQ,sCAAsC,EAC1H,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC/B,CACJ,CAAC;aACL;YACD,OAAO;SACV;QAED,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,uBAAuB,KAAK,IAAI,CAAC,IAAI,EAAE;YACvC,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,kCAAkC,uBAAuB,CAAC,IAAI,gDAAgD,uBAAuB,CAAC,IAAI,IAAI,EAC9K,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC/B,CACJ,CAAC;YACF,OAAO;SACV;IACL,CAAC;IAEO,kBAAkB,CAAC,OAA0B;QACjD,MAAM,cAAc,GAAG,iCAAiC,CAAC;QACzD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,cAAc,cAAc,EAC/B,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACxC,CACJ,CAAC;gBACF,OAAO;aACV;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,cAAc,aAAa,EAC9B,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACxC,CACJ,CAAC;gBACF,OAAO;aACV;YACD,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,cAAc,kBAAkB,EACnC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACxC,CACJ,CAAC;gBACF,OAAO;aACV;YACD,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,cAAc,iBAAiB,EAClC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACxC,CACJ,CAAC;gBACF,OAAO;aACV;YACD,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,cAAc,eAAe,EAChC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACxC,CACJ,CAAC;gBACF,OAAO;aACV;SACJ;QAED,MAAM,iCAAiC,GAAG;YACtC,uBAAa,CAAC,IAAI;YAClB,mBAAS,CAAC,IAAI;YACd,2BAAe,CAAC,IAAI;YACpB,6BAAgB,CAAC,IAAI;YACrB,6BAAgB,CAAC,IAAI;YACrB,wBAAc,CAAC,IAAI;SACtB,CAAC;QACF,IACI,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,IAAI,CAAC,YAAY;YACtB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;YACvB,CAAC,iCAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7D;YACE,gDAAgD;YAChD,gFAAgF;YAChF,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAClB,yCAAyC,IAAI,CAAC,IAAI,CAAC,IAAI,sEAAsE,EAC7H,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACxC,CACJ,CAAC;SACL;QAED,MAAM,0BAA0B,GAAG,CAAC,uBAAa,CAAC,IAAI,EAAE,8BAAiB,CAAC,IAAI,CAAC,CAAC;QAChF,IACI,IAAI,CAAC,2BAA2B;YAChC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,0BAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAClF;YACE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,iDAAiD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EACnE,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAChD,CACJ,CAAC;YACF,OAAO;SACV;QACD,IAAI,IAAI,CAAC,2BAA2B,IAAI,IAAI,CAAC,cAAc,EAAE;YACzD,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,GAAG,cAAc,kBAAkB,EACnC,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAChD,CACJ,CAAC;YACF,OAAO;SACV;QACD,IACI,IAAI,CAAC,mBAAmB;YACxB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAChE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,2BAA2B,CAC5E,EACH;YACE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,+BAA+B,IAAI,CAAC,IAAI,CAAC,IAAI,kHAAkH,EAC/J,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACxC,CACJ,CAAC;SACL;QACD,IACI,IAAI,CAAC,IAAI,KAAK,8BAAkB;YAChC,IAAI,CAAC,aAAa,CAAC,gBAAgB;YACnC,IAAI,CAAC,aAAa,CAAC,iBAAiB;YACpC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CACjD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAC1C;YACD,IAAI,CAAC,aAAa,CAAC,mBAAmB;YACtC,CAAC,IAAI,CAAC,mBAAmB,EAC3B;YACE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,2BAA2B,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,mCAAmC;gBACnG,mHAAmH,EACvH,IAAI,CAAC,OAAO,CACf,CACJ,CAAC;SACL;QACD,IACI,IAAI,CAAC,kBAAkB;YACvB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;YACvB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,EAC1D;YACE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,mDAAuC,+EAA+E,EAC1H,IAAI,CAAC,KAAK,CAAC,0BAA0B,CACxC,CACJ,CAAC;YACF,OAAO;SACV;QACD,IACI,IAAI,CAAC,KAAK,CAAC,8BAA8B,KAAK,SAAS;YACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,EAC1D;YACE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,+CAAmC,2DAA2D,EAClG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CACjD,CACJ,CAAC;YACF,OAAO;SACV;QACD,IACI,IAAI,CAAC,KAAK,CAAC,8BAA8B,KAAK,KAAK;YACnD,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,8BAAkB,CAAC,EAC1D;YACE,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,IAAI,+CAAmC,8GAA8G,EACrJ,IAAI,CAAC,KAAK,CAAC,mCAAmC,CACjD,CACJ,CAAC;YACF,OAAO;SACV;IACL,CAAC;IAEO,mBAAmB,CAAC,OAA0B;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO;SACV;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,wCAAwC,EACxC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACzC,CACJ,CAAC;SACL;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,qCAAqC,EACrC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACzC,CACJ,CAAC;SACL;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,uCAAuC,EACvC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACzC,CACJ,CAAC;SACL;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC5B,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,KAAK,CACnB,uDAAuD,EACvD,IAAI,CAAC,KAAK,CAAC,2BAA2B,CACzC,CACJ,CAAC;SACL;IACL,CAAC;IAED,IAAI,mBAAmB;QACnB,8DAA8D;QAC9D,OAAO,CACH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB;YAChC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB;gBAChC,IAAI,CAAC,aAAa,CAAC,mBAAmB;gBACtC,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC,CAC5C,CAAC;IACN,CAAC;IAED,IAAI,8BAA8B;;QAC9B,uEAAuE;QACvE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,8BAAkB,EAAE;YACxD,OAAO,IAAI,CAAC;SACf;QAED,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,8BAA8B,mCAAI,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,mDAAmD;YACnD,oEAAoE;YACpE,OAAO,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,+BAAiB,CAAC,CAAC,CAAC,8BAAgB,CAAC;SACrF;QACD,OAAO,+BAAiB,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAI,uBAAuB;QACvB,OAAO,CACH,IAAI,CAAC,IAAI,CAAC,YAAY;YACtB,CAAC,uBAAa,CAAC,IAAI,EAAE,8BAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CACxE,CAAC;IACN,CAAC;IAED,IAAI,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;IACjE,CAAC;IAED,oCAAoC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CACX,kBAAkB,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,0DAA0D,CACnH,CAAC;SACL;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,IAAI,2BAA2B;QAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC;IACpD,CAAC;IAED,IAAI,kBAAkB;QAClB,wDAAwD;QACxD,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;YAChC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;SAC1C;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,uBAAa,CAAC,IAAI,EAAE;YAClE,2CAA2C;YAC3C,OAAO,KAAK,CAAC;SAChB;QAED,kFAAkF;QAClF,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC7E,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,0BAA0B;QAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,IAAI,IAAI,CAAC,2BAA2B,CAAC;IACvF,CAAC;IAED,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAClF,CAAC;CACJ;AAnqDG;IADC,IAAA,4BAAQ,GAAE;8CAQV;AA4BD;IADC,IAAA,4BAAQ,GAAE;yCA0BV;AAkCD;IADC,IAAA,4BAAQ,GAAE;8CASV;AAgBD;IADC,IAAA,4BAAQ,GAAE;2CAGV;AAvOL,sBAkxDC;AAED,SAAS,4BAA4B,CACjC,UAA+B;IAE/B,QAAQ,UAAU,EAAE;QAChB,KAAK,4BAAmB,CAAC,QAAQ;YAC7B,OAAO,SAAS,CAAC;QACrB,KAAK,4BAAmB,CAAC,cAAc;YACnC,OAAO,4BAAmB,CAAC,KAAK,CAAC;QACrC;YACI,OAAO,SAAS,CAAC;KACxB;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,UAA+B;IAQ1D,QAAQ,UAAU,EAAE;QAChB,KAAK,4BAAmB,CAAC,KAAK;YAC1B,OAAO;gBACH,uBAAuB,EAAE,IAAI;gBAC7B,cAAc,EAAE,oBAAU,CAAC,IAAI;aAClC,CAAC;QACN,KAAK,4BAAmB,CAAC,IAAI,CAAC;QAC9B,KAAK,4BAAmB,CAAC,IAAI;YACzB,OAAO;gBACH,uBAAuB,EAAE,IAAI;gBAC7B,cAAc,EAAE,wBAAc,CAAC,IAAI;aACtC,CAAC;QAEN,KAAK,4BAAmB,CAAC,UAAU,CAAC;QACpC,KAAK,4BAAmB,CAAC,cAAc;YACnC,OAAO;gBACH,gBAAgB,EAAE,IAAI;gBACtB,cAAc,EAAE,oBAAU,CAAC,IAAI;aAClC,CAAC;QACN,KAAK,4BAAmB,CAAC,SAAS,CAAC;QACnC,KAAK,4BAAmB,CAAC,aAAa,CAAC;QACvC,KAAK,4BAAmB,CAAC,UAAU,CAAC;QACpC,KAAK,4BAAmB,CAAC,SAAS;YAC9B,OAAO;gBACH,gBAAgB,EAAE,IAAI;gBACtB,cAAc,EAAE,wBAAc,CAAC,IAAI;aACtC,CAAC;QAEN,KAAK,4BAAmB,CAAC,GAAG,CAAC;QAC7B,KAAK,4BAAmB,CAAC,GAAG;YACxB,OAAO;gBACH,SAAS,EAAE;oBACP,GAAG,gCAAe;oBAClB,2BAAe,CAAC,IAAI;oBACpB,6BAAgB,CAAC,IAAI;oBACrB,6BAAgB,CAAC,IAAI;oBACrB,wCAAqB,CAAC,IAAI;iBAC7B;gBACD,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,QAAQ,KAAK,wCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,2BAAe,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;aAChF,CAAC;QACN,KAAK,4BAAmB,CAAC,OAAO,CAAC;QACjC,KAAK,4BAAmB,CAAC,GAAG;YACxB,OAAO;gBACH,SAAS,EAAE,gCAAe;aAC7B,CAAC;QAEN,KAAK,4BAAmB,CAAC,UAAU,CAAC;QACpC,KAAK,4BAAmB,CAAC,cAAc;YACnC,OAAO;gBACH,SAAS,EAAE,CAAC,wBAAc,CAAC,IAAI,CAAC;gBAChC,cAAc,EAAE,oBAAU,CAAC,IAAI;aAClC,CAAC;QAEN,KAAK,4BAAmB,CAAC,SAAS,CAAC;QACnC,KAAK,4BAAmB,CAAC,aAAa,CAAC;QACvC,KAAK,4BAAmB,CAAC,UAAU,CAAC;QACpC,KAAK,4BAAmB,CAAC,SAAS;YAC9B,OAAO;gBACH,SAAS,EAAE,CAAC,wBAAc,CAAC,IAAI,CAAC;gBAChC,cAAc,EAAE,wBAAc,CAAC,IAAI;aACtC,CAAC;QACN,KAAK,4BAAmB,CAAC,QAAQ;YAC7B,OAAO;gBACH,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI;aACrB,CAAC;QACN,KAAK,4BAAmB,CAAC,cAAc;YACnC,OAAO;gBACH,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,oBAAU,CAAC,IAAI;aAClC,CAAC;QACN;YACI,gDAAgD;YAChD,OAAO,EAAE,CAAC;KACjB;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,QAA6B;IACvD,QAAQ,QAAQ,EAAE;QACd,KAAK,4BAAmB,CAAC,GAAG,CAAC;QAC7B,KAAK,4BAAmB,CAAC,GAAG,CAAC;QAC7B,KAAK,4BAAmB,CAAC,OAAO;YAC5B,OAAO,IAAI,CAAC;QAChB;YACI,OAAO,KAAK,CAAC;KACpB;AACL,CAAC;AAED,MAAM,yCAAyC,GAA0B;IACrE,uBAAa,CAAC,IAAI;IAClB,mBAAS,CAAC,IAAI;IACd,wBAAc,CAAC,IAAI;IACnB,oBAAU,CAAC,IAAI;IACf,6BAAgB,CAAC,IAAI;CACxB,CAAC;AAEF,SAAS,8BAA8B,CAAC,IAAU;IAC9C,0GAA0G;IAC1G,IAAI,IAAI,CAAC,iBAAiB,EAAE;QACxB,OAAO,mDAAmD,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;KACjF;IAED,OAAO,CACH,IAAI,CAAC,gBAAgB;QACrB,IAAI,CAAC,iBAAiB;QACtB,IAAI,CAAC,UAAU;QACf,yCAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,CAAC;AACN,CAAC;AAED,SAAS,mDAAmD,CAAC,IAAqB;IAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACrB,CAAC,KAAK,EAAE,EAAE,CACN,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU;QACtB,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB;QAC5B,CAAC,yCAAyC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3E,CAAC;AACN,CAAC"}
@@ -1,9 +1,14 @@
1
1
  import { FieldPath } from './field-path';
2
2
  import { OrderDirection } from './order';
3
+ import { ModelComponent, ValidationContext } from '../validation/validation-context';
4
+ import { FlexSearchPrimarySortClauseConfig } from '../config';
5
+ import { RootEntityType } from './root-entity-type';
3
6
  export declare const IDENTITY_ANALYZER = "identity";
4
7
  export declare const NORM_CI_ANALYZER = "norm_ci";
5
- export declare class FlexSearchPrimarySortClause {
8
+ export declare class FlexSearchPrimarySortClause implements ModelComponent {
9
+ private readonly config;
6
10
  readonly field: FieldPath;
7
11
  readonly direction: OrderDirection;
8
- constructor(field: FieldPath, direction: OrderDirection);
12
+ constructor(config: FlexSearchPrimarySortClauseConfig, baseType: RootEntityType);
13
+ validate(context: ValidationContext): void;
9
14
  }
@@ -1,12 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FlexSearchPrimarySortClause = exports.NORM_CI_ANALYZER = exports.IDENTITY_ANALYZER = void 0;
4
+ const field_path_1 = require("./field-path");
5
+ const validation_context_1 = require("../validation/validation-context");
6
+ const validation_1 = require("../validation");
4
7
  exports.IDENTITY_ANALYZER = 'identity';
5
8
  exports.NORM_CI_ANALYZER = 'norm_ci';
6
9
  class FlexSearchPrimarySortClause {
7
- constructor(field, direction) {
8
- this.field = field;
9
- this.direction = direction;
10
+ constructor(config, baseType) {
11
+ this.config = config;
12
+ this.field = new field_path_1.FieldPath({
13
+ path: config.field,
14
+ baseType,
15
+ location: config.fieldASTNode,
16
+ canUseCollectFields: false,
17
+ canTraverseRootEntities: false,
18
+ });
19
+ this.direction = config.direction;
20
+ }
21
+ validate(context) {
22
+ const subContext = new validation_context_1.ValidationContext();
23
+ this.field.validate(subContext);
24
+ for (const message of subContext.validationMessages) {
25
+ if (message.severity === validation_1.Severity.Error) {
26
+ // we did not report any errors previously. In a transition period, we make it clear
27
+ // that these warnings will be errors in the future.
28
+ context.addMessage(new validation_1.ValidationMessage(validation_1.Severity.Warning, message.message +
29
+ (message.message.endsWith('.') ? '' : '.') +
30
+ ' This will be an error in a future release.', message.location));
31
+ }
32
+ else {
33
+ context.addMessage(message);
34
+ }
35
+ }
36
+ const lastField = this.field.lastField;
37
+ if (!lastField) {
38
+ // FieldPath already found validation errors
39
+ return;
40
+ }
41
+ if (!lastField.type.isScalarType && !lastField.type.isEnumType) {
42
+ context.addMessage(validation_1.ValidationMessage.warn(`Field "${lastField.declaringType.name}.${lastField.name}" is an object field, but only scalar and enum fields are supported in flexSearchOrder. Choose a subfield or a different field. This will be an error in a future release.`, this.config.fieldASTNode));
43
+ }
10
44
  }
11
45
  }
12
46
  exports.FlexSearchPrimarySortClause = FlexSearchPrimarySortClause;
@@ -1 +1 @@
1
- {"version":3,"file":"flex-search.js","sourceRoot":"","sources":["../../../../src/model/implementation/flex-search.ts"],"names":[],"mappings":";;;AAGa,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAC/B,QAAA,gBAAgB,GAAG,SAAS,CAAC;AAE1C,MAAa,2BAA2B;IACpC,YAAqB,KAAgB,EAAW,SAAyB;QAApD,UAAK,GAAL,KAAK,CAAW;QAAW,cAAS,GAAT,SAAS,CAAgB;IAAG,CAAC;CAChF;AAFD,kEAEC"}
1
+ {"version":3,"file":"flex-search.js","sourceRoot":"","sources":["../../../../src/model/implementation/flex-search.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,yEAAqF;AAGrF,8CAA4D;AAE/C,QAAA,iBAAiB,GAAG,UAAU,CAAC;AAC/B,QAAA,gBAAgB,GAAG,SAAS,CAAC;AAE1C,MAAa,2BAA2B;IAIpC,YACqB,MAAyC,EAC1D,QAAwB;QADP,WAAM,GAAN,MAAM,CAAmC;QAG1D,IAAI,CAAC,KAAK,GAAG,IAAI,sBAAS,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,YAAY;YAC7B,mBAAmB,EAAE,KAAK;YAC1B,uBAAuB,EAAE,KAAK;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,OAA0B;QAC/B,MAAM,UAAU,GAAG,IAAI,sCAAiB,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAChC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,kBAAkB,EAAE;YACjD,IAAI,OAAO,CAAC,QAAQ,KAAK,qBAAQ,CAAC,KAAK,EAAE;gBACrC,oFAAoF;gBACpF,oDAAoD;gBACpD,OAAO,CAAC,UAAU,CACd,IAAI,8BAAiB,CACjB,qBAAQ,CAAC,OAAO,EAChB,OAAO,CAAC,OAAO;oBACX,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC1C,6CAA6C,EACjD,OAAO,CAAC,QAAQ,CACnB,CACJ,CAAC;aACL;iBAAM;gBACH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAC/B;SACJ;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAEvC,IAAI,CAAC,SAAS,EAAE;YACZ,4CAA4C;YAC5C,OAAO;SACV;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5D,OAAO,CAAC,UAAU,CACd,8BAAiB,CAAC,IAAI,CAClB,UAAU,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,4KAA4K,EACpO,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CACJ,CAAC;SACL;IACL,CAAC;CACJ;AAvDD,kEAuDC"}
@@ -49,12 +49,34 @@ export declare class Relation {
49
49
  export declare class RelationSide {
50
50
  readonly relation: Relation;
51
51
  private readonly side;
52
+ /**
53
+ * The type where the relation originates, when viewed with this side's perspective
54
+ */
52
55
  readonly sourceType: RootEntityType;
56
+ /**
57
+ * The field declared in the source type
58
+ *
59
+ * Might be undefined if this is the "to side"
60
+ */
53
61
  readonly sourceField: Field | undefined;
62
+ /**
63
+ * The type where the relation points to, when viewed with this side's perspective
64
+ */
54
65
  readonly targetType: RootEntityType;
66
+ /**
67
+ * The field declared in the source type
68
+ *
69
+ * Might be undefined if this is the "from side"
70
+ */
55
71
  readonly targetField: Field | undefined;
56
72
  constructor(relation: Relation, side: RelationFieldSide);
73
+ /**
74
+ * Whether this is side that follows the relation in the forwards direction
75
+ */
57
76
  get isFromSide(): boolean;
77
+ /**
78
+ * Whether this is side that follows the relation in the inverse direction
79
+ */
58
80
  get isToSide(): boolean;
59
81
  get otherSide(): RelationSide;
60
82
  /**
@@ -71,9 +71,15 @@ class RelationSide {
71
71
  this.targetField = relation.fromField;
72
72
  }
73
73
  }
74
+ /**
75
+ * Whether this is side that follows the relation in the forwards direction
76
+ */
74
77
  get isFromSide() {
75
78
  return this.side === RelationFieldSide.FROM_SIDE;
76
79
  }
80
+ /**
81
+ * Whether this is side that follows the relation in the inverse direction
82
+ */
77
83
  get isToSide() {
78
84
  return this.side === RelationFieldSide.TO_SIDE;
79
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../../../src/model/implementation/relation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../../../src/model/implementation/relation.ts"],"names":[],"mappings":"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"}
@@ -261,33 +261,8 @@ class RootEntityType extends object_type_base_1.ObjectTypeBase {
261
261
  !value.isSystemField)) {
262
262
  context.addMessage(validation_1.ValidationMessage.warn(`The type contains fields that are annotated with ${constants_1.FLEX_SEARCH_INDEXED_DIRECTIVE} or ${constants_1.FLEX_SEARCH_FULLTEXT_INDEXED_DIRECTIVE}, but the type itself is not marked with flexSearch = true.`, this.input.astNode.name));
263
263
  }
264
- // validate primarySort
265
- for (const primarySortConfig of this.flexSearchPrimarySort) {
266
- const primarySortPath = primarySortConfig.field.path.split('.');
267
- const astNode = this.input
268
- .astNode.directives.find((value) => value.name.value === constants_1.ROOT_ENTITY_DIRECTIVE)
269
- .arguments.find((value) => value.name.value === constants_1.FLEX_SEARCH_ORDER_ARGUMENT);
270
- function isValidPath(fields, path) {
271
- const [head, ...tail] = path;
272
- const field = fields.find((value) => value.name === head);
273
- if (field) {
274
- if (field.type.isScalarType || (field.type.isEnumType && tail.length == 0)) {
275
- return true;
276
- }
277
- else if (field.type.isObjectType && !field.isList && tail.length > 0) {
278
- return isValidPath(field.type.fields, tail);
279
- }
280
- else {
281
- return false;
282
- }
283
- }
284
- else {
285
- return false;
286
- }
287
- }
288
- if (!isValidPath(this.fields, primarySortPath)) {
289
- context.addMessage(validation_1.ValidationMessage.warn(`The provided flexSearchOrder is invalid. It must be a path that evaluates to a scalar value and the full path must be annotated with ${constants_1.FLEX_SEARCH_INDEXED_DIRECTIVE}.`, astNode));
290
- }
264
+ for (const clause of this.flexSearchPrimarySort) {
265
+ clause.validate(context);
291
266
  }
292
267
  }
293
268
  get billingEntityConfig() {
@@ -318,7 +293,7 @@ class RootEntityType extends object_type_base_1.ObjectTypeBase {
318
293
  },
319
294
  ];
320
295
  }
321
- return clauses.map((c) => new flex_search_1.FlexSearchPrimarySortClause(new field_path_1.FieldPath({ path: c.field, baseType: this }), c.direction));
296
+ return clauses.map((clause) => new flex_search_1.FlexSearchPrimarySortClause(clause, this));
322
297
  }
323
298
  get timeToLiveTypes() {
324
299
  return this.model.timeToLiveTypes.filter((ttlType) => ttlType.rootEntityType && ttlType.rootEntityType.name === this.name);