@itwin/ecschema-metadata 5.10.0-dev.19 → 5.10.0-dev.20

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 (147) hide show
  1. package/lib/cjs/Constants.js.map +1 -1
  2. package/lib/cjs/DelayedPromise.js.map +1 -1
  3. package/lib/cjs/Deserialization/AbstractParser.js.map +1 -1
  4. package/lib/cjs/Deserialization/Helper.js.map +1 -1
  5. package/lib/cjs/Deserialization/JsonParser.js.map +1 -1
  6. package/lib/cjs/Deserialization/JsonProps.js.map +1 -1
  7. package/lib/cjs/Deserialization/SchemaGraphUtil.js.map +1 -1
  8. package/lib/cjs/Deserialization/XmlParser.js.map +1 -1
  9. package/lib/cjs/Deserialization/XmlSerializationUtils.js.map +1 -1
  10. package/lib/cjs/ECName.js.map +1 -1
  11. package/lib/cjs/ECObjects.js.map +1 -1
  12. package/lib/cjs/Exception.js.map +1 -1
  13. package/lib/cjs/Formatting/FormatSetFormatsProvider.js.map +1 -1
  14. package/lib/cjs/Formatting/SchemaFormatsProvider.js.map +1 -1
  15. package/lib/cjs/IncrementalLoading/ClassParsers.js.map +1 -1
  16. package/lib/cjs/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
  17. package/lib/cjs/IncrementalLoading/FullSchemaQueries.js +466 -466
  18. package/lib/cjs/IncrementalLoading/FullSchemaQueries.js.map +1 -1
  19. package/lib/cjs/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
  20. package/lib/cjs/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
  21. package/lib/cjs/IncrementalLoading/SchemaItemParsers.js.map +1 -1
  22. package/lib/cjs/IncrementalLoading/SchemaItemQueries.js +235 -235
  23. package/lib/cjs/IncrementalLoading/SchemaItemQueries.js.map +1 -1
  24. package/lib/cjs/IncrementalLoading/SchemaParser.js.map +1 -1
  25. package/lib/cjs/IncrementalLoading/SchemaStubQueries.js +309 -309
  26. package/lib/cjs/IncrementalLoading/SchemaStubQueries.js.map +1 -1
  27. package/lib/cjs/Interfaces.js.map +1 -1
  28. package/lib/cjs/Metadata/Class.js.map +1 -1
  29. package/lib/cjs/Metadata/Constant.js.map +1 -1
  30. package/lib/cjs/Metadata/CustomAttribute.js.map +1 -1
  31. package/lib/cjs/Metadata/CustomAttributeClass.js.map +1 -1
  32. package/lib/cjs/Metadata/EntityClass.js.map +1 -1
  33. package/lib/cjs/Metadata/Enumeration.js.map +1 -1
  34. package/lib/cjs/Metadata/Format.js.map +1 -1
  35. package/lib/cjs/Metadata/InvertedUnit.js.map +1 -1
  36. package/lib/cjs/Metadata/KindOfQuantity.js.map +1 -1
  37. package/lib/cjs/Metadata/Mixin.js.map +1 -1
  38. package/lib/cjs/Metadata/OverrideFormat.js.map +1 -1
  39. package/lib/cjs/Metadata/Phenomenon.js.map +1 -1
  40. package/lib/cjs/Metadata/Property.js.map +1 -1
  41. package/lib/cjs/Metadata/PropertyCategory.js.map +1 -1
  42. package/lib/cjs/Metadata/RelationshipClass.js.map +1 -1
  43. package/lib/cjs/Metadata/Schema.js.map +1 -1
  44. package/lib/cjs/Metadata/SchemaItem.js.map +1 -1
  45. package/lib/cjs/Metadata/UnitSystem.js.map +1 -1
  46. package/lib/cjs/PropertyTypes.js.map +1 -1
  47. package/lib/cjs/SchemaJsonLocater.js.map +1 -1
  48. package/lib/cjs/SchemaKey.js.map +1 -1
  49. package/lib/cjs/SchemaLoader.js.map +1 -1
  50. package/lib/cjs/SchemaPartVisitorDelegate.js.map +1 -1
  51. package/lib/cjs/SchemaView.d.ts +653 -0
  52. package/lib/cjs/SchemaView.d.ts.map +1 -0
  53. package/lib/cjs/SchemaView.js +1204 -0
  54. package/lib/cjs/SchemaView.js.map +1 -0
  55. package/lib/cjs/SchemaViewBinaryReader.d.ts +16 -0
  56. package/lib/cjs/SchemaViewBinaryReader.d.ts.map +1 -0
  57. package/lib/cjs/SchemaViewBinaryReader.js +610 -0
  58. package/lib/cjs/SchemaViewBinaryReader.js.map +1 -0
  59. package/lib/cjs/SchemaViewInterfaces.d.ts +220 -0
  60. package/lib/cjs/SchemaViewInterfaces.d.ts.map +1 -0
  61. package/lib/cjs/SchemaViewInterfaces.js +69 -0
  62. package/lib/cjs/SchemaViewInterfaces.js.map +1 -0
  63. package/lib/cjs/UnitConversion/UnitConverter.js.map +1 -1
  64. package/lib/cjs/UnitConversion/UnitTree.js.map +1 -1
  65. package/lib/cjs/UnitProvider/SchemaUnitProvider.js.map +1 -1
  66. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  67. package/lib/cjs/ecschema-metadata.d.ts +3 -0
  68. package/lib/cjs/ecschema-metadata.d.ts.map +1 -1
  69. package/lib/cjs/ecschema-metadata.js +3 -0
  70. package/lib/cjs/ecschema-metadata.js.map +1 -1
  71. package/lib/cjs/utils/ECClassHierarchy.js.map +1 -1
  72. package/lib/cjs/utils/SchemaGraph.js.map +1 -1
  73. package/lib/cjs/utils/SchemaLoadingController.js.map +1 -1
  74. package/lib/esm/Constants.js.map +1 -1
  75. package/lib/esm/DelayedPromise.js.map +1 -1
  76. package/lib/esm/Deserialization/AbstractParser.js.map +1 -1
  77. package/lib/esm/Deserialization/Helper.js.map +1 -1
  78. package/lib/esm/Deserialization/JsonParser.js.map +1 -1
  79. package/lib/esm/Deserialization/JsonProps.js.map +1 -1
  80. package/lib/esm/Deserialization/SchemaGraphUtil.js.map +1 -1
  81. package/lib/esm/Deserialization/XmlParser.js.map +1 -1
  82. package/lib/esm/Deserialization/XmlSerializationUtils.js.map +1 -1
  83. package/lib/esm/ECName.js.map +1 -1
  84. package/lib/esm/ECObjects.js.map +1 -1
  85. package/lib/esm/Exception.js.map +1 -1
  86. package/lib/esm/Formatting/FormatSetFormatsProvider.js.map +1 -1
  87. package/lib/esm/Formatting/SchemaFormatsProvider.js.map +1 -1
  88. package/lib/esm/IncrementalLoading/ClassParsers.js.map +1 -1
  89. package/lib/esm/IncrementalLoading/ECSqlSchemaLocater.js.map +1 -1
  90. package/lib/esm/IncrementalLoading/FullSchemaQueries.js +466 -466
  91. package/lib/esm/IncrementalLoading/FullSchemaQueries.js.map +1 -1
  92. package/lib/esm/IncrementalLoading/IncrementalSchemaLocater.js.map +1 -1
  93. package/lib/esm/IncrementalLoading/IncrementalSchemaReader.js.map +1 -1
  94. package/lib/esm/IncrementalLoading/SchemaItemParsers.js.map +1 -1
  95. package/lib/esm/IncrementalLoading/SchemaItemQueries.js +235 -235
  96. package/lib/esm/IncrementalLoading/SchemaItemQueries.js.map +1 -1
  97. package/lib/esm/IncrementalLoading/SchemaParser.js.map +1 -1
  98. package/lib/esm/IncrementalLoading/SchemaStubQueries.js +309 -309
  99. package/lib/esm/IncrementalLoading/SchemaStubQueries.js.map +1 -1
  100. package/lib/esm/Interfaces.js.map +1 -1
  101. package/lib/esm/Metadata/Class.js.map +1 -1
  102. package/lib/esm/Metadata/Constant.js.map +1 -1
  103. package/lib/esm/Metadata/CustomAttribute.js.map +1 -1
  104. package/lib/esm/Metadata/CustomAttributeClass.js.map +1 -1
  105. package/lib/esm/Metadata/EntityClass.js.map +1 -1
  106. package/lib/esm/Metadata/Enumeration.js.map +1 -1
  107. package/lib/esm/Metadata/Format.js.map +1 -1
  108. package/lib/esm/Metadata/InvertedUnit.js.map +1 -1
  109. package/lib/esm/Metadata/KindOfQuantity.js.map +1 -1
  110. package/lib/esm/Metadata/Mixin.js.map +1 -1
  111. package/lib/esm/Metadata/OverrideFormat.js.map +1 -1
  112. package/lib/esm/Metadata/Phenomenon.js.map +1 -1
  113. package/lib/esm/Metadata/Property.js.map +1 -1
  114. package/lib/esm/Metadata/PropertyCategory.js.map +1 -1
  115. package/lib/esm/Metadata/RelationshipClass.js.map +1 -1
  116. package/lib/esm/Metadata/Schema.js.map +1 -1
  117. package/lib/esm/Metadata/SchemaItem.js.map +1 -1
  118. package/lib/esm/Metadata/UnitSystem.js.map +1 -1
  119. package/lib/esm/PropertyTypes.js.map +1 -1
  120. package/lib/esm/SchemaJsonLocater.js.map +1 -1
  121. package/lib/esm/SchemaKey.js.map +1 -1
  122. package/lib/esm/SchemaLoader.js.map +1 -1
  123. package/lib/esm/SchemaPartVisitorDelegate.js.map +1 -1
  124. package/lib/esm/SchemaView.d.ts +653 -0
  125. package/lib/esm/SchemaView.d.ts.map +1 -0
  126. package/lib/esm/SchemaView.js +1199 -0
  127. package/lib/esm/SchemaView.js.map +1 -0
  128. package/lib/esm/SchemaViewBinaryReader.d.ts +16 -0
  129. package/lib/esm/SchemaViewBinaryReader.d.ts.map +1 -0
  130. package/lib/esm/SchemaViewBinaryReader.js +607 -0
  131. package/lib/esm/SchemaViewBinaryReader.js.map +1 -0
  132. package/lib/esm/SchemaViewInterfaces.d.ts +220 -0
  133. package/lib/esm/SchemaViewInterfaces.d.ts.map +1 -0
  134. package/lib/esm/SchemaViewInterfaces.js +66 -0
  135. package/lib/esm/SchemaViewInterfaces.js.map +1 -0
  136. package/lib/esm/UnitConversion/UnitConverter.js.map +1 -1
  137. package/lib/esm/UnitConversion/UnitTree.js.map +1 -1
  138. package/lib/esm/UnitProvider/SchemaUnitProvider.js.map +1 -1
  139. package/lib/esm/Validation/SchemaWalker.js.map +1 -1
  140. package/lib/esm/ecschema-metadata.d.ts +3 -0
  141. package/lib/esm/ecschema-metadata.d.ts.map +1 -1
  142. package/lib/esm/ecschema-metadata.js +3 -0
  143. package/lib/esm/ecschema-metadata.js.map +1 -1
  144. package/lib/esm/utils/ECClassHierarchy.js.map +1 -1
  145. package/lib/esm/utils/SchemaGraph.js.map +1 -1
  146. package/lib/esm/utils/SchemaLoadingController.js.map +1 -1
  147. package/package.json +6 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaView.js","sourceRoot":"","sources":["../../src/SchemaView.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,iEAAsR;AACtR,qEAA+D;AAG/D,8FAA8F;AAC9F,6FAA6F;AAC7F,6FAA6F;AAC7F,+FAA+F;AAC/F,8CAA8C;AAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AA8C9C;;;;;;;;;GASG;AACH,MAAa,UAAU;IACrB,gBAAgB;IACA,CAAC,QAAQ,CAAC,CAAoB;IAEtC,YAAY,CAAS;IACrB,SAAS,GAAG,KAAK,CAAC;IAE1B,gBAAgB;IAChB,YAAY,IAAoB,EAAE,WAAoB;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG;YACf,GAAG,IAAI;YACP,mBAAmB,EAAE,IAAI,GAAG,EAA+B;YAC3D,eAAe,EAAE,SAAS;SAC3B,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,IAAW,WAAW,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9D;;;;OAIG;IACH,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3D;;OAEG;IACI,YAAY,KAAW,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;IAEtD,qCAAqC;IACrC,IAAW,WAAW,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE1E,4CAA4C;IAC5C,IAAW,UAAU,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,+CAA+C;IACxC,SAAS,CAAC,IAAY;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAED,gDAAgD;IACzC,gBAAgB,CAAC,KAAa;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAED,2BAA2B;IACpB,CAAC,UAAU;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;YACpD,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,aAAqB;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAChD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,aAAqB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;QACjF,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,aAAqB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,CAAC;IAED;;OAEG;IACI,oBAAoB,CAAC,aAAqB;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,IAAgB,EAAE,WAAoB;QAC7D,OAAO,IAAA,4CAAmB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW,CAAC,OAA0B,EAAE,WAAoB;QACxE,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,gDAAgD;IAEhD;wEACoE;IAC5D,qBAAqB,CAAC,aAAqB,EAAE,UAA4D;QAC/G,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1C,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAErC,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEpE,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,SAAS;YACzB,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAE9C,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB;IACT,eAAe,CAAC,aAAqB;QAC1C,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1C,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QAE9B,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9D,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,SAAS;YACzB,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,gBAAgB;IACT,kBAAkB,CAAC,QAAgB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB,CAAC,QAAgB,EAAE,MAAmB;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,8CAA8C;QAE7E,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAS,CAAC,6BAA6B;YACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,oBAAoB,CAAC,QAAgB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,GAAG,CAAC,IAAI,KAAK,gCAAS,CAAC,IAAI,EAAE,CAAC;YAChC,wEAAwE;YACxE,MAAM,MAAM,GAA0B,EAAE,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,kBAAkB,CACxB,QAAgB,EAChB,MAAwC;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,8CAA8C;QAE7E,yCAAyC;QACzC,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAEpD,iCAAiC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACnE,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAS,CAAC,6BAA6B;YACtF,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QAED,sCAAsC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAC/F,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,uBAAuB,CAC7B,QAAgB,EAChB,MAAwC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,8CAA8C;QAE/E,+DAA+D;QAC/D,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE3D,qBAAqB;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACxE,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,WAAW,KAAK,SAAS;gBAAE,SAAS,CAAC,6BAA6B;YAC5F,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,8EAA8E;QAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAC/F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,oBAAoB;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC;QAExF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACvD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,GAAG,GAAG,EAAE,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACxB,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,CAAC,eAAe,GAAG,GAAG,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA7QD,gCA6QC;AAED,wFAAwF;AACxF,8CAA8C;AAC9C,wFAAwF;AAGxF,YAAY;AACZ,WAAiB,UAAU;IAEzB;;;OAGG;IACH,MAAa,MAAM;QAGE;QACgB;QAHnC,gBAAgB;QAChB,YACmB,IAAgB;QACjC,gBAAgB,CAAiB,GAAW;YAD3B,SAAI,GAAJ,IAAI,CAAY;YACA,QAAG,GAAH,GAAG,CAAQ;QAC1C,CAAC;QAEL,IAAY,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAErE;;;;;;WAMG;QACH,IAAW,YAAY,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACrE,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAW,KAAK,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC7F,IAAW,KAAK;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,IAAW,WAAW,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACnE,IAAW,YAAY,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACrE,IAAW,YAAY,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAErE;kHAC0G;QAC1G,IAAW,QAAQ,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9D,2FAA2F;QAC3F,IAAW,QAAQ;YACjB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3L,CAAC;QAED,kEAAkE;QAC3D,QAAQ,CAAC,IAAY;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,CAAC;QAED;;;WAGG;QACI,CAAC,UAAU,CAAC,MAAkB;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1E,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;oBACpD,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,yEAAyE;QAClE,cAAc,CAAC,IAAY;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACzC,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,CAAC;QAED,2EAA2E;QACpE,iBAAiB,CAAC,IAAY;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACzC,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,CAAC;QAED,6EAA6E;QACtE,mBAAmB,CAAC,IAAY;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACzC,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,CAAC;QAED,+CAA+C;QACxC,CAAC,eAAe;YACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE;gBACpE,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,uDAAuD;QAChD,CAAC,mBAAmB;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACjE,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,yDAAyD;QAClD,CAAC,qBAAqB;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACjE,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;KACF;IAtGY,iBAAM,SAsGlB,CAAA;IAED;;;;OAIG;IACH,MAAa,KAAK;QAGK;QACc;QAHnC,gBAAgB;QAChB,YACqB,IAAgB;QACnC,gBAAgB,CAAiB,GAAW;YADzB,SAAI,GAAJ,IAAI,CAAY;YACF,QAAG,GAAH,GAAG,CAAQ;QAC1C,CAAC;QAEL,gBAAgB;QAChB,IAAc,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEvE;;WAEG;QACH,IAAW,YAAY,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACrE,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAW,KAAK;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD;+EACuE;QACvE,IAAW,QAAQ;YACjB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;QAClJ,CAAC;QACD,IAAW,MAAM,KAAa,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnF,IAAW,IAAI,KAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAW,QAAQ,KAAoB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEpE,qBAAqB;QAErB,8IAA8I;QAC9I,6CAA6C;QACtC,QAAQ,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,gCAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E;mDAC2C;QACpC,cAAc,KAAgC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,gCAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QACzG,6CAA6C;QACtC,QAAQ,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,gCAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,6CAA6C;QACtC,OAAO,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,gCAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,6CAA6C;QACtC,iBAAiB,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,gCAAS,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7F,6CAA6C;QACtC,MAAM,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,gCAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvE,0BAA0B;QACnB,kBAAkB;YACvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QACnG,CAAC;QAED,kBAAkB;QAClB,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,oCAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3F,IAAW,QAAQ,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,oCAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvF;;;;;;;qGAO6F;QAC7F,IAAW,QAAQ,KAA0B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE1E;;;;;;;oCAO4B;QAC5B,IAAW,mBAAmB;YAC5B,IAAI,IAAI,GAA0B,IAAI,CAAC,KAAK,CAAC;YAC7C,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;oBAAE,OAAO,KAAK,CAAC,CAAC,sCAAsC;gBACjF,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACxC,qFAAqF;gBACrF,IAAI,GAAG,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/F,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY;QAEZ,qDAAqD;QACrD,IAAW,SAAS;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YACpC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,CAAC;QAED,+EAA+E;QAC/E,IAAW,MAAM;YACf,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAClC,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;gBACtE,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,SAAS;oBAAE,SAAS,CAAC,kDAAkD;gBAC3G,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED;;WAEG;QACI,EAAE,CAAC,WAA2B;YACnC,IAAI,SAAiB,CAAC;YACtB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1C,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,4EAA4E;gBAC5E,+CAA+C;gBAC/C,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,SAAS,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACnC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/D,CAAC;QAED,+FAA+F;QAC/F,IAAW,cAAc;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,aAAa;QAEb;;;;;yBAKiB;QACV,WAAW,CAAC,IAAY;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,KAAK,SAAS;oBAC3G,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,oGAAoG;QAC7F,aAAa;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,6DAA6D;QACtD,gBAAgB;YACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,MAAM,MAAM,GAAe,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IA3KY,gBAAK,QA2KjB,CAAA;IAED;;;;OAIG;IACH,MAAa,iBAAkB,SAAQ,KAAK;QAC1C,IAAW,QAAQ,KAAmB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,IAAW,iBAAiB,KAAwB,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE1F,IAAW,MAAM;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;YAC3C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,CAAC;QAED,IAAW,MAAM;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;YAC3C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,CAAC;KACF;IAbY,4BAAiB,oBAa7B,CAAA;IAED,gBAAgB;IAChB,SAAgB,WAAW,CAAC,GAAe,EAAE,GAAW;QACtD,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,gCAAS,CAAC,YAAY;YAC5D,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAJe,sBAAW,cAI1B,CAAA;IAED;;;;OAIG;IACH,MAAsB,QAAQ;QAGP;QACF;QAIA;QAPnB,gBAAgB;QAChB,YACqB,IAAgB,EAClB,IAAiB;QAClC;;6EAEqE;QACpD,SAAiB;YALf,SAAI,GAAJ,IAAI,CAAY;YAClB,SAAI,GAAJ,IAAI,CAAa;YAIjB,cAAS,GAAT,SAAS,CAAQ;QAChC,CAAC;QAEL,gBAAgB;QAChB,IAAc,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE/E;;;;;WAKG;QACH,IAAW,YAAY,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACpE,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1F;qGAC6F;QAC7F,IAAW,KAAK;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YAChD,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxF,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;YAC3C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,IAAW,IAAI,KAAmB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACjE;qHAC6G;QAC7G,IAAW,QAAQ,KAAc,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,6FAA6F;QAC7F,IAAW,QAAQ,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE5D;;;;;WAKG;QACH,IAAW,cAAc;YACvB,OAAO,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,CAAC;QAED,yFAAyF;QACzF,IAAW,QAAQ;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YAClC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,CAAC;QAED,wDAAwD;QAExD;iGACyF;QAClF,WAAW;YAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,cAAc,CAAC;QACrG,CAAC;QACD,iFAAiF;QAC1E,QAAQ;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,WAAW,CAAC;QAC/F,CAAC;QACD,yFAAyF;QAClF,OAAO;YACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,WAAW,CAAC;QACvG,CAAC;QACD,gDAAgD;QACzC,YAAY;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,UAAU,CAAC;QACpD,CAAC;QACD;;2FAEmF;QAC5E,aAAa;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,oDAAoD;QAEpD,uBAAuB;QAChB,eAAe;YACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,mCAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,oBAAoB;QACb,YAAY;YACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,mCAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,mBAAmB;QACZ,WAAW;YAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,mCAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,wBAAwB;QACjB,gBAAgB;YACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,mCAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;KACF;IAxGqB,mBAAQ,WAwG7B,CAAA;IAED;;;OAGG;IACH,MAAa,iBAAkB,SAAQ,QAAQ;QAC7C,IAAW,aAAa,KAA8B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvF,IAAW,gBAAgB;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACvC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,CAAC;QACD,IAAW,cAAc;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC;KACF;IAdY,4BAAiB,oBAc7B,CAAA;IAED;;;OAGG;IACH,MAAa,sBAAuB,SAAQ,QAAQ;QAClD,IAAW,aAAa,KAA8B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvF,IAAW,gBAAgB;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACvC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,CAAC;QACD,IAAW,cAAc;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,IAAW,cAAc,KAAyB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACpF,IAAW,cAAc,KAAyB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;KACrF;IAhBY,iCAAsB,yBAgBlC,CAAA;IAED;;;OAGG;IACH,MAAa,cAAe,SAAQ,QAAQ;QAC1C,IAAW,WAAW;YACpB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC;KACF;IAJY,yBAAc,iBAI1B,CAAA;IAED;;OAEG;IACH,MAAa,mBAAoB,SAAQ,QAAQ;QAC/C,IAAW,WAAW;YACpB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1D,CAAC;QACD,IAAW,cAAc,KAAyB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACpF,IAAW,cAAc,KAAyB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;KACrF;IANY,8BAAmB,sBAM/B,CAAA;IAED;;;OAGG;IACH,MAAa,kBAAmB,SAAQ,QAAQ;QAC9C,IAAW,SAAS,KAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5E,IAAW,iBAAiB;YAC1B,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAsB,CAAC;QAC/E,CAAC;KACF;IALY,6BAAkB,qBAK9B,CAAA;IAyBD,gBAAgB;IAChB,SAAgB,cAAc,CAAC,GAAe,EAAE,GAAgB,EAAE,QAAgB;QAChF,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACrD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,mCAAY,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC9E,KAAK,mCAAY,CAAC,cAAc,CAAC,CAAC,OAAO,IAAI,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACxF,KAAK,mCAAY,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACxE,KAAK,mCAAY,CAAC,WAAW,CAAC,CAAC,OAAO,IAAI,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAClF,KAAK,mCAAY,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAChF,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAc,kBAAkB,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC/J,CAAC;IACH,CAAC;IAVe,yBAAc,iBAU7B,CAAA;IAED;;OAEG;IACH,MAAa,WAAW;QAGH;QACgB;QAHnC,gBAAgB;QAChB,YACmB,IAAgB;QACjC,gBAAgB,CAAiB,GAAW;YAD3B,SAAI,GAAJ,IAAI,CAAY;YACA,QAAG,GAAH,GAAG,CAAQ;QAC1C,CAAC;QAEL,IAAY,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1E;;WAEG;QACH,IAAW,YAAY,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACrE,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAW,KAAK;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,+CAA+C;QAC/C,IAAW,QAAQ;YACjB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;QAClJ,CAAC;QACD,IAAW,MAAM,KAAa,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnF,IAAW,aAAa,KAA8B,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACxF,IAAW,QAAQ,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9D,gDAAgD;QACzC,CAAC,cAAc;YACpB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE;gBAC5E,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,kDAAkD;QAC3C,mBAAmB,CAAC,IAAY;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/E,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,KAAK;oBAC9F,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,gCAAgC;QACzB,aAAa,CAAC,KAAsB;YACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/E,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;oBACpD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF;IA1DY,sBAAW,cA0DvB,CAAA;IAED;;OAEG;IACH,MAAa,UAAU;QAGF;QACgB;QAHnC,gBAAgB;QAChB,YACmB,IAAgB;QACjC,gBAAgB,CAAiB,GAAW;YAD3B,SAAI,GAAJ,IAAI,CAAY;YACA,QAAG,GAAH,GAAG,CAAQ;QAC1C,CAAC;QAEL,IAAY,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEzE,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAW,KAAK;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,IAAW,KAAK,KAAsB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KACjE;IAnBY,qBAAU,aAmBtB,CAAA;IAqBD;;OAEG;IACH,SAAgB,iBAAiB,CAAC,YAAoB;QACpD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAEhC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAErE,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,MAAM,KAAK,GAAiD,EAAE,CAAC;QAC/D,IAAI,CAAC,CAAC;QACN,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClF,CAAC;IAlBe,4BAAiB,oBAkBhC,CAAA;IAED;;OAEG;IACH,MAAa,cAAc;QAGN;QACgB;QAHnC,gBAAgB;QAChB,YACmB,IAAgB;QACjC,gBAAgB,CAAiB,GAAW;YAD3B,SAAI,GAAJ,IAAI,CAAY;YACA,QAAG,GAAH,GAAG,CAAQ;QAC1C,CAAC;QAEL,IAAY,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAElE;;WAEG;QACH,IAAW,YAAY,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACrE,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAW,KAAK;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,8CAA8C;QAC9C,IAAW,QAAQ;YACjB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;QAClJ,CAAC;QACD,IAAW,MAAM,KAAa,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnF,IAAW,aAAa,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE;;;;;WAKG;QACH,IAAW,eAAe;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC;YAChD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,qJAAqJ;QACrJ;;;;;;;WAOG;QACH,IAAW,sBAAsB;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC;YACpD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QAED;;;;;;;;;;;WAWG;QACH,IAAW,mBAAmB;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACxC,IAAI,GAAG,KAAK,EAAE;gBACZ,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;KACF;IAxEY,yBAAc,iBAwE1B,CAAA;IAED;;OAEG;IACH,MAAa,gBAAgB;QAGR;QACgB;QAHnC,gBAAgB;QAChB,YACmB,IAAgB;QACjC,gBAAgB,CAAiB,GAAW;YAD3B,SAAI,GAAJ,IAAI,CAAY;YACA,QAAG,GAAH,GAAG,CAAQ;QAC1C,CAAC;QAEL,IAAY,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5E;;WAEG;QACH,IAAW,YAAY,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QACrE,IAAW,IAAI,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAW,KAAK;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,CAAC;QACD,IAAW,WAAW;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,mDAAmD;QACnD,IAAW,QAAQ;YACjB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;QAClJ,CAAC;QACD,IAAW,MAAM,KAAa,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnF,IAAW,QAAQ,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC9D;IA7BY,2BAAgB,mBA6B5B,CAAA;IAED;;OAEG;IACH,MAAa,aAAa;QAGL;QACA;QAHnB,gBAAgB;QAChB,YACmB,IAAgB,EAChB,IAAY;YADZ,SAAI,GAAJ,IAAI,CAAY;YAChB,SAAI,GAAJ,IAAI,CAAQ;QAC3B,CAAC;QAEL,IAAY,KAAK,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7E,IAAW,kBAAkB;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAC7C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,CAAC;QACD,IAAW,WAAW,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACpE,gDAAgD;QAChD,IAAW,iBAAiB,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/E,gDAAgD;QAChD,IAAW,iBAAiB,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/E,8CAA8C;QAC9C,IAAW,SAAS;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YAC1C,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,IAAW,iBAAiB;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE;gBACtC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpG,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IA9BY,wBAAa,gBA8BzB,CAAA;AACH,CAAC,EA1yBgB,UAAU,0BAAV,UAAU,QA0yB1B;AAED,wFAAwF;AACxF,oBAAoB;AACpB,wFAAwF;AAExF;;;;;;;;GAQG;AACH,MAAa,iBAAiB;IACX,QAAQ,GAAa,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;IAClD,aAAa,GAAa,CAAC,EAAE,CAAC,CAAC;IAC/B,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,wBAAwB;IAEhE,QAAQ,GAAiB,EAAE,CAAC;IAC5B,QAAQ,GAAgB,EAAE,CAAC;IAC3B,YAAY,GAAa,EAAE,CAAC;IAC5B,SAAS,GAAkB,EAAE,CAAC;IAC9B,aAAa,GAAkB,EAAE,CAAC;IAClC,eAAe,GAAwB,EAAE,CAAC;IAC1C,oBAAoB,GAAa,EAAE,CAAC;IACpC,aAAa,GAAsB,EAAE,CAAC;IACtC,YAAY,GAAqB,EAAE,CAAC;IACpC,KAAK,GAAc,EAAE,CAAC;IACtB,eAAe,GAAuB,EAAE,CAAC;IAE1D,wBAAwB;IACP,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,6BAA6B;IAEvF;;;OAGG;IACI,YAAY,CAAC,KAAyB;QAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,uCAAuC;IAChC,SAAS,CAAC,IAAgB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8EAA8E;IACvE,QAAQ,CAAC,IAAe;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,+FAA+F;IACxF,cAAc,CAAC,IAAiB;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,0DAA0D;IACnD,cAAc,CAAC,GAAgB;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,6CAA6C;IACtC,cAAc,CAAC,IAAqB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,0DAA0D;IACnD,aAAa,CAAC,IAAoB;QACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,+CAA+C;IACxC,MAAM,CAAC,IAAa;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,iDAAiD;IAC1C,mBAAmB,CAAC,IAAsB;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,wDAAwD;IACjD,gBAAgB,CAAC,IAAuB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,6DAA6D;IACtD,qBAAqB,CAAC,QAAgB;QAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,wDAAwD;IACjD,aAAa,CAAC,QAAgB;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,kFAAkF;IAClF,IAAW,gBAAgB,KAAa,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3E,yFAAyF;IACzF,IAAW,eAAe,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,8EAA8E;IAC9E,IAAW,uBAAuB,KAAa,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzF,qEAAqE;IACrE,IAAW,eAAe,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE,qCAAqC;IAC9B,SAAS,CAAC,GAAW,IAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpE,mGAAmG;IAC5F,WAAW,CAAC,QAAgB,EAAE,IAAe,IAAU,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAE/F,mGAAmG;IAC5F,kBAAkB,CAAC,SAAiB,EAAE,MAAoL;QAC/N,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,WAAoB;QAC/B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;QAEzD,2BAA2B;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC;gBACxB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7D,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE;gBACvE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YACtE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAE7B,yCAAyC;YACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE;gBACpE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAExB,wCAAwC;YACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEvB,6CAA6C;YAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YACzE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,UAAU,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;YAC9C,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,YAAY;YACZ,aAAa;YACb,WAAW;YACX,UAAU;YACV,SAAS;YACT,SAAS;SACV,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC;IAED;;;mEAG+D;IACvD,iBAAiB,CAAC,GAAgB;QACxC,OAAO,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;IACnU,CAAC;CACF;AA5MD,8CA4MC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Schema\n */\n\nimport { type ClassData, ClassModifier, ClassType, type EnumerationData, type EnumeratorData, type KoqData, type PropCategoryData, type PropertyDef, PropertyKind, type PropertyRef, type RelConstraintData, type SchemaData, SchemaViewPrimitiveType } from \"./SchemaViewInterfaces\";\nimport { parseSchemaViewBlob } from \"./SchemaViewBinaryReader\";\nimport { StrengthDirection, StrengthType } from \"./ECObjects\";\n\n// Module-local symbol used as the storage key on SchemaView instances. Mirrors the pattern in\n// core-backend/src/internal/Symbols.ts (e.g. `_nativeDb` on IModelDb): the data is reachable\n// only by code in this module, since the symbol is not exported and not registered globally.\n// The flyweight view classes (SchemaView.Schema, SchemaView.Class, etc.) live in the same file\n// and access the storage through this symbol.\nconst _storage = Symbol(\"SchemaView.storage\");\n\n/** Internal runtime storage attached to a SchemaView instance. Carries the immutable data\n * tables built by SchemaViewBuilder plus two mutable caches populated lazily at runtime.\n * @internal\n */\ninterface SchemaViewStorage extends SchemaViewData {\n readonly transitiveBaseCache: Map<number, ReadonlySet<number>>;\n derivedClassMap: ReadonlyMap<number, readonly number[]> | undefined;\n}\n\n/** A property reference paired with the index of the class that declared it. Used for\n * property inheritance resolution - the classIdx tracks where each property originates\n * (base class, mixin, or own) so consumers can discover the declaring class.\n * @internal\n */\nexport interface ResolvedPropertyRef {\n readonly ref: PropertyRef;\n readonly classIdx: number;\n}\n\n/** Internal data bag passed from the builder to the context constructor.\n * @internal\n */\nexport interface SchemaViewData {\n readonly strings: readonly string[];\n readonly lowerStrings: readonly string[];\n readonly schemas: readonly SchemaData[];\n readonly classes: readonly ClassData[];\n readonly classMixins: readonly number[];\n readonly propDefs: readonly PropertyDef[];\n readonly propertyRefs: readonly PropertyRef[];\n readonly relConstraints: readonly RelConstraintData[];\n readonly constraintClassRefs: readonly number[];\n readonly enumerations: readonly EnumerationData[];\n readonly enumerators: readonly EnumeratorData[];\n readonly koqs: readonly KoqData[];\n readonly propCategories: readonly PropCategoryData[];\n readonly schemaByName: ReadonlyMap<string, number>;\n readonly schemaByAlias: ReadonlyMap<string, number>;\n readonly classByName: ReadonlyMap<number, ReadonlyMap<string, number>>;\n readonly enumByName: ReadonlyMap<number, ReadonlyMap<string, number>>;\n readonly koqByName: ReadonlyMap<number, ReadonlyMap<string, number>>;\n readonly catByName: ReadonlyMap<number, ReadonlyMap<string, number>>;\n}\n\n/** Read-only schema metadata view. Optimized for fast lookup and low memory usage.\n *\n * All data is stored in flat arrays. View objects (`SchemaView.Schema`, `SchemaView.Class`, etc.) are\n * stateless wrappers that hold a reference to this view plus an index. They allocate nothing\n * and cache nothing.\n *\n * The view is immutable after construction. Build it via `SchemaViewBuilder` or parse\n * from a binary blob via `fromBinary`.\n * @beta\n */\nexport class SchemaView {\n /** @internal */\n public readonly [_storage]: SchemaViewStorage;\n\n private _schemaToken: string;\n private _outdated = false;\n\n /** @internal */\n constructor(data: SchemaViewData, schemaToken?: string) {\n this[_storage] = {\n ...data,\n transitiveBaseCache: new Map<number, ReadonlySet<number>>(),\n derivedClassMap: undefined,\n };\n this._schemaToken = schemaToken ?? \"\";\n }\n\n /** SHA3-256 content hash of the ec_ schema tables at the time this view was built.\n * Empty string if not set (e.g., when built from a builder without a token).\n * @beta\n */\n public get schemaToken(): string { return this._schemaToken; }\n\n /** True if the host (`IModelDb` / `IModelConnection`) has replaced this view with a newer one.\n * The view remains fully functional - it returns stale data rather than throwing.\n * Consumers who stored a reference can check this flag for diagnostics.\n * @beta\n */\n public get isOutdated(): boolean { return this._outdated; }\n\n /** Mark this view as outdated. Called by the host when a newer view replaces it.\n * @internal\n */\n public markOutdated(): void { this._outdated = true; }\n\n /** Number of schemas in the view. */\n public get schemaCount(): number { return this[_storage].schemas.length; }\n\n /** Number of classes across all schemas. */\n public get classCount(): number { return this[_storage].classes.length; }\n\n /** Get a schema by name (case-insensitive). */\n public getSchema(name: string): SchemaView.Schema | undefined {\n const idx = this[_storage].schemaByName.get(name.toLowerCase());\n return idx !== undefined ? new SchemaView.Schema(this, idx) : undefined;\n }\n\n /** Get a schema by alias (case-insensitive). */\n public getSchemaByAlias(alias: string): SchemaView.Schema | undefined {\n const idx = this[_storage].schemaByAlias.get(alias.toLowerCase());\n return idx !== undefined ? new SchemaView.Schema(this, idx) : undefined;\n }\n\n /** Iterate all schemas. */\n public *getSchemas(): IterableIterator<SchemaView.Schema> {\n for (let i = 0; i < this[_storage].schemas.length; i++)\n yield new SchemaView.Schema(this, i);\n }\n\n /** Find a class by qualified name (\"SchemaName:ClassName\" or \"SchemaName.ClassName\").\n * The namespace part matches schema name first, then alias. Case-insensitive.\n */\n public findClass(qualifiedName: string): SchemaView.Class | undefined {\n const idx = this.resolveClassIdx(qualifiedName);\n return idx !== -1 ? SchemaView.createClass(this, idx) : undefined;\n }\n\n /** Find an enumeration by qualified name (\"SchemaName:EnumName\" or \"SchemaName.EnumName\").\n * The namespace part matches schema name first, then alias. Case-insensitive.\n */\n public findEnumeration(qualifiedName: string): SchemaView.Enumeration | undefined {\n const idx = this._resolveSchemaItemIdx(qualifiedName, this[_storage].enumByName);\n return idx !== undefined ? new SchemaView.Enumeration(this, idx) : undefined;\n }\n\n /** Find a KindOfQuantity by qualified name (\"SchemaName:KoqName\" or \"SchemaName.KoqName\").\n * The namespace part matches schema name first, then alias. Case-insensitive.\n */\n public findKindOfQuantity(qualifiedName: string): SchemaView.KindOfQuantity | undefined {\n const idx = this._resolveSchemaItemIdx(qualifiedName, this[_storage].koqByName);\n return idx !== undefined ? new SchemaView.KindOfQuantity(this, idx) : undefined;\n }\n\n /** Find a PropertyCategory by qualified name (\"SchemaName:CategoryName\" or \"SchemaName.CategoryName\").\n * The namespace part matches schema name first, then alias. Case-insensitive.\n */\n public findPropertyCategory(qualifiedName: string): SchemaView.PropertyCategory | undefined {\n const idx = this._resolveSchemaItemIdx(qualifiedName, this[_storage].catByName);\n return idx !== undefined ? new SchemaView.PropertyCategory(this, idx) : undefined;\n }\n\n /** Parse a binary blob into a SchemaView. Synchronous.\n * @param blob - The binary blob from `PRAGMA schema_view`.\n * @param schemaToken - Optional SHA3-256 content hash for cache invalidation.\n * @beta\n */\n public static fromBinary(blob: Uint8Array, schemaToken?: string): SchemaView {\n return parseSchemaViewBlob(blob, schemaToken);\n }\n\n /** Build from a pre-populated builder (used by the binary parser).\n * @internal\n */\n public static fromBuilder(builder: SchemaViewBuilder, schemaToken?: string): SchemaView {\n return builder.build(schemaToken);\n }\n\n // --- Internal helpers used by view objects ---\n\n /** Resolve a qualified \"SchemaName:ItemName\" (or dot-separated) to an index using the given\n * per-schema name map. Returns undefined if not found. @internal */\n private _resolveSchemaItemIdx(qualifiedName: string, itemByName: ReadonlyMap<number, ReadonlyMap<string, number>>): number | undefined {\n const sep = qualifiedName.indexOf(\":\");\n const dotSep = sep === -1 ? qualifiedName.indexOf(\".\") : -1;\n const splitAt = sep !== -1 ? sep : dotSep;\n if (splitAt === -1) return undefined;\n\n const ns = qualifiedName.substring(0, splitAt).toLowerCase();\n const itemName = qualifiedName.substring(splitAt + 1).toLowerCase();\n\n let schemaIdx = this[_storage].schemaByName.get(ns);\n if (schemaIdx === undefined)\n schemaIdx = this[_storage].schemaByAlias.get(ns);\n if (schemaIdx === undefined) return undefined;\n\n return itemByName.get(schemaIdx)?.get(itemName);\n }\n\n /** @internal */\n public resolveClassIdx(qualifiedName: string): number {\n const sep = qualifiedName.indexOf(\":\");\n const dotSep = sep === -1 ? qualifiedName.indexOf(\".\") : -1;\n const splitAt = sep !== -1 ? sep : dotSep;\n if (splitAt === -1) return -1;\n\n const ns = qualifiedName.substring(0, splitAt).toLowerCase();\n const cn = qualifiedName.substring(splitAt + 1).toLowerCase();\n\n let schemaIdx = this[_storage].schemaByName.get(ns);\n if (schemaIdx === undefined)\n schemaIdx = this[_storage].schemaByAlias.get(ns);\n if (schemaIdx === undefined) return -1;\n\n const classMap = this[_storage].classByName.get(schemaIdx);\n const classIdx = classMap?.get(cn);\n return classIdx ?? -1;\n }\n\n /** @internal */\n public getTransitiveBases(classIdx: number): ReadonlySet<number> {\n const cached = this[_storage].transitiveBaseCache.get(classIdx);\n if (cached !== undefined) return cached;\n\n const result = new Set<number>();\n this._buildTransitiveBases(classIdx, result);\n this[_storage].transitiveBaseCache.set(classIdx, result);\n return result;\n }\n\n private _buildTransitiveBases(classIdx: number, result: Set<number>): void {\n const cls = this[_storage].classes[classIdx];\n if (cls === undefined) return; // safety: dangling index from excluded schema\n\n if (cls.baseClassIdx !== -1 && !result.has(cls.baseClassIdx)) {\n result.add(cls.baseClassIdx);\n this._buildTransitiveBases(cls.baseClassIdx, result);\n }\n\n for (let i = 0; i < cls.mixinCount; i++) {\n const mixinIdx = this[_storage].classMixins[cls.mixinStartIdx + i];\n if (mixinIdx === -1 || mixinIdx === undefined) continue; // safety: dangling mixin ref\n if (!result.has(mixinIdx)) {\n result.add(mixinIdx);\n this._buildTransitiveBases(mixinIdx, result);\n }\n }\n }\n\n /** @internal */\n public resolveAllProperties(classIdx: number): readonly ResolvedPropertyRef[] {\n const cls = this[_storage].classes[classIdx];\n\n if (cls.type === ClassType.View) {\n // Views don't participate in property inheritance - own properties only\n const result: ResolvedPropertyRef[] = [];\n for (let i = 0; i < cls.ownPropCount; i++) {\n const ref = this[_storage].propertyRefs[cls.ownPropStart + i];\n result.push({ ref, classIdx: -1 });\n }\n return result;\n }\n\n const merged = new Map<string, ResolvedPropertyRef>();\n this._collectProperties(classIdx, merged);\n return Array.from(merged.values());\n }\n\n private _collectProperties(\n classIdx: number,\n merged: Map<string, ResolvedPropertyRef>,\n ): void {\n const cls = this[_storage].classes[classIdx];\n if (cls === undefined) return; // safety: dangling index from excluded schema\n\n // 1. Base class (recursive, depth-first)\n if (cls.baseClassIdx !== -1)\n this._collectProperties(cls.baseClassIdx, merged);\n\n // 2. Mixins in declaration order\n for (let i = 0; i < cls.mixinCount; i++) {\n const mixinIdx = this[_storage].classMixins[cls.mixinStartIdx + i];\n if (mixinIdx === -1 || mixinIdx === undefined) continue; // safety: dangling mixin ref\n this._collectMixinProperties(mixinIdx, merged);\n }\n\n // 3. Own properties - always override\n for (let i = 0; i < cls.ownPropCount; i++) {\n const ref = this[_storage].propertyRefs[cls.ownPropStart + i];\n const nameKey = this[_storage].lowerStrings[this[_storage].propDefs[ref.defIdx].nameStringIdx];\n merged.set(nameKey, { ref, classIdx });\n }\n }\n\n private _collectMixinProperties(\n mixinIdx: number,\n merged: Map<string, ResolvedPropertyRef>,\n ): void {\n const mixin = this[_storage].classes[mixinIdx];\n if (mixin === undefined) return; // safety: dangling index from excluded schema\n\n // Walk mixin's own base chain (mixins can extend other mixins)\n if (mixin.baseClassIdx !== -1)\n this._collectMixinProperties(mixin.baseClassIdx, merged);\n\n // Mixin's own mixins\n for (let i = 0; i < mixin.mixinCount; i++) {\n const subMixinIdx = this[_storage].classMixins[mixin.mixinStartIdx + i];\n if (subMixinIdx === -1 || subMixinIdx === undefined) continue; // safety: dangling mixin ref\n this._collectMixinProperties(subMixinIdx, merged);\n }\n\n // Mixin's own properties - only set if not already present (first mixin wins)\n for (let i = 0; i < mixin.ownPropCount; i++) {\n const ref = this[_storage].propertyRefs[mixin.ownPropStart + i];\n const nameKey = this[_storage].lowerStrings[this[_storage].propDefs[ref.defIdx].nameStringIdx];\n if (!merged.has(nameKey))\n merged.set(nameKey, { ref, classIdx: mixinIdx });\n }\n }\n\n /** @internal */\n public buildDerivedClassMap(): ReadonlyMap<number, readonly number[]> {\n if (this[_storage].derivedClassMap !== undefined) return this[_storage].derivedClassMap;\n\n const map = new Map<number, number[]>();\n for (let i = 0; i < this[_storage].classes.length; i++) {\n const baseIdx = this[_storage].classes[i].baseClassIdx;\n if (baseIdx !== -1) {\n let arr = map.get(baseIdx);\n if (arr === undefined) {\n arr = [];\n map.set(baseIdx, arr);\n }\n arr.push(i);\n }\n }\n this[_storage].derivedClassMap = map;\n return map;\n }\n}\n\n// =====================================================================================\n// SchemaView namespace - flyweight view types\n// =====================================================================================\n\n\n/** @beta */\nexport namespace SchemaView {\n\n /** Lightweight view over a schema in a `SchemaView`. Holds only a view reference and\n * an index - no data duplication, no mutable state.\n * @beta\n */\n export class Schema {\n /** @internal */\n constructor(\n private readonly _ctx: SchemaView,\n /** @internal */ public readonly idx: number,\n ) { }\n\n private get _data() { return this._ctx[_storage].schemas[this.idx]; }\n\n /** Row ID from ec_Schema. Matches `ECInstanceId` in ECDbMeta views, e.g.\n * `SELECT * FROM meta.ECSchemaDef WHERE ECInstanceId = ?`.\n *\n * This is not an array index or internal handle - it is the database row ID from the ec_Schema\n * table, carried through the binary blob so consumers can fall back to ECSQL meta-queries for\n * data not included in the schema view (custom attributes, schema references, etc.).\n */\n public get ecInstanceId(): number { return this._data.ecInstanceId; }\n public get name(): string { return this._ctx[_storage].strings[this._data.nameStringIdx]; }\n public get alias(): string { return this._ctx[_storage].strings[this._data.aliasStringIdx]; }\n public get label(): string {\n const sid = this._data.labelStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;\n }\n public get description(): string {\n const sid = this._data.descriptionStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n public get readVersion(): number { return this._data.versionRead; }\n public get writeVersion(): number { return this._data.versionWrite; }\n public get minorVersion(): number { return this._data.versionMinor; }\n\n /** Reflects the `HiddenSchema` custom attribute from `CoreCustomAttributes`.\n * Schemas marked hidden are typically excluded from UI display but remain accessible programmatically. */\n public get isHidden(): boolean { return this._data.isHidden; }\n\n /** \"SchemaName.RR.WW.mm\" - dot-separated, matching the EC schema versioning convention. */\n public get fullName(): string {\n const d = this._data;\n return `${this._ctx[_storage].strings[d.nameStringIdx]}.${String(d.versionRead).padStart(2, \"0\")}.${String(d.versionWrite).padStart(2, \"0\")}.${String(d.versionMinor).padStart(2, \"0\")}`;\n }\n\n /** Find a class by name within this schema (case-insensitive). */\n public getClass(name: string): Class | undefined {\n const classMap = this._ctx[_storage].classByName.get(this.idx);\n const classIdx = classMap?.get(name.toLowerCase());\n return classIdx !== undefined ? createClass(this._ctx, classIdx) : undefined;\n }\n\n /** Iterate classes in this schema. Pass a `ClassType` to filter to a single kind\n * (e.g. `getClasses(ClassType.View)`). Omit the argument to iterate every class\n * regardless of type.\n */\n public *getClasses(filter?: ClassType): IterableIterator<Class> {\n const d = this._data;\n const classes = this._ctx[_storage].classes;\n for (let i = d.classRangeStart; i < d.classRangeStart + d.classCount; i++) {\n if (filter === undefined || classes[i].type === filter)\n yield createClass(this._ctx, i);\n }\n }\n\n /** Find an enumeration by name within this schema (case-insensitive). */\n public getEnumeration(name: string): Enumeration | undefined {\n const map = this._ctx[_storage].enumByName.get(this.idx);\n const idx = map?.get(name.toLowerCase());\n return idx !== undefined ? new Enumeration(this._ctx, idx) : undefined;\n }\n\n /** Find a KindOfQuantity by name within this schema (case-insensitive). */\n public getKindOfQuantity(name: string): KindOfQuantity | undefined {\n const map = this._ctx[_storage].koqByName.get(this.idx);\n const idx = map?.get(name.toLowerCase());\n return idx !== undefined ? new KindOfQuantity(this._ctx, idx) : undefined;\n }\n\n /** Find a PropertyCategory by name within this schema (case-insensitive). */\n public getPropertyCategory(name: string): PropertyCategory | undefined {\n const map = this._ctx[_storage].catByName.get(this.idx);\n const idx = map?.get(name.toLowerCase());\n return idx !== undefined ? new PropertyCategory(this._ctx, idx) : undefined;\n }\n\n /** Iterate all enumerations in this schema. */\n public *getEnumerations(): IterableIterator<Enumeration> {\n const d = this._data;\n for (let i = d.enumRangeStart; i < d.enumRangeStart + d.enumCount; i++)\n yield new Enumeration(this._ctx, i);\n }\n\n /** Iterate all KindOfQuantity items in this schema. */\n public *getKindOfQuantities(): IterableIterator<KindOfQuantity> {\n const d = this._data;\n for (let i = d.koqRangeStart; i < d.koqRangeStart + d.koqCount; i++)\n yield new KindOfQuantity(this._ctx, i);\n }\n\n /** Iterate all PropertyCategory items in this schema. */\n public *getPropertyCategories(): IterableIterator<PropertyCategory> {\n const d = this._data;\n for (let i = d.catRangeStart; i < d.catRangeStart + d.catCount; i++)\n yield new PropertyCategory(this._ctx, i);\n }\n }\n\n /** Lightweight view over a class in a `SchemaView`. For relationship-specific\n * fields (strength, direction, source/target constraints), narrow via `isRelationship()`\n * or `assertRelationship()` to get a `SchemaView.RelationshipClass`.\n * @beta\n */\n export class Class {\n /** @internal */\n constructor(\n protected readonly _ctx: SchemaView,\n /** @internal */ public readonly idx: number,\n ) { }\n\n /** @internal */\n protected get _data() { return this._ctx[_storage].classes[this.idx]; }\n\n /** Row ID from ec_Class. Matches `ECInstanceId` in ECDbMeta views, e.g.\n * `SELECT * FROM meta.ECClassDef WHERE ECInstanceId = ?`.\n */\n public get ecInstanceId(): number { return this._data.ecInstanceId; }\n public get name(): string { return this._ctx[_storage].strings[this._data.nameStringIdx]; }\n public get label(): string {\n const sid = this._data.labelStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;\n }\n public get description(): string {\n const sid = this._data.descriptionStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n /** \"SchemaName:ClassName\" - colon-separated, matching the EC class full name convention.\n * Use either \":\" or \".\" as separator when passing to `findClass()`. */\n public get fullName(): string {\n const d = this._data;\n return `${this._ctx[_storage].strings[this._ctx[_storage].schemas[d.schemaIdx].nameStringIdx]}:${this._ctx[_storage].strings[d.nameStringIdx]}`;\n }\n public get schema(): Schema { return new Schema(this._ctx, this._data.schemaIdx); }\n public get type(): ClassType { return this._data.type; }\n public get modifier(): ClassModifier { return this._data.modifier; }\n\n // Type check methods\n\n // disabling lint rule for these because we explicitly want them to mirror same methods in ecschema-metadata, to make the APIs more compatible\n // eslint-disable-next-line @itwin/prefer-get\n public isEntity(): boolean { return this._data.type === ClassType.Entity; }\n /** Type predicate - narrows to `SchemaView.RelationshipClass` for access to strength, direction,\n * source, and target constraint fields. */\n public isRelationship(): this is RelationshipClass { return this._data.type === ClassType.Relationship; }\n // eslint-disable-next-line @itwin/prefer-get\n public isStruct(): boolean { return this._data.type === ClassType.Struct; }\n // eslint-disable-next-line @itwin/prefer-get\n public isMixin(): boolean { return this._data.type === ClassType.Mixin; }\n // eslint-disable-next-line @itwin/prefer-get\n public isCustomAttribute(): boolean { return this._data.type === ClassType.CustomAttribute; }\n // eslint-disable-next-line @itwin/prefer-get\n public isView(): boolean { return this._data.type === ClassType.View; }\n\n /** @see isRelationship */\n public assertRelationship(): asserts this is RelationshipClass {\n if (!this.isRelationship())\n throw new Error(`Expected a relationship class, got type ${this.type} for \"${this.fullName}\"`);\n }\n\n // Modifier checks\n public get isAbstract(): boolean { return this._data.modifier === ClassModifier.Abstract; }\n public get isSealed(): boolean { return this._data.modifier === ClassModifier.Sealed; }\n\n /** Reflects the `HiddenClass` custom attribute from `CoreCustomAttributes`.\n * Returns `true` when this class is directly hidden (via `HiddenClass(Show!=true)` or\n * schema-level `HiddenSchema(ShowClasses!=true)`). Does NOT consider base class inheritance -\n * use `isEffectivelyHidden` for that.\n *\n * Note: `false` means explicitly shown via `HiddenClass(Show=true)`. `undefined` means\n * no `HiddenClass` CA and the schema does not hide its classes. Both are \"not hidden\" for\n * this property, but `isEffectivelyHidden` distinguishes them when walking the hierarchy. */\n public get isHidden(): boolean | undefined { return this._data.isHidden; }\n\n /** Computed hidden status that walks the base class chain (not mixins).\n *\n * Returns `true` if this class is hidden or any ancestor in the base class chain is hidden,\n * unless this class or an intermediate class explicitly breaks the chain with\n * `HiddenClass(Show=true)` (i.e. `isHidden === false`).\n *\n * Mixins are intentionally excluded - a hidden mixin represents a hidden capability,\n * not a hidden identity. */\n public get isEffectivelyHidden(): boolean {\n let data: ClassData | undefined = this._data;\n while (data !== undefined) {\n if (data.isHidden === false) return false; // explicit Show=true breaks the chain\n if (data.isHidden === true) return true;\n // undefined: walk to base class via internal array (avoids allocating Class objects)\n data = data.baseClassIdx !== -1 ? this._ctx[_storage].classes[data.baseClassIdx] : undefined;\n }\n return false;\n }\n\n // Hierarchy\n\n /** Single base class. undefined for root classes. */\n public get baseClass(): Class | undefined {\n const idx = this._data.baseClassIdx;\n return idx !== -1 ? createClass(this._ctx, idx) : undefined;\n }\n\n /** Applied mixins in declaration order. Only meaningful for entity classes. */\n public get mixins(): readonly Class[] {\n const d = this._data;\n if (d.mixinCount === 0) return [];\n const result: Class[] = [];\n for (let i = 0; i < d.mixinCount; i++) {\n const mixinIdx = this._ctx[_storage].classMixins[d.mixinStartIdx + i];\n if (mixinIdx === -1 || mixinIdx === undefined) continue; // safety: dangling mixin ref from excluded schema\n result.push(createClass(this._ctx, mixinIdx));\n }\n return result;\n }\n\n /** IS-A check. Returns true if this class is, or derives from, `other` (transitively, including mixins).\n * Accepts a `SchemaView.Class` or a qualified name string (\"SchemaName:ClassName\").\n */\n public is(classOrName: Class | string): boolean {\n let targetIdx: number;\n if (typeof classOrName === \"string\") {\n targetIdx = this._ctx.resolveClassIdx(classOrName);\n } else if (classOrName._ctx === this._ctx) {\n targetIdx = classOrName.idx;\n } else {\n // Cross-view input: indices are not comparable across SchemaView instances.\n // Resolve by qualified name against this view.\n targetIdx = this._ctx.resolveClassIdx(classOrName.fullName);\n }\n if (targetIdx === -1) return false;\n if (this.idx === targetIdx) return true;\n return this._ctx.getTransitiveBases(this.idx).has(targetIdx);\n }\n\n /** Direct derived classes. Expensive on first call (builds reverse map across all classes). */\n public get derivedClasses(): readonly Class[] {\n const map = this._ctx.buildDerivedClassMap();\n const indices = map.get(this.idx);\n if (indices === undefined) return [];\n return indices.map((i) => createClass(this._ctx, i));\n }\n\n // Properties\n\n /** Find a property by name (case-insensitive). Searches own + inherited.\n *\n * Note: this resolves the full property list and linear-scans it on every call. For workloads\n * that hit `getProperty` repeatedly on the same class with different names, a per-class\n * resolved-property map cache could be added on the view. Not done now - measure before\n * optimizing. */\n public getProperty(name: string): Property | undefined {\n const allProps = this._ctx.resolveAllProperties(this.idx);\n const lowerName = name.toLowerCase();\n for (const rp of allProps) {\n if (this._ctx[_storage].lowerStrings[this._ctx[_storage].propDefs[rp.ref.defIdx].nameStringIdx] === lowerName)\n return createProperty(this._ctx, rp.ref, rp.classIdx);\n }\n return undefined;\n }\n\n /** All properties including inherited, in inheritance order (base first, then mixins, then own). */\n public getProperties(): readonly Property[] {\n const allRefs = this._ctx.resolveAllProperties(this.idx);\n return allRefs.map((rp) => createProperty(this._ctx, rp.ref, rp.classIdx));\n }\n\n /** Own properties only (not inherited), in ordinal order. */\n public getOwnProperties(): readonly Property[] {\n const d = this._data;\n const result: Property[] = [];\n for (let i = 0; i < d.ownPropCount; i++) {\n const ref = this._ctx[_storage].propertyRefs[d.ownPropStart + i];\n result.push(createProperty(this._ctx, ref, this.idx));\n }\n return result;\n }\n }\n\n /** A relationship class with constraint and strength metadata. Created by `createClass()`\n * when the underlying `ClassType` is `Relationship`. Use `cls.isRelationship()` to narrow a\n * `SchemaView.Class` to this type.\n * @beta\n */\n export class RelationshipClass extends Class {\n public get strength(): StrengthType { return this._data.strength; }\n public get strengthDirection(): StrengthDirection { return this._data.strengthDirection; }\n\n public get source(): RelConstraint | undefined {\n const idx = this._data.sourceConstraintIdx;\n return idx !== -1 ? new RelConstraint(this._ctx, idx) : undefined;\n }\n\n public get target(): RelConstraint | undefined {\n const idx = this._data.targetConstraintIdx;\n return idx !== -1 ? new RelConstraint(this._ctx, idx) : undefined;\n }\n }\n\n /** @internal */\n export function createClass(ctx: SchemaView, idx: number): Class {\n if (ctx[_storage].classes[idx].type === ClassType.Relationship)\n return new RelationshipClass(ctx, idx);\n return new Class(ctx, idx);\n }\n\n /** Lightweight view over a property in a `SchemaView`. Subclasses provide\n * type-safe access to kind-specific fields. Use `isPrimitive()`, `isStruct()`,\n * `isArray()`, or `isNavigation()` to narrow, or the corresponding `assert*()` methods.\n * @beta\n */\n export abstract class Property {\n /** @internal */\n constructor(\n protected readonly _ctx: SchemaView,\n private readonly _ref: PropertyRef,\n /** Index of the class that declared or contributed this property through inheritance.\n * For own properties, this is the class itself. For inherited properties, this is the\n * base class or mixin that introduced it. -1 for view properties. */\n private readonly _classIdx: number,\n ) { }\n\n /** @internal */\n protected get _def() { return this._ctx[_storage].propDefs[this._ref.defIdx]; }\n\n /** Row ID from ec_Property. Matches `ECInstanceId` in ECDbMeta views, e.g.\n * `SELECT * FROM meta.ECPropertyDef WHERE ECInstanceId = ?`.\n *\n * Stored per-reference (not per-definition) because each class-property pair has a unique\n * ec_Property row even when the structural definition is deduplicated.\n */\n public get ecInstanceId(): number { return this._ref.ecInstanceId; }\n public get name(): string { return this._ctx[_storage].strings[this._def.nameStringIdx]; }\n /** Display label. Falls back to the property name if no explicit label is set.\n * Labels are stored per-reference (not per-definition) because EC allows class overrides. */\n public get label(): string {\n const labelStringIdx = this._ref.labelStringIdx;\n return labelStringIdx !== 0 ? this._ctx[_storage].strings[labelStringIdx] : this.name;\n }\n public get description(): string {\n const sid = this._def.descriptionStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n public get kind(): PropertyKind { return this._def.kind; }\n public get isReadOnly(): boolean { return this._def.isReadOnly; }\n /** Reflects the `HiddenProperty` custom attribute from `CoreCustomAttributes`.\n * Properties marked hidden are typically excluded from UI display but remain accessible programmatically. */\n public get isHidden(): boolean { return this._def.isHidden; }\n /** Display priority. Higher values should be displayed more prominently. 0 means default. */\n public get priority(): number { return this._ref.priority; }\n\n /** The class that declared or contributed this property through inheritance.\n * For own properties, returns the class itself. For inherited properties, returns the\n * base class or mixin that introduced it. Returns `undefined` for view properties.\n * This is the class array index, not the ec_Class.Id from the database.\n * @beta\n */\n public get declaringClass(): Class | undefined {\n return this._classIdx !== -1 ? createClass(this._ctx, this._classIdx) : undefined;\n }\n\n /** Property category, or undefined if none assigned. Available on all property kinds. */\n public get category(): PropertyCategory | undefined {\n const idx = this._def.categoryIdx;\n return idx !== -1 ? new PropertyCategory(this._ctx, idx) : undefined;\n }\n\n // Type guards - real type predicates that narrow `this`\n\n /** True for `SchemaView.PrimitiveProperty` and `SchemaView.PrimitiveArrayProperty`.\n * Matches ecschema-metadata behavior where `isPrimitive()` includes primitive arrays. */\n public isPrimitive(): this is AnyPrimitiveProperty {\n return this._def.kind === PropertyKind.Primitive || this._def.kind === PropertyKind.PrimitiveArray;\n }\n /** True for `SchemaView.StructProperty` and `SchemaView.StructArrayProperty`. */\n public isStruct(): this is AnyStructProperty {\n return this._def.kind === PropertyKind.Struct || this._def.kind === PropertyKind.StructArray;\n }\n /** True for `SchemaView.PrimitiveArrayProperty` and `SchemaView.StructArrayProperty`. */\n public isArray(): this is AnyArrayProperty {\n return this._def.kind === PropertyKind.PrimitiveArray || this._def.kind === PropertyKind.StructArray;\n }\n /** True for `SchemaView.NavigationProperty`. */\n public isNavigation(): this is NavigationProperty {\n return this._def.kind === PropertyKind.Navigation;\n }\n /** True if this property is backed by an enumeration. Enumerations are a facet of primitive\n * properties - an enum property IS a primitive property with an enum binding. Narrows to\n * `AnyPrimitiveProperty` so you can access `enumeration`, `primitiveType`, etc. */\n public isEnumeration(): this is AnyPrimitiveProperty {\n return this._def.enumIdx !== -1;\n }\n\n // Assert methods - throw on mismatch, narrow `this`\n\n /** @see isPrimitive */\n public assertPrimitive(): asserts this is AnyPrimitiveProperty {\n if (!this.isPrimitive())\n throw new Error(`Expected a primitive property, got ${PropertyKind[this.kind]}`);\n }\n /** @see isStruct */\n public assertStruct(): asserts this is AnyStructProperty {\n if (!this.isStruct())\n throw new Error(`Expected a struct property, got ${PropertyKind[this.kind]}`);\n }\n /** @see isArray */\n public assertArray(): asserts this is AnyArrayProperty {\n if (!this.isArray())\n throw new Error(`Expected an array property, got ${PropertyKind[this.kind]}`);\n }\n /** @see isNavigation */\n public assertNavigation(): asserts this is NavigationProperty {\n if (!this.isNavigation())\n throw new Error(`Expected a navigation property, got ${PropertyKind[this.kind]}`);\n }\n }\n\n /** A scalar primitive property. May optionally be backed by an enumeration -\n * check `isEnumeration()` or `enumeration`.\n * @beta\n */\n export class PrimitiveProperty extends Property {\n public get primitiveType(): SchemaViewPrimitiveType { return this._def.primitiveType; }\n public get extendedTypeName(): string | undefined {\n const sid = this._def.extTypeStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : undefined;\n }\n public get enumeration(): Enumeration | undefined {\n const idx = this._def.enumIdx;\n return idx !== -1 ? new Enumeration(this._ctx, idx) : undefined;\n }\n public get kindOfQuantity(): KindOfQuantity | undefined {\n const idx = this._def.koqIdx;\n return idx !== -1 ? new KindOfQuantity(this._ctx, idx) : undefined;\n }\n }\n\n /** An array of primitive values. Same primitive/enum fields as `PrimitiveProperty`,\n * plus array bounds.\n * @beta\n */\n export class PrimitiveArrayProperty extends Property {\n public get primitiveType(): SchemaViewPrimitiveType { return this._def.primitiveType; }\n public get extendedTypeName(): string | undefined {\n const sid = this._def.extTypeStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : undefined;\n }\n public get enumeration(): Enumeration | undefined {\n const idx = this._def.enumIdx;\n return idx !== -1 ? new Enumeration(this._ctx, idx) : undefined;\n }\n public get kindOfQuantity(): KindOfQuantity | undefined {\n const idx = this._def.koqIdx;\n return idx !== -1 ? new KindOfQuantity(this._ctx, idx) : undefined;\n }\n public get arrayMinOccurs(): number | undefined { return this._def.arrayMinOccurs; }\n public get arrayMaxOccurs(): number | undefined { return this._def.arrayMaxOccurs; }\n }\n\n /** A scalar struct property. `structClass` is non-nullable - the binary parser drops\n * properties whose struct class can't be resolved (e.g. from excluded schemas).\n * @beta\n */\n export class StructProperty extends Property {\n public get structClass(): Class {\n return createClass(this._ctx, this._def.structClassIdx);\n }\n }\n\n /** An array of struct values. Same struct field as `StructProperty`, plus array bounds.\n * @beta\n */\n export class StructArrayProperty extends Property {\n public get structClass(): Class {\n return createClass(this._ctx, this._def.structClassIdx);\n }\n public get arrayMinOccurs(): number | undefined { return this._def.arrayMinOccurs; }\n public get arrayMaxOccurs(): number | undefined { return this._def.arrayMaxOccurs; }\n }\n\n /** A navigation property. `relationshipClass` is non-nullable - the binary parser drops\n * properties whose relationship class can't be resolved.\n * @beta\n */\n export class NavigationProperty extends Property {\n public get direction(): StrengthDirection { return this._def.navDirection; }\n public get relationshipClass(): RelationshipClass {\n return createClass(this._ctx, this._def.navRelClassIdx) as RelationshipClass;\n }\n }\n\n /** Any primitive property (scalar or array). Useful for accessing `primitiveType`,\n * `extendedTypeName`, `enumeration`, `kindOfQuantity` after an `isPrimitive()` check.\n * @beta\n */\n export type AnyPrimitiveProperty = PrimitiveProperty | PrimitiveArrayProperty;\n\n /** Any struct property (scalar or array). Useful for accessing `structClass` after an `isStruct()` check.\n * @beta\n */\n export type AnyStructProperty = StructProperty | StructArrayProperty;\n\n /** Any array property (primitive or struct). Useful for accessing `arrayMinOccurs`/`arrayMaxOccurs`\n * after an `isArray()` check.\n * @beta\n */\n export type AnyArrayProperty = PrimitiveArrayProperty | StructArrayProperty;\n\n /** Union of all concrete property types.\n * @beta\n */\n export type AnyProperty = PrimitiveProperty | PrimitiveArrayProperty\n | StructProperty | StructArrayProperty | NavigationProperty;\n\n /** @internal */\n export function createProperty(ctx: SchemaView, ref: PropertyRef, classIdx: number): Property {\n const kind = ctx[_storage].propDefs[ref.defIdx].kind;\n switch (kind) {\n case PropertyKind.Primitive: return new PrimitiveProperty(ctx, ref, classIdx);\n case PropertyKind.PrimitiveArray: return new PrimitiveArrayProperty(ctx, ref, classIdx);\n case PropertyKind.Struct: return new StructProperty(ctx, ref, classIdx);\n case PropertyKind.StructArray: return new StructArrayProperty(ctx, ref, classIdx);\n case PropertyKind.Navigation: return new NavigationProperty(ctx, ref, classIdx);\n default: throw new Error(`Unknown PropertyKind ${kind as number} for property \"${ctx[_storage].strings[ctx[_storage].propDefs[ref.defIdx].nameStringIdx]}\"`);\n }\n }\n\n /** Lightweight view over an enumeration in a `SchemaView`.\n * @beta\n */\n export class Enumeration {\n /** @internal */\n constructor(\n private readonly _ctx: SchemaView,\n /** @internal */ public readonly idx: number,\n ) { }\n\n private get _data() { return this._ctx[_storage].enumerations[this.idx]; }\n\n /** Row ID from ec_Enumeration. Matches `ECInstanceId` in ECDbMeta views, e.g.\n * `SELECT * FROM meta.ECEnumerationDef WHERE ECInstanceId = ?`.\n */\n public get ecInstanceId(): number { return this._data.ecInstanceId; }\n public get name(): string { return this._ctx[_storage].strings[this._data.nameStringIdx]; }\n public get label(): string {\n const sid = this._data.labelStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;\n }\n public get description(): string {\n const sid = this._data.descriptionStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n /** \"SchemaName:EnumName\" - colon-separated. */\n public get fullName(): string {\n const d = this._data;\n return `${this._ctx[_storage].strings[this._ctx[_storage].schemas[d.schemaIdx].nameStringIdx]}:${this._ctx[_storage].strings[d.nameStringIdx]}`;\n }\n public get schema(): Schema { return new Schema(this._ctx, this._data.schemaIdx); }\n public get primitiveType(): SchemaViewPrimitiveType { return this._data.primitiveType; }\n public get isStrict(): boolean { return this._data.isStrict; }\n\n /** Iterate enumerators in declaration order. */\n public *getEnumerators(): IterableIterator<Enumerator> {\n const d = this._data;\n for (let i = d.enumeratorStart; i < d.enumeratorStart + d.enumeratorCount; i++)\n yield new Enumerator(this._ctx, i);\n }\n\n /** Find enumerator by name (case-insensitive). */\n public getEnumeratorByName(name: string): Enumerator | undefined {\n const lower = name.toLowerCase();\n const d = this._data;\n for (let i = d.enumeratorStart; i < d.enumeratorStart + d.enumeratorCount; i++) {\n if (this._ctx[_storage].lowerStrings[this._ctx[_storage].enumerators[i].nameStringIdx] === lower)\n return new Enumerator(this._ctx, i);\n }\n return undefined;\n }\n\n /** Find enumerator by value. */\n public getEnumerator(value: number | string): Enumerator | undefined {\n const d = this._data;\n for (let i = d.enumeratorStart; i < d.enumeratorStart + d.enumeratorCount; i++) {\n if (this._ctx[_storage].enumerators[i].value === value)\n return new Enumerator(this._ctx, i);\n }\n return undefined;\n }\n }\n\n /** Thin view over an enumerator.\n * @beta\n */\n export class Enumerator {\n /** @internal */\n constructor(\n private readonly _ctx: SchemaView,\n /** @internal */ public readonly idx: number,\n ) { }\n\n private get _data() { return this._ctx[_storage].enumerators[this.idx]; }\n\n public get name(): string { return this._ctx[_storage].strings[this._data.nameStringIdx]; }\n public get label(): string {\n const sid = this._data.labelStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;\n }\n public get description(): string {\n const sid = this._data.descriptionStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n public get value(): number | string { return this._data.value; }\n }\n\n /** A parsed presentation format override from a KindOfQuantity. Names are alias-qualified\n * as stored in ECDb (e.g. `\"f:DefaultRealU\"`, `\"u:M\"`). The alias can be resolved to a\n * full schema name via the schema's alias if needed.\n *\n * Format string syntax: `formatName(precision)[unitName|label][unitName|label]...`\n * @beta\n */\n export interface PresentationFormat {\n /** Format name (alias-qualified), e.g. `\"f:DefaultRealU\"`. */\n readonly name: string;\n /** Precision override. `undefined` if the format string does not override precision. */\n readonly precision?: number;\n /** Unit overrides as `[unitName, labelOverride]` tuples. `unitName` is alias-qualified\n * (e.g. `\"u:M\"`). `labelOverride` is `undefined` when no label was specified, or a\n * string (possibly empty) when a `|` separator was present.\n */\n readonly unitAndLabels?: ReadonlyArray<readonly [string, string | undefined]>;\n }\n\n /** Parse a single format override string into a `PresentationFormat`.\n * @internal\n */\n export function parseFormatString(formatString: string): PresentationFormat {\n const nameMatch = /^([\\w.:]+)/.exec(formatString);\n if (!nameMatch)\n return { name: formatString };\n\n const name = nameMatch[1];\n const precMatch = /\\((\\d+)\\)/.exec(formatString);\n const precision = precMatch ? parseInt(precMatch[1], 10) : undefined;\n\n const bracketRgx = /\\[([^\\]]+)\\]/g;\n const units: Array<readonly [string, string | undefined]> = [];\n let m;\n while ((m = bracketRgx.exec(formatString)) !== null) {\n const pipeIdx = m[1].indexOf(\"|\");\n units.push(pipeIdx < 0 ? [m[1], undefined] : [m[1].substring(0, pipeIdx), m[1].substring(pipeIdx + 1)]);\n }\n\n return { name, precision, unitAndLabels: units.length > 0 ? units : undefined };\n }\n\n /** Lightweight view over a KindOfQuantity in a `SchemaView`.\n * @beta\n */\n export class KindOfQuantity {\n /** @internal */\n constructor(\n private readonly _ctx: SchemaView,\n /** @internal */ public readonly idx: number,\n ) { }\n\n private get _data() { return this._ctx[_storage].koqs[this.idx]; }\n\n /** Row ID from ec_KindOfQuantity. Matches `ECInstanceId` in ECDbMeta views, e.g.\n * `SELECT * FROM meta.ECKindOfQuantityDef WHERE ECInstanceId = ?`.\n */\n public get ecInstanceId(): number { return this._data.ecInstanceId; }\n public get name(): string { return this._ctx[_storage].strings[this._data.nameStringIdx]; }\n public get label(): string {\n const sid = this._data.labelStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;\n }\n public get description(): string {\n const sid = this._data.descriptionStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n /** \"SchemaName:KoqName\" - colon-separated. */\n public get fullName(): string {\n const d = this._data;\n return `${this._ctx[_storage].strings[this._ctx[_storage].schemas[d.schemaIdx].nameStringIdx]}:${this._ctx[_storage].strings[d.nameStringIdx]}`;\n }\n public get schema(): Schema { return new Schema(this._ctx, this._data.schemaIdx); }\n public get relativeError(): number { return this._data.relativeError; }\n /** Persistence unit as a full name string, e.g. \"Units:M\".\n *\n * On iModels still on ECDb profile `4.0.0.1` (predates the 2018 EC3.2 Units/Formats migration)\n * this string is in legacy FUS format rather than the EC3.2 alias-qualified form.\n * Upgrade the iModel's ECDb profile to get EC3.2 strings.\n */\n public get persistenceUnit(): string {\n const sid = this._data.persistenceUnitStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n // EC XML serializes this as \"presentationUnits\"; we use \"presentationFormats\" to align with KindOfQuantity.presentationFormats in ecschema-metadata.\n /** Raw presentation format string as stored in ECDb (`ec_KindOfQuantity.PresentationUnits`).\n * This is a JSON array of format override strings. Empty string if none are defined.\n * Prefer `presentationFormats` for structured access.\n *\n * On iModels still on ECDb profile `4.0.0.1` (predates the 2018 EC3.2 Units/Formats migration)\n * the strings are in legacy FUS format and will not parse via `presentationFormats`.\n * Upgrade the iModel's ECDb profile to get EC3.2 strings.\n */\n public get presentationFormatsRaw(): string {\n const sid = this._data.presentationFormatsStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n\n /** Presentation formats parsed into structured overrides. Each entry has the format name\n * (alias-qualified, e.g. `\"f:DefaultRealU\"`), optional precision override, and optional\n * unit-and-label overrides. Returns an empty array if no presentation formats are defined.\n *\n * Example - given a raw string of `[\"f:DefaultRealU(4)[u:M_PER_SEC_SQ]\",\"f:DefaultRealU(4)[u:CM_PER_SEC_SQ]\"]`:\n * ```ts\n * // [\n * // { name: \"f:DefaultRealU\", precision: 4, unitAndLabels: [[\"u:M_PER_SEC_SQ\", undefined]] },\n * // { name: \"f:DefaultRealU\", precision: 4, unitAndLabels: [[\"u:CM_PER_SEC_SQ\", undefined]] },\n * // ]\n * ```\n */\n public get presentationFormats(): readonly PresentationFormat[] {\n const raw = this.presentationFormatsRaw;\n if (raw === \"\")\n return [];\n const formats: string[] = JSON.parse(raw);\n return formats.map((f) => parseFormatString(f));\n }\n }\n\n /** Lightweight view over a PropertyCategory in a `SchemaView`.\n * @beta\n */\n export class PropertyCategory {\n /** @internal */\n constructor(\n private readonly _ctx: SchemaView,\n /** @internal */ public readonly idx: number,\n ) { }\n\n private get _data() { return this._ctx[_storage].propCategories[this.idx]; }\n\n /** Row ID from ec_PropertyCategory. Matches `ECInstanceId` in ECDbMeta views, e.g.\n * `SELECT * FROM meta.ECPropertyCategoryDef WHERE ECInstanceId = ?`.\n */\n public get ecInstanceId(): number { return this._data.ecInstanceId; }\n public get name(): string { return this._ctx[_storage].strings[this._data.nameStringIdx]; }\n public get label(): string {\n const sid = this._data.labelStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : this.name;\n }\n public get description(): string {\n const sid = this._data.descriptionStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n /** \"SchemaName:CategoryName\" - colon-separated. */\n public get fullName(): string {\n const d = this._data;\n return `${this._ctx[_storage].strings[this._ctx[_storage].schemas[d.schemaIdx].nameStringIdx]}:${this._ctx[_storage].strings[d.nameStringIdx]}`;\n }\n public get schema(): Schema { return new Schema(this._ctx, this._data.schemaIdx); }\n public get priority(): number { return this._data.priority; }\n }\n\n /** Lightweight view over a relationship constraint in a `SchemaView`.\n * @beta\n */\n export class RelConstraint {\n /** @internal */\n constructor(\n private readonly _ctx: SchemaView,\n private readonly _idx: number,\n ) { }\n\n private get _data() { return this._ctx[_storage].relConstraints[this._idx]; }\n\n public get abstractConstraint(): Class | undefined {\n const idx = this._data.abstractConstraintIdx;\n return idx !== -1 ? createClass(this._ctx, idx) : undefined;\n }\n public get polymorphic(): boolean { return this._data.polymorphic; }\n /** Multiplicity lower bound (0 = unbounded). */\n public get multiplicityLower(): number { return this._data.multiplicityLower; }\n /** Multiplicity upper bound (0 = unbounded). */\n public get multiplicityUpper(): number { return this._data.multiplicityUpper; }\n /** Role label string, or empty if not set. */\n public get roleLabel(): string {\n const sid = this._data.roleLabelStringIdx;\n return sid !== 0 ? this._ctx[_storage].strings[sid] : \"\";\n }\n public get constraintClasses(): readonly Class[] {\n const d = this._data;\n const result: Class[] = [];\n for (let i = 0; i < d.classRefCount; i++)\n result.push(createClass(this._ctx, this._ctx[_storage].constraintClassRefs[d.classRefStart + i]));\n return result;\n }\n }\n}\n\n// =====================================================================================\n// SchemaViewBuilder\n// =====================================================================================\n\n/** Builder for constructing an immutable `SchemaView`.\n *\n * Collects data during binary blob parsing, then freezes it into a view.\n * Handles string interning and property definition deduplication.\n *\n * Consumers should not use this directly - read views via `IModelDb.getSchemaView`\n * / `IModelConnection.getSchemaView` (or `SchemaView.fromBinary` if you have a raw blob).\n * @internal\n */\nexport class SchemaViewBuilder {\n private readonly _strings: string[] = [\"\"]; // SID 0 = empty string\n private readonly _lowerStrings: string[] = [\"\"];\n private readonly _stringMap = new Map<string, number>(); // original value -> SID\n\n private readonly _schemas: SchemaData[] = [];\n private readonly _classes: ClassData[] = [];\n private readonly _classMixins: number[] = [];\n private readonly _propDefs: PropertyDef[] = [];\n private readonly _propertyRefs: PropertyRef[] = [];\n private readonly _relConstraints: RelConstraintData[] = [];\n private readonly _constraintClassRefs: number[] = [];\n private readonly _enumerations: EnumerationData[] = [];\n private readonly _enumerators: EnumeratorData[] = [];\n private readonly _koqs: KoqData[] = [];\n private readonly _propCategories: PropCategoryData[] = [];\n\n // For PropertyDef dedup\n private readonly _propDefMap = new Map<string, number>(); // signature string -> defIdx\n\n /** Intern a string, returning its SID. Empty/undefined strings return 0.\n * Interning is case-sensitive - \"MyLabel\" and \"MYLABEL\" get distinct SIDs.\n * The `lowerStrings` array provides case-insensitive lookup without mutating display values.\n */\n public internString(value: string | undefined): number {\n if (value === undefined || value === \"\") return 0;\n const existing = this._stringMap.get(value);\n if (existing !== undefined) return existing;\n const sid = this._strings.length;\n this._strings.push(value);\n this._lowerStrings.push(value.toLowerCase());\n this._stringMap.set(value, sid);\n return sid;\n }\n\n /** Add a schema. Returns its index. */\n public addSchema(data: SchemaData): number {\n const idx = this._schemas.length;\n this._schemas.push(data);\n return idx;\n }\n\n /** Add a class. Returns its index. Must be called after the owning schema. */\n public addClass(data: ClassData): number {\n const idx = this._classes.length;\n this._classes.push(data);\n return idx;\n }\n\n /** Add a property definition with deduplication. Returns the def index (possibly existing). */\n public addPropertyDef(data: PropertyDef): number {\n const sig = this._propDefSignature(data);\n const existing = this._propDefMap.get(sig);\n if (existing !== undefined) return existing;\n\n const idx = this._propDefs.length;\n this._propDefs.push(data);\n this._propDefMap.set(sig, idx);\n return idx;\n }\n\n /** Append a property reference to the flat refs array. */\n public addPropertyRef(ref: PropertyRef): void {\n this._propertyRefs.push(ref);\n }\n\n /** Add an enumeration. Returns its index. */\n public addEnumeration(data: EnumerationData): number {\n const idx = this._enumerations.length;\n this._enumerations.push(data);\n return idx;\n }\n\n /** Append an enumerator to the flat enumerators array. */\n public addEnumerator(data: EnumeratorData): void {\n this._enumerators.push(data);\n }\n\n /** Add a KindOfQuantity. Returns its index. */\n public addKoq(data: KoqData): number {\n const idx = this._koqs.length;\n this._koqs.push(data);\n return idx;\n }\n\n /** Add a PropertyCategory. Returns its index. */\n public addPropertyCategory(data: PropCategoryData): number {\n const idx = this._propCategories.length;\n this._propCategories.push(data);\n return idx;\n }\n\n /** Add a relationship constraint. Returns its index. */\n public addRelConstraint(data: RelConstraintData): number {\n const idx = this._relConstraints.length;\n this._relConstraints.push(data);\n return idx;\n }\n\n /** Append a constraint class reference to the flat array. */\n public addConstraintClassRef(classIdx: number): void {\n this._constraintClassRefs.push(classIdx);\n }\n\n /** Append a mixin class reference to the flat array. */\n public addClassMixin(classIdx: number): void {\n this._classMixins.push(classIdx);\n }\n\n /** The current count of property refs (used to set ownPropStart on ClassData). */\n public get propertyRefCount(): number { return this._propertyRefs.length; }\n\n /** The current count of enumerators (used to set enumeratorStart on EnumerationData). */\n public get enumeratorCount(): number { return this._enumerators.length; }\n\n /** The current count of constraint class refs (used to set classRefStart). */\n public get constraintClassRefCount(): number { return this._constraintClassRefs.length; }\n\n /** The current count of class mixins (used to set mixinStartIdx). */\n public get classMixinCount(): number { return this._classMixins.length; }\n\n /** Get a string by SID. @internal */\n public getString(sid: number): string { return this._strings[sid]; }\n\n /** Replace class data at the given index (used during deferred cross-ref resolution). @internal */\n public updateClass(classIdx: number, data: ClassData): void { this._classes[classIdx] = data; }\n\n /** Update range fields on a schema (used after all items for a schema are collected). @internal */\n public updateSchemaRanges(schemaIdx: number, ranges: { classRangeStart: number; classCount: number; enumRangeStart: number; enumCount: number; koqRangeStart: number; koqCount: number; catRangeStart: number; catCount: number }): void {\n const s = this._schemas[schemaIdx];\n this._schemas[schemaIdx] = { ...s, ...ranges };\n }\n\n /** Freeze all data and produce an immutable SchemaView. */\n public build(schemaToken?: string): SchemaView {\n const schemaByName = new Map<string, number>();\n const schemaByAlias = new Map<string, number>();\n const classByName = new Map<number, Map<string, number>>();\n const enumByName = new Map<number, Map<string, number>>();\n const koqByName = new Map<number, Map<string, number>>();\n const catByName = new Map<number, Map<string, number>>();\n\n // Build schema lookup maps\n for (let i = 0; i < this._schemas.length; i++) {\n const s = this._schemas[i];\n schemaByName.set(this._lowerStrings[s.nameStringIdx], i);\n if (s.aliasStringIdx !== 0)\n schemaByAlias.set(this._lowerStrings[s.aliasStringIdx], i);\n\n // Build class-by-name map for this schema\n const classMap = new Map<string, number>();\n for (let c = s.classRangeStart; c < s.classRangeStart + s.classCount; c++)\n classMap.set(this._lowerStrings[this._classes[c].nameStringIdx], c);\n classByName.set(i, classMap);\n\n // Build enum-by-name map for this schema\n const eMap = new Map<string, number>();\n for (let e = s.enumRangeStart; e < s.enumRangeStart + s.enumCount; e++)\n eMap.set(this._lowerStrings[this._enumerations[e].nameStringIdx], e);\n enumByName.set(i, eMap);\n\n // Build koq-by-name map for this schema\n const kMap = new Map<string, number>();\n for (let k = s.koqRangeStart; k < s.koqRangeStart + s.koqCount; k++)\n kMap.set(this._lowerStrings[this._koqs[k].nameStringIdx], k);\n koqByName.set(i, kMap);\n\n // Build category-by-name map for this schema\n const cMap = new Map<string, number>();\n for (let p = s.catRangeStart; p < s.catRangeStart + s.catCount; p++)\n cMap.set(this._lowerStrings[this._propCategories[p].nameStringIdx], p);\n catByName.set(i, cMap);\n }\n\n return new SchemaView({\n strings: this._strings,\n lowerStrings: this._lowerStrings,\n schemas: this._schemas,\n classes: this._classes,\n classMixins: this._classMixins,\n propDefs: this._propDefs,\n propertyRefs: this._propertyRefs,\n relConstraints: this._relConstraints,\n constraintClassRefs: this._constraintClassRefs,\n enumerations: this._enumerations,\n enumerators: this._enumerators,\n koqs: this._koqs,\n propCategories: this._propCategories,\n schemaByName,\n schemaByAlias,\n classByName,\n enumByName,\n koqByName,\n catByName,\n }, schemaToken);\n }\n\n /** Produce a dedup signature for a PropertyDef. Label and priority are excluded because\n * they are per-PropertyRef overrides, not part of the structural definition.\n * Uses SIDs (not lowercase strings) for name/description so that case-preserving names\n * stay distinct - matching the C++ writer's dedup behavior. */\n private _propDefSignature(def: PropertyDef): string {\n return `${def.nameStringIdx}|${def.kind}|${def.primitiveType}|${def.extTypeStringIdx}|${def.enumIdx}|${def.koqIdx}|${def.structClassIdx}|${def.navRelClassIdx}|${def.navDirection}|${def.categoryIdx}|${def.isReadOnly ? 1 : 0}|${def.isHidden ? 1 : 0}|${def.arrayMinOccurs}|${def.arrayMaxOccurs}|${def.descriptionStringIdx}`;\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ /** @packageDocumentation
2
+ * @module Schema
3
+ */
4
+ import { SchemaView } from "./SchemaView";
5
+ /** Parse a schema view blob (binary format) into a `SchemaView`.
6
+ *
7
+ * Layout: Header, PropertyDefTable, SchemaTable, EnumTable, KoQTable, PropCatTable, ClassTable, StringTable.
8
+ * Each table is count-prefixed. Schema items carry their schema's ecInstanceId for ownership resolution.
9
+ * Classes have count-prefixed inline sub-items (base classes, property refs, constraints).
10
+ *
11
+ * Consumers should call `SchemaView.fromBinary` instead - this function is the low-level
12
+ * implementation behind it.
13
+ * @internal
14
+ */
15
+ export declare function parseSchemaViewBlob(data: Uint8Array, schemaToken?: string): SchemaView;
16
+ //# sourceMappingURL=SchemaViewBinaryReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaViewBinaryReader.d.ts","sourceRoot":"","sources":["../../src/SchemaViewBinaryReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AA+J7D;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CA4hBtF"}