@zzzen/pyright-internal 1.2.0-dev.20261101 → 1.2.0-dev.20261108

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 (159) hide show
  1. package/dist/analyzer/binder.js +9 -3
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/constructorTransform.js +12 -0
  4. package/dist/analyzer/constructorTransform.js.map +1 -1
  5. package/dist/analyzer/constructors.d.ts +1 -1
  6. package/dist/analyzer/constructors.js +1 -1
  7. package/dist/analyzer/constructors.js.map +1 -1
  8. package/dist/analyzer/decorators.d.ts +1 -1
  9. package/dist/analyzer/decorators.js.map +1 -1
  10. package/dist/analyzer/functionTransform.d.ts +5 -0
  11. package/dist/analyzer/functionTransform.js +6 -3
  12. package/dist/analyzer/functionTransform.js.map +1 -1
  13. package/dist/analyzer/missingBindingMetadata.d.ts +6 -0
  14. package/dist/analyzer/missingBindingMetadata.js +22 -0
  15. package/dist/analyzer/missingBindingMetadata.js.map +1 -0
  16. package/dist/analyzer/namedTuples.d.ts +4 -1
  17. package/dist/analyzer/namedTuples.js +1 -0
  18. package/dist/analyzer/namedTuples.js.map +1 -1
  19. package/dist/analyzer/patternMatching.d.ts +5 -1
  20. package/dist/analyzer/patternMatching.js +3 -0
  21. package/dist/analyzer/patternMatching.js.map +1 -1
  22. package/dist/analyzer/program.d.ts +3 -0
  23. package/dist/analyzer/program.js +71 -1
  24. package/dist/analyzer/program.js.map +1 -1
  25. package/dist/analyzer/tuples.d.ts +1 -1
  26. package/dist/analyzer/tuples.js.map +1 -1
  27. package/dist/analyzer/typeCacheUtils.d.ts +1 -0
  28. package/dist/analyzer/typeCacheUtils.js +10 -0
  29. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  30. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.d.ts +15 -0
  31. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.js +98 -0
  32. package/dist/analyzer/typeEvaluator/boundMethodSpecialization.js.map +1 -0
  33. package/dist/analyzer/typeEvaluator/classConstruction.d.ts +25 -0
  34. package/dist/analyzer/typeEvaluator/classConstruction.js +251 -0
  35. package/dist/analyzer/typeEvaluator/classConstruction.js.map +1 -0
  36. package/dist/analyzer/typeEvaluator/collectionInference.d.ts +41 -0
  37. package/dist/analyzer/typeEvaluator/collectionInference.js +695 -0
  38. package/dist/analyzer/typeEvaluator/collectionInference.js.map +1 -0
  39. package/dist/analyzer/typeEvaluator/diagnostics.d.ts +33 -0
  40. package/dist/analyzer/typeEvaluator/diagnostics.js +198 -0
  41. package/dist/analyzer/typeEvaluator/diagnostics.js.map +1 -0
  42. package/dist/analyzer/typeEvaluator/evaluatorCore.d.ts +80 -0
  43. package/dist/analyzer/typeEvaluator/evaluatorCore.js +1126 -0
  44. package/dist/analyzer/typeEvaluator/evaluatorCore.js.map +1 -0
  45. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.d.ts +17 -0
  46. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.js +370 -0
  47. package/dist/analyzer/typeEvaluator/evaluatorNarrowing.js.map +1 -0
  48. package/dist/analyzer/typeEvaluator/expressionEvaluation.d.ts +81 -0
  49. package/dist/analyzer/typeEvaluator/expressionEvaluation.js +1802 -0
  50. package/dist/analyzer/typeEvaluator/expressionEvaluation.js.map +1 -0
  51. package/dist/analyzer/typeEvaluator/flowAnalysis.d.ts +33 -0
  52. package/dist/analyzer/typeEvaluator/flowAnalysis.js +217 -0
  53. package/dist/analyzer/typeEvaluator/flowAnalysis.js.map +1 -0
  54. package/dist/analyzer/typeEvaluator/internals.d.ts +137 -0
  55. package/dist/analyzer/typeEvaluator/internals.js +10 -0
  56. package/dist/analyzer/typeEvaluator/internals.js.map +1 -0
  57. package/dist/analyzer/typeEvaluator/literalTypes.d.ts +3 -0
  58. package/dist/analyzer/typeEvaluator/literalTypes.js +52 -0
  59. package/dist/analyzer/typeEvaluator/literalTypes.js.map +1 -0
  60. package/dist/analyzer/typeEvaluator/memberResolution.d.ts +79 -0
  61. package/dist/analyzer/typeEvaluator/memberResolution.js +1007 -0
  62. package/dist/analyzer/typeEvaluator/memberResolution.js.map +1 -0
  63. package/dist/analyzer/typeEvaluator/overrideValidation.d.ts +15 -0
  64. package/dist/analyzer/typeEvaluator/overrideValidation.js +422 -0
  65. package/dist/analyzer/typeEvaluator/overrideValidation.js.map +1 -0
  66. package/dist/analyzer/typeEvaluator/returnTypeInference.d.ts +33 -0
  67. package/dist/analyzer/typeEvaluator/returnTypeInference.js +226 -0
  68. package/dist/analyzer/typeEvaluator/returnTypeInference.js.map +1 -0
  69. package/dist/analyzer/typeEvaluator/specialFormCreation.d.ts +39 -0
  70. package/dist/analyzer/typeEvaluator/specialFormCreation.js +1728 -0
  71. package/dist/analyzer/typeEvaluator/specialFormCreation.js.map +1 -0
  72. package/dist/analyzer/typeEvaluator/tupleUnpacking.d.ts +2 -0
  73. package/dist/analyzer/typeEvaluator/tupleUnpacking.js +36 -0
  74. package/dist/analyzer/typeEvaluator/tupleUnpacking.js.map +1 -0
  75. package/dist/analyzer/typeEvaluator/typeCompatibility.d.ts +36 -0
  76. package/dist/analyzer/typeEvaluator/typeCompatibility.js +1320 -0
  77. package/dist/analyzer/typeEvaluator/typeCompatibility.js.map +1 -0
  78. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.d.ts +186 -0
  79. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.js +1683 -0
  80. package/dist/analyzer/typeEvaluator/typeGuardNarrowing.js.map +1 -0
  81. package/dist/analyzer/typeEvaluator/typeVarHandling.d.ts +48 -0
  82. package/dist/analyzer/typeEvaluator/typeVarHandling.js +756 -0
  83. package/dist/analyzer/typeEvaluator/typeVarHandling.js.map +1 -0
  84. package/dist/analyzer/typeEvaluator.d.ts +3 -31
  85. package/dist/analyzer/typeEvaluator.js +5033 -13761
  86. package/dist/analyzer/typeEvaluator.js.map +1 -1
  87. package/dist/analyzer/typeGuards.d.ts +2 -2
  88. package/dist/analyzer/typeGuards.js +212 -1567
  89. package/dist/analyzer/typeGuards.js.map +1 -1
  90. package/dist/analyzer/typeUtils.js +6 -2
  91. package/dist/analyzer/typeUtils.js.map +1 -1
  92. package/dist/analyzer/typedDicts.js +111 -0
  93. package/dist/analyzer/typedDicts.js.map +1 -1
  94. package/dist/browser/browserConnection.d.ts +12 -0
  95. package/dist/browser/browserConnection.js +23 -0
  96. package/dist/browser/browserConnection.js.map +1 -0
  97. package/dist/browser/browserFileSystem.d.ts +73 -0
  98. package/dist/browser/browserFileSystem.js +578 -0
  99. package/dist/browser/browserFileSystem.js.map +1 -0
  100. package/dist/browser/browserHost.d.ts +4 -0
  101. package/dist/browser/browserHost.js +10 -0
  102. package/dist/browser/browserHost.js.map +1 -0
  103. package/dist/browser/browserProcess.d.ts +1 -0
  104. package/dist/browser/browserProcess.js +17 -0
  105. package/dist/browser/browserProcess.js.map +1 -0
  106. package/dist/browser/browserServer.d.ts +8 -0
  107. package/dist/browser/browserServer.js +32 -0
  108. package/dist/browser/browserServer.js.map +1 -0
  109. package/dist/browser/cancellation/common.d.ts +10 -0
  110. package/dist/browser/cancellation/common.js +114 -0
  111. package/dist/browser/cancellation/common.js.map +1 -0
  112. package/dist/browser/cancellation/objectURLReceiverStrategy.d.ts +5 -0
  113. package/dist/browser/cancellation/objectURLReceiverStrategy.js +37 -0
  114. package/dist/browser/cancellation/objectURLReceiverStrategy.js.map +1 -0
  115. package/dist/browser/cancellation/objectURLSenderStrategy.d.ts +7 -0
  116. package/dist/browser/cancellation/objectURLSenderStrategy.js +32 -0
  117. package/dist/browser/cancellation/objectURLSenderStrategy.js.map +1 -0
  118. package/dist/browser/worker.d.ts +1 -0
  119. package/dist/browser/worker.js +33 -0
  120. package/dist/browser/worker.js.map +1 -0
  121. package/dist/pyrightServer.d.ts +34 -0
  122. package/dist/pyrightServer.js +239 -0
  123. package/dist/pyrightServer.js.map +1 -0
  124. package/dist/server.d.ts +3 -23
  125. package/dist/server.js +12 -232
  126. package/dist/server.js.map +1 -1
  127. package/dist/tests/benchmarks/typeInferenceComparison.d.ts +1 -0
  128. package/dist/tests/benchmarks/typeInferenceComparison.js +1235 -0
  129. package/dist/tests/benchmarks/typeInferenceComparison.js.map +1 -0
  130. package/dist/tests/benchmarks/typeInferencePyrightEntry.d.ts +1 -0
  131. package/dist/tests/benchmarks/typeInferencePyrightEntry.js +53 -0
  132. package/dist/tests/benchmarks/typeInferencePyrightEntry.js.map +1 -0
  133. package/dist/tests/browserCancellation.test.d.ts +1 -0
  134. package/dist/tests/browserCancellation.test.js +63 -0
  135. package/dist/tests/browserCancellation.test.js.map +1 -0
  136. package/dist/tests/browserServer.test.d.ts +1 -0
  137. package/dist/tests/browserServer.test.js +177 -0
  138. package/dist/tests/browserServer.test.js.map +1 -0
  139. package/dist/tests/constraintSolver.test.js +45 -0
  140. package/dist/tests/constraintSolver.test.js.map +1 -1
  141. package/dist/tests/mypyPrimerAnalysis.test.js +15 -1
  142. package/dist/tests/mypyPrimerAnalysis.test.js.map +1 -1
  143. package/dist/tests/typeCacheUtils.test.js +46 -0
  144. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  145. package/dist/tests/typeEvaluator1.test.js +75 -0
  146. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  147. package/dist/tests/typeEvaluator3.test.js +4 -0
  148. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  149. package/dist/tests/typeEvaluator4.test.js +32 -0
  150. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  151. package/dist/tests/typeEvaluator7.test.js +394 -0
  152. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  153. package/dist/tests/typeUtils.test.js +28 -0
  154. package/dist/tests/typeUtils.test.js.map +1 -1
  155. package/dist/typeServer/stubGenerator.js +136 -3
  156. package/dist/typeServer/stubGenerator.js.map +1 -1
  157. package/dist/typeServer/typeServerConversionUtils.js +13 -0
  158. package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
  159. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressionEvaluation.js","sourceRoot":"","sources":["../../../../../../src/analyzer/typeEvaluator/expressionEvaluation.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkIH,sEASC;AA+GD,gEAizEC;AAziFD,kEAA2D;AAC3D,8CAA4C;AAC5C,wDAAyE;AACzE,kEAA8D;AAE9D,0DAAsE;AAsBtE,gDAA0E;AAE1E,0DAAsE;AAGtE,8CAA8D;AAC9D,kEAAoD;AAGpD,sCAA6E;AAE7E,8CAAsF;AAmBtF,8CAAyD;AACzD,oCAqCkB;AAClB,4CA8BsB;AAEtB,SAAgB,6BAA6B,CAAC,KAAqB;IAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC;IACzB,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACzB,CAAC;SAAM,CAAC;QACJ,IAAA,cAAM,EAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QAC/B,OAAO,aAAa,CAAC;IACzB,CAAC;AACL,CAAC;AA8GD,oGAAoG;AACpG,SAAgB,0BAA0B,CAAC,OAAgB;IACvD,MAAM,EACF,aAAa,EACb,cAAc,EACd,6BAA6B,EAC7B,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,sCAAsC,GACzC,GAAG,OAAO,CAAC;IAEZ,SAAS,iBAAiB,CAAC,KAAgB,EAAE,UAAkC,EAAE,IAAoB;QACjG,IAAI,CAAC,KAAK,yCAAiC,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,UAAU,GAAG,EAAE,IAAI,EAAE,eAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,qCAA2B,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,sCAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtF,aAAa,CAAC,gCAAc,CAAC,qBAAqB,EAAE,qBAAU,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;gBACxF,UAAU,GAAG,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACJ,MAAM,YAAY,GACd,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,eAAO,CAAC,MAAM,EAAE,CAAC;gBACrG,UAAU,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YACxC,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,SAAS,uBAAuB,CAAC,IAAgB,EAAE,KAAgB,EAAE,gBAAmC;QACpG,IAAI,UAAkC,CAAC;QACvC,IAAI,gBAAkC,CAAC;QAEvC,IAAI,gBAAgB,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtD,IAAI,YAAY,IAAI,IAAA,2BAAmB,EAAC,YAAY,CAAC,EAAE,CAAC;gBACpD,gBAAgB,GAAG,iBAAS,CAAC,eAAe,CACxC,iBAAS,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CACtE,CAAC;YACN,CAAC;QACL,CAAC;QAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAA,gCAAoB,EAAC,gBAAgB,CAAC,CAAC,CAAC;QACvG,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,KAAK,oCAA2B,CAAC,KAAK,CAAC,IAAI,IAAA,sBAAc,EAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACpG,UAAU,GAAG,EAAE,IAAI,EAAE,mBAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,CAAC;aAAM,IACH,CAAC,KAAK,6CAA+B,CAAC,KAAK,CAAC;YAC5C,IAAA,2BAAmB,EAAC,QAAQ,CAAC;YAC7B,iBAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EACxC,CAAC;YACC,UAAU,GAAG,EAAE,IAAI,EAAE,iBAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,CAAC;aAAM,IAAI,CAAC,KAAK,qCAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,aAAa,CACT,gCAAc,CAAC,qBAAqB,EACpC,qBAAU,CAAC,kBAAkB,EAAE,EAC/B,IAAI,EACJ,IAAI,CAAC,CAAC,CAAC,SAAS,CACnB,CAAC;YACF,UAAU,GAAG,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI;gBACvF,IAAI,EAAE,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC;gBACvD,YAAY,EAAE,cAAc,CAAC,YAAY;aAC5C,CAAC;YACF,UAAU,GAAG;gBACT,IAAI,EAAE,kBAAkB,CAAC,IAAI;gBAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;gBACrC,YAAY,EAAE,QAAQ;gBACtB,YAAY,EAAE,kBAAkB,CAAC,YAAY;aAChD,CAAC;QACN,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,0EAA0E;IAC1E,kEAAkE;IAClE,+EAA+E;IAC/E,SAAS,2BAA2B,CAAC,IAAoB,EAAE,YAAqB;QAC5E,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE5C,wDAAwD;QACxD,4BAA4B;QAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,kCAAyB,EAAE,CAAC;YACtD,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;QACtG,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,kCAAkC;QAClC,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QAE9D,MAAM,YAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;QACxC,YAAY,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QAC9C,YAAY,CAAC,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC;QACzE,YAAY,CAAC,mCAAmC,GAAG,IAAI,CAAC;QAExD,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAC3C,iBAAiB,EACjB,WAAW,EACX,SAAS,CAAC,MAAM,EAChB,YAAY;QAEZ,uBAAuB,CAAC,SAAS,EACjC,QAAQ,CAAC,mBAAmB,EAC5B,IAAI,CAAC,CAAC,CACT,CAAC;QAEF,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YACzB,4DAA4D;YAC5D,+CAA+C;YAC/C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC5C,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtC,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;YAErC,6DAA6D;YAC7D,mEAAmE;YACnE,IAAI,YAAY,EAAE,CAAC;gBACf,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;YAC/F,CAAC;YAED,OAAO,YAAY,CAAC,SAAS,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,mBAAmB,CACxB,IAAoB,EACpB,KAAgB,EAChB,gBAAmC;QAEnC,IAAI,UAAkC,CAAC;QAEvC,IACI,CAAC,KAAK,qCAA6B,CAAC,KAAK,CAAC;YAC1C,CAAC,CAAC,KAAK,yCAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,gDAAiC,CAAC,KAAK,CAAC,CAAC,EAC3F,CAAC;YACC,OAAO,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,IAAmC,EAAE,EAAE,CACxD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,kCAAyB,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,CAAC,IAAmC,EAAE,EAAE,CAC3D,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,sCAA4B,CAAC,KAAK,CAAC,CAAC;QAE3D,qEAAqE;QACrE,6DAA6D;QAC7D,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,IAAI,kBAAkB,IAAI,CAAC,IAAI,qBAAqB,IAAI,CAAC,EAAE,CAAC;YACxD,aAAa,CACT,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,oBAAoB,EAAE,EACjC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC,CACtE,CAAC;YAEF,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,CAAC;QAED,2DAA2D;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5E,IAAI,aAAa,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;YAC7C,aAAa,CACT,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,iBAAiB,EAAE,EAC9B,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAC3D,CAAC;YAEF,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,IAAI,CAAC,CAAC;QACrC,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,iCAAiC;YACjC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC1B,YAAY,GAAG,IAAI,CAAC;YACxB,CAAC;YAED,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAEhC,IAAI,IAAA,uBAAe,EAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,iBAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBACjG,mBAAmB,GAAG,IAAI,CAAC;gBAC/B,CAAC;qBAAM,IAAI,iBAAS,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;oBAChE,mBAAmB,GAAG,IAAI,CAAC;gBAC/B,CAAC;gBAED,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC7C,UAAU,GAAG,IAAI,CAAC;gBACtB,CAAC;YACL,CAAC;YAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,eAAe,GAAG,KAAK,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,YAAY,GACd,OAAO,CAAC,UAAU,EAAE,aAAa,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC;gBACvF,CAAC,CAAC,iBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;gBAC7D,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC;YAE/B,UAAU,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;QACtD,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,wCAA+B,CAAC,EAAE,CAAC;YACnF,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBAC/D,IAAI,iBAAiB,IAAI,IAAA,2BAAmB,EAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC9D,UAAU,GAAG,EAAE,IAAI,EAAE,iBAAS,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACxE,CAAC;YACL,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,UAAU,GAAG;oBACT,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvD,YAAY;iBACf,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG;gBACT,IAAI,EAAE,6BAA6B,CAC/B,IAAI,EACJ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EACzB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAChD;gBACD,YAAY;aACf,CAAC;QACN,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,kCAAyB,EAAE,CAAC;YACrF,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,aAAa,GACf,CAAC,KAAK,yCAAwB,CAAC,KAAK,CAAC;YACrC,CAAC,gBAAgB,KAAK,SAAS,IAAI,yBAAyB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,sEAAsE;QACtE,oEAAoE;QACpE,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5C,MAAM,oBAAoB,GACtB;wCACoB;4CACG;+CACE;+CACE,CAAC;QAChC,MAAM,uBAAuB,GAAG,GAAG,CAAC;QAEpC,IACI,CAAC,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC;YACzC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,IAAI,uBAAuB,EACnE,CAAC;YACC,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,GAAG,gBAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtG,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,SAAS,yBAAyB,CAAC,IAAoB,EAAE,KAAgB;QACrE,MAAM,gBAAgB,GAAG,CAAC,KAAK,qCAA6B,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,YAAY,GAAG,KAAK,gCAAwB,uCAA6B,CAAC;QAC9E,IAAI,UAAkC,CAAC;QAEvC,gFAAgF;QAChF,iFAAiF;QACjF,IAAI,CAAC,KAAK,+CAAgC,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,YAAY,oCAAuB,CAAC;QACxC,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,UAAU,IAAI,CAAC,KAAK,qCAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAEnD,IAAI,UAAU,kCAAyB,EAAE,CAAC;gBACtC,IAAI,gBAAgB,EAAE,CAAC;oBACnB,aAAa,CAAC,gCAAc,CAAC,uBAAuB,EAAE,qBAAU,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpG,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,CAAC;YAED,IAAI,UAAU,+BAAuB,EAAE,CAAC;gBACpC,IAAI,gBAAgB,EAAE,CAAC;oBACnB,aAAa,CAAC,gCAAc,CAAC,uBAAuB,EAAE,qBAAU,CAAC,mBAAmB,EAAE,EAAE,IAAI,CAAC,CAAC;gBAClG,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,CAAC;YAED,IAAI,UAAU,mCAA0B,EAAE,CAAC;gBACvC,IAAI,gBAAgB,EAAE,CAAC;oBACnB,aAAa,CAAC,gCAAc,CAAC,uBAAuB,EAAE,qBAAU,CAAC,sBAAsB,EAAE,EAAE,IAAI,CAAC,CAAC;gBACrG,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,CAAC;YAED,IAAI,UAAU,sCAA4B,EAAE,CAAC;gBACzC,IAAI,gBAAgB,EAAE,CAAC;oBACnB,aAAa,CAAC,gCAAc,CAAC,uBAAuB,EAAE,qBAAU,CAAC,wBAAwB,EAAE,EAAE,IAAI,CAAC,CAAC;gBACvG,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,CAAC;YAED,+DAA+D;YAC/D,wDAAwD;YACxD,yCAAyC;YACzC,MAAM,IAAI,GAAG,2BAA2B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACjE,IAAI,IAAI,EAAE,CAAC;gBACP,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE;oBACtE,OAAO,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,IAAI,gBAAgB,EAAE,CAAC;gBACnB,aAAa,CAAC,gCAAc,CAAC,uBAAuB,EAAE,qBAAU,CAAC,qBAAqB,EAAE,EAAE,IAAI,CAAC,CAAC;YACpG,CAAC;YACD,UAAU,GAAG,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,SAAS,eAAe,CAAC,IAAmC;QACxD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,kCAAyB,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,UAAkC,CAAC;QACvC,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,QAAQ,kCAAyB,EAAE,CAAC;YACzC,UAAU,GAAG;gBACT,IAAI,EAAE,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAClF,YAAY;aACf,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,sCAA4B,CAAC,KAAK,CAAC,CAAC;YAChF,IAAI,eAAe,GAAG,IAAI,CAAC;YAE3B,mEAAmE;YACnE,wDAAwD;YACxD,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;gBAErC,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;oBAC9B,YAAY,GAAG,IAAI,CAAC;gBACxB,CAAC;gBAED,IAAA,4BAAgB,EAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE;oBACvC,IAAI,CAAC,IAAA,uBAAe,EAAC,WAAW,CAAC,EAAE,CAAC;wBAChC,eAAe,GAAG,KAAK,CAAC;wBACxB,OAAO;oBACX,CAAC;oBAED,IAAI,iBAAS,CAAC,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,CAAC;wBACpD,OAAO;oBACX,CAAC;oBAED,IAAI,iBAAS,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;wBACzF,OAAO;oBACX,CAAC;oBAED,eAAe,GAAG,KAAK,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,IAAI,gBAAgB,EAAE,CAAC;gBACnB,MAAM,YAAY,GACd,OAAO,CAAC,UAAU,EAAE,aAAa,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC;oBACvF,CAAC,CAAC,iBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;oBAC7D,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC;gBAE/B,UAAU,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;YACtD,CAAC;iBAAM,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;gBACrC,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBAC/D,IAAI,iBAAiB,IAAI,IAAA,2BAAmB,EAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC9D,UAAU,GAAG,EAAE,IAAI,EAAE,iBAAS,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,YAAY,EAAE,CAAC;gBACtF,CAAC;YACL,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,UAAU,GAAG;oBACT,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;oBACvD,YAAY;iBACf,CAAC;gBAEF,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACrE,UAAU,CAAC,IAAI,GAAG,iBAAS,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC3E,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,SAAS,4BAA4B,CAAC,UAA0B,EAAE,KAAsB;QACpF,IAAI,MAA0B,CAAC;QAC/B,IAAI,QAA6C,CAAC;QAClD,IAAI,iBAAwC,CAAC;QAC7C,IAAI,iBAAmC,CAAC;QACxC,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,uBAAuB,GAAG,KAAK,CAAC;QAEpC,QAAQ,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1B,gCAAuB,CAAC,CAAC,CAAC;gBACtB,MAAM,eAAe,GAAG,qBAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBACxG,IAAI,eAAe,EAAE,CAAC;oBAClB,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;oBAEhC,6DAA6D;oBAC7D,wDAAwD;oBACxD,kBAAkB;oBAClB,IACI,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI;wBAClD,eAAe,CAAC,KAAK,CAAC,IAAI,4BAAoB,EAChD,CAAC;wBACC,MAAM,cAAc,GAAG,cAAc,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;wBAC9E,IAAI,cAAc,IAAI,cAAc,CAAC,QAAQ,iCAAwB,EAAE,CAAC;4BACpE,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;4BACrD,IAAI,aAAa,EAAE,CAAC;gCAChB,MAAM,eAAe,GAAG,IAAA,6BAAiB,EACrC,aAAa,CAAC,SAAS,EACvB,UAAU,CAAC,CAAC,CAAC,KAAK,EAClB,6FAA2E,CAC9E,CAAC;gCACF,IAAI,eAAe,EAAE,CAAC;oCAClB,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;gCACpC,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,0CAAiC,CAAC,CAAC,CAAC;gBAChC,OAAO,4BAA4B,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;YAED,wCAA+B,CAAC,CAAC,CAAC;gBAC9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,6CAAqC,CAAC,IAAI,CAAC;gBACrG,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;gBAChE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBAE/C,IAAI,IAAA,iBAAS,EAAC,QAAQ,CAAC,EAAE,CAAC;oBACtB,QAAQ,GAAG,QAAQ,CAAC;gBACxB,CAAC;gBAED,iEAAiE;gBACjE,oEAAoE;gBACpE,mEAAmE;gBACnE,kEAAkE;gBAClE,kEAAkE;gBAClE,6DAA6D;gBAC7D,8DAA8D;gBAC9D,iEAAiE;gBACjE,6DAA6D;gBAC7D,oEAAoE;gBACpE,+DAA+D;gBAC/D,eAAe;gBACf,EAAE;gBACF,kEAAkE;gBAClE,6DAA6D;gBAC7D,4DAA4D;gBAC5D,iEAAiE;gBACjE,kEAAkE;gBAClE,aAAa;gBACb,EAAE;gBACF,oEAAoE;gBACpE,mEAAmE;gBACnE,8DAA8D;gBAC9D,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,uBAAyC,CAAC;gBAC9C,IAAI,qBAAqB,GAAG,KAAK,CAAC;gBAClC,IAAI,+BAA+B,GAAG,KAAK,CAAC;gBAC5C,IAAI,sBAAsB,GAAG,IAAI,CAAC;gBAElC,IAAA,4BAAgB,EACZ,gBAAgB,EAChB,CAAC,WAAW,EAAE,EAAE;oBACZ,IAAI,IAAA,uBAAe,EAAC,WAAW,CAAC,EAAE,CAAC;wBAC/B,MAAM,eAAe,GAAG,IAAA,8BAAkB,EACtC,WAAW,EACX,UAAU,+CAEb,CAAC;wBAEF,iBAAiB,GAAG,WAAW,CAAC;wBAChC,iBAAiB,GAAG,eAAe,EAAE,SAAS,CAAC;wBAC/C,MAAM,GAAG,eAAe,EAAE,MAAM,CAAC;wBACjC,uBAAuB,GAAG,IAAI,CAAC;wBAE/B,gEAAgE;wBAChE,4CAA4C;wBAC5C,YAAY,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC;oBACtD,CAAC;yBAAM,IAAI,IAAA,2BAAmB,EAAC,WAAW,CAAC,EAAE,CAAC;wBAC1C,MAAM,eAAe,GAAG,IAAA,6BAAiB,EACrC,WAAW,EACX,UAAU,EACV,6FAA2E,CAC9E,CAAC;wBAEF,iBAAiB,GAAG,WAAW,CAAC;wBAChC,iBAAiB,GAAG,eAAe,EAAE,SAAS,CAAC;wBAC/C,MAAM,GAAG,eAAe,EAAE,MAAM,CAAC;wBACjC,uBAAuB,GAAG,KAAK,CAAC;wBAChC,YAAY,GAAG,IAAI,CAAC;oBACxB,CAAC;yBAAM,IAAI,IAAA,gBAAQ,EAAC,WAAW,CAAC,EAAE,CAAC;wBAC/B,iBAAiB,GAAG,SAAS,CAAC;wBAC9B,iBAAiB,GAAG,SAAS,CAAC;wBAC9B,MAAM,GAAG,kBAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;wBACtD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC;4BAC3C,mDAAmD;4BACnD,MAAM,GAAG,SAAS,CAAC;wBACvB,CAAC;wBACD,uBAAuB,GAAG,KAAK,CAAC;wBAChC,YAAY,GAAG,KAAK,CAAC;oBACzB,CAAC;oBAED,8DAA8D;oBAC9D,uCAAuC;oBACvC,IAAI,WAAW,EAAE,CAAC;wBACd,MAAM,mBAAmB,GAAG,MAAM;4BAC9B,CAAC,CAAC,yBAAyB,CACrB,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,QAAQ,CACX;4BACH,CAAC,CAAC,SAAS,CAAC;wBAEhB,IAAI,mBAAmB,EAAE,CAAC;4BACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gCACzB,uBAAuB,GAAG,mBAAmB,CAAC;gCAC9C,qBAAqB,GAAG,IAAI,CAAC;4BACjC,CAAC;iCAAM,IACH,CAAC,uBAAuB;gCACxB,CAAC,IAAA,kBAAU,EAAC,uBAAuB,EAAE,mBAAmB,CAAC,EAC3D,CAAC;gCACC,+BAA+B,GAAG,IAAI,CAAC;gCAEvC,kDAAkD;gCAClD,kDAAkD;gCAClD,oDAAoD;gCACpD,iDAAiD;gCACjD,2BAA2B;gCAC3B,IACI,CAAC,uBAAuB;oCACxB,CAAC,IAAA,uBAAe,EAAC,uBAAuB,CAAC;oCACzC,CAAC,IAAA,uBAAe,EAAC,mBAAmB,CAAC;oCACrC,CAAC,iBAAS,CAAC,kBAAkB,CACzB,iBAAS,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,EACtD,iBAAS,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CACrD,EACH,CAAC;oCACC,sBAAsB,GAAG,KAAK,CAAC;gCACnC,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,kBAAkB,CAAC,IAAI,CAC1B,CAAC;gBAEF,IAAI,+BAA+B,IAAI,sBAAsB,EAAE,CAAC;oBAC5D,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,MAAM;YACV,CAAC;YAED,iCAAwB,CAAC,CAAC,CAAC;gBACvB,MAAM,QAAQ,GAAG,4BAA4B,CACzC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,sCAA8B,CAAC,IAAI,CAC/E,CAAC;gBAEF,IAAI,QAAQ,IAAI,IAAA,uBAAe,EAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,IAAI,iBAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACvC,MAAM,iBAAiB,GAAG,IAAA,sCAAyB,EAC/C,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAC7B,CAAC;wBACF,IAAI,iBAAiB,EAAE,CAAC;4BACpB,OAAO,iBAAiB,CAAC,IAAI,CAAC;wBAClC,CAAC;oBACL,CAAC;oBAED,IAAI,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,MAAM;oBACV,CAAC;oBAED,IAAI,IAAA,oBAAY,EAAC,WAAW,CAAC,EAAE,CAAC;wBAC5B,uDAAuD;wBACvD,MAAM,YAAY,GACd,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;4BAC/B,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,iCAAwB,CAAC;wBACvE,MAAM,SAAS,GAAG,sBAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;wBAC3D,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;4BACtC,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACxC,OAAO,KAAK,CAAC;4BACjB,CAAC;4BAED,MAAM,OAAO,GAAG,oBAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;4BACvD,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;4BAClF,OAAO,YAAY,KAAK,OAAO,CAAC;wBACpC,CAAC,CAAC,CAAC;wBAEH,IAAI,CAAC,WAAW,EAAE,CAAC;4BACf,MAAM;wBACV,CAAC;oBACL,CAAC;oBAED,IAAI,IAAA,kBAAU,EAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACvE,MAAM,SAAS,GAAG,oBAAY,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;wBAC5D,IAAI,CAAC,IAAA,sBAAc,EAAC,SAAS,CAAC,EAAE,CAAC;4BAC7B,OAAO,SAAS,CAAC;wBACrB,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,iCAAwB,CAAC,CAAC,CAAC;gBACvB,8DAA8D;gBAC9D,4DAA4D;gBAC5D,8DAA8D;gBAC9D,kEAAkE;gBAClE,wBAAwB;gBACxB,IACI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAC7B,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,kCAAyB,CAAC,EAC5E,CAAC;oBACC,MAAM,SAAS,GAAW,EAAE,CAAC;oBAC7B,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBAChC,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAC3D,IAAI,QAAQ,EAAE,CAAC;4BACX,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC7B,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjD,oEAAoE;wBACpE,OAAO,IAAA,wBAAe,EAClB,kBAAkB,EAClB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BAChB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;wBAC3C,CAAC,CAAC,CACL,CAAC;oBACN,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,yBAAyB,CAC5B,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,QAAQ,CACX,CAAC;QACN,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,iBAAiB,CACtB,UAAsB,EACtB,OAAgB,EAChB,SAAyB,EACzB,oBAAoB,GAAG,IAAI;QAE3B,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1D,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1D,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAE3C,IAAI,IAAI,GAAG,IAAA,+CAAmC,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,IAAA,0BAAc,EAAC,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC3B,aAAa,CAAC,gCAAc,CAAC,sBAAsB,EAAE,qBAAU,CAAC,eAAe,EAAE,EAAE,SAAS,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,GAAG,IAAA,+BAAmB,EAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,uBAAW,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YAC/C,OAAO,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;YAEhD,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;YACtC,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,EAAE,CAAC;gBACnB,mCAAmC;gBACnC,IACI,gBAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;oBAC5B,IAAA,wBAAY,EAAC,OAAO,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,aAAa;oBAC1B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EACzC,CAAC;oBACC,OAAO,iBAAS,CAAC,WAAW,EAAE,CAAC;gBACnC,CAAC;gBAED,MAAM,cAAc,GAAG,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC;gBAE9F,IAAI,CAAC,cAAc,EAAE,CAAC;oBAClB,+DAA+D;oBAC/D,6DAA6D;oBAC7D,6DAA6D;oBAC7D,wDAAwD;oBACxD,IAAI,qBAAqB,GAAG,KAAK,CAAC;oBAClC,IAAI,CAAC,OAAO,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,EAAE,CAAC;wBACvC,qBAAqB,GAAG,CAAC,CAAC,IAAA,8BAAkB,EACxC,OAAO,EACP,cAAc,EACd;mFACiD;yEACR,CAC5C,CAAC;oBACN,CAAC;oBAED,IAAI,CAAC,OAAO,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBACjE,MAAM,iBAAiB,GAAG,wBAAwB,CAC9C,OAAO,EACP,aAAa,EACb;4BACI;gCACI,IAAI,EACA,OAAO,CAAC,UAAU,EAAE,QAAQ,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;oCAC5E,CAAC,CAAC,iBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;oCACxD,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE;6BACjC;yBACJ,EACD,SAAS,CACZ,EAAE,IAAI,CAAC;wBACR,IAAI,iBAAiB,EAAE,CAAC;4BACpB,OAAO,iBAAiB,CAAC;wBAC7B,CAAC;oBACL,CAAC;oBAED,IAAI,CAAC,UAAU,CAAC,qBAAU,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACJ,MAAM,kBAAkB,GAAG,IAAI,+BAAkB,EAAE,CAAC;oBAEpD,MAAM,UAAU,GAAG,yBAAyB,CAAC,cAAc,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;wBAC9F,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;4BAC1B,OAAO,OAAO,CAAC;wBACnB,CAAC;wBAED,IAAI,cAAc,GAAG,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC;wBAE5F,IAAI,CAAC,cAAc,EAAE,CAAC;4BAClB,kBAAkB,CAAC,UAAU,CACzB,qBAAU,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC;gCACvC,IAAI,EAAE,cAAc;gCACpB,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;6BAC3B,CAAC,CACL,CAAC;wBACN,CAAC;6BAAM,CAAC;4BACJ,qEAAqE;4BACrE,iCAAiC;4BACjC,cAAc,GAAG,IAAA,uBAAW,EAAC,cAAc,EAAE,CAAC,aAAa,EAAE,EAAE;gCAC3D,IAAI,IAAA,iBAAS,EAAC,aAAa,CAAC,IAAI,IAAA,8BAAsB,EAAC,aAAa,CAAC,EAAE,CAAC;oCACpE,OAAO,aAAa,EAAE,CAAC;gCAC3B,CAAC;gCAED,OAAO,aAAa,CAAC;4BACzB,CAAC,CAAC,CAAC;4BAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gCACX,OAAO,cAAc,CAAC;4BAC1B,CAAC;4BAED,kDAAkD;4BAClD,4BAA4B;4BAC5B,MAAM,eAAe,GAAG,kBAAkB,CACtC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,EAC/D,SAAS,CACZ,CAAC;4BACF,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;gCAC/B,YAAY,GAAG,IAAI,CAAC;4BACxB,CAAC;4BACD,OAAO,eAAe,CAAC,IAAI,CAAC;wBAChC,CAAC;wBAED,OAAO,SAAS,CAAC;oBACrB,CAAC,CAAC,CAAC;oBAEH,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;wBAC/B,OAAO,UAAU,CAAC;oBACtB,CAAC;oBAED,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,YAAY,IAAI,oBAAoB,EAAE,CAAC;gBACxC,aAAa,CACT,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EACpF,SAAS,CACZ,CAAC;YACN,CAAC;YAED,eAAe,GAAG,KAAK,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAED,SAAS,iBAAiB,CACtB,UAAsB,EACtB,OAAgB,EAChB,SAAyB,EACzB,oBAAoB,GAAG,IAAI;QAE3B,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1D,IAAI,eAAe,GAAG,IAAI,CAAC;QAE3B,IAAI,IAAI,GAAG,4BAA4B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEzD,IAAI,IAAA,0BAAc,EAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,oBAAoB,EAAE,CAAC;gBACnD,aAAa,CAAC,gCAAc,CAAC,sBAAsB,EAAE,qBAAU,CAAC,eAAe,EAAE,EAAE,SAAS,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,GAAG,IAAA,+BAAmB,EAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,uBAAW,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YAC/C,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,EAAE,CAAC;gBACnB,MAAM,cAAc,GAAG,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC;gBAE9F,IAAI,cAAc,EAAE,CAAC;oBACjB,OAAO,4BAA4B,CAAC,cAAc,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC;YAED,IAAI,oBAAoB,EAAE,CAAC;gBACvB,aAAa,CACT,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EACjE,SAAS,CACZ,CAAC;YACN,CAAC;YAED,eAAe,GAAG,KAAK,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACvG,CAAC;IAED,SAAS,6BAA6B,CAClC,IAAe,EACf,QAAmB,EACnB,QAA6C,EAC7C,KAAqB;QAErB,2DAA2D;QAC3D,IAAI,IAAA,uBAAe,EAAC,QAAQ,CAAC,IAAI,iBAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpE,MAAM,iBAAiB,GAAG,IAAA,sCAAyB,EAAC,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/F,IAAI,iBAAiB,EAAE,CAAC;gBACpB,OAAO,iBAAiB,CAAC;YAC7B,CAAC;QACL,CAAC;QAED,MAAM,eAAe,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC7D,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,gBAAgB,GAClB,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAA,uBAAe,EAAC,QAAQ,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;YACtG,CAAC,CAAC,iBAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;YACzD,CAAC,CAAC,SAAS,CAAC;QACpB,MAAM,cAAc,GAAG,gBAAgB,EAAE,aAAa,EAAE;YACpD,CAAC,CAAC,wBAAwB,CAAC,gBAAgB,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,iBAAiB,GACnB,cAAc,IAAI,IAAA,8BAAsB,EAAC,cAAc,CAAC;YACpD,CAAC,CAAC,IAAA,oBAAY,EAAC,cAAc,CAAC;gBAC1B,CAAC,CAAC,sBAAc,CAAC,YAAY,CAAC,cAAc,CAAC;gBAC7C,CAAC,CAAC,CAAC,cAAc,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC;QACb,MAAM,eAAe,GACjB,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAC5B,iBAAiB,CAAC,KAAK,CACnB,CAAC,MAAM,EAAE,EAAE,CACP,oBAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC;gBACrC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACnC,CAAC,qBAAa,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACjE,CAAC;QACN,IAAI,cAAc,GAAG,eAAe;YAChC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEhF,0DAA0D;QAC1D,mEAAmE;QACnE,yDAAyD;QACzD,wDAAwD;QACxD,IACI,CAAC,eAAe,IAAI,cAAc,CAAC;YACnC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa;YACrB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YACvB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,+BAAuB;YACpD,IAAA,uBAAe,EAAC,QAAQ,CAAC,EAC3B,CAAC;YACC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/C,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YAEvD,IACI,IAAA,uBAAe,EAAC,SAAS,CAAC;gBAC1B,iBAAS,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC;gBACrC,IAAA,yBAAa,EAAC,SAAS,CAAC;gBACxB,OAAO,SAAS,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,EACjD,CAAC;gBACC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAAA,mCAAuB,EAAC,QAAQ,CAAC,CAAC;gBAEpD,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC5C,IAAI,IAAA,mCAAuB,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;wBACjD,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;4BACtE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;wBACnE,CAAC;6BAAM,IAAI,UAAU,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,IAAI,CAAC,EAAE,CAAC;4BACjF,OAAO;gCACH,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC;qCAC/E,IAAI;6BACZ,CAAC;wBACN,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IACH,KAAK,CAAC,MAAM,KAAK,KAAK;gBACtB,UAAU,CAAC,QAAQ,iCAAwB;gBAC3C,IAAA,uBAAe,EAAC,SAAS,CAAC;gBAC1B,iBAAS,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,EACzC,CAAC;gBACC,MAAM,SAAS,GAAG,IAAA,mCAAuB,EAAC,QAAQ,CAAC,CAAC;gBAEpD,IAAI,SAAS,EAAE,CAAC;oBACZ,oEAAoE;oBACpE,MAAM,aAAa,GAAG,IAAA,8BAAkB,EACpC,QAAQ,EACR,aAAa,iDAEhB,CAAC;oBACF,MAAM,cAAc,GAChB,CAAC,aAAa;wBACd,CAAC,IAAA,2BAAmB,EAAC,aAAa,CAAC,SAAS,CAAC;4BACzC,iBAAS,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;oBAE/D,IAAI,cAAc,EAAE,CAAC;wBACjB,MAAM,eAAe,GAAG,IAAA,2BAAkB,EAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;wBACtF,IAAI,eAAe,EAAE,CAAC;4BAClB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;wBACrC,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,IAAA,mCAA2B,EAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;YAC9C,IACI,YAAY,KAAK,QAAQ;gBACzB,IAAA,uBAAe,EAAC,YAAY,CAAC;gBAC7B,iBAAS,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;gBAC1C,SAAS;gBACT,SAAS,CAAC,MAAM,GAAG,CAAC;gBACpB,SAAS,CAAC,IAAI,CACV,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CACtG,EACH,CAAC;gBACC,kFAAkF;gBAClF,QAAQ,GAAG,YAAY,CAAC;YAC5B,CAAC;YACD,cAAc,GAAG,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,aAAa,CACT,gCAAc,CAAC,gBAAgB,EAC/B,qBAAU,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC;gBACvC,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC;aAC5B,CAAC,EACF,IAAI,CAAC,CAAC,CAAC,QAAQ,CAClB,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,+BAAuB,CAAC,CAAC;QAChG,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,qCAA6B,CAAC,CAAC;QAExG,IAAI,mBAAyB,CAAC;QAC9B,IAAI,+BAA+B,GAAG,KAAK,CAAC;QAE5C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YACxF,sEAAsE;YACtE,MAAM,UAAU,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtE,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC;YACtC,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC1B,+BAA+B,GAAG,IAAI,CAAC;YAC3C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,kDAAkD;YAClD,MAAM,aAAa,GAAmB,EAAE,CAAC;YAEzC,MAAM,4BAA4B,GAAG,CAAC,IAAU,EAA8B,EAAE;gBAC5E,IAAI,cAA0C,CAAC;gBAC/C,IAAI,eAAe,GAAG,IAAI,CAAC;gBAE3B,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;wBACnB,OAAO;oBACX,CAAC;oBAED,MAAM,SAAS,GAAG,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;oBACnD,MAAM,aAAa,GAAG,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;oBAEpD,IACI,CAAC,aAAa;wBACd,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAChF,CAAC;wBACC,eAAe,GAAG,KAAK,CAAC;wBACxB,OAAO;oBACX,CAAC;oBAED,IAAI,CAAC,cAAc,EAAE,CAAC;wBAClB,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC1F,OAAO;oBACX,CAAC;oBAED,IAAI,cAAc,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;wBACjD,eAAe,GAAG,KAAK,CAAC;wBACxB,OAAO;oBACX,CAAC;oBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7C,cAAc,CAAC,CAAC,CAAC,GAAG;4BAChB,IAAI,EAAE,IAAA,oBAAY,EAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;4BACnE,WAAW,EAAE,KAAK;yBACrB,CAAC;oBACN,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtC,OAAO,SAAS,CAAC;gBACrB,CAAC;gBAED,OAAO,cAAc,CAAC;YAC1B,CAAC,CAAC;YAEF,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,+BAAuB,EAAE,CAAC;oBAC3C,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACxD,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;oBAClE,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;wBAC1B,+BAA+B,GAAG,IAAI,CAAC;oBAC3C,CAAC;oBACD,OAAO;gBACX,CAAC;gBAED,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,qCAA6B,EAAE,CAAC;oBACjD,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;wBAC1B,+BAA+B,GAAG,IAAI,CAAC;oBAC3C,CAAC;oBAED,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC3E,IAAI,oBAAoB,EAAE,CAAC;wBACvB,IAAA,6BAAW,EAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;wBACjD,OAAO;oBACX,CAAC;oBAED,MAAM,YAAY,GACd,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI;wBACzE,mBAAW,CAAC,MAAM,EAAE,CAAC;oBACzB,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;YACrF,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,mBAAmB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACtF,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACjE,aAAa,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,IAAA,oBAAY,EAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7D,WAAW,EAAE,IAAI;iBACpB,CAAC,CAAC;YACP,CAAC;YAED,mBAAmB,GAAG,IAAA,wBAAe,EAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,OAAO,GAAU;YACnB;gBACI,WAAW,4BAAoB;gBAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,+BAA+B,EAAE;aAC3F;SACJ,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,eAAO,CAAC,MAAM,EAAE,CAAC;YAEtD,qCAAqC;YACrC,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,mBAAW,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,MAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1F,OAAO,GAAG,4BAA4B,CAClC,OAAO;gBACP,4BAA4B,CAAC,SAAS,EACtC,eAAe,CAClB,CAAC;YACN,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACT,WAAW,4BAAoB;gBAC/B,UAAU,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY;iBAC9C;aACJ,CAAC,CAAC;QACP,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAC/B,IAAI,EACJ,OAAO,EACP,EAAE,IAAI,EAAE,cAAc,EAAE;QACxB,iBAAiB,CAAC,SAAS;QAC3B,yBAAyB,CAAC,IAAI;QAC9B,sBAAsB,CAAC,SAAS,CACnC,CAAC;QAEF,OAAO;YACH,IAAI,EAAE,UAAU,CAAC,UAAU,IAAI,mBAAW,CAAC,MAAM,EAAE;YACnD,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,gBAAgB;SAC9C,CAAC;IACN,CAAC;IAED,SAAS,UAAU,CAAC,IAAoB,EAAE,KAAgB,EAAE,sBAA+B;QACvF,IAAI,UAA8B,CAAC;QAEnC,IAAI,aAAa,GACb,KAAK,uCAA6B,yCAAiC,qCAA6B,CAAC;QAErG,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,aAAa,iCAAyB,CAAC;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,gCAAuB,EAAE,CAAC;YACvC,UAAU,GAAG;gBACT,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE;gBAC1B,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACjC,OAAO,EAAE,GAAG,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACzE,CAAC,CAAC;gBACF,IAAI;aACP,CAAC;YAEF,qDAAqD;YACrD,oBAAoB,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,sCAA6B,IAAI,sBAAsB,EAAE,CAAC;YAC9E,MAAM,eAAe,GACjB,OAAO,CAAC,UAAU,EAAE,cAAc,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;gBACxF,CAAC,CAAC,IAAA,uCAA0B,EAAC,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC;gBACnG,CAAC,CAAC,SAAS,CAAC;YACpB,MAAM,eAAe,GACjB,OAAO,CAAC,UAAU,EAAE,QAAQ,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC5E,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ;gBAC7B,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC;YAE/B,UAAU,GAAG;gBACT,IAAI,EAAE,eAAe;gBACrB,eAAe;gBACf,IAAI;aACP,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;YAEnE,IAAI,IAAI,CAAC,QAAQ,sCAA6B,EAAE,CAAC;gBAC7C,aAAa,CAAC,gCAAc,CAAC,qBAAqB,EAAE,qBAAU,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7F,CAAC;YAED,IAAI,CAAC,KAAK,oCAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,gDAAgD;gBAChD,IAAI,IAAA,eAAO,EAAC,UAAU,CAAC,IAAI,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;oBAC/E,aAAa,CAAC,gCAAc,CAAC,qBAAqB,EAAE,qBAAU,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC/F,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,SAAS,sBAAsB,CAAC,IAAc,EAAE,gBAA8C;QAC1F,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,kCAAyB,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,oBAAY,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAChE,YAAY,CAAC,MAAM,CAAC,kBAAkB,GAAG,gBAAgB;YACrD,CAAC,CAAC,gBAAgB,CAAC,YAAY;YAC/B,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC;QAE3B,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC7B,mBAAmB,GAAG,IAAI,CAAC;YAC/B,CAAC;YAED,oBAAY,CAAC,QAAQ,CACjB,YAAY,EACZ,qBAAa,CAAC,MAAM,+BAEhB,aAAa,CAAC,IAAI,EAClB,0BAAkB,CAAC,eAAe,GAAG,0BAAkB,CAAC,YAAY,EACpE,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CACzB,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,6EAA6E;QAC7E,sDAAsD;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,iCAAyB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrE,oBAAY,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;QAED,SAAS,aAAa;YAClB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,sCAA8B,IAAA,gCAAoB,EAAC,YAAY,CAAC,CAAC,CAAC;QAChH,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,8BAA8B;QAC9B,IAAI,UAAU,GACV,mBAAmB,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,gBAAgB;YACrF,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC;YACpD,CAAC,CAAC,aAAa,EAAE,CAAC;QAE1B,6EAA6E;QAC7E,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YACxB,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,qCAA6B,CAAC;QAClF,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAc,EAAE,aAAwB;QAC/D,IACI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YACxB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,+BAAuB;YACnD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EACrC,CAAC;YACC,aAAa,CAAC,gCAAc,CAAC,eAAe,EAAE,qBAAU,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/E,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,cAAc,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/E,WAAW,EAAE,IAAI;YACjB,qBAAqB,EAAE,IAAI;YAC3B,cAAc,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpE,cAAc,CAAC,IAAI,GAAG,IAAA,6BAAiB,EACnC,iBAAS,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,IAAA,6BAAiB,EAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC/F,CAAC;QACN,CAAC;QAED,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAc,EAAE,gBAA8C;QACvF,IACI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YACxB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,+BAAuB;YACnD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;YACnC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,+BAAuB;YACnD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EACrC,CAAC;YACC,aAAa,CAAC,gCAAc,CAAC,eAAe,EAAE,qBAAU,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;YACjF,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAChH,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACrF,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,6BAAiB,EAClC,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACxD,cAAc,EAAE,IAAI;SACvB,CAAC,CAAC,IAAI,CACV,CAAC;QAEF,oFAAoF;QACpF,kFAAkF;QAClF,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,eAAe,GAAG;YACpB,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,IAAI;YACzB,gBAAgB,EAAE,IAAI;SACzB,CAAC;QACF,IAAI,UAAU,GAAG,IAAA,kBAAU,EAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAErE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,wEAAwE;YACxE,2EAA2E;YAC3E,oFAAoF;YACpF,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,YAAY,EAAE,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC/F,yBAAyB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAChF,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;YACpF,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAC5E,UAAU,GAAG,IAAA,kBAAU,EAAC,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YAErG,aAAa,CACT,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC;gBACvC,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,YAAY,CAAC,UAAU;aACpC,CAAC,EACF,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC7B,CAAC;QACN,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,SAAS,qBAAqB,CAAC,IAAc;QACzC,IAAI,OAAO,GAA0B,IAAI,CAAC;QAC1C,IAAI,KAAwB,CAAC;QAE7B,OAAO,OAAO,EAAE,CAAC;YACb,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAEjC,iEAAiE;YACjE,iEAAiE;YACjE,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,oCAA4B,EAAE,CAAC;gBAClD,MAAM;YACV,CAAC;YAED,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,CAAC;oBACtC,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;oBACtD,YAAY,CAAC,IAAI,CACb,sBAAW,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;wBAC9B,IAAI;wBACJ,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;qBAC3D,CAAC,CACL,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,cAAc,CAAC,qBAAU,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,WAAW,EAAE,CAAC;IACzB,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAc;QACtC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,aAAa,CAAC,gCAAc,CAAC,eAAe,EAAE,qBAAU,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,CAAC;QAED,MAAM,iBAAiB,GAAG,cAAc,CAAC,mCAAmC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7F,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3G,MAAM,kBAAkB,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAElG,2DAA2D;QAC3D,0DAA0D;QAC1D,IAAI,eAAqB,CAAC;QAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YACvE,MAAM,uBAAuB,GAAG,4BAA4B,CAAC,eAAe,CAAC,CAAC;YAE9E,IACI,CAAC,IAAA,sBAAc,EAAC,uBAAuB,CAAC;gBACxC,CAAC,IAAA,2BAAmB,EAAC,uBAAuB,CAAC;gBAC7C,CAAC,IAAA,+BAAmB,EAAC,uBAAuB,CAAC,EAC/C,CAAC;gBACC,aAAa,CACT,gCAAc,CAAC,kBAAkB,EACjC,qBAAU,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,EAC3E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC7B,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,kBAAkB,EAAE,CAAC;gBACrB,eAAe,GAAG,kBAAkB,IAAI,mBAAW,CAAC,MAAM,EAAE,CAAC;gBAE7D,MAAM,YAAY,GAAG,iBAAiB;oBAClC,CAAC,CAAC,IAAA,0CAA6B,EACzB,kBAAkB,EAClB,iBAAiB;oBACjB,eAAe,CAAC,IAAI,EACpB,QAAQ,CACX;oBACH,CAAC,CAAC,SAAS,CAAC;gBAEhB,sEAAsE;gBACtE,uCAAuC;gBACvC,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,yCAAiC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5F,aAAa,CACT,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,gCAAgC,EAAE,EAC7C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAClB,CAAC;gBACN,CAAC;qBAAM,IACH,CAAC,cAAc,CAAC,yBAAyB,CACrC,IAAI,EACJ,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAC7D,QAAQ,CACX,EACH,CAAC;oBACC,wDAAwD;oBACxD,uCAAuC;oBACvC,aAAa,CACT,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,oBAAoB,EAAE,EACjC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAClB,CAAC;gBACN,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,aAAa,CACT,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,oBAAoB,EAAE,EACjC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAClB,CAAC;gBACF,eAAe,GAAG,mBAAW,CAAC,MAAM,EAAE,CAAC;YAC3C,CAAC;QACL,CAAC;QAED,MAAM,uBAAuB,GAAG,4BAA4B,CAAC,eAAe,CAAC,CAAC;QAE9E,gDAAgD;QAChD,IAAI,aAA+B,CAAC;QACpC,IAAI,UAAiC,CAAC;QAEtC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YACrE,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;YAE1E,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAA,4BAAgB,EAAC,qBAAqB,EAAE,CAAC,gBAAgB,EAAE,EAAE;gBACzD,IAAI,IAAA,sBAAc,EAAC,gBAAgB,CAAC,EAAE,CAAC;oBACnC,+BAA+B;gBACnC,CAAC;qBAAM,IAAI,IAAA,uBAAe,EAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC3C,IAAI,IAAA,2BAAmB,EAAC,uBAAuB,CAAC,EAAE,CAAC;wBAC/C,IACI,CAAC,IAAA,qCAAyB,EACtB,iBAAS,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC/C,uBAAuB;wBACvB,mBAAmB,CAAC,IAAI,CAC3B,EACH,CAAC;4BACC,WAAW,GAAG,IAAI,CAAC;wBACvB,CAAC;oBACL,CAAC;oBACD,UAAU,GAAG,gBAAgB,CAAC;gBAClC,CAAC;qBAAM,IAAI,IAAA,2BAAmB,EAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC/C,IAAI,IAAA,2BAAmB,EAAC,uBAAuB,CAAC,EAAE,CAAC;wBAC/C,IACI,CAAC,iBAAS,CAAC,SAAS,CAAC,uBAAuB,EAAE,MAAM,CAAC;4BACrD,CAAC,IAAA,qCAAyB,EACtB,gBAAgB,EAChB,uBAAuB;4BACvB,mBAAmB,CAAC,IAAI,CAC3B,EACH,CAAC;4BACC,WAAW,GAAG,IAAI,CAAC;wBACvB,CAAC;oBACL,CAAC;oBACD,UAAU,GAAG,gBAAgB,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACJ,WAAW,GAAG,IAAI,CAAC;gBACvB,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,EAAE,CAAC;gBACd,aAAa,CACT,gCAAc,CAAC,kBAAkB,EACjC,qBAAU,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,EAC5E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC7B,CAAC;gBAEF,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,CAAC;QACL,CAAC;aAAM,IAAI,kBAAkB,EAAE,CAAC;YAC5B,UAAU,GAAG,iBAAS,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YAE3D,6EAA6E;YAC7E,oEAAoE;YACpE,MAAM,eAAe,GAAG,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,kBAAoC,CAAC;YAEzC,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,cAAc,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;gBAC1D,IAAI,cAAc,EAAE,CAAC;oBACjB,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC;oBAC/C,IACI,oBAAY,CAAC,aAAa,CAAC,UAAU,CAAC;wBACtC,oBAAY,CAAC,mBAAmB,CAAC,UAAU,CAAC;wBAC5C,oBAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAC3C,CAAC;wBACC,IACI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;4BACvC,qBAAa,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAC/D,CAAC;4BACC,IAAI,SAAS,GAAG,oBAAY,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BACzD,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;4BACnD,SAAS,GAAG,IAAA,6BAAiB,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;4BACvD,kBAAkB,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;wBACjE,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,UAAU,IAAI,kBAAkB,EAAE,CAAC;gBACnC,MAAM,aAAa,GAAG,IAAA,4BAAgB,EAAC,kBAAkB,CAAC,CAAC;gBAC3D,IAAI,aAAa,EAAE,CAAC;oBAChB,UAAU,GAAG,IAAA,8BAAkB,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBAC/D,CAAC;qBAAM,IAAI,IAAA,eAAO,EAAC,kBAAkB,CAAC,EAAE,CAAC;oBACrC,UAAU,GAAG,kBAAkB,CAAC;gBACpC,CAAC;YACL,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,oCAAoC;QACpC,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;gBACtD,IAAI,UAAU,EAAE,CAAC;oBACb,IACI,oBAAY,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC;wBACpD,oBAAY,CAAC,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC;wBACzD,oBAAY,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,EACrD,CAAC;wBACC,gBAAgB,GAAG,KAAK,CAAC;oBAC7B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,oDAAoD;QACpD,8DAA8D;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE,QAAQ,wCAA+B,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/C,IAAI,oBAAoB,GAAG,IAAA,eAAO,EAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;YAElG,2EAA2E;YAC3E,4EAA4E;YAC5E,0DAA0D;YAC1D,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,IACI,UAAU;gBACV,iBAAS,CAAC,eAAe,CAAC,UAAU,CAAC;gBACrC,oBAAoB;gBACpB,CAAC,iBAAS,CAAC,kBAAkB,CACzB,gBAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EACxF,oBAAoB,CACvB,EACH,CAAC;gBACC,eAAe,GAAG,IAAI,CAAC;gBACvB,oBAAoB,GAAG,SAAS,CAAC;YACrC,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACb,UAAU,GAAG,IAAA,+BAAmB,EAAC,UAAU,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,aAAa,GAAG,UAAU;gBAC5B,CAAC,CAAC,IAAA,6BAAiB,EAAC,UAAU,EAAE,UAAU,qCAA6B,oBAAoB,CAAC;gBAC5F,CAAC,CAAC,SAAS,CAAC;YAEhB,IAAI,UAAgB,CAAC;YACrB,IAAI,aAAa,IAAI,IAAA,2BAAmB,EAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC;gBAErC,IAAI,eAAe,EAAE,CAAC;oBAClB,2EAA2E;oBAC3E,+EAA+E;oBAC/E,UAAU,GAAG,iBAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;iBAAM,IACH,oBAAoB;gBACpB,CAAC,IAAA,sBAAc,EAAC,oBAAoB,CAAC;gBACrC,CAAC,IAAA,mCAAuB,EAAC,oBAAoB,CAAC,EAChD,CAAC;gBACC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,IAAI,mBAAW,CAAC,MAAM,EAAE,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,mBAAW,CAAC,MAAM,EAAE,CAAC;YACtC,CAAC;YAED,IAAI,cAAmD,CAAC;YACxD,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,aAAa,EAAE,CAAC;oBAChB,yDAAyD;oBACzD,+BAA+B;oBAC/B,IAAI,IAAA,iBAAS,EAAC,aAAa,CAAC,EAAE,CAAC;wBAC3B,cAAc,GAAG,IAAA,6BAAiB,EAAC,aAAa,CAAC,CAAC;oBACtD,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,yDAAyD;oBACzD,0BAA0B;oBAC1B,cAAc,GAAG,gBAAQ,CAAC,iBAAiB,CACvC,mBAAW,CAAC,YAAY,CACpB,IAAA,uCAA2B,EACvB,iBAAS,CAAC,sBAAsB,CAAC,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC;oBAC3E,gBAAgB,CAAC,KAAK,CACzB,CACJ,EACD,UAAU,CAAC,KAAK,EAAE,SAAS,CAC9B,CAAC;gBACN,CAAC;YACL,CAAC;YAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAE1G,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACpC,CAAC;QAED,2EAA2E;QAC3E,IAAI,IAAA,2BAAmB,EAAC,uBAAuB,CAAC,EAAE,CAAC;YAC/C,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,qEAAqE;YACrE,oEAAoE;YACpE,SAAS;YACT,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,iBAAmC,CAAC;gBAExC,IACI,iBAAS,CAAC,kBAAkB,CACxB,gBAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EACxF,uBAAuB,CAC1B,EACH,CAAC;oBACC,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3C,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACzD,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAC1D,CAAC,SAAS,EAAE,EAAE,CACV,IAAA,eAAO,EAAC,SAAS,CAAC;wBAClB,iBAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,uBAAoC,CAAC,CACpF,CAAC;oBAEF,IAAI,cAAc,IAAI,CAAC,IAAI,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnF,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;oBAC1E,CAAC;gBACL,CAAC;gBAED,IAAI,iBAAiB,EAAE,CAAC;oBACpB,IAAI,IAAA,2BAAmB,EAAC,iBAAiB,CAAC,EAAE,CAAC;wBACzC,iBAAiB,GAAG,IAAA,kCAAsB,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;oBAC9E,CAAC;oBACD,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;gBACjG,CAAC;gBAED,4EAA4E;gBAC5E,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrF,OAAO;wBACH,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;qBAC7F,CAAC;gBACN,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,yDAAyD;gBACzD,kDAAkD;gBAClD,IAAI,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC;oBAChF,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1C,CAAC;gBAED,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC/D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,IAAA,2BAAmB,EAAC,aAAa,CAAC,EAAE,CAAC;wBACrC,OAAO;4BACH,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,iBAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa;yBACpF,CAAC;oBACN,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,SAAS,gBAAgB,CAAC,OAAc,EAAE,SAAyB;QAC/D,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,+BAAuB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;YAC9E,aAAa,CACT,gCAAc,CAAC,qBAAqB,EACpC,qBAAU,CAAC,kBAAkB,EAAE,EAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAC7B,CAAC;QACN,CAAC;QAED,qCAAqC;QACrC,IAAI,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QAEtF,MAAM,YAAY,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACxD,UAAU,GAAG,IAAA,6BAAiB,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzD,IAAI,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;QAEnF,IAAI,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YAClC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;QAClD,CAAC;QAED,IAAI,gBAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAA,iBAAS,EAAC,UAAU,CAAC,EAAE,CAAC;YAChE,IACI,IAAA,kBAAU,EAAC,IAAA,6BAAiB,EAAC,UAAU,CAAC,EAAE,YAAY,EAAE;gBACpD,mBAAmB,EAAE,IAAI;aAC5B,CAAC,EACJ,CAAC;gBACC,aAAa,CACT,gCAAc,CAAC,qBAAqB,EACpC,qBAAU,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;oBAChC,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;iBAChC,CAAC,EACF,SAAS,CACZ,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,IAAA,6BAAiB,EAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAkB,EAAE,KAAgB;QAC3D,IAAI,IAAsB,CAAC;QAE3B,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,8BAAqB,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;gBACpC,IAAI;oBACA,CAAC,KAAK,uCAA6B,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa;wBAClC,CAAC,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAE9D,IAAI,GAAG,gBAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;aAAM,IACH,IAAI,CAAC,CAAC,CAAC,SAAS,8BAAqB;YACrC,IAAI,CAAC,CAAC,CAAC,SAAS,+BAAsB;YACtC,IAAI,CAAC,CAAC,CAAC,SAAS,8BAAsB,EACxC,CAAC;YACC,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAEtC,qDAAqD;YACrD,sBAAsB;YACtB,IAAI,IAAI,IAAI,IAAA,uBAAe,EAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,8BAAqB,EAAE,CAAC;oBACxC,IAAI,GAAG,iBAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9D,CAAC;qBAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,+BAAsB,EAAE,CAAC;oBAChD,IAAI,GAAG,iBAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC/D,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;IAClD,CAAC;IAED,SAAS,wBAAwB,CAC7B,OAAa,EACb,UAAkB,EAClB,OAAqB,EACrB,SAAyB,EACzB,gBAAmC,EACnC,IAAyB;QAEzB,IAAI,oBAAoB,GAAG,IAAI,CAAC;QAChC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,eAAuD,CAAC;QAC5D,MAAM,oBAAoB,GAAmB,EAAE,CAAC;QAEhD,8CAA8C;QAC9C,MAAM,aAAa,GAAG,CAAC,OAAgC,EAAE,EAAE;YACvD,IAAI,eAAiC,CAAC;YACtC,MAAM,eAAe,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;YAE9D,IAAI,IAAA,eAAO,EAAC,eAAe,CAAC,EAAE,CAAC;gBAC3B,eAAe,GAAG,mBAAmB,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YACjG,CAAC;YAED,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAU,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5C,OAAO;wBACH,WAAW,4BAAoB;wBAC/B,UAAU,EAAE,GAAG;qBAClB,CAAC;gBACN,CAAC,CAAC,CAAC;gBAEH,IAAI,UAAkC,CAAC;gBAEvC,UAAU,GAAG,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE;oBAC5C,IAAA,cAAM,EAAC,eAAe,KAAK,SAAS,CAAC,CAAC;oBACtC,OAAO,gBAAgB,CACnB,SAAS,EACT,YAAY,EACZ,EAAE,IAAI,EAAE,eAAe,EAAE;oBACzB,iBAAiB,CAAC,SAAS;oBAC3B,yBAAyB,CAAC,IAAI,EAC9B,gBAAgB,CACnB,CAAC;gBACN,CAAC,CAAC,CAAC;gBAEH,mDAAmD;gBACnD,yCAAyC;gBACzC,IAAI,UAAU,CAAC,cAAc,IAAI,gBAAgB,EAAE,CAAC;oBAChD,UAAU,GAAG,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE;wBAC5C,IAAA,cAAM,EAAC,eAAe,KAAK,SAAS,CAAC,CAAC;wBACtC,OAAO,gBAAgB,CACnB,SAAS,EACT,YAAY,EACZ,EAAE,IAAI,EAAE,eAAe,EAAE;wBACzB,iBAAiB,CAAC,SAAS;wBAC3B,yBAAyB,CAAC,IAAI;wBAC9B,sBAAsB,CAAC,SAAS,CACnC,CAAC;oBACN,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;oBAC5B,oBAAoB,GAAG,KAAK,CAAC;gBACjC,CAAC;qBAAM,IAAI,UAAU,CAAC,oBAAoB,EAAE,CAAC;oBACzC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACjD,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAEpC,2DAA2D;wBAC3D,IAAI,QAAQ,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAA,eAAO,EAAC,eAAe,CAAC,EAAE,CAAC;4BAChE,eAAe,GAAG;gCACd,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB;gCACpD,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI;gCACtC,UAAU;6BACb,CAAC;wBACN,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;oBAC9B,YAAY,GAAG,IAAI,CAAC;gBACxB,CAAC;gBAED,OAAO,UAAU,CAAC,UAAU,CAAC;YACjC,CAAC;YAED,oBAAoB,GAAG,KAAK,CAAC;YAC7B,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,IAAA,uBAAW,EAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;YAChD,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;gBACjF,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,IAAA,0BAAc,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,IAAI,OAAO,CAAC,UAAU,EAAE,WAAW,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzF,2BAA2B;oBAC3B,OAAO,aAAa,CAAC,iBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;gBACpF,CAAC;YACL,CAAC;YAED,IAAI,IAAA,2BAAe,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrF,+BAA+B;oBAC/B,OAAO,aAAa,CAAC,iBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClF,CAAC;YACL,CAAC;YAED,oBAAoB,GAAG,KAAK,CAAC;YAC7B,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,0BAA0B,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACjH,CAAC;IAED,SAAS,cAAc,CAAC,IAAe;QACnC,IAAI,iBAAmC,CAAC;QACxC,IAAI,QAA0B,CAAC;QAC/B,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,MAAM,iBAAiB,GAAG,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,iBAAiB,EAAE,CAAC;YACpB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YAC9D,IAAI,gBAAgB,EAAE,CAAC;gBACnB,IAAI,UAAU,GAAG,oBAAY,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBACpF,IAAI,UAAU,EAAE,CAAC;oBACb,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACnD,UAAU,GAAG,IAAA,6BAAiB,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC;oBAEzD,iBAAiB,GAAG,IAAA,iCAAqB,EAAC,UAAU,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAErF,MAAM,iBAAiB,GAAG,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;oBAC3D,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACrD,QAAQ,GAAG,IAAA,6BAAiB,EAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;oBACrE,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,mBAAmB,CAClC,IAAI,CAAC,CAAC,CAAC,IAAI;YACX,WAAW,CAAC,SAAS,EACrB,IAAA,gCAAoB,EAAC,iBAAiB,CAAC,CAC1C,CAAC;YACF,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC1B,YAAY,GAAG,IAAI,CAAC;YACxB,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,mBAAW,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC;IACpE,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAmB;QAC3C,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC;QAE/C,MAAM,YAAY,GAAG,IAAA,uBAAW,EAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,EAAE;YACjE,sCAAsC;YACtC,IAAI,iBAAiB,GAAG,IAAA,gCAAoB,EAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,iBAAiB,EAAE,CAAC;gBACpB,OAAO,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC;YACvF,CAAC;YAED,6DAA6D;YAC7D,IACI,IAAA,uBAAe,EAAC,gBAAgB,CAAC;gBACjC,iBAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,EACvE,CAAC;gBACC,OAAO,mBAAW,CAAC,MAAM,EAAE,CAAC;YAChC,CAAC;YAED,2BAA2B;YAC3B,MAAM,YAAY,GACd,iBAAiB,CAAC,mBAAmB,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,mBAAW,CAAC,MAAM,EAAE,CAAC;YAEpG,wCAAwC;YACxC,iBAAiB,GAAG,IAAA,gCAAoB,EAAC,YAAY,CAAC,CAAC;YACvD,OAAO,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC;QAC5G,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAClC,CAAC;IAED,SAAS,cAAc,CAAC,IAAe;QACnC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,IAAI,SAAS,GAAG,QAAQ,CAAC;QACzB,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,IAAI,QAAQ,GAAG,QAAQ,CAAC;QACxB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,8DAA8D;QAC9D,cAAc;QACd,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/D,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;YACjC,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;gBAC/B,YAAY,GAAG,IAAI,CAAC;YACxB,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC;YAC7B,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC7B,YAAY,GAAG,IAAI,CAAC;YACxB,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7D,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;YAC/B,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;gBAC9B,YAAY,GAAG,IAAI,CAAC;YACxB,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,IAAA,uBAAe,EAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,iBAAS,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;IACnG,CAAC;IAED,SAAS,YAAY,CAAC,GAAQ,EAAE,gBAA8C;QAC1E,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,IAAI,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QACjG,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;YACvB,gDAAgD;YAChD,OAAO,EAAE,IAAI,EAAE,mBAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,CAAC;QAED,6DAA6D;QAC7D,6DAA6D;QAC7D,OAAO,mBAAmB,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC7F,CAAC;IAED,SAAS,gCAAgC,CAAC,IAAoB,EAAE,OAA6B;QACzF,IAAI,KAAK,GAAG,yEAAuD,CAAC;QAEpE,IAAI,OAAO,EAAE,2BAA2B,EAAE,CAAC;YACvC,KAAK,mDAAwC,CAAC;QAClD,CAAC;QAED,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;YAC/B,KAAK,4CAAiC,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,EAAE,wBAAwB,EAAE,CAAC;YACpC,KAAK,wDAAsC,CAAC;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAA,kDAA+B,EAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC;YACzG,KAAK,iCAAyB,CAAC;QACnC,CAAC;aAAM,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;YACtC,KAAK,gDAAiC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;YACvB,KAAK,8BAAqB,CAAC;QAC/B,CAAC;QAED,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;YACzB,KAAK,IAAI,0EAAkD,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;YACzB,KAAK,IAAI,0EAAkD,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC;YAC9B,KAAK,8CAAgC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,KAAK,qCAA4B,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,EAAE,sBAAsB,EAAE,CAAC;YAClC,KAAK,kDAAoC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;YAC3B,KAAK,kCAAyB,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;YAC1B,KAAK,sCAA4B,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAChC,KAAK,0CAAkC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;YACzB,KAAK,uCAA2B,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,EAAE,qBAAqB,EAAE,CAAC;YACjC,KAAK,kDAAmC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;YAC1B,KAAK,qCAAwB,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;YAC7B,KAAK,2CAA+B,CAAC;QACzC,CAAC;QAED,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;YACrB,KAAK,oCAAuB,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;YACvB,KAAK,0CAAyB,CAAC;QACnC,CAAC;QAED,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,cAAc,CACnB,mBAA2B,EAC3B,gBAAwC;QAExC,gDAAgD;QAChD,IAAI,aAAa,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,OAAO,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/D,aAAa,EAAE,CAAC;QACpB,CAAC;QAED,4CAA4C;QAC5C,aAAa,EAAE,CAAC;QAEhB,IAAI,aAAa,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,aAAiC,CAAC;QACtC,OAAO,aAAa,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAChD,iDAAiD;YACjD,MAAM,OAAO,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAEnD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,aAAa,EAAE,CAAC;gBAChB,MAAM;YACV,CAAC;YACD,aAAa,EAAE,CAAC;QACpB,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,8BAA8B;QAC9B,MAAM,mBAAmB,GAA2B,EAAE,CAAC;QAEvD,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;YAC1C,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9B,MAAM,aAAa,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;gBAC5C,aAAa,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;gBACvC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,SAAS,aAAa,CAAC,OAAc;QACjC,MAAM,eAAe,GAAU,EAAE,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,WAAW,qCAA6B,EAAE,CAAC;gBAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;gBAEzE,6DAA6D;gBAC7D,8DAA8D;gBAC9D,mDAAmD;gBACnD,MAAM,eAAe,GAAG,IAAA,kCAAsB,EAC1C,4BAA4B,CAAC,OAAO,CAAC,EACrC,OAAO,CAAC,UAAU,EAAE,UAAU,CACjC,CAAC;gBAEF,IAAI,IAAA,uBAAe,EAAC,eAAe,CAAC,IAAI,IAAA,wBAAY,EAAC,eAAe,CAAC,EAAE,CAAC;oBACpE,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;oBAE/D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;wBAC9D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;4BACvC,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;gCAC3B,eAAe,CAAC,IAAI,CAAC;oCACjB,GAAG,GAAG;oCACN,WAAW,kCAA0B;oCACrC,eAAe,EAAE,SAAS;oCAC1B,UAAU,EAAE;wCACR,IAAI,EAAE,IAAA,wBAAe,EAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC,CAAC;qCAC5D;iCACJ,CAAC,CAAC;4BACP,CAAC;iCAAM,CAAC;gCACJ,eAAe,CAAC,IAAI,CAAC;oCACjB,GAAG,GAAG;oCACN,WAAW,4BAAoB;oCAC/B,eAAe,EAAE,SAAS;oCAC1B,UAAU,EAAE;wCACR,IAAI,EAAE,YAAY,CAAC,IAAI;qCAC1B;iCACJ,CAAC,CAAC;4BACP,CAAC;wBACL,CAAC;wBACD,SAAS;oBACb,CAAC;gBACL,CAAC;YACL,CAAC;YAED,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,SAAS,aAAa,CAAC,IAAU;QAC7B,MAAM,aAAa,GAAW,EAAE,CAAC;QAEjC,wDAAwD;QACxD,IAAI,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YAC/B,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,oCAAoC;gBACpC,MAAM,oBAAoB,GAAG,IAAA,qCAAwB,EAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBACnF,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,IAAI,sCAAsC,EAAE,CAAC;oBAChG,IAAA,6BAAW,EAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;oBACjD,OAAO;gBACX,CAAC;gBAED,gCAAgC;gBAChC,MAAM,cAAc,GAAG,IAAA,oBAAW,EAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;gBACpF,IAAI,cAAc,EAAE,CAAC;oBACjB,IAAA,6BAAW,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;oBAC3C,OAAO;gBACX,CAAC;YACL,CAAC;YAED,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IAED,OAAO;QACH,iBAAiB;QACjB,uBAAuB;QACvB,eAAe;QACf,4BAA4B;QAC5B,iBAAiB;QACjB,iBAAiB;QACjB,6BAA6B;QAC7B,UAAU;QACV,sBAAsB;QACtB,iBAAiB;QACjB,mBAAmB;QACnB,qBAAqB;QACrB,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,wBAAwB;QACxB,cAAc;QACd,kBAAkB;QAClB,cAAc;QACd,YAAY;QACZ,gCAAgC;QAChC,mBAAmB;QACnB,cAAc;QACd,aAAa;KAChB,CAAC;AACN,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { ConsoleInterface } from '../../common/console';
2
+ import { Diagnostic } from '../../common/diagnostic';
3
+ import { DiagnosticRule } from '../../common/diagnosticRules';
4
+ import { TextRange } from '../../common/textRange';
5
+ import { ClassNode, FunctionNode, LambdaNode, ParseNode } from '../../parser/parseNodes';
6
+ import { AnalyzerFileInfo } from '../analyzerFileInfo';
7
+ import * as AnalyzerNodeInfo from '../analyzerNodeInfo';
8
+ import { CodeFlowAnalyzer, CodeFlowEngine, FlowNodeTypeOptions, FlowNodeTypeResult } from '../codeFlowEngine';
9
+ import { CodeFlowReferenceExpressionNode, FlowNode } from '../codeFlowTypes';
10
+ import { CodeFlowAnalyzerCacheEntry } from '../typeEvaluator/internals';
11
+ import { Reachability } from '../typeEvaluatorTypes';
12
+ import { Type, TypeVarType } from '../types';
13
+ interface Context {
14
+ readonly addDiagnosticForTextRange: (fileInfo: AnalyzerFileInfo, rule: DiagnosticRule, message: string, range: TextRange) => Diagnostic | undefined;
15
+ readonly codeFlowAnalyzerCache: Map<number, CodeFlowAnalyzerCacheEntry[]>;
16
+ readonly codeFlowEngine: CodeFlowEngine;
17
+ readonly getCodeFlowAnalyzerForReturnTypeInferenceContext: () => CodeFlowAnalyzer;
18
+ readonly isNodeInReturnTypeInferenceContext: (node: ParseNode) => boolean;
19
+ readonly maxCodeComplexity: number;
20
+ readonly nodeInfo: AnalyzerNodeInfo.AnalyzerNodeInfoAccessor;
21
+ }
22
+ export declare function createFlowAnalysis(context: Context): {
23
+ checkCodeFlowTooComplex: (node: ParseNode) => boolean;
24
+ isNodeReachable: (node: ParseNode, sourceNode?: ParseNode) => boolean;
25
+ isAfterNodeReachable: (node: ParseNode) => boolean;
26
+ getNodeReachability: (node: ParseNode, sourceNode?: ParseNode) => Reachability;
27
+ getAfterNodeReachability: (node: ParseNode) => Reachability;
28
+ isFlowPathBetweenNodes: (sourceNode: ParseNode, sinkNode: ParseNode, allowSelf?: boolean) => boolean;
29
+ getFlowTypeOfReference: (reference: CodeFlowReferenceExpressionNode, startNode?: ClassNode | FunctionNode | LambdaNode, options?: FlowNodeTypeOptions) => FlowNodeTypeResult;
30
+ narrowConstrainedTypeVar: (node: ParseNode, typeVar: TypeVarType) => Type | undefined;
31
+ printControlFlowGraph: (flowNode: FlowNode, reference: CodeFlowReferenceExpressionNode | undefined, callName: string, logger: ConsoleInterface) => void;
32
+ };
33
+ export {};
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ /*
3
+ * flowAnalysis.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * flowAnalysis implementation, using evaluator-owned dependencies and state.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.createFlowAnalysis = createFlowAnalysis;
44
+ const diagnosticRules_1 = require("../../common/diagnosticRules");
45
+ const localize_1 = require("../../localization/localize");
46
+ const codeFlowEngine_1 = require("../codeFlowEngine");
47
+ const codeFlowTypes_1 = require("../codeFlowTypes");
48
+ const ParseTreeUtils = __importStar(require("../parseTreeUtils"));
49
+ const typeEvaluatorTypes_1 = require("../typeEvaluatorTypes");
50
+ const types_1 = require("../types");
51
+ // Answers reachability and exception-flow questions using the evaluator-owned code-flow engine.
52
+ function createFlowAnalysis(context) {
53
+ const { addDiagnosticForTextRange, codeFlowEngine, getCodeFlowAnalyzerForReturnTypeInferenceContext, isNodeInReturnTypeInferenceContext, maxCodeComplexity, nodeInfo, } = context;
54
+ function checkCodeFlowTooComplex(node) {
55
+ const scopeNode = node.nodeType === 31 /* ParseNodeType.Function */ ? node : ParseTreeUtils.getExecutionScopeNode(node, nodeInfo);
56
+ const codeComplexity = nodeInfo.getCodeFlowComplexity(scopeNode);
57
+ if (codeComplexity > maxCodeComplexity) {
58
+ let errorRange = scopeNode;
59
+ if (scopeNode.nodeType === 31 /* ParseNodeType.Function */) {
60
+ errorRange = scopeNode.d.name;
61
+ }
62
+ else if (scopeNode.nodeType === 36 /* ParseNodeType.Module */) {
63
+ errorRange = { start: 0, length: 0 };
64
+ }
65
+ const fileInfo = nodeInfo.getFileInfo(node);
66
+ addDiagnosticForTextRange(fileInfo, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.codeTooComplexToAnalyze(), errorRange);
67
+ return true;
68
+ }
69
+ return false;
70
+ }
71
+ function isNodeReachable(node, sourceNode) {
72
+ return getNodeReachability(node, sourceNode) === typeEvaluatorTypes_1.Reachability.Reachable;
73
+ }
74
+ function isAfterNodeReachable(node) {
75
+ return getAfterNodeReachability(node) === typeEvaluatorTypes_1.Reachability.Reachable;
76
+ }
77
+ function getNodeReachability(node, sourceNode) {
78
+ if (checkCodeFlowTooComplex(node)) {
79
+ return typeEvaluatorTypes_1.Reachability.Reachable;
80
+ }
81
+ const flowNode = nodeInfo.getFlowNode(node);
82
+ if (!flowNode) {
83
+ if (node.parent) {
84
+ return getNodeReachability(node.parent, sourceNode);
85
+ }
86
+ return typeEvaluatorTypes_1.Reachability.UnreachableStructural;
87
+ }
88
+ const sourceFlowNode = sourceNode ? nodeInfo.getFlowNode(sourceNode) : undefined;
89
+ return codeFlowEngine.getFlowNodeReachability(flowNode, sourceFlowNode);
90
+ }
91
+ function getAfterNodeReachability(node) {
92
+ const returnFlowNode = nodeInfo.getAfterFlowNode(node);
93
+ if (!returnFlowNode) {
94
+ return typeEvaluatorTypes_1.Reachability.UnreachableStructural;
95
+ }
96
+ if (checkCodeFlowTooComplex(node)) {
97
+ return typeEvaluatorTypes_1.Reachability.Reachable;
98
+ }
99
+ const reachability = codeFlowEngine.getFlowNodeReachability(returnFlowNode);
100
+ if (reachability !== typeEvaluatorTypes_1.Reachability.Reachable) {
101
+ return reachability;
102
+ }
103
+ const executionScopeNode = ParseTreeUtils.getExecutionScopeNode(node, nodeInfo);
104
+ if (!isFlowNodeReachableUsingNeverNarrowing(executionScopeNode, returnFlowNode)) {
105
+ return typeEvaluatorTypes_1.Reachability.UnreachableByAnalysis;
106
+ }
107
+ return typeEvaluatorTypes_1.Reachability.Reachable;
108
+ }
109
+ function isFlowNodeReachableUsingNeverNarrowing(node, flowNode) {
110
+ const analyzer = getCodeFlowAnalyzerForNode(node, /* typeAtStart */ undefined);
111
+ if (checkCodeFlowTooComplex(node)) {
112
+ return true;
113
+ }
114
+ const codeFlowResult = analyzer.getTypeFromCodeFlow(flowNode, /* reference */ undefined, {
115
+ typeAtStart: { type: types_1.UnboundType.create() },
116
+ });
117
+ return codeFlowResult.type !== undefined && !(0, types_1.isNever)(codeFlowResult.type);
118
+ }
119
+ function isFlowPathBetweenNodes(sourceNode, sinkNode, allowSelf = true) {
120
+ if (checkCodeFlowTooComplex(sourceNode)) {
121
+ return true;
122
+ }
123
+ const sourceFlowNode = nodeInfo.getFlowNode(sourceNode);
124
+ const sinkFlowNode = nodeInfo.getFlowNode(sinkNode);
125
+ if (!sourceFlowNode || !sinkFlowNode) {
126
+ return false;
127
+ }
128
+ if (sourceFlowNode === sinkFlowNode) {
129
+ return allowSelf;
130
+ }
131
+ return (codeFlowEngine.getFlowNodeReachability(sinkFlowNode, sourceFlowNode, /* ignoreNoReturn */ true) ===
132
+ typeEvaluatorTypes_1.Reachability.Reachable);
133
+ }
134
+ function getCodeFlowAnalyzerForNode(node, typeAtStart) {
135
+ let entries = context.codeFlowAnalyzerCache.get(node.id);
136
+ if (entries) {
137
+ const cachedEntry = entries.find((entry) => {
138
+ if (!typeAtStart || !entry.typeAtStart) {
139
+ return !typeAtStart && !entry.typeAtStart;
140
+ }
141
+ if (!typeAtStart.isIncomplete !== !entry.typeAtStart.isIncomplete) {
142
+ return false;
143
+ }
144
+ return (0, types_1.isTypeSame)(typeAtStart.type, entry.typeAtStart.type);
145
+ });
146
+ if (cachedEntry) {
147
+ return cachedEntry.codeFlowAnalyzer;
148
+ }
149
+ }
150
+ // Allocate a new code flow analyzer.
151
+ const analyzer = codeFlowEngine.createCodeFlowAnalyzer();
152
+ if (entries) {
153
+ entries.push({ typeAtStart, codeFlowAnalyzer: analyzer });
154
+ }
155
+ else {
156
+ entries = [{ typeAtStart, codeFlowAnalyzer: analyzer }];
157
+ context.codeFlowAnalyzerCache.set(node.id, entries);
158
+ }
159
+ return analyzer;
160
+ }
161
+ function getFlowTypeOfReference(reference, startNode, options) {
162
+ // See if this execution scope requires code flow for this reference expression.
163
+ const referenceKey = (0, codeFlowTypes_1.createKeyForReference)(reference);
164
+ const executionNode = ParseTreeUtils.getExecutionScopeNode(startNode?.parent ?? reference, nodeInfo);
165
+ const codeFlowExpressions = nodeInfo.getCodeFlowExpressions(executionNode);
166
+ if (!codeFlowExpressions ||
167
+ (!codeFlowExpressions.has(referenceKey) && !codeFlowExpressions.has(codeFlowTypes_1.wildcardImportReferenceKey))) {
168
+ return codeFlowEngine_1.FlowNodeTypeResult.create(/* type */ undefined, /* isIncomplete */ false);
169
+ }
170
+ if (checkCodeFlowTooComplex(reference)) {
171
+ return codeFlowEngine_1.FlowNodeTypeResult.create(
172
+ /* type */ options?.typeAtStart && (0, types_1.isUnbound)(options.typeAtStart.type)
173
+ ? types_1.UnknownType.create()
174
+ : undefined,
175
+ /* isIncomplete */ true);
176
+ }
177
+ // Is there an code flow analyzer cached for this execution scope?
178
+ let analyzer;
179
+ if (isNodeInReturnTypeInferenceContext(executionNode)) {
180
+ // If we're performing the analysis within a temporary
181
+ // context of a function for purposes of inferring its
182
+ // return type for a specified set of arguments, use
183
+ // a temporary analyzer that we'll use only for this context.
184
+ analyzer = getCodeFlowAnalyzerForReturnTypeInferenceContext();
185
+ }
186
+ else {
187
+ analyzer = getCodeFlowAnalyzerForNode(executionNode, options?.typeAtStart);
188
+ }
189
+ const flowNode = nodeInfo.getFlowNode(startNode ?? reference);
190
+ if (flowNode === undefined) {
191
+ return codeFlowEngine_1.FlowNodeTypeResult.create(/* type */ undefined, /* isIncomplete */ false);
192
+ }
193
+ return analyzer.getTypeFromCodeFlow(flowNode, reference, options);
194
+ }
195
+ function narrowConstrainedTypeVar(node, typeVar) {
196
+ const flowNode = nodeInfo.getFlowNode(node);
197
+ if (!flowNode) {
198
+ return undefined;
199
+ }
200
+ return codeFlowEngine.narrowConstrainedTypeVar(flowNode, typeVar);
201
+ }
202
+ function printControlFlowGraph(flowNode, reference, callName, logger) {
203
+ return codeFlowEngine.printControlFlowGraph(flowNode, reference, callName, logger);
204
+ }
205
+ return {
206
+ checkCodeFlowTooComplex,
207
+ isNodeReachable,
208
+ isAfterNodeReachable,
209
+ getNodeReachability,
210
+ getAfterNodeReachability,
211
+ isFlowPathBetweenNodes,
212
+ getFlowTypeOfReference,
213
+ narrowConstrainedTypeVar,
214
+ printControlFlowGraph,
215
+ };
216
+ }
217
+ //# sourceMappingURL=flowAnalysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowAnalysis.js","sourceRoot":"","sources":["../../../../../../src/analyzer/typeEvaluator/flowAnalysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ import { AssignmentNode, ClassNode, ExpressionNode, FunctionNode, LambdaNode, MemberAccessNode, ParseNode, TypeParameterScopeNode } from '../../parser/parseNodes';
2
+ import * as AnalyzerNodeInfo from '../analyzerNodeInfo';
3
+ import { CodeFlowAnalyzer } from '../codeFlowEngine';
4
+ import { ConstraintTracker } from '../constraintTracker';
5
+ import { Declaration } from '../declaration';
6
+ import { ContextualTypeCacheEntry } from '../typeCacheUtils';
7
+ import { Arg, ArgResult, CallSiteEvaluationInfo, EvalFlags, EvaluationOperationController, MemberAccessDeprecationInfo, TypeResult, ValidateArgTypeParams } from '../typeEvaluatorTypes';
8
+ import * as TypePrinter from '../typePrinter';
9
+ import { ClassType, FunctionParam, FunctionType, ParamSpecType, Type, TypeCondition, TypeVarType, Variance } from '../types';
10
+ import { UniqueSignatureTracker } from '../typeUtils';
11
+ export interface GetTypeArgsOptions {
12
+ isAnnotatedClass?: boolean;
13
+ hasCustomClassGetItem?: boolean;
14
+ isFinalAnnotation?: boolean;
15
+ isClassVarAnnotation?: boolean;
16
+ supportsTypedDictTypeArg?: boolean;
17
+ }
18
+ export interface MatchArgsToParamsResult {
19
+ overload: FunctionType;
20
+ overloadIndex: number;
21
+ argumentErrors: boolean;
22
+ isTypeIncomplete: boolean;
23
+ argParams: ValidateArgTypeParams[];
24
+ activeParam?: FunctionParam | undefined;
25
+ paramSpecTarget?: ParamSpecType | undefined;
26
+ paramSpecArgList?: Arg[] | undefined;
27
+ unpackedArgOfUnknownLength?: boolean;
28
+ unpackedArgMapsToVariadic?: boolean;
29
+ argumentMatchScore: number;
30
+ }
31
+ export interface MemberAccessTypeResult {
32
+ type: Type;
33
+ isDescriptorApplied?: boolean;
34
+ isAsymmetricAccessor?: boolean;
35
+ memberAccessDeprecationInfo?: MemberAccessDeprecationInfo;
36
+ typeErrors?: boolean;
37
+ }
38
+ export interface ScopedTypeVarResult {
39
+ type: TypeVarType;
40
+ scopeNode: TypeParameterScopeNode | AssignmentNode | undefined;
41
+ foundInterveningClass: boolean;
42
+ }
43
+ export interface AliasMapEntry {
44
+ alias: string;
45
+ module: 'builtins' | 'collections' | 'internals';
46
+ implicitBaseClass?: string;
47
+ isSpecialForm?: boolean;
48
+ isIllegalInIsinstance?: boolean;
49
+ typeParamVariance?: Variance;
50
+ }
51
+ export interface AssignClassToSelfInfo {
52
+ class: ClassType;
53
+ assumedVariance: Variance;
54
+ }
55
+ export interface MatchedOverloadInfo {
56
+ overload: FunctionType;
57
+ matchResults: MatchArgsToParamsResult;
58
+ constraints: ConstraintTracker;
59
+ argResults: ArgResult[];
60
+ returnType: Type;
61
+ }
62
+ export interface ValidateArgTypeOptions {
63
+ skipUnknownArgCheck?: boolean;
64
+ isArgFirstPass?: boolean;
65
+ conditionFilter?: TypeCondition[];
66
+ skipReportError?: boolean;
67
+ }
68
+ export interface EffectiveReturnTypeOptions {
69
+ callSiteInfo?: CallSiteEvaluationInfo;
70
+ }
71
+ export interface SignatureTrackerStackEntry {
72
+ tracker: UniqueSignatureTracker;
73
+ rootNode: ParseNode;
74
+ }
75
+ export interface SymbolResolutionStackEntry {
76
+ symbolId: number;
77
+ declaration: Declaration;
78
+ isResultValid: boolean;
79
+ partialType?: Type | undefined;
80
+ }
81
+ export interface ReturnTypeInferenceContext {
82
+ functionNode: FunctionNode;
83
+ codeFlowAnalyzer: CodeFlowAnalyzer;
84
+ }
85
+ export interface ParamSpecArgResult {
86
+ argumentErrors: boolean;
87
+ constraintTrackers: (ConstraintTracker | undefined)[];
88
+ }
89
+ export interface EvaluatorOptions {
90
+ printTypeFlags: TypePrinter.PrintTypeFlags;
91
+ logCalls: boolean;
92
+ minimumLoggingThreshold: number;
93
+ evaluateUnknownImportsAsAny: boolean;
94
+ verifyTypeCacheEvaluatorFlags: boolean;
95
+ nodeInfoReader: AnalyzerNodeInfo.AnalyzerNodeInfoReader;
96
+ maxCodeComplexity: number;
97
+ experimentalOverloadResult?: import('../overloadResultController').ExperimentalOverloadResultController;
98
+ testOnlyMemberAccess?: {
99
+ nodes: ReadonlySet<MemberAccessNode>;
100
+ install: (getMember: (node: MemberAccessNode, baseTypeResult: TypeResult) => TypeResult) => void;
101
+ };
102
+ testOnlyExpression?: EvaluationOperationController & {
103
+ query?: (node: ExpressionNode) => TypeResult | undefined;
104
+ };
105
+ }
106
+ export interface DeferredClassCompletion {
107
+ dependsUpon: ClassType;
108
+ classesToComplete: ClassNode[];
109
+ }
110
+ export interface TypeCacheEntry {
111
+ typeResult: TypeResult;
112
+ incompleteGenCount: number;
113
+ flags: EvalFlags | undefined;
114
+ }
115
+ export interface ContextualLambdaTypeCache {
116
+ lambdaNodes: LambdaNode[];
117
+ entries: Map<ParseNode, Map<number, TypeCacheEntry>>;
118
+ branchIndex: number;
119
+ }
120
+ export interface TypeFormTypeCacheEntry extends TypeCacheEntry, ContextualTypeCacheEntry {
121
+ }
122
+ export interface CodeFlowAnalyzerCacheEntry {
123
+ typeAtStart: TypeResult | undefined;
124
+ codeFlowAnalyzer: CodeFlowAnalyzer;
125
+ }
126
+ export interface FunctionRecursionInfo {
127
+ callerNode: ExpressionNode | undefined;
128
+ }
129
+ export type LogWrapper = <T extends (...args: any[]) => any>(func: T) => (...args: Parameters<T>) => ReturnType<T>;
130
+ export interface SuppressedNodeStackEntry {
131
+ node: ParseNode;
132
+ suppressedDiags: string[] | undefined;
133
+ }
134
+ export interface ExpectedTypeCacheEntry {
135
+ type: Type;
136
+ candidates: Type[];
137
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /*
3
+ * internals.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * Shared private contracts for evaluator implementation modules.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=internals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internals.js","sourceRoot":"","sources":["../../../../../../src/analyzer/typeEvaluator/internals.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,3 @@
1
+ import { Type } from '../types';
2
+ export declare function stripLiteralValue(type: Type, strClass: Type | undefined): Type;
3
+ export declare function stripTypeGuard(type: Type, boolClass: Type | undefined): Type;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /*
3
+ * literalTypes.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * Helpers for removing literal and type guard information from types.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.stripLiteralValue = stripLiteralValue;
11
+ exports.stripTypeGuard = stripTypeGuard;
12
+ const types_1 = require("../types");
13
+ const typeUtils_1 = require("../typeUtils");
14
+ function stripLiteralValue(type, strClass) {
15
+ // Handle the not-uncommon case where the type is a union that consists
16
+ // only of literal values.
17
+ if ((0, types_1.isUnion)(type) && type.priv.subtypes.length > 0) {
18
+ if (type.priv.literalInstances.literalStrMap?.size === type.priv.subtypes.length ||
19
+ type.priv.literalInstances.literalIntMap?.size === type.priv.subtypes.length ||
20
+ type.priv.literalInstances.literalEnumMap?.size === type.priv.subtypes.length) {
21
+ return stripLiteralValue(type.priv.subtypes[0], strClass);
22
+ }
23
+ }
24
+ return (0, typeUtils_1.mapSubtypes)(type, (subtype) => {
25
+ if ((0, types_1.isClass)(subtype)) {
26
+ // A sentinel literal represents a stable singleton, so stripping
27
+ // it cannot produce a wider instance type.
28
+ if (subtype.priv.literalValue !== undefined && !(0, typeUtils_1.isSentinelLiteral)(subtype)) {
29
+ subtype = types_1.ClassType.cloneWithLiteral(subtype, /* value */ undefined);
30
+ }
31
+ if (types_1.ClassType.isBuiltIn(subtype, 'LiteralString')) {
32
+ // Handle "LiteralString" specially.
33
+ if (strClass && (0, types_1.isInstantiableClass)(strClass)) {
34
+ let strInstance = types_1.ClassType.cloneAsInstance(strClass);
35
+ strInstance = types_1.TypeBase.cloneForCondition(strInstance, (0, typeUtils_1.getTypeCondition)(subtype));
36
+ return strInstance;
37
+ }
38
+ }
39
+ }
40
+ return subtype;
41
+ });
42
+ }
43
+ // If a type contains a TypeGuard or TypeIs, convert it to a bool.
44
+ function stripTypeGuard(type, boolClass) {
45
+ return (0, typeUtils_1.mapSubtypes)(type, (subtype) => {
46
+ if ((0, types_1.isClassInstance)(subtype) && types_1.ClassType.isBuiltIn(subtype, ['TypeGuard', 'TypeIs'])) {
47
+ return boolClass ? (0, typeUtils_1.convertToInstance)(boolClass) : types_1.UnknownType.create();
48
+ }
49
+ return subtype;
50
+ });
51
+ }
52
+ //# sourceMappingURL=literalTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"literalTypes.js","sourceRoot":"","sources":["../../../../../../src/analyzer/typeEvaluator/literalTypes.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAcH,8CAiCC;AAGD,wCAQC;AAxDD,oCASkB;AAClB,4CAAmG;AAEnG,SAAgB,iBAAiB,CAAC,IAAU,EAAE,QAA0B;IACpE,uEAAuE;IACvE,0BAA0B;IAC1B,IAAI,IAAA,eAAO,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,IACI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC5E,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC5E,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAC/E,CAAC;YACC,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAED,OAAO,IAAA,uBAAW,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,EAAE,CAAC;YACnB,iEAAiE;YACjE,2CAA2C;YAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;gBACzE,OAAO,GAAG,iBAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;gBAChD,oCAAoC;gBACpC,IAAI,QAAQ,IAAI,IAAA,2BAAmB,EAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5C,IAAI,WAAW,GAAG,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBACtD,WAAW,GAAG,gBAAQ,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAA,4BAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;oBACjF,OAAO,WAAW,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,kEAAkE;AAClE,SAAgB,cAAc,CAAC,IAAU,EAAE,SAA2B;IAClE,OAAO,IAAA,uBAAW,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,iBAAS,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YACpF,OAAO,SAAS,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC;QAC3E,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC"}