behavior-contracts 0.4.0 → 0.6.0

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 (111) hide show
  1. package/README.md +78 -29
  2. package/dist/behavior.d.ts +7 -0
  3. package/dist/behavior.d.ts.map +1 -1
  4. package/dist/behavior.js.map +1 -1
  5. package/dist/builder.d.ts.map +1 -1
  6. package/dist/builder.js +10 -3
  7. package/dist/builder.js.map +1 -1
  8. package/dist/generator/async-plan.d.ts +78 -0
  9. package/dist/generator/async-plan.d.ts.map +1 -0
  10. package/dist/generator/async-plan.js +116 -0
  11. package/dist/generator/async-plan.js.map +1 -0
  12. package/dist/generator/core.d.ts +35 -0
  13. package/dist/generator/core.d.ts.map +1 -1
  14. package/dist/generator/core.js +1 -0
  15. package/dist/generator/core.js.map +1 -1
  16. package/dist/generator/{emit-straightline-typed-go.d.ts → emit-shared-go-typed.d.ts} +28 -17
  17. package/dist/generator/emit-shared-go-typed.d.ts.map +1 -0
  18. package/dist/generator/emit-shared-go-typed.js +572 -0
  19. package/dist/generator/emit-shared-go-typed.js.map +1 -0
  20. package/dist/generator/emit-shared-go.d.ts +29 -0
  21. package/dist/generator/emit-shared-go.d.ts.map +1 -0
  22. package/dist/generator/{emit-straightline-go.js → emit-shared-go.js} +17 -31
  23. package/dist/generator/emit-shared-go.js.map +1 -0
  24. package/dist/generator/{emit-straightline-typed-rust.d.ts → emit-shared-rust-typed.d.ts} +27 -17
  25. package/dist/generator/emit-shared-rust-typed.d.ts.map +1 -0
  26. package/dist/generator/emit-shared-rust-typed.js +576 -0
  27. package/dist/generator/emit-shared-rust-typed.js.map +1 -0
  28. package/dist/generator/{emit-straightline-rust.d.ts → emit-shared-rust.d.ts} +1 -36
  29. package/dist/generator/emit-shared-rust.d.ts.map +1 -0
  30. package/dist/generator/{emit-straightline-rust.js → emit-shared-rust.js} +7 -28
  31. package/dist/generator/emit-shared-rust.js.map +1 -0
  32. package/dist/generator/emit-shared-typescript.d.ts +12 -0
  33. package/dist/generator/emit-shared-typescript.d.ts.map +1 -0
  34. package/dist/generator/{emit-straightline-typescript.js → emit-shared-typescript.js} +9 -30
  35. package/dist/generator/emit-shared-typescript.js.map +1 -0
  36. package/dist/generator/emit-straightline-typed-typescript.d.ts +1 -1
  37. package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -1
  38. package/dist/generator/emit-straightline-typed-typescript.js +1 -1
  39. package/dist/generator/emit-straightline-typed-typescript.js.map +1 -1
  40. package/dist/generator/emit-typed-native-go.d.ts +63 -0
  41. package/dist/generator/emit-typed-native-go.d.ts.map +1 -0
  42. package/dist/generator/emit-typed-native-go.js +2260 -0
  43. package/dist/generator/emit-typed-native-go.js.map +1 -0
  44. package/dist/generator/emit-typed-native-rust.d.ts +53 -0
  45. package/dist/generator/emit-typed-native-rust.d.ts.map +1 -0
  46. package/dist/generator/emit-typed-native-rust.js +2123 -0
  47. package/dist/generator/emit-typed-native-rust.js.map +1 -0
  48. package/dist/generator/index.d.ts +4 -12
  49. package/dist/generator/index.d.ts.map +1 -1
  50. package/dist/generator/index.js +16 -52
  51. package/dist/generator/index.js.map +1 -1
  52. package/dist/generator/native-expr.d.ts +120 -0
  53. package/dist/generator/native-expr.d.ts.map +1 -0
  54. package/dist/generator/native-expr.js +456 -0
  55. package/dist/generator/native-expr.js.map +1 -0
  56. package/dist/generator/straightline.d.ts +46 -0
  57. package/dist/generator/straightline.d.ts.map +1 -1
  58. package/dist/generator/straightline.js +65 -0
  59. package/dist/generator/straightline.js.map +1 -1
  60. package/dist/generator/typed.d.ts.map +1 -1
  61. package/dist/generator/typed.js +8 -0
  62. package/dist/generator/typed.js.map +1 -1
  63. package/dist/guard.js +14 -0
  64. package/dist/guard.js.map +1 -1
  65. package/dist/index.d.ts +2 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +1 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/plan.d.ts +6 -2
  70. package/dist/plan.d.ts.map +1 -1
  71. package/dist/plan.js +4 -0
  72. package/dist/plan.js.map +1 -1
  73. package/package.json +1 -1
  74. package/dist/generator/emit-go.d.ts +0 -19
  75. package/dist/generator/emit-go.d.ts.map +0 -1
  76. package/dist/generator/emit-go.js +0 -79
  77. package/dist/generator/emit-go.js.map +0 -1
  78. package/dist/generator/emit-raw-abi-go.d.ts +0 -45
  79. package/dist/generator/emit-raw-abi-go.d.ts.map +0 -1
  80. package/dist/generator/emit-raw-abi-go.js +0 -345
  81. package/dist/generator/emit-raw-abi-go.js.map +0 -1
  82. package/dist/generator/emit-raw-abi-rust.d.ts +0 -45
  83. package/dist/generator/emit-raw-abi-rust.d.ts.map +0 -1
  84. package/dist/generator/emit-raw-abi-rust.js +0 -380
  85. package/dist/generator/emit-raw-abi-rust.js.map +0 -1
  86. package/dist/generator/emit-rust.d.ts +0 -25
  87. package/dist/generator/emit-rust.d.ts.map +0 -1
  88. package/dist/generator/emit-rust.js +0 -125
  89. package/dist/generator/emit-rust.js.map +0 -1
  90. package/dist/generator/emit-straightline-go.d.ts +0 -58
  91. package/dist/generator/emit-straightline-go.d.ts.map +0 -1
  92. package/dist/generator/emit-straightline-go.js.map +0 -1
  93. package/dist/generator/emit-straightline-php.d.ts +0 -46
  94. package/dist/generator/emit-straightline-php.d.ts.map +0 -1
  95. package/dist/generator/emit-straightline-php.js +0 -941
  96. package/dist/generator/emit-straightline-php.js.map +0 -1
  97. package/dist/generator/emit-straightline-python.d.ts +0 -36
  98. package/dist/generator/emit-straightline-python.d.ts.map +0 -1
  99. package/dist/generator/emit-straightline-python.js +0 -855
  100. package/dist/generator/emit-straightline-python.js.map +0 -1
  101. package/dist/generator/emit-straightline-rust.d.ts.map +0 -1
  102. package/dist/generator/emit-straightline-rust.js.map +0 -1
  103. package/dist/generator/emit-straightline-typed-go.d.ts.map +0 -1
  104. package/dist/generator/emit-straightline-typed-go.js +0 -1111
  105. package/dist/generator/emit-straightline-typed-go.js.map +0 -1
  106. package/dist/generator/emit-straightline-typed-rust.d.ts.map +0 -1
  107. package/dist/generator/emit-straightline-typed-rust.js +0 -1153
  108. package/dist/generator/emit-straightline-typed-rust.js.map +0 -1
  109. package/dist/generator/emit-straightline-typescript.d.ts +0 -47
  110. package/dist/generator/emit-straightline-typescript.d.ts.map +0 -1
  111. package/dist/generator/emit-straightline-typescript.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-typed-native-rust.js","sourceRoot":"","sources":["../../src/generator/emit-typed-native-rust.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAA+B,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AACnH,OAAO,EAAE,kBAAkB,EAAyC,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAgC,MAAM,iBAAiB,CAAC;AAEhF,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,yBAAyB,CAAC;AAC3D,MAAM,EACJ,aAAa,EACb,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,eAAe,GAChB,GAAG,kBAAkB,CAAC;AAMvB;;;;mFAImF;AACnF,SAAS,OAAO,CAAC,IAAY,EAAE,OAAe;IAC5C,OAAO,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,CAAC;AACnE,CAAC;AAED;;wEAEwE;AACxE,SAAS,qBAAqB;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;4CA0BmC,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,OAAO,KAAK,IAAI,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;AACxI,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB,EAAE,MAAc;IACvD,OAAO,UAAU,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,mFAAmF;AACnF,SAAS,gBAAgB,CAAC,QAAgB,EAAE,MAAc;IACxD,OAAO,WAAW,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,+FAA+F;AAC/F,SAAS,iBAAiB,CAAC,QAAgB,EAAE,MAAc;IACzD,OAAO,YAAY,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,oGAAoG;AACpG,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,YAAY,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,6DAA6D;AAC7D,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,QAAQ,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AACvE,CAAC;AAED,uFAAuF;AACvF,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IACnC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,GAAG,GAAI,IAAgC,CAAC,GAAG,CAAC;IAClD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAKD,SAAS,aAAa,CAAC,IAAa,EAAE,UAAsC,EAAE,SAAyB;IACrG,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAClD,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,4FAA4F;YAC5F,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;oBACjG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;wBAAE,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAkB,CAAC;gBACrG,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,EAAE,CAAC;oBACN,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,QAAQ,CAAC;oBACzC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;wBAAE,OAAO,KAAK,CAAC;oBACnC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;wBAAE,OAAO,KAAK,CAAC;oBACrC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;wBAAE,OAAO,MAAM,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED;0FAC0F;AAC1F,SAAS,oBAAoB,CAAC,IAAa;IACzC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,IAAa,EAAE,UAAsC,EAAE,KAAK,GAAG,MAAM,EAAE,SAAyB;IACzH,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,mBAAmB,CAAC;IACpE,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5F,MAAM,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,8CAA8C,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gUAAgU,CAC7Y,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,IAAe,EAAE,IAAuE,EAAE,SAAyB;IAC1I,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,IAAI,6BAA6B,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,8CAA8C,IAAI,GAAG,CAAC;IACjI,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,cAAc,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IACrI,MAAM,MAAM,GAAG,SAAS;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,MAAM,IAAI,sCAAsC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS;;;;aAIvE,IAAI;EACf,MAAM;EACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAAe,EAAE,IAAa,EAAE,UAAgC,EAAE,IAAc;IAC3G,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACnB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,GAAG,IAAI,OAAO,CAAC;IAC7B,oGAAoG;IACpG,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,SAAS,GAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC7G,OAAO,GAAG,UAAU;;KAEjB,KAAK,sCAAsC,IAAI,CAAC,EAAE;YAC3C,IAAI;;;aAGH,KAAK;qBACG,IAAI;EACvB,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,EAAE;AACF,sGAAsG;AACtG,qGAAqG;AACrG,uGAAuG;AACvG,2GAA2G;AAC3G,oFAAoF;AAEpF,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB;mEACmE;AACnE,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAExC;;sGAEsG;AACtG,SAAS,mBAAmB,CAC1B,WAAoE,EACpE,IAAc;IAEd,MAAM,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,eAAe,EAAE,EAAE;QAC1C,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;QACvC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc;QAC7C,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACtC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK;QAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,KAAK;QAC5C,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;QACzF,WAAW;QACX,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,kFAAkF;YAClF,MAAM,QAAQ,GAAG,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,CAAC;YACtG,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,4CAA4C;YAC5C,MAAM,SAAS,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1E,OAAO,WAAW,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACjE,CAAC;QACD,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;QACxC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,iGAAiG;YACjG,kGAAkG;YAClG,6FAA6F;YAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QACzC,CAAC;QACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG;QACvB,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAChH,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,MAAM,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;QACzF,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,aAAa,oBAAoB,CAAC,CAAC,CAAC,KAAK;QACrI,gBAAgB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YAClD,4GAA4G;YAC5G,qGAAqG;YACrG,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;YACxE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;gBACjB,OAAO,CAAC,OAAO,IAAI,eAAe,oBAAoB,CAAC,IAAI,CAAC,IAAI,MAAM,kBAAkB,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,CAAC,OAAO,IAAI,eAAe,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,MAAM,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YAC1D,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;YACxE,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;YACxE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,SAAS,oBAAoB,CAAC,IAAI,CAAC,IAAI,MAAM,SAAS,MAAM,GAAG,CAAC,CAAC;QAC7F,CAAC;KACF,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACvG,CAAC;AAED;iFACiF;AACjF,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACzB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAC,4CAA4C;QACrG,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,uDAAuD;AACvD,SAAS,gBAAgB,CAAC,CAAS;IACjC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IACzC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGA4EwF,CAAC;AAClG,CAAC;AAED,sGAAsG;AACtG,EAAE;AACF,2GAA2G;AAC3G,wGAAwG;AACxG,sGAAsG;AACtG,qGAAqG;AACrG,uGAAuG;AACvG,mDAAmD;AAEnD;6GAC6G;AAC7G,SAAS,iBAAiB,CAAC,IAAe,EAAE,UAAgC,EAAE,IAAc;IAC1F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,MAAM,IAAI,CAAC;YAAE,SAAS,CAAC,iEAAiE;QAC5F,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;QAClC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,GAAqC,CAAC;YACrD,MAAM,UAAU,GAAG,aAAa,CAAC,CAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;YACnF,KAAK,CAAC,IAAI,CACR,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,oCAAoC;gBAC1G,kCAAkC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,wEAAwE,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CACvL,CAAC;YACF,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;2GAC2G;AAC3G,SAAS,gBAAgB,CAAC,IAAY,EAAE,GAAY,EAAE,IAAc;IAClE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,qFAAqF,CAAC,CAAC;IAC5G,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,gBAAgB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;4GAE4G;AAC5G,SAAS,WAAW,CAAC,MAAc,EAAE,OAAe,EAAE,GAAY,EAAE,IAAc;IAChF,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjH,OAAO,GAAG,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,KAAK,KAAK,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,MAAM,MAAM,OAAO,OAAO,CAAC;AACvC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,IAA6C,EAAE,UAAgC,EAAE,IAAc;IACpH,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IACvF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IACrD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;IACxG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,qGAAqG;IACrG,4FAA4F;IAC5F,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,UAAU,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IACzE,OAAO,UAAU,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,IAAe,EAAE,UAAgC,EAAE,IAAc,EAAE,EAAa;IACxG,uGAAuG;IACvG,sGAAsG;IACtG,sGAAsG;IACtG,uGAAuG;IACvG,mGAAmG;IACnG,mGAAmG;IACnG,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC5G,KAAK,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;IAC5G,KAAK,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;IAC9G,KAAK,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;IAC7G,KAAK,CAAC,IAAI,CAAC,aAAa,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,MAAM,IAAI,CAAC;YAAE,SAAS,CAAC,6DAA6D;QACxF,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,aAAa,CAAC,CAA4C,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACzF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,GAAI,CAAa,CAAC,GAAG,CAAC;YAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACvG,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9F,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,MAAM,mBAAmB,MAAM,YAAY,EAAE,eAAe,IAAI,IAAI,CAAC,CAAC;YAChG,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CACR,OAAO,IAAI,IAAI,MAAM,mBAAmB,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAC3I,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4FAA4F;AAC5F,SAAS,uBAAuB,CAAC,MAAc;IAC7C,OAAO,wBAAwB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AACrD,CAAC;AAED;uGACuG;AACvG,SAAS,aAAa,CAAC,IAAa,EAAE,MAAsC,EAAE,IAAc;IAC1F,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACnB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,sCAAsC,IAAI,CAAC,EAAE,qFAAqF,CACnI,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,gDAAgD,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,iBAAiB,CACrG,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,IAAe,EAAE,UAAgC,EAAE,IAAc;IACjG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAAE,SAAS;QAC5B,MAAM,CAAC,GAAI,CAAa,CAAC,GAAG,CAAC;QAC7B,0FAA0F;QAC1F,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;QACrC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1D,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,sCAAsC,CAAC,CAAC,EAAE,qFAAqF,CAChI,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,IAAK,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,CAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACzE,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,aAAa,CAAC,CAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,sGAAsG;QACtG,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YAC9H,KAAK,CAAC,IAAI,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;QAC5G,CAAC;QACD,oGAAoG;QACpG,MAAM,SAAS,GACb,UAAU,CAAC,IAAI,KAAK,OAAO;YACzB,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACtJ,CAAC,CAAC,UAAU,CAAC;QACjB,KAAK,CAAC,IAAI,CACR;KACD,EAAE,WAAW,UAAU,WAAW,SAAS,QAAQ,OAAO,CAAC,IAAI;MAC9D,OAAO,CAAC,IAAI;EAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;UACR,aAAa,CAAC,OAAO,CAAC,KAAK,SAAS;;EAE5C,CACG,CAAC;QACF,KAAK,SAAS,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,IAAe,EACf,IAAa,EACb,UAAgC,EAChC,IAAc;IAEd,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACnB,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrG,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,SAAS,UAAU,EAAE,CAAC;QACjG,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAI,MAAkD,EAAE,QAAQ,CAAC;QACzE,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACzH,CAAC;IACD,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,kCAAkC,IAAI,CAAC,EAAE,gLAAgL,CAC1N,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,SAAS,eAAe,CAAC,IAAe,EAAE,IAAa,EAAE,UAAgC,EAAE,IAAc;IACvG,OAAO,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,uFAAuF;AAEvF,SAAS,YAAY,CAAC,CAAa;IACjC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,KAAK;YACR,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC,IAAI,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,0BAA0B;AACnE,SAAS,kBAAkB,CAAC,IAAa;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,IAAI,GAAG,CAAC,cAAc,IAAI,IAAI,GAAG,cAAc;YAAE,OAAO,IAAI,CAAC,CAAC,mCAAmC;QACrG,OAAO,cAAc,IAAI,MAAM,CAAC;IAClC,CAAC;IACD,0EAA0E;IAC1E,OAAO,gBAAgB,IAAI,MAAM,CAAC;AACpC,CAAC;AAED;yEACyE;AACzE,SAAS,YAAY,CAAC,IAAa;IACjC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,2CAA2C;IAC/F,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;mGACmG;AACnG,SAAS,uBAAuB,CAAC,IAAe;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,CAAC,IAAa,EAAW,EAAE;QACtC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAI,IAAyC,CAAC,GAAG,CAAC;gBAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;QAC1D,CAAC;QACD,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC5E,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,CAAU,EAAE,OAAoB,EAAE,IAAe;IACvE,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAK,CAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IACnF,MAAM,CAAC,GAAI,CAAsC,CAAC,GAAG,CAAC;IACtD,qGAAqG;IACrG,mGAAmG;IACnG,iGAAiG;IACjG,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC/D,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACjH,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,IAAK,MAAiC,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;IACtG,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAgC,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAED;2GAC2G;AAC3G,SAAS,4BAA4B,CAAC,IAAe;IACnD,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,IAAe;IAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,oFAAoF,CAAC;IAC7G,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC,CAAC,EAAE,yEAAyE,CAAC;QACvH,IAAK,CAAsB,CAAC,SAAS,KAAK,SAAS;YACjD,OAAO,SAAS,CAAC,CAAC,EAAE,8EAA8E,CAAC;IACvG,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,qFAAqF;YACrF,sFAAsF;YACtF,IAAK,CAAc,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC,CAAC,EAAE,4DAA4D,CAAC;YAC5H,SAAS;QACX,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC,CAAC,EAAE,kGAAkG,CAAC;YAC9J,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;YACrB,OAAO,SAAU,CAAoB,CAAC,EAAE,iEAAiE,CAAC;QAC5G,MAAM,EAAE,GAAG,CAAqB,CAAC;QACjC,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM;YACjD,OAAO,SAAS,CAAC,CAAC,EAAE,0BAA0B,EAAE,CAAC,MAAM,kDAAkD,CAAC;QAC5G,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,CAAC,YAAY,KAAK,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,YAAY;YAChG,OAAO,SAAS,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,YAAY,IAAI,OAAO,kEAAkE,CAAC;QACtI,IAAI,EAAE,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,CAAC,YAAY,KAAK,QAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,YAAY;YACnG,OAAO,iBAAiB,EAAE,CAAC,YAAY,+BAA+B,CAAC,CAAC,EAAE,IAAI,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnC,IAAI,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;gBACrC,OAAO,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,gCAAgC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;QAAE,OAAO,kCAAkC,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAAe;IACnC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,IAAK,CAAgC,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;IACrG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAe;IAClC,OAAO,4BAA4B,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAe;IAC1C,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;QAAE,OAAO;IAChD,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO;IAC/B,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,0CAA0C,IAAI,CAAC,IAAI,6RAA6R,CACjV,CAAC;AACJ,CAAC;AAED,gGAAgG;AAEhG,gHAAgH;AAChH,SAAS,iBAAiB,CAAC,MAA8B,EAAE,IAAe;IACxE,QAAQ,MAAM,EAAE,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,oFAAoF;YACpF,MAAM,EAAE,GAAI,MAAsC,CAAC,QAAQ,CAAC;YAC5D,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;YACpG,OAAO,OAAO,CAAC;QACjB,CAAC;QACD;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,SAAS,eAAe,CAAC,MAA8B;IACrD,QAAQ,MAAM,EAAE,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;uGACuG;AACvG,SAAS,YAAY,CAAC,IAAe,EAAE,IAAc;IACnD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,IAAI,8BAA8B,IAAI,CAAC,IAAI,uDAAuD,IAAI,GAAG,CAAC;IACzH,CAAC;IACD,MAAM,MAAM,GAAG,KAAK;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SACnH,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,MAAM,IAAI,8BAA8B,IAAI,CAAC,IAAI;;;aAG7C,IAAI;EACf,MAAM;EACN,CAAC;AACH,CAAC;AAWD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,IAAa,EAAE,IAAmB,EAAE,UAA6B;IACzF,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,KAAK,MAAM;YACT,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YACnD,OAAO,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACnC,8DAA8D;YAC9D,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAClG,yFAAyF;YACzF,sFAAsF;YACtF,2FAA2F;YAC3F,iGAAiG;YACjG,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACvB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAmC;oBACpF,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACpE,IAAI,GAAG,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBAC9B,GAAG,IAAI,IAAI,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;YAC/D,OAAO,WAAW,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3D,CAAC;QACD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,uGAAuG;AACvG,wGAAwG;AACxG,sGAAsG;AACtG,sGAAsG;AACtG,sBAAsB;AAEtB;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CACnB,EAAU,EACV,IAAa,EACb,aAAqB,EACrB,UAA6B;IAE7B,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,wFAAwF;IACxF,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,aAAa,KAAK,mBAAmB,EAAE,CAAC;YAC1C,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,qCAAqC,EAAE,qDAAqD,aAAa,iCAAiC,CAC3I,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,KAAK,UAAU,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1E,CAAC;IACD,mGAAmG;IACnG,mGAAmG;IACnG,uEAAuE;IACvE,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,IAAI,aAAa,KAAK,KAAK;YAAE,OAAO,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC;QAC3D,IAAI,aAAa,KAAK,KAAK;YAAE,OAAO,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC;QAC3D,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,qCAAqC,EAAE,gDAAgD,aAAa,IAAI,CACzG,CAAC;IACJ,CAAC;IACD,2FAA2F;IAC3F,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAA8B,EAAE,UAAU,CAAC,CAAC;IAClF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,GAAG,KAAK,KAAK,MAAM,EAAE,CAAC;IAC/B,CAAC;IACD,sGAAsG;IACtG,oGAAoG;IACpG,uEAAuE;IACvE,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,oDAAoD,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oDAAoD,aAAa,wIAAwI,CAC1R,CAAC;AACJ,CAAC;AAED,qGAAqG;AAErG;;2DAE2D;AAC3D,SAAS,gBAAgB,CACvB,WAAqD,EACrD,KAAa,EACb,UAAgC,EAChC,IAAc,EACd,UAAkD;IAElD,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;QAC7B,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;QACrB,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YACtC,IAAI,GAAY,CAAC;YACjB,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACnF,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBACd,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YAChE,gFAAgF;YAChF,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;YAC3E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAsC;IACxD,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1F,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAe,EAAE,IAAc,EAAE,EAAa;IACzE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACvB,MAAM,cAAc,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC;IAEjC,iGAAiG;IACjG,qGAAqG;IACrG,qGAAqG;IACrG,kGAAkG;IAClG,uGAAuG;IACvG,qGAAqG;IACrG,6DAA6D;IAC7D,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;QAC9B,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,+CAA+C,IAAI,CAAC,IAAI,+QAA+Q,CACxU,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAE,CAAgC,CAAC,OAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,EAAE,GAAG,CAAqB,CAAC;QACjC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;IACjI,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAa,EAAW,EAAE;QAC3D,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,KAAK,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACvD,uGAAuG;IACvG,2GAA2G;IAC3G,wGAAwG;IACxG,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;QACvB,mGAAmG;QACnG,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,KAAa,EAAE,KAAkB,EAAW,EAAE;YACzE,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACrH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1E,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAa,CAAC;gBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;YACD,gGAAgG;YAChG,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;QACF,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChB,MAAM,CAAC,GAAI,EAAc,CAAC,GAAG,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,kGAAkG;gBAClG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC5C,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAChE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAI,EAAe,CAAC,IAAI,CAAC;gBAChC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,MAAM,EAAE,GAAG,EAAsB,CAAC;YAClC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAE5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,4BAA4B,EAAE,kEAAkE,CAAC,CAAC;IAC7G,KAAK,CAAC,IAAI,CAAC,wEAAwE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzH,KAAK,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;IAC/G,KAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;IAC9G,KAAK,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAC;IACrH,KAAK,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;IAC5G,KAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;IACzG,KAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;IACxG,KAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAC3G,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACpH,sGAAsG;IACtG,oGAAoG;IACpG,6DAA6D;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjD,0GAA0G;IAC1G,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,0BAA0B,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,oBAAoB,CAAC,CAAC;IAErD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,CAAC,EAAE,CAAC,aAAa,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,uCAAuC,CAAC,CAAC;QAC3H,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACvG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAY,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzH,SAAS;QACX,CAAC;QACD,qGAAqG;QACrG,IAAI,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YAC1F,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAqB,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAE/K,IAAI,MAAM,GAAG,MAAM,CAAC;QACpB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,eAAe,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpE,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;YAC9B,MAAM,IAAI,MAAM,CAAC;YACjB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,8FAA8F;gBAC9F,gGAAgG;gBAChG,gGAAgG;gBAChG,uEAAuE;gBACvE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC;gBAC/C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC/H,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACzB,+FAA+F;oBAC/F,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC,KAAK,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,MAAM,WAAW,CAAC,CAAC;gBACvG,CAAC;qBAAM,CAAC;oBACN,2FAA2F;oBAC3F,uFAAuF;oBACvF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC;oBAC5G,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC,KAAK,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;gBACpG,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;gBACjD,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;gBAC9B,MAAM,IAAI,MAAM,CAAC;YACnB,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACzF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACtE,mGAAmG;QACnG,sGAAsG;QACtG,+FAA+F;QAC/F,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC,MAAM,UAAU,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC,qBAAqB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC;QACvH,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,4CAA4C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,WAAW,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACxG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,cAAc,CAAC;YACrF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,wFAAwF,KAAK,UAAU,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpK,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACpG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,iGAAiG;IACjG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+C,CAAC;IAC7E,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAE,QAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAE,QAA6B,CAAC,YAAY,CAAC;YACpH,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GACP,SAAS,CAAC,IAAI,GAAG,CAAC;QAChB,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC;QACzF,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAC3B,IAAe,EACf,KAAe,EACf,KAAa,EACb,WAAmB,EACnB,KAA8C,EAC9C,UAAgC,EAChC,IAAc,EACd,WAAqD;IAErD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,2CAA2C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrH,KAAK,CAAC,IAAI,CAAC,+CAA+C,WAAW,+CAA+C,CAAC,CAAC;IACtH,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpB,wGAAwG;IACxG,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAqB,CAAC;QAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,UAAU,CAAC;QACrB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,UAAU,WAAW,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,QAAQ,CAAC,IAAI,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC;YAClE,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3B,GAAG,IAAI,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACzF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,WAAW,UAAU,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,YAAY,UAAU,YAAY,UAAU,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3G,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,oGAAoG;IACpG,kGAAkG;IAClG,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,oCAAoC,IAAI,oCAAoC,CAAC,CAAC;IAChH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,4BAA4B,CAAC,CAAC;IACnE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,OAAO,SAAS,IAAI,MAAM,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,aAAa,OAAO,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;IACpG,KAAK,CAAC,IAAI,CAAC,+BAA+B,OAAO,mBAAmB,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,kCAAkC,OAAO,MAAM,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAqB,CAAC;QAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,2BAA2B,IAAI,OAAO,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,gDAAgD,CAAC,CAAC;QAC/G,KAAK,CAAC,IAAI,CAAC,kDAAkD,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;QACtG,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,+BAA+B,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE1B,wFAAwF;IACxF,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAqB,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,qDAAqD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,mBAAmB,WAAW,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3G,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,cAAc,CAAC;YACrF,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,oGAAoG,KAAK,UAAU,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACvK,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACvG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,yGAAyG;AACzG,qGAAqG;AACrG,2GAA2G;AAE3G;;;;;GAKG;AACH,SAAS,UAAU,CACjB,IAAe,EACf,IAAa,EACb,KAAa,EACb,UAAgC,EAChC,IAAc,EACd,WAAqD;AACrD,qGAAqG;AACrG,qGAAqG;AACrG,OAAO,GAAG,KAAK;IAEf,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;IACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,GAAG,UAAU,OAAO,CAAC;IACnC,uGAAuG;IACvG,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IACpB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAoC,CAAC;IAC9E,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,UAAU,GAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;QAC5D,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;QACrB,IAAI,QAAgB,CAAC;QACrB,IAAI,OAAgB,CAAC;QACrB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,WAAW,CAAC;QACxB,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,QAAQ,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;YACzC,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACtC,MAAM,KAAK,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC5E,CAAC;QACD,IAAI,GAAY,CAAC;QACjB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACd,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAChE,iGAAiG;QACjG,iGAAiG;QACjG,sGAAsG;QACtG,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QACxC,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACzD,CAAC,CAAC;IAEF,6FAA6F;IAC7F,MAAM,UAAU,GAAG,CAAC,EAAU,EAAY,EAAE;QAC1C,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC1E,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,cAAc,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC/G,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,UAAU,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,qGAAqG;IACrG,sGAAsG;IACtG,MAAM,SAAS,GAAG,CAAC,EAAU,EAAY,EAAE;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,CAAC,IAAY,EAAyC,EAAE;YAC1E,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;YAC3E,IAAI,SAAS,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,CAAC;YACxG,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,MAAM,CAAC,GAAG,IAAI,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7F,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjD,iGAAiG;QACjG,8FAA8F;QAC9F,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/Q,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,eAAe,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAC9B,MAAM,IAAI,MAAM,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,iBAAiB,CAAC,SAAS,QAAQ,+BAA+B,CAAC,UAAU,CAAC,CAAC;IAEnG,IAAI,OAAO,EAAE,CAAC;QACZ,sGAAsG;QACtG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,iBAAiB,CAAC,SAAS,UAAU,+BAA+B,CAAC,UAAU,CAAC,CAAC;QACrG,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,CAAC,SAAS,aAAa,CAAC,WAAW,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;QACjI,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,cAAc,CAAC,MAAM,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,eAAe,CAAC,qBAAqB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,QAAQ,IAAI,CAAC,CAAC;QACjH,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,uBAAuB,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,gDAAgD,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,+GAA+G,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5K,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,yJAAyJ,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnN,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,8EAA8E;YAC9E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,yBAAyB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YAC/E,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,kBAAkB,CAAC,gBAAgB,CAAC,sCAAsC,CAAC,CAAC;YAChG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,iBAAiB,CAAC,SAAS,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,gGAAgG;YAChG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAChG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,cAAc,CAAC,qBAAqB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,QAAQ,IAAI,CAAC,CAAC;QAChH,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,uBAAuB,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,gDAAgD,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClG,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,+GAA+G,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3K,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC,SAAS,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5F,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;4GAC4G;AAC5G,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAe,EAAE,IAAc;IACrE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,SAAS,GAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3I,MAAM,KAAK,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAChF,CAAC;IACD,MAAM,EAAE,GAAI,MAAsC,CAAC,QAAQ,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QAC3E,6FAA6F;QAC7F,OAAO,EAAE,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IACrG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAClB,IAAe,EACf,IAAc,EACd,KAAa,EACb,UAAgC,EAChC,IAAc,EACd,WAAqD;IAErD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;IACzC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,CAAC,IAAY,EAAyC,EAAE;QAC1E,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,CAAC;QACxG,OAAO,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAE,CAAC,MAAM,CAAC;IACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAE/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAC3H,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,eAAe,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAC9B,MAAM,IAAI,MAAM,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IAChD,KAAK,MAAM,EAAE,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;8FAC8F;AAC9F,SAAS,YAAY,CAAC,OAAe,EAAE,OAAe,EAAE,GAAY,EAAE,IAAc;IAClF,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjH,OAAO,GAAG,OAAO,MAAM,GAAG,CAAC,IAAI,MAAM,KAAK,KAAK,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,OAAO,MAAM,OAAO,OAAO,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,IAAa,EACb,QAA6B,EAC7B,UAAgC,EAChC,IAAc,EACd,SAAsB,EACtB,aAA+D;IAE/D,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACtC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACnD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7E,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;YAC/E,IAAI,UAAkB,CAAC;YACvB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;gBACpH,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,MAAM,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,aAAa,CAAC;YAC3G,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACnF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,eAAe,QAAQ,CAAC,IAAI,CAAC,YAAY,YAAY,aAAa,UAAU,IAAI;gBACtF,GAAG,EAAE,QAAQ,IAAI,GAAG;aACrB,CAAC;QACJ,CAAC;QACD,MAAM,gBAAgB,GACpB,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC5I,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;QACvG,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7E,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAE,CAAC;YAC5C,MAAM,MAAM,GAAI,IAAyC,CAAC,GAAG,CAAC;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClC,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;gBACvG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,GAAY,EAAE,QAA6B;IAClF,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,QAAQ,IAAI,GAAG,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0GAA0G;AAC1G,sGAAsG;AACtG,gGAAgG;AAEhG,4FAA4F;AAE5F,SAAS,iBAAiB,CAAC,MAAmB;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,OAAO;;;;+CAIsC,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxF,CAAC;AAED,4FAA4F;AAC5F,MAAM,wBAAwB,GAAG;;;EAG/B,CAAC;AAEH,wFAAwF;AAExF,SAAS,IAAI,CAAC,GAAgB;IAC5B,sGAAsG;IACtG,uGAAuG;IACvG,uGAAuG;IACvG,gGAAgG;IAChG,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU;QAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnE,oGAAoG;IACpG,kGAAkG;IAClG,oGAAoG;IACpG,mEAAmE;IACnE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,SAAS;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,IAAI,MAAM,oBAAoB,CAAC,CAAC,CAAC,IAAI,2BAA2B,EAAE,CAAC;aAClG,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,+CAA+C,SAAS,CAAC,MAAM,iDAAiD,OAAO,MAAM;YAC3H,mGAAmG;YACnG,+FAA+F;YAC/F,gGAAgG,CACnG,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,kGAAkG;QAClG,oFAAoF;QACpF,OAAO;EACT,iBAAiB,CAAC,EAAE,CAAC;CACtB,CAAC;IACA,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,oGAAoG;IACpG,sGAAsG;IACtG,qGAAqG;IACrG,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC;SAC9B,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC;SACtC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC;SACpC,OAAO,CAAC,kCAAkC,EAAE,UAAU,CAAC;SACvD,OAAO,CAAC,oCAAoC,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEpC,yFAAyF;IACzF,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC9C,6FAA6F;QAC7F,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAE,CAAgC,CAAC,OAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9G,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;iBAChF,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBACrB,iFAAiF;YACnF,CAAC;;gBAAM,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAqB,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC;QACnF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,wBAAwB,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,EAAE;YAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtG,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEhD,6FAA6F;IAC7F,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;wBAgBO,CAAC;IAEvB,MAAM,QAAQ,GAA2B;QACvC,MAAM;QACN,qNAAqN,qBAAqB,EAAE,EAAE;QAC9O,KAAK,IAAI,SAAS;QAClB,QAAQ,IAAI,SAAS;QACrB,wBAAwB;QACxB,YAAY,CAAC,OAAO;YAClB,CAAC,CAAC,0MAA0M,mBAAmB,EAAE,EAAE;YACnO,CAAC,CAAC,SAAS;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YACtC,CAAC,CAAC,oGAAoG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC/J,CAAC,CAAC,SAAS;QACb,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,CAAC,CAAC,0FAA0F,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACxJ,CAAC,CAAC,SAAS;QACb,mEAAmE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC3F,sGAAsG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAClI,iBAAiB,CAAC,MAAM;YACtB,CAAC,CAAC,6FAA6F,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC/H,CAAC,CAAC,SAAS;QACb,sFAAsF,OAAO,EAAE;QAC/F,aAAa;KACd,CAAC;IACF,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACtE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAW,EAAE,UAAmB,MAAM;IAC3E,MAAM,UAAU,GAAI,EAAkC,CAAC,UAAU,CAAC;IAClE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,EAAuB,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,uGAAuG;IACvG,sGAAsG;IACtG,oGAAoG;IACpG,MAAM,UAAU,GAAG,eAAe,CAAC,EAAuB,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,aAAa,CAAC,CAAC;IAEjF,qGAAqG;IACrG,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1E,oGAAoG;IACpG,iGAAiG;IACjG,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC;QACnC,0FAA0F;QAC1F,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAE,CAAgC,CAAC,OAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9G,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,IAAI,CAAC;gBAAE,SAAS,CAAC,gFAAgF;YAC3G,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,oGAAoG;YACpG,6FAA6F;YAC7F,MAAM,EAAE,GAAG,aAAa,CAAC,CAA4C,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACzF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,GAAI,CAAa,CAAC,GAAG,CAAC;gBAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;gBACnC,MAAM,MAAM,GAAG,GAAqC,CAAC;gBACrD,MAAM,UAAU,GAAG,aAAa,CAAC,CAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC1G,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjG,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBACtC,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CACV,OAAO,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,MAAM,aAAa,EAAE,eAAe,MAAM;4CACjE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;;0BAEzC,MAAM;;;oCAGI,UAAU;eAC/B,MAAM;MACf,CACK,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,OAAO,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,MAAM,aAAa,EAAE,eAAe,KAAK;4CAChE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;;0BAEzC,KAAK;;;eAGhB,UAAU;MACnB,CACK,CAAC;gBACJ,CAAC;gBACD,KAAK,IAAI,CAAC;gBACV,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,CAAqB,CAAC;YACnC,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7F,OAAO,CAAC,IAAI,CACV,OAAO,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,IAAI;4CACxF,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;;0BAE5C,IAAI;;;eAGf,MAAM;MACf,CACC,CAAC;QACJ,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,QAAQ,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,IAAI,GAAG,MAAM;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,oGAAoG;QACpG,gGAAgG;QAChG,+FAA+F;QAC/F,0FAA0F;QAC1F,8FAA8F;QAC9F,oGAAoG;QACpG,oGAAoG;QACpG,MAAM,UAAU,GAAG,gCAAgC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACrF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QACjG,OAAO,WAAW,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,uCAAuC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,sDAAsD,MAAM,yCAAyC,GAAG,cAAc,CAAC;IACxN,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,uGAAuG;IACvG,sGAAsG;IACtG,yDAAyD;IACzD,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4ChB,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,KAAK,YAAY,CAAC;IAElB,OAAO;;;;;;;;;;;;;;;;;;;EAoBL,cAAc;QACZ,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;EAqBN;QACI,CAAC,CAAC,EACN;;EAEA,WAAW;;;EAGX,WAAW;;EAEX,kBAAkB,EAAE;;;EAGpB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;;EAGtB,UAAU;;EAEV,OAAO;;;EAGP,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;EAWvB,IAAI;;;;CAIL,CAAC;AACF,CAAC;AAED;;;8EAG8E;AAC9E,SAAS,aAAa,CAAC,IAAe,EAAE,IAAc;IACpD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,yCAAyC,IAAI,oBAAoB,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,cAAc,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,yGAAyG;IACzG,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAW,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,EAAE,GAAI,MAAsC,CAAC,QAAQ,CAAC;QAC5D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,MAAM,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAC7E,oGAAoG;YACpG,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,wCAAwC,MAAM,kCAAkC,CAAC,CAAC;YAC7F,KAAK,CAAC,IAAI,CAAC,qDAAqD,GAAG,MAAM,CAAC,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,SAAS,CAAC,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,0DAA0D,UAAU,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAC;YACpJ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,eAAe,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACrJ,MAAM,KAAK,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9G,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;YACxD,2FAA2F;YAC3F,iGAAiG;YACjG,KAAK,CAAC,IAAI,CAAC,yBAAyB,GAAG,WAAW,KAAK,MAAM,IAAI,4CAA4C,UAAU,CAAC,gBAAgB,CAAC,cAAc,KAAK,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QAClM,CAAC;IACH,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;sFAEsF;AACtF,SAAS,aAAa,CACpB,QAAgB,EAChB,MAAc,EACd,IAAY,EACZ,GAAY,EACZ,IAAc,EACd,OAAoB,EACpB,GAAa,EACb,MAAc;IAEd,MAAM,EAAE,GAAG,cAAc,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;IAC9G,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,IAAI,IAAI,CAAC,CAAC;IAC/C,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,oCAAoC,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,0BAA0B,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,+BAA+B,aAAa,CAAC,GAAG,CAAC,yBAAyB,GAAG,uCAAuC,CAAC,CAAC;QACjI,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,gCAAgC,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,QAAQ,EAAE,mBAAmB;IAC7B,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,YAAY,EAAE,qCAAqC;IACnD,IAAI;CACL,CAAC"}
@@ -1,22 +1,14 @@
1
1
  export { generateModule, registerEmitter, registeredLanguages, GeneratorFailure, } from "./core.js";
2
2
  export type { GenerateOptions, GeneratedModule, EmitContext, EmitterPlugin, GeneratorFailureCode, } from "./core.js";
3
+ export type { IoModel, AsyncPlan } from "./async-plan.js";
4
+ export { buildAsyncPlans } from "./async-plan.js";
3
5
  export { fingerprintComponentGraph, FingerprintFailure } from "./fingerprint.js";
4
6
  export { typescriptEmitter } from "./emit-typescript.js";
5
7
  export { pythonEmitter } from "./emit-python.js";
6
- export { goEmitter } from "./emit-go.js";
7
- export { rustEmitter } from "./emit-rust.js";
8
8
  export { phpEmitter } from "./emit-php.js";
9
- export { typescriptStraightlineEmitter } from "./emit-straightline-typescript.js";
10
- export { rustStraightlineEmitter } from "./emit-straightline-rust.js";
11
- export { phpStraightlineEmitter } from "./emit-straightline-php.js";
12
- export { goStraightlineEmitter } from "./emit-straightline-go.js";
13
- export { pythonStraightlineEmitter } from "./emit-straightline-python.js";
14
9
  export { typescriptTypedEmitter, tsTypedMaterializer } from "./emit-straightline-typed-typescript.js";
15
- export { goTypedEmitter, goTypedMaterializer, goTypedInternals } from "./emit-straightline-typed-go.js";
16
- export { rustTypedEmitter, rustTypedMaterializer, rustTypedInternals } from "./emit-straightline-typed-rust.js";
17
- export { goRawAbiEmitter } from "./emit-raw-abi-go.js";
18
- export { rustRawAbiEmitter } from "./emit-raw-abi-rust.js";
19
- export { rustStraightlineInternals } from "./emit-straightline-rust.js";
10
+ export { goTypedNativeEmitter, goTypedNativeObserve } from "./emit-typed-native-go.js";
11
+ export { rustTypedNativeEmitter, rustTypedNativeObserve } from "./emit-typed-native-rust.js";
20
12
  export { assertStraightlineSupported, isStraightlineNode, buildComponentPlan, emitStraightlineModule, } from "./straightline.js";
21
13
  export type { StraightlineDialect, StraightlineOp, ComponentPlan, OpLiteral, } from "./straightline.js";
22
14
  export { buildTypePlan, deriveTypeRef, findDecl } from "./typed.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAsDA,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,eAAe,EACf,eAAe,EACf,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AA2BA,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,eAAe,EACf,eAAe,EACf,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,73 +1,37 @@
1
1
  /**
2
- * generator/index.ts — 共通 Generator の公開面(bc#13 SP1 + SP2)。
2
+ * generator/index.ts — 共通 Generator の公開面。
3
3
  *
4
- * 組み込み emitter(typescript / python / go / rust / php)を登録して公開する。
5
- * 追加言語は emitter plugin を登録するだけでよい(core は言語中立)。
4
+ * consumer-interface.md §1・§4 3 ターゲット収束後の登録面(#90/#99)。実行モデルは ir/native
5
+ * 2 つ、emitter ターゲットは literal(ts/python/php) / typed(ts) / native(go/rust) の 3 つだけ。
6
+ * 撤去済み: straightline 全言語 / go・rust literal / go・rust typed / typed-raw / straightline-native。
7
+ * それらの emitter が使っていた共有 emit エンジンは中立 shared モジュール(emit-shared-*.ts)へ
8
+ * 抽出済みで、native/typed emitter が消費する(plugin は登録しない純粋な共有ロジック)。
6
9
  */
7
10
  import { registerEmitter } from "./core.js";
8
11
  import { typescriptEmitter } from "./emit-typescript.js";
9
12
  import { pythonEmitter } from "./emit-python.js";
10
- import { goEmitter } from "./emit-go.js";
11
- import { rustEmitter } from "./emit-rust.js";
12
13
  import { phpEmitter } from "./emit-php.js";
13
- import { typescriptStraightlineEmitter } from "./emit-straightline-typescript.js";
14
- import { rustStraightlineEmitter } from "./emit-straightline-rust.js";
15
- import { phpStraightlineEmitter } from "./emit-straightline-php.js";
16
- import { goStraightlineEmitter } from "./emit-straightline-go.js";
17
- import { pythonStraightlineEmitter } from "./emit-straightline-python.js";
18
14
  import { typescriptTypedEmitter } from "./emit-straightline-typed-typescript.js";
19
- import { goTypedEmitter } from "./emit-straightline-typed-go.js";
20
- import { rustTypedEmitter } from "./emit-straightline-typed-rust.js";
21
- import { goRawAbiEmitter } from "./emit-raw-abi-go.js";
22
- import { rustRawAbiEmitter } from "./emit-raw-abi-rust.js";
15
+ import { goTypedNativeEmitter } from "./emit-typed-native-go.js";
16
+ import { rustTypedNativeEmitter } from "./emit-typed-native-rust.js";
17
+ // ── literal (ir 実行モデル) — ts / python / php ────────────────────────────────────
23
18
  registerEmitter(typescriptEmitter);
24
19
  registerEmitter(pythonEmitter);
25
- registerEmitter(goEmitter);
26
- registerEmitter(rustEmitter);
27
20
  registerEmitter(phpEmitter);
28
- // bc#37 A1: 直線 emit TS emitter(golden oracle)。既存のリテラル焼き込みと併存する additive
29
- // な第2モード(go/rust/python/php は A2 で同じ StraightlineDialect 枠に乗る)。
30
- registerEmitter(typescriptStraightlineEmitter);
31
- // bc#39 A2-rust: 直線 emit の rust emitter(単純式ネイティブ化 = Phase B 脱解釈)。
32
- registerEmitter(rustStraightlineEmitter);
33
- // bc#41 A2-php: 直線 emit の PHP emitter(単純式 native 化 = 脱解釈)。既存の php と併存。
34
- registerEmitter(phpStraightlineEmitter);
35
- // bc#38 A2: 直線 emit の Go emitter(de-interpretation: 単純 port を native 化)。
36
- registerEmitter(goStraightlineEmitter);
37
- // bc#40 A2: 直線 emit の python emitter(単純式を native 化する脱解釈経路)。
38
- registerEmitter(pythonStraightlineEmitter);
39
- // bc#46 B2-ts: typed 直線 emitter(outType → TS interface/型注釈, tsc 検証 oracle)。
40
- // straight-line と併存する additive な第3モード。go/rust は #47/#48 で同じ typed seam に乗る。
21
+ // ── typed (ir・型付き DX) ts のみ ───────────────────────────────────────────────
41
22
  registerEmitter(typescriptTypedEmitter);
42
- // bc#47 B2-go: typed 直線 emitter(outType 具体 Go struct・実 de-box)。最初のコンパイル言語の
43
- // typed emitter として TypedMaterializer seam を runtime-materialization 対応へ拡張(rust #48 が乗る)。
44
- registerEmitter(goTypedEmitter);
45
- // bc#48 B2-rust: typed 直線 emitter(outType → 具体 Rust struct・実 de-box)。#47 で拡張された
46
- // TypedMaterializer seam に同型で乗る(rust の materialization/型描画のみ足す・de-box 利得は最大)。
47
- registerEmitter(rustTypedEmitter);
48
- // bc#76: RAW handler ABI emitters (go/rust). The typed de-box, but materializing the struct
49
- // DIRECTLY from a native RawValue (RawComponentExec) instead of an already-boxed Value — the
50
- // dynamic Value tree the boxed typed path re-walked never exists on the row data plane.
51
- registerEmitter(goRawAbiEmitter);
52
- registerEmitter(rustRawAbiEmitter);
23
+ // ── native (全型付きネイティブ生成 + static handler 直呼び) go / rust ────────────
24
+ registerEmitter(goTypedNativeEmitter);
25
+ registerEmitter(rustTypedNativeEmitter);
53
26
  export { generateModule, registerEmitter, registeredLanguages, GeneratorFailure, } from "./core.js";
27
+ export { buildAsyncPlans } from "./async-plan.js";
54
28
  export { fingerprintComponentGraph, FingerprintFailure } from "./fingerprint.js";
55
29
  export { typescriptEmitter } from "./emit-typescript.js";
56
30
  export { pythonEmitter } from "./emit-python.js";
57
- export { goEmitter } from "./emit-go.js";
58
- export { rustEmitter } from "./emit-rust.js";
59
31
  export { phpEmitter } from "./emit-php.js";
60
- export { typescriptStraightlineEmitter } from "./emit-straightline-typescript.js";
61
- export { rustStraightlineEmitter } from "./emit-straightline-rust.js";
62
- export { phpStraightlineEmitter } from "./emit-straightline-php.js";
63
- export { goStraightlineEmitter } from "./emit-straightline-go.js";
64
- export { pythonStraightlineEmitter } from "./emit-straightline-python.js";
65
32
  export { typescriptTypedEmitter, tsTypedMaterializer } from "./emit-straightline-typed-typescript.js";
66
- export { goTypedEmitter, goTypedMaterializer, goTypedInternals } from "./emit-straightline-typed-go.js";
67
- export { rustTypedEmitter, rustTypedMaterializer, rustTypedInternals } from "./emit-straightline-typed-rust.js";
68
- export { goRawAbiEmitter } from "./emit-raw-abi-go.js";
69
- export { rustRawAbiEmitter } from "./emit-raw-abi-rust.js";
70
- export { rustStraightlineInternals } from "./emit-straightline-rust.js";
33
+ export { goTypedNativeEmitter, goTypedNativeObserve } from "./emit-typed-native-go.js";
34
+ export { rustTypedNativeEmitter, rustTypedNativeObserve } from "./emit-typed-native-rust.js";
71
35
  export { assertStraightlineSupported, isStraightlineNode, buildComponentPlan, emitStraightlineModule, } from "./straightline.js";
72
36
  export { buildTypePlan, deriveTypeRef, findDecl } from "./typed.js";
73
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,iFAAiF;AACjF,eAAe,CAAC,iBAAiB,CAAC,CAAC;AACnC,eAAe,CAAC,aAAa,CAAC,CAAC;AAC/B,eAAe,CAAC,UAAU,CAAC,CAAC;AAC5B,+EAA+E;AAC/E,eAAe,CAAC,sBAAsB,CAAC,CAAC;AACxC,wEAAwE;AACxE,eAAe,CAAC,oBAAoB,CAAC,CAAC;AACtC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AAExC,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AASnB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,120 @@
1
+ import type { TypeRef } from "./typed.js";
2
+ /** The static value kind of a compiled expression. `value` = a boxed escape (NOT allowed on the
3
+ * covered plane — a compile that would need it fails closed). */
4
+ export type ExprType = TypeRef;
5
+ /** A compiled native expression: hoisted fallible statements + the pure final expression + its type. */
6
+ export interface Compiled {
7
+ stmts: string[];
8
+ expr: string;
9
+ ref: TypeRef;
10
+ }
11
+ /**
12
+ * NativeExprBackend — the language-specific primitives. The traversal / type-inference / fail-closed
13
+ * discipline live in this module (shared go+rust); the backend only renders syntax. Every method
14
+ * returns RUNTIME-FREE native code (no bc-runtime type).
15
+ */
16
+ export interface NativeExprBackend {
17
+ /** language tag (for error messages). */
18
+ lang: "go" | "rust";
19
+ /** a fresh unique temp identifier for a hoisted fallible result. */
20
+ freshTemp(): string;
21
+ /** render a TypeRef to the native type name (renderTypeRef). */
22
+ renderType(ref: TypeRef): string;
23
+ /** the native scalar type name for a portable scalar. */
24
+ scalarType(s: "string" | "int" | "float" | "bool"): string;
25
+ /** a string literal. */
26
+ strLit(s: string): string;
27
+ /** a bool literal. */
28
+ boolLit(b: boolean): string;
29
+ /** an i64 literal from a decimal string (validated in the safe/i64 range already). */
30
+ intLit(dec: string): string;
31
+ /** an f64 literal. */
32
+ floatLit(n: number): string;
33
+ /** field access: base expr of type baseRef, walk `path` → {expr, ref}. Mirrors typedFieldAccess. */
34
+ fieldAccess(baseExpr: string, baseRef: TypeRef, path: string[]): {
35
+ expr: string;
36
+ ref: TypeRef;
37
+ };
38
+ /** the base expr + ref for a ref head: an input port field, an input array elem via $as, or a prior
39
+ * node's typed cell. Returns null if the head is unknown (compile fails closed). */
40
+ resolveHead(head: string): {
41
+ expr: string;
42
+ ref: TypeRef;
43
+ } | null;
44
+ /** wrap a fallible helper call `call` (returns (T,err)/Result<T,_>) as a hoisted temp of native type
45
+ * `ty`, early-returning the failure. Returns the temp identifier. */
46
+ hoistFallible(temp: string, ty: string, call: string): string[];
47
+ /** the fixed helper-call syntax for a checked binary op. `helper` is the logical name
48
+ * (addI64/subI64/mulI64/modI64/divF/lenArr/intLit). Returns the CALL expression (fallible). */
49
+ helperCall(helper: string, args: string[]): string;
50
+ /** a native (infallible) binary numeric/compare operator expression. */
51
+ binOp(op: string, a: string, b: string, scalar: "int" | "float" | "string" | "bool"): string;
52
+ /** native string concat of parts (all native strings). */
53
+ concat(parts: string[]): string;
54
+ /** native `!a`. */
55
+ notOp(a: string): string;
56
+ /** a named struct literal with field inits (wire field names; the backend maps to native names). */
57
+ structLit(name: string, inits: {
58
+ field: string;
59
+ expr: string;
60
+ }[]): string;
61
+ /** a native array literal of element type `elemTy`. */
62
+ arrLit(elemTy: string, items: string[]): string;
63
+ /** a ternary/if-expression producing `t` when `cond` else `e`, both of native type `ty`. */
64
+ ternary(cond: string, t: string, e: string, ty: string): string;
65
+ /** short-circuit and/or with a FALLIBLE right side: emit statements binding `temp` (native bool)
66
+ * such that the right side's `rStmts` (+ its early error-returns) run ONLY when the left `left`
67
+ * does not settle the result. `and` → temp=left && rExpr (rExpr computed only if left true);
68
+ * `or` → temp=left || rExpr (rExpr computed only if left false). */
69
+ shortCircuitBool(op: "and" | "or", temp: string, left: string, rStmts: string[], rExpr: string): string[];
70
+ /** cond with a FALLIBLE branch: emit statements binding `temp` (native type `ty`) by an if/else on
71
+ * `cond` where ONLY the taken branch's stmts+expr are evaluated (short-circuit ≡ evaluate). */
72
+ condGuard(temp: string, ty: string, cond: string, tStmts: string[], tExpr: string, eStmts: string[], eExpr: string): string[];
73
+ }
74
+ /**
75
+ * NativeExprCompiler — compiles Expression IR to native code via a backend. One instance per
76
+ * expression-compilation context (it accumulates hoisted statements through `compile`).
77
+ */
78
+ export declare class NativeExprCompiler {
79
+ private readonly be;
80
+ constructor(be: NativeExprBackend);
81
+ /** compile a node to {stmts, expr, ref}. Fallible sub-exprs are hoisted into stmts. */
82
+ compile(node: unknown): Compiled;
83
+ /** compile a node and require it to produce a native `bool` (the cond `if` / guard `when` gate). A
84
+ * non-bool result is a GENERATION-TIME fail-closed reject (strict-bool, mirrors requireBool). */
85
+ compileBool(node: unknown): Compiled;
86
+ /**
87
+ * compileTo — compile a node to the given expected TypeRef, MATERIALIZING an {obj}/{arr}/scalar
88
+ * literal against `expected` (the cond-branch / boundary shape — mirrors emitTypedValue). A ref /
89
+ * operator sub-node is compiled by `compile` and must already carry the expected type. `named`
90
+ * targets require the plan-resolved decl fields (passed via `resolveDecl`).
91
+ */
92
+ compileTo(node: unknown, expected: TypeRef, resolveDecl: (name: string) => {
93
+ name: string;
94
+ type: TypeRef;
95
+ }[]): Compiled;
96
+ private numberLit;
97
+ private intLit;
98
+ private floatLit;
99
+ private ref;
100
+ private obj;
101
+ private arr;
102
+ private binArgs;
103
+ private arith;
104
+ private neg;
105
+ private div;
106
+ /** widen an int/float compiled value to a fallible f64 (PRECISION_LOSS for int out of ±2^53). */
107
+ private widenToFloat;
108
+ private mod;
109
+ private concat;
110
+ private eqNe;
111
+ private compare;
112
+ private andOr;
113
+ private not;
114
+ private coalesce;
115
+ private cond;
116
+ private len;
117
+ }
118
+ /** structural TypeRef equality (for cond-branch join + expected checks). */
119
+ export declare function typeRefEqual(a: TypeRef, b: TypeRef): boolean;
120
+ //# sourceMappingURL=native-expr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-expr.d.ts","sourceRoot":"","sources":["../../src/generator/native-expr.ts"],"names":[],"mappings":"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"}