@gonvex/cli 0.5.2-staging.2 → 0.5.2-staging.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +71 -7
- package/dist/index.js.map +1 -1
- package/dist/lazy-reference-bindings.d.ts +3 -0
- package/dist/lazy-reference-bindings.js +22 -0
- package/dist/lazy-reference-bindings.js.map +1 -0
- package/dist/local-bindings.d.ts +4 -0
- package/dist/local-bindings.js +106 -0
- package/dist/local-bindings.js.map +1 -0
- package/dist/local-dependencies.d.ts +58 -0
- package/dist/local-dependencies.js +850 -0
- package/dist/local-dependencies.js.map +1 -0
- package/dist/local-schema.d.ts +6 -0
- package/dist/local-schema.js +55 -0
- package/dist/local-schema.js.map +1 -0
- package/dist/manifest-types.d.ts +43 -2
- package/dist/module-artifact.js +155 -8
- package/dist/module-artifact.js.map +1 -1
- package/dist/native-local-bindings.d.ts +2 -0
- package/dist/native-local-bindings.js +22 -0
- package/dist/native-local-bindings.js.map +1 -0
- package/dist/pglite-browser-bundle.d.ts +3 -0
- package/dist/pglite-browser-bundle.js +35 -0
- package/dist/pglite-browser-bundle.js.map +1 -0
- package/package.json +7 -5
- package/dist/templates/vite-react/gonvex/_build/module.js +0 -572
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-dependencies.js","sourceRoot":"","sources":["../src/local-dependencies.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,4CAA4C;AAC5C,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,gBAAgB;AAChB,EAAE;AACF,oEAAoE;AACpE,4EAA4E;AAC5E,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,qDAAqD;AACrD,2EAA2E;AAC3E,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,yEAAyE;AACzE,iEAAiE;AACjE,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,yEAAyE;AACzE,6CAA6C;AAC7C,EAAE;AACF,wEAAwE;AACxE,8BAA8B;AAC9B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AA2DlE,MAAM,WAAW,GAA4E;IAC3F,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;IACjE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;IAClE,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;IACvE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IACtD,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC5E,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC3E,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC9D,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC9D,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;IACtE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;CACvE,CAAC;AAEF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;AACjG,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AACnJ,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AAExH,iFAAiF;AACjF,IAAI,EAAa,CAAC;AAElB,MAAM,KAAK,GAAG,GAAe,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,MAAM,oBAAoB,GAAG,GAAe,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAErG,SAAS,KAAK,CAAC,GAAG,MAAoB;IACpC,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IACnC,OAAO,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;WAC7F,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC;WACtG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,UAAyB;IAC1C,IAAI,OAAO,GAAG,UAAU,CAAC;IACzB,OAAO,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC;WAC1G,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAC5G,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,IAAkD;IACtE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACzG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,8BAA8B;IAKL;IAAsC;IAA+B;IAJjF,OAAO,CAAiB;IACxB,SAAS,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrC,UAAU,GAAG,IAAI,GAAG,EAAQ,CAAC;IAE9C,YAA6B,OAAmB,EAAmB,IAAY,EAAmB,QAA2B;QAAhG,YAAO,GAAP,OAAO,CAAY;QAAmB,SAAI,GAAJ,IAAI,CAAQ;QAAmB,aAAQ,GAAR,QAAQ,CAAmB;QAC3H,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC;IAEO,SAAS,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,CAAC;IAEO,aAAa,CAAC,IAAmB;QACvC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACrG,CAAC;IAEO,IAAI,CAAC,IAAa;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;IACpE,CAAC;IAEO,MAAM,CAAC,IAAa;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK;YAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClG,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,SAAS,CAAC,MAAqB;QACrC,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC;YAAE,OAAO,SAAS,CAAC;QACtH,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEO,UAAU,CAAC,UAAyB;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;QACzF,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAClE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IAChJ,CAAC;IAED,iFAAiF;IACzE,aAAa,CAAC,UAAyB,EAAE,SAAmB;QAClE,IAAI,KAAK,GAAc,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;4BAC9C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAA0B,CAAC;4BAC3D,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;wBACnE,KAAK,MAAM,KAAK,IAAI,OAAO;4BAAE,IAAI,KAAK;gCAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3D,CAAC;yBAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACzB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC;4BAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACnH,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBAC3E,IAAI,KAAK;4BAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC;yBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBAC3E,IAAI,CAAC,KAAK;4BAAE,OAAO,SAAS,CAAC;wBAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBAC9D,IAAI,CAAC,QAAQ;4BAAE,OAAO,SAAS,CAAC;wBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YACnC,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAC1E,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;oBAAE,OAAO,SAAS,CAAC;gBAChD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,SAAkC;QACxD,OAAO,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,CAAC;IAED,+EAA+E;IACvE,cAAc,CAAC,EAAgB,EAAE,KAAa;QACpD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAC;QAChI,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;IACpC,CAAC;IAEO,iBAAiB,CAAC,SAAkC,EAAE,SAAmB,EAAE,IAAU,EAAE,KAAa;QAC1G,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE;YAAE,OAAO,oBAAoB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,MAAM,GAAG,GAAe,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YACvG,+DAA+D;YAC/D,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACpH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAChF,4EAA4E;QAC5E,KAAK,IAAI,OAAO,GAAwB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACvF,IAAI,OAAO,KAAK,EAAE;gBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACvH,CAAC;QACD,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEO,mBAAmB,CAAC,WAA2B,EAAE,SAAmB,EAAE,IAAU,EAAE,KAAa;QACrG,IAAI,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpG,IAAI,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,uEAAuE;YACvE,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,OAAO,GAAY,WAAW,CAAC;YACnC,OAAO,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAsB,OAAO,CAAC,MAAM,CAAC;gBAClD,IAAI,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC;oBAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;qBAC5F,CAAC;oBACJ,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChE,IAAI,CAAC,IAAI;wBAAE,OAAO,oBAAoB,EAAE,CAAC;oBACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3B,CAAC;YACD,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5G,IAAI,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACrH,OAAO,oBAAoB,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7G,IAAI,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACpH,IAAI,EAAE,CAAC,6BAA6B,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,KAAK,EAAE,gBAAgB,CAAC;YACvC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;QACxG,CAAC;QACD,IAAI,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACvI,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEO,gBAAgB,CAAC,WAAmC,EAAE,SAAmB,EAAE,IAAU,EAAE,KAAa;QAC1G,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC;QAC1B,IAAI,IAAI,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACjJ,IAAI,CAAC,WAAW,CAAC,WAAW;YAAE,OAAO,oBAAoB,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,oEAAoE;IACpE,QAAQ,CAAC,KAAoB,EAAE,SAAmB,EAAE,IAAU,EAAE,KAAK,GAAG,CAAC;QACvE,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,oBAAoB,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC1I,IAAI,EAAE,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAChJ,CAAC;QACD,IAAI,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,qBAAqB,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACzL,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACxI,CAAC;QACD,IAAI,EAAE,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;YAClC,MAAM,KAAK,GAAiB,EAAE,CAAC;YAC/B,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC7C,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpC,iEAAiE;oBACjE,wCAAwC;oBACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrF,CAAC;qBAAM,IAAI,IAAI,KAAK,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjE,IAAI,IAAI,KAAK,IAAI;wBAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBACpC,IAAI,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;yBACzG,IAAI,EAAE,CAAC,6BAA6B,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACpD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;wBACvE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;oBACzI,CAAC;yBAAM,IAAI,IAAI,KAAK,IAAI;wBAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3G,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3E,CAAC;YACD,OAAO,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;gBAC9E,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;gBACrE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,MAAM,EAAE,gBAAgB,IAAI,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1E,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;QAC9G,CAAC;QACD,IAAI,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,MAAM,EAAE,gBAAgB,CAAC;YAC7C,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;gBAC9J,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACjF,IAAI,CAAC,MAAM,CAAC,UAAU;oBAAE,OAAO,MAAM,CAAC;YACxC,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,EAAE,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAC1D,IAAI,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACnK,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACzK,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC,UAAU,CAAC;eACtF,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACxI,4EAA4E;YAC5E,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/H,IAAI,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1J,CAAC;QACD,IAAI,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5F,gFAAgF;YAChF,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnG,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACrF,CAAC;YACD,+EAA+E;YAC/E,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjI,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,EACtF,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzI,CAAC;YACD,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;gBACxE,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBACpF,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAChH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,wEAAwE;YACxE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;oBAAE,SAAS;gBAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBAC5E,qDAAqD;oBACrD,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,EACnF,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACnD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBACnF,CAAC,CAAC,CAAC,CAAC;gBACR,CAAC;wBAAS,CAAC;oBACT,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,2EAA2E;IACnE,gBAAgB,CAAC,UAAyB,EAAE,SAAmB,EAAE,IAAU,EAAE,KAAa;QAChG,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACnE,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC;eAChG,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEO,eAAe,CAAC,EAAgB,EAAE,SAAmB,EAAE,IAAU,EAAE,KAAa;QACtF,IAAI,CAAC,EAAE,CAAC,IAAI;YAAE,OAAO,oBAAoB,EAAE,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAChF,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE;YAC9B,IAAI,cAAc,CAAC,IAAI,CAAC;gBAAE,OAAO;YACjC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACtH,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;IACjE,CAAC;IAED,2CAA2C;IACnC,WAAW,CAAC,IAAuB;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5E,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxE,CAAC;IAEO,aAAa,CAAC,MAA6B;QACjD,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,KAAK,MAAM,WAAW,IAAI,MAAM,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;gBAAE,SAAS;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,iBAAiB,CAAC,WAA2B;QACnD,IAAI,cAAc,CAAC,WAAW,CAAC;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;YACxJ,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzH,yEAAyE;gBACzE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC3E,IAAI,UAAU,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAAE,OAAO,SAAS,CAAC;YAC/G,CAAC;YACD,IAAI,cAAc,CAAC,WAAW,CAAC;gBAAE,OAAO,WAAW,CAAC;YACpD,qEAAqE;YACrE,yDAAyD;YACzD,KAAK,IAAI,OAAO,GAAwB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC9F,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC;oBAAE,OAAO,SAAS,CAAC;YAC7F,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,EAAE,CAAC,6BAA6B,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;YAC5F,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,SAAS,CAAC,OAAgB,EAAE,UAAsB,EAAE,SAAiB,EAAE,KAAc,EAAE,IAAa,EAAE,UAAmB;QAC/H,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM;YAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChG,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpD,IAAI,KAAK;gBAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;gBAC9E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,UAAU,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/I,CAAC;IAED,kGAAkG;IAC1F,gBAAgB,CAAC,GAA8B,EAAE,cAAwB,EAAE;QACjF,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvE,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpM,CAAC;QACD,IAAI,EAAE,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACpE,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC7C,IAAI,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpC,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAAE,OAAO,IAAI,CAAC;gBAC9D,CAAC;qBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC9F,kDAAkD;oBAClD,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;wBAAE,OAAO,IAAI,CAAC;gBACpF,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC7D,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;QACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,WAAW,CAAC,IAAuB,EAAE,IAAU,EAAE,OAAgB;QACvE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,QAAQ;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,KAAK;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5I,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC3G,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;oBAChH,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;gBACrC,MAAM,IAAI,GAAG,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3G,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,IAAI,GAAG,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC;oBAClD,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAqC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;oBACzJ,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5E,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACxH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACzH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,IAAI;oBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACpG,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACpF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,OAAO,CAAC,IAAU;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QAClJ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;YACpC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAAE,OAAO;YACtI,IAAI,IAAI,KAAK,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;uBACvE,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;gBAChJ,IAAI,KAAK,EAAE,CAAC;oBACV,8DAA8D;oBAC9D,mEAAmE;oBACnE,0BAA0B;oBAC1B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACxF,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,EAAE,aAAa,IAAI,EAAE,EAAE,CAAC;wBAC5D,IAAI,KAAK,KAAK,IAAI;4BAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;4BACzC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtD,CAAC;oBACD,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBACxE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC/F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;wBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC7C,IAAI,CAAC,QAAQ;4BAAE,SAAS;wBACxB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACnH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAC3D,IAAI,MAAM,KAAK,IAAI;wBAAE,SAAS;oBAC9B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC/B,oEAAoE;oBACpE,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC/F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;4BACzC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,4CAA4C,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;wBAC1K,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,iBAAiB,CAAC,IAAmB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;eACjG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;eAChG,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;eACpG,MAA6B,CAAC,IAAI,KAAK,IAAI,CAAC;IACpD,CAAC;IAEO,QAAQ,CAAC,IAAa;QAC5B,IAAI,OAAO,GAAY,IAAI,CAAC;QAC5B,OAAO,EAAE,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAClH,OAAO,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC;IACtF,CAAC;IAED,yEAAyE;IACzE,OAAO,CAAC,KAAyB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,IAAI,sCAAsC,CAAC,CAAC;QAC/F,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;QACvI,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxH,MAAM,WAAW,GAAG,QAAQ,EAAE,gBAAgB,CAAC;QAC/C,IAAI,IAAsB,CAAC;QAC3B,IAAI,WAAW,IAAI,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,WAAW;YAAE,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;aAC1H,IAAI,WAAW,IAAI,cAAc,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI;YAAE,IAAI,GAAG,WAAW,CAAC;QAC5F,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,qCAAqC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACnG,MAAM,MAAM,GAAyB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACxG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAQ,CAAC;QAC/B,MAAM,KAAK,GAAW,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;YAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,yDAAyD;QACzD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACxD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,wBAAwB,KAAK,CAAC,KAAK,yCAAyC,EAAE,CAAC,CAAC;YACrK,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAwB,EAAE,SAAsC;IAC3F,OAAO,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAC7G,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,qBAAqB,CAAC,QAA8B,EAAE,SAAsC;IAC1G,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClI,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,yBAAyB,CACvC,QAAyC,EACzC,WAAgC,EAChC,SAAsC;IAEtC,MAAM,UAAU,GAA+B,EAAE,CAAC;IAClD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,SAAoD,EAAE,EAAE;YAChF,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,YAAY,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC;YACvK,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC;YAC3J,CAAC;QACH,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5C,GAAG,CAAC,eAAe,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,0CAA0C,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACrN,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACtC,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,+BAA+B,CAAC,UAA+C;IAC7F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC9D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,GAAG,UAAU,CAAC,MAAM,0EAA0E;QAC9F,+GAA+G;QAC/G,0GAA0G;QAC1G,6GAA6G;QAC7G,oGAAoG;QACpG,EAAE;KACH,CAAC;IACF,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACjG,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC/H,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,mGAAmG;AACnG,SAAS,eAAe,CAAC,IAAY,EAAE,UAAkB,EAAE,QAAiB;IAC1E,MAAM,QAAQ,GAAuB;QACnC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;QAC9B,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;QAC5B,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO;QACjD,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,0BAA0B,EAAE,IAAI;QAChC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ;KACzB,CAAC;IACF,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAChJ,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAC3H,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QACrC,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACjI,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACxF,0EAA0E;QAC1E,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YAAE,SAAS;QAChH,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACpH,CAAC;IACD,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,0FAA0F;AAC1F,SAAS,QAAQ,CAAC,UAAkB,EAAE,OAA2B;IAC/D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7G,IAAI,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,OAAO,SAAS,IAAI,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACjD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBAC7E,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBAClC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;oBAClE,MAAM;gBACR,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACjC,CAAC;QACD,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,KAOrD;IACC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACtC,EAAE,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAc,CAAC;IACjE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,IAAI,8BAA8B,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9G,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;SACvB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1D,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LocalSchema } from "@gonvex/local-runtime/schema";
|
|
2
|
+
/** Compile schema using PostgreSQL itself, without connecting to a service. */
|
|
3
|
+
export declare function compileLocalSchema(migrations: readonly {
|
|
4
|
+
name: string;
|
|
5
|
+
sql: string;
|
|
6
|
+
}[]): Promise<LocalSchema>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { PGlite } from "@electric-sql/pglite";
|
|
2
|
+
import { pg_trgm } from "@electric-sql/pglite/contrib/pg_trgm";
|
|
3
|
+
// The framework's tenant identity table exists before application migrations.
|
|
4
|
+
// Keep this in parity with TENANT_IDENTITY_SQL in postgres/src/provision.rs.
|
|
5
|
+
const identitySchema = `CREATE TABLE members (
|
|
6
|
+
id text PRIMARY KEY, account_id text NOT NULL UNIQUE, status text NOT NULL DEFAULT 'active',
|
|
7
|
+
display_name text NOT NULL DEFAULT '', avatar_url text NOT NULL DEFAULT '',
|
|
8
|
+
role text NOT NULL DEFAULT 'member', permissions jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
9
|
+
membership_revision bigint NOT NULL DEFAULT 1,
|
|
10
|
+
created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now()
|
|
11
|
+
)`;
|
|
12
|
+
/** Compile schema using PostgreSQL itself, without connecting to a service. */
|
|
13
|
+
export async function compileLocalSchema(migrations) {
|
|
14
|
+
const db = new PGlite({ extensions: { pg_trgm } });
|
|
15
|
+
try {
|
|
16
|
+
await db.exec(identitySchema);
|
|
17
|
+
for (const migration of migrations) {
|
|
18
|
+
// gen_random_uuid is built into modern PostgreSQL. PGlite does not ship
|
|
19
|
+
// pgcrypto's OpenSSL extension; remaining references fail explicitly.
|
|
20
|
+
const sql = migration.sql.replace(/CREATE\s+EXTENSION\s+(?:IF\s+NOT\s+EXISTS\s+)?["']?pgcrypto["']?\s*;/gi, "");
|
|
21
|
+
try {
|
|
22
|
+
await db.exec(sql);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
throw new Error(`Local schema compilation failed in ${migration.name}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const { rows } = await db.query(`SELECT c.relname AS table_name, a.attname AS column_name,
|
|
29
|
+
format_type(a.atttypid, a.atttypmod) AS type, NOT a.attnotnull AS nullable,
|
|
30
|
+
pg_get_expr(d.adbin, d.adrelid) AS column_default,
|
|
31
|
+
EXISTS (SELECT 1 FROM pg_index i WHERE i.indrelid=c.oid AND i.indisprimary AND a.attnum=ANY(i.indkey)) AS primary_key
|
|
32
|
+
FROM pg_class c JOIN pg_namespace n ON c.relnamespace=n.oid
|
|
33
|
+
JOIN pg_attribute a ON a.attrelid=c.oid AND a.attnum>0 AND NOT a.attisdropped
|
|
34
|
+
LEFT JOIN pg_attrdef d ON d.adrelid=c.oid AND d.adnum=a.attnum
|
|
35
|
+
WHERE n.nspname='public' AND c.relkind='r'
|
|
36
|
+
ORDER BY c.relname, a.attnum`);
|
|
37
|
+
const schema = {};
|
|
38
|
+
for (const row of rows) {
|
|
39
|
+
if (row.table_name.startsWith("_gonvex"))
|
|
40
|
+
continue;
|
|
41
|
+
const table = schema[row.table_name] ??= { key: "_id", columns: {} };
|
|
42
|
+
if (row.primary_key)
|
|
43
|
+
table.key = row.column_name;
|
|
44
|
+
table.columns[row.column_name] = {
|
|
45
|
+
type: row.type, nullable: row.nullable,
|
|
46
|
+
...(row.column_default ? { default: row.column_default } : {}),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return schema;
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
await db.close();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=local-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-schema.js","sourceRoot":"","sources":["../src/local-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAI/D,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,cAAc,GAAG;;;;;;EAMrB,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAoD;IAC3F,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,wEAAwE,EAAE,EAAE,CAAC,CAAC;YAChH,IAAI,CAAC;gBAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YAC3B,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;QACzK,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAG5B;;;;;;;;mCAQ4B,CAAC,CAAC;QACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAS;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACrE,IAAI,GAAG,CAAC,WAAW;gBAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;YACjD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG;gBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AACjC,CAAC"}
|
package/dist/manifest-types.d.ts
CHANGED
|
@@ -11,11 +11,19 @@ export type FunctionEntry = {
|
|
|
11
11
|
/** Language-neutral result metadata from a TypeScript module artifact. */
|
|
12
12
|
result?: ModuleSchema;
|
|
13
13
|
internal?: boolean;
|
|
14
|
+
public?: boolean;
|
|
14
15
|
delivery?: "oneShot" | "live" | "replica";
|
|
15
16
|
dependencies?: FunctionDependencies;
|
|
16
17
|
replica?: ReplicaCollectionDefinition;
|
|
17
18
|
/** Reducer delivery policy declared by a TypeScript module. */
|
|
18
19
|
offline?: JsonValue;
|
|
20
|
+
localExecution?: 1;
|
|
21
|
+
/**
|
|
22
|
+
* Tables a locally executing Reducer reads (or writes by key) in the Local
|
|
23
|
+
* Replica, from static analysis of its body and every project function it
|
|
24
|
+
* calls. Sorted; emitted by codegen for `localExecution` Reducers only.
|
|
25
|
+
*/
|
|
26
|
+
localDependencies?: string[];
|
|
19
27
|
/** Ordered atomic optimistic transaction declared by a TypeScript module. */
|
|
20
28
|
optimistic?: JsonValue;
|
|
21
29
|
actionProfile?: "standard" | "agent";
|
|
@@ -74,6 +82,27 @@ export type LiveQueryPlan = {
|
|
|
74
82
|
search?: {
|
|
75
83
|
argument: string;
|
|
76
84
|
columns: string[];
|
|
85
|
+
booleanTerms?: boolean;
|
|
86
|
+
offlineColumns?: string[];
|
|
87
|
+
sources?: {
|
|
88
|
+
table: string;
|
|
89
|
+
key: string;
|
|
90
|
+
column: string;
|
|
91
|
+
dependencies?: string[];
|
|
92
|
+
}[];
|
|
93
|
+
};
|
|
94
|
+
index?: {
|
|
95
|
+
table: string;
|
|
96
|
+
key: string;
|
|
97
|
+
columns: string[];
|
|
98
|
+
sortColumns?: Record<string, string[]>;
|
|
99
|
+
dependencies?: string[];
|
|
100
|
+
referenceFields?: Record<string, {
|
|
101
|
+
table: string;
|
|
102
|
+
foreignKey: string;
|
|
103
|
+
column: string;
|
|
104
|
+
fallback?: JsonValue;
|
|
105
|
+
}>;
|
|
77
106
|
};
|
|
78
107
|
filters?: {
|
|
79
108
|
argument: string;
|
|
@@ -99,13 +128,19 @@ export type LiveQueryPlan = {
|
|
|
99
128
|
};
|
|
100
129
|
export type FilterOperator = "contains" | "notContains" | "equals" | "notEquals" | "startsWith" | "endsWith" | "empty" | "notEmpty" | "oneOf" | "lessThan" | "lessThanOrEqual" | "greaterThan" | "greaterThanOrEqual" | "inRange";
|
|
101
130
|
export type LiveExpression = {
|
|
102
|
-
operator: "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "in" | "contains" | "containsInsensitive" | "range" | "and" | "or" | "not" | "server";
|
|
131
|
+
operator: "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "in" | "contains" | "containsInsensitive" | "range" | "and" | "or" | "not" | "server" | "inRelation" | "arrayContains";
|
|
103
132
|
column?: string;
|
|
104
133
|
value?: LiveValue;
|
|
105
134
|
valueTo?: LiveValue;
|
|
106
135
|
children?: LiveExpression[];
|
|
136
|
+
relation?: {
|
|
137
|
+
table: string;
|
|
138
|
+
column: string;
|
|
139
|
+
where?: LiveExpression;
|
|
140
|
+
};
|
|
107
141
|
};
|
|
108
142
|
export type LiveValue = {
|
|
143
|
+
context?: "account.id" | "member.id" | "tenant.id";
|
|
109
144
|
argument?: string;
|
|
110
145
|
literal?: unknown;
|
|
111
146
|
};
|
|
@@ -151,7 +186,11 @@ export type VisibilityJoin = {
|
|
|
151
186
|
export type VisibilityConstraint = {
|
|
152
187
|
table: string;
|
|
153
188
|
column: string;
|
|
154
|
-
context
|
|
189
|
+
/** Exactly one of context or value. */
|
|
190
|
+
context?: VisibilityContextKey;
|
|
191
|
+
value?: {
|
|
192
|
+
literal: JsonValue;
|
|
193
|
+
};
|
|
155
194
|
};
|
|
156
195
|
export type VisibilityOperator = "public" | "permission" | "role" | "eqContext" | "inSet" | "and" | "or" | "not";
|
|
157
196
|
export type VisibilityContextKey = "account.id" | "member.id" | "tenant.id";
|
|
@@ -232,9 +271,11 @@ export type ModuleFunction = {
|
|
|
232
271
|
result: ModuleSchema;
|
|
233
272
|
dependencies?: FunctionDependencies;
|
|
234
273
|
internal?: boolean;
|
|
274
|
+
public?: boolean;
|
|
235
275
|
delivery?: "oneShot" | "live" | "replica";
|
|
236
276
|
replica?: ReplicaCollectionDefinition;
|
|
237
277
|
offline?: JsonValue;
|
|
278
|
+
localExecution?: 1;
|
|
238
279
|
optimistic?: JsonValue;
|
|
239
280
|
actionProfile?: "standard" | "agent";
|
|
240
281
|
actionCapabilities?: ActionCapabilities;
|
package/dist/module-artifact.js
CHANGED
|
@@ -11,6 +11,7 @@ import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
|
|
|
11
11
|
import { builtinModules } from "node:module";
|
|
12
12
|
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
13
13
|
import { rolldown } from "rolldown";
|
|
14
|
+
import { projectLocalSchema } from "./local-bindings.js";
|
|
14
15
|
/** Bumped whenever the artifact layout changes; mixed into the hash. */
|
|
15
16
|
export const moduleArtifactGeneration = 8;
|
|
16
17
|
/** Deterministic ESM output when gonvex.json does not name one. */
|
|
@@ -99,6 +100,41 @@ export async function buildModuleArtifact(options) {
|
|
|
99
100
|
for (const file of [...options.migrations].sort()) {
|
|
100
101
|
files[projectPath(options.root, file)] = (await readFile(file)).toString("base64");
|
|
101
102
|
}
|
|
103
|
+
if (Object.values(functions).some((entry) => entry.localExecution === 1)) {
|
|
104
|
+
const schema = await projectLocalSchema(options.root);
|
|
105
|
+
// Reuse only explicitly exposed columns. Offline hydration must never turn
|
|
106
|
+
// a metadata-only API into a route for credential/private table columns.
|
|
107
|
+
for (const [table, plan] of Object.entries(visibilityPlans)) {
|
|
108
|
+
const columns = new Set();
|
|
109
|
+
let maxRows = 50000;
|
|
110
|
+
let maxBytes = 67108864;
|
|
111
|
+
for (const entry of Object.values(functions)) {
|
|
112
|
+
if (entry.internal)
|
|
113
|
+
continue;
|
|
114
|
+
if (entry.replica?.table === table) {
|
|
115
|
+
entry.replica.columns.forEach((column) => columns.add(column));
|
|
116
|
+
if (!Object.keys(entry.replica.equalFilters ?? {}).length) {
|
|
117
|
+
maxRows = Math.min(maxRows, entry.replica.maxRows ?? maxRows);
|
|
118
|
+
maxBytes = Math.min(maxBytes, entry.replica.maxBytes ?? maxBytes);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (entry.dependencies?.liveQueryPlan?.table === table)
|
|
122
|
+
entry.dependencies.liveQueryPlan.columns?.forEach((column) => columns.add(column));
|
|
123
|
+
}
|
|
124
|
+
if (!schema[table] || !columns.has(plan.key))
|
|
125
|
+
continue;
|
|
126
|
+
const path = `__local.${table}`;
|
|
127
|
+
if (functions[path])
|
|
128
|
+
throw new Error(`${path} uses the SDK-reserved local replica namespace`);
|
|
129
|
+
functions[path] = {
|
|
130
|
+
kind: "query", handler: "__local", file: projectPath(options.root, entrypoint.absolute),
|
|
131
|
+
args: { kind: "object", fields: {} }, result: { kind: "array", items: { kind: "any" } },
|
|
132
|
+
delivery: "replica", interactive: false, classification: "system",
|
|
133
|
+
replica: { table, key: plan.key, columns: [...columns].filter((column) => !!schema[table].columns[column]),
|
|
134
|
+
mode: "progressive", maxRows, maxBytes },
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
}
|
|
102
138
|
const cronNames = new Set();
|
|
103
139
|
for (const cron of crons) {
|
|
104
140
|
if (cronNames.has(cron.name))
|
|
@@ -126,6 +162,14 @@ export async function buildModuleArtifact(options) {
|
|
|
126
162
|
throw new Error(`action ${JSON.stringify(path)} tool ${JSON.stringify(name)} must target an internal Reducer`);
|
|
127
163
|
}
|
|
128
164
|
}
|
|
165
|
+
const clientContractPath = join(options.backendDir, "client-contract.json");
|
|
166
|
+
if (existsSync(clientContractPath)) {
|
|
167
|
+
const bytes = await readFile(clientContractPath);
|
|
168
|
+
const contract = JSON.parse(bytes.toString());
|
|
169
|
+
if (!Number.isSafeInteger(contract.version) || contract.version < 1 || (contract.offlineMaxAgeMs !== null && (!Number.isSafeInteger(contract.offlineMaxAgeMs) || contract.offlineMaxAgeMs <= 0)))
|
|
170
|
+
throw new Error("Invalid client-contract.json");
|
|
171
|
+
files["client-contract.json"] = bytes.toString("base64");
|
|
172
|
+
}
|
|
129
173
|
const sortedFiles = sortedRecord(files);
|
|
130
174
|
const sortedFunctions = sortedRecord(functions);
|
|
131
175
|
const sortedVisibility = sortedRecord(visibilityPlans);
|
|
@@ -280,10 +324,22 @@ function parseVisibilityPlan(value) {
|
|
|
280
324
|
const constraints = rawWhere.map((constraint) => ({
|
|
281
325
|
table: stringMember(constraint, "table") ?? "",
|
|
282
326
|
column: stringMember(constraint, "column") ?? "",
|
|
283
|
-
context: stringMember(constraint, "context"),
|
|
327
|
+
...(stringMember(constraint, "context") ? { context: stringMember(constraint, "context") } : {}),
|
|
328
|
+
...(readMember(constraint, "value") !== undefined ? { value: readMember(constraint, "value") } : {}),
|
|
284
329
|
}));
|
|
330
|
+
// A constraint compares its column with either a request context value or
|
|
331
|
+
// a literal ({ literal }), as the module SDK and runtime allow.
|
|
332
|
+
const invalidConstraint = (constraint) => {
|
|
333
|
+
const hasContext = constraint.context !== undefined;
|
|
334
|
+
const hasValue = constraint.value !== undefined;
|
|
335
|
+
if (!constraint.table || !constraint.column || hasContext === hasValue)
|
|
336
|
+
return true;
|
|
337
|
+
if (hasContext)
|
|
338
|
+
return !["account.id", "member.id", "tenant.id"].includes(constraint.context);
|
|
339
|
+
return !isJsonObject(constraint.value) || !Object.prototype.hasOwnProperty.call(constraint.value, "literal") || constraint.value.literal === undefined;
|
|
340
|
+
};
|
|
285
341
|
if (joins.some((join) => !join.table || !join.leftColumn || !join.rightColumn) ||
|
|
286
|
-
constraints.some(
|
|
342
|
+
constraints.some(invalidConstraint)) {
|
|
287
343
|
return undefined;
|
|
288
344
|
}
|
|
289
345
|
sets[name] = {
|
|
@@ -354,9 +410,11 @@ export function moduleManifestFunctions(artifact) {
|
|
|
354
410
|
...(entry.dependencies ? { dependencies: entry.dependencies } : {}),
|
|
355
411
|
...(entry.replica ? { replica: entry.replica } : {}),
|
|
356
412
|
...(entry.offline === undefined ? {} : { offline: entry.offline }),
|
|
413
|
+
...(entry.localExecution === undefined ? {} : { localExecution: entry.localExecution }),
|
|
357
414
|
...(entry.optimistic === undefined ? {} : { optimistic: entry.optimistic }),
|
|
358
415
|
...(entry.actionProfile === undefined ? {} : { actionProfile: entry.actionProfile }),
|
|
359
416
|
...(entry.actionCapabilities === undefined ? {} : { actionCapabilities: entry.actionCapabilities }),
|
|
417
|
+
...(entry.public === undefined ? {} : { public: entry.public }),
|
|
360
418
|
...(entry.interactive === undefined ? {} : { interactive: entry.interactive }),
|
|
361
419
|
...(entry.classification === undefined ? {} : { classification: entry.classification }),
|
|
362
420
|
...(entry.description === undefined ? {} : { description: entry.description }),
|
|
@@ -566,7 +624,7 @@ function moduleFunction(input) {
|
|
|
566
624
|
if (delivery === "replica" && !replica) {
|
|
567
625
|
throw new Error(`Replica Collection ${input.path} requires a replica definition`);
|
|
568
626
|
}
|
|
569
|
-
if (input.kind === "query" && (delivery ?? "oneShot") === "oneShot") {
|
|
627
|
+
if (input.kind === "query" && (delivery ?? "oneShot") === "oneShot" && input.options?.get("public")?.value !== true) {
|
|
570
628
|
const plan = dependencies?.liveQueryPlan;
|
|
571
629
|
if (!plan)
|
|
572
630
|
throw new Error(`one-shot query ${input.path} requires a structured live query plan`);
|
|
@@ -574,19 +632,33 @@ function moduleFunction(input) {
|
|
|
574
632
|
throw new Error(`one-shot query ${input.path} requires a structured live query plan with a table, key, and columns including the key`);
|
|
575
633
|
}
|
|
576
634
|
}
|
|
577
|
-
const
|
|
635
|
+
const declaredOffline = input.options?.get("offline")?.value;
|
|
578
636
|
const optimistic = input.options?.get("optimistic")?.value;
|
|
579
637
|
const internalEntry = input.options?.get("internal");
|
|
580
638
|
if (internalEntry && typeof internalEntry.value !== "boolean") {
|
|
581
639
|
throw new Error(`${input.kind} ${input.path} internal must be a boolean literal`);
|
|
582
640
|
}
|
|
583
641
|
const internal = input.internal || internalEntry?.value === true;
|
|
642
|
+
const publicEntry = input.options?.get("public");
|
|
643
|
+
if (publicEntry && typeof publicEntry.value !== "boolean")
|
|
644
|
+
throw new Error(`${input.kind} ${input.path} public must be a boolean literal`);
|
|
645
|
+
const isPublic = publicEntry?.value === true;
|
|
646
|
+
if (isPublic && internal)
|
|
647
|
+
throw new Error(`public function ${input.path} cannot be internal`);
|
|
648
|
+
if (isPublic && input.kind === "query" && ((delivery ?? "oneShot") !== "oneShot" || replica !== undefined))
|
|
649
|
+
throw new Error(`public query ${input.path} must be one-shot`);
|
|
584
650
|
const interactiveEntry = input.options?.get("interactive");
|
|
585
651
|
const interactiveValue = interactiveEntry?.value;
|
|
586
652
|
if (interactiveEntry && typeof interactiveValue !== "boolean") {
|
|
587
653
|
throw new Error(`${input.kind} ${input.path} interactive must be a boolean literal`);
|
|
588
654
|
}
|
|
589
655
|
const interactive = !internal && (interactiveValue === true || (interactiveValue === undefined && input.kind !== "action"));
|
|
656
|
+
const offline = declaredOffline ?? (input.kind === "reducer" ? { mode: interactive ? "allowed" : "forbidden" } : undefined);
|
|
657
|
+
const localExecution = input.kind === "reducer" && interactive && offline?.mode === "allowed"
|
|
658
|
+
&& optimistic === undefined && !input.options?.get("nonOptimisticReason");
|
|
659
|
+
if (isPublic && input.kind === "reducer" && (interactiveValue !== false || offline?.mode === "allowed" || optimistic !== undefined || localExecution)) {
|
|
660
|
+
throw new Error(`public reducer ${input.path} requires interactive: false and server-only execution`);
|
|
661
|
+
}
|
|
590
662
|
const classification = internal ? "internal" : interactive ? "interactive" : "system";
|
|
591
663
|
const descriptionEntry = input.options?.get("description");
|
|
592
664
|
let description;
|
|
@@ -621,6 +693,7 @@ function moduleFunction(input) {
|
|
|
621
693
|
handler: input.handler,
|
|
622
694
|
file: input.file,
|
|
623
695
|
...(internal ? { internal: true } : {}),
|
|
696
|
+
...(isPublic ? { public: true } : {}),
|
|
624
697
|
...(input.exportName ? { export: input.exportName } : {}),
|
|
625
698
|
args: schemas.args,
|
|
626
699
|
result: schemas.result,
|
|
@@ -628,6 +701,7 @@ function moduleFunction(input) {
|
|
|
628
701
|
...(delivery === undefined ? {} : { delivery }),
|
|
629
702
|
...(replica ? { replica } : {}),
|
|
630
703
|
...(offline === undefined ? {} : { offline }),
|
|
704
|
+
...(localExecution ? { localExecution: 1 } : {}),
|
|
631
705
|
...(optimistic === undefined ? {} : { optimistic }),
|
|
632
706
|
...(interactiveEntry ? { interactive } : interactive ? { interactive: true } : {}),
|
|
633
707
|
classification,
|
|
@@ -991,7 +1065,11 @@ function normalizeDelivery(value) {
|
|
|
991
1065
|
return undefined;
|
|
992
1066
|
}
|
|
993
1067
|
function liveQueryPlanFromOptions(options) {
|
|
994
|
-
|
|
1068
|
+
const declared = options.get("liveQueryPlan");
|
|
1069
|
+
const plan = parseLiveQueryPlan(declared?.value);
|
|
1070
|
+
if (declared && !plan)
|
|
1071
|
+
throw new Error('liveQueryPlan must be a literal object, including nested metadata');
|
|
1072
|
+
return plan;
|
|
995
1073
|
}
|
|
996
1074
|
function parseLiveQueryPlan(value) {
|
|
997
1075
|
const table = stringMember(value, "table");
|
|
@@ -1012,9 +1090,62 @@ function parseLiveQueryPlan(value) {
|
|
|
1012
1090
|
plan.where = where;
|
|
1013
1091
|
const searchValue = readMember(value, "search");
|
|
1014
1092
|
const searchArgument = stringMember(searchValue, "argument");
|
|
1015
|
-
const
|
|
1016
|
-
|
|
1093
|
+
const rawSearchColumns = readMember(searchValue, "columns");
|
|
1094
|
+
const searchColumns = Array.isArray(rawSearchColumns) && rawSearchColumns.length === 0 ? [] : stringArray(rawSearchColumns);
|
|
1095
|
+
if (searchArgument && searchColumns) {
|
|
1017
1096
|
plan.search = { argument: searchArgument, columns: searchColumns };
|
|
1097
|
+
if (readMember(searchValue, 'booleanTerms') === true)
|
|
1098
|
+
plan.search.booleanTerms = true;
|
|
1099
|
+
const offlineColumns = stringArray(readMember(searchValue, 'offlineColumns'));
|
|
1100
|
+
if (offlineColumns)
|
|
1101
|
+
plan.search.offlineColumns = offlineColumns;
|
|
1102
|
+
const sources = readMember(searchValue, 'sources');
|
|
1103
|
+
if (sources !== undefined) {
|
|
1104
|
+
if (!Array.isArray(sources))
|
|
1105
|
+
throw new Error('Search sources must be a literal array');
|
|
1106
|
+
plan.search.sources = sources.map(source => {
|
|
1107
|
+
const table = stringMember(source, 'table'), key = stringMember(source, 'key'), column = stringMember(source, 'column');
|
|
1108
|
+
if (!table || !key || !column)
|
|
1109
|
+
throw new Error('Search sources require table, key and column');
|
|
1110
|
+
const dependencies = stringArray(readMember(source, 'dependencies'));
|
|
1111
|
+
return { table, key, column, ...(dependencies ? { dependencies } : {}) };
|
|
1112
|
+
});
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1115
|
+
const indexValue = readMember(value, 'index');
|
|
1116
|
+
if (indexValue !== undefined) {
|
|
1117
|
+
const table = stringMember(indexValue, 'table'), key = stringMember(indexValue, 'key');
|
|
1118
|
+
const columns = stringArray(readMember(indexValue, 'columns'));
|
|
1119
|
+
if (!table || !key || !columns)
|
|
1120
|
+
throw new Error('Live Query indexes require literal table, key and columns');
|
|
1121
|
+
plan.index = { table, key, columns };
|
|
1122
|
+
const referenceFields = readMember(indexValue, 'referenceFields');
|
|
1123
|
+
if (referenceFields !== undefined) {
|
|
1124
|
+
if (!isJsonObject(referenceFields))
|
|
1125
|
+
throw new Error('Index referenceFields must be a literal object');
|
|
1126
|
+
plan.index.referenceFields = Object.fromEntries(Object.entries(referenceFields).map(([name, field]) => {
|
|
1127
|
+
const table = stringMember(field, 'table'), foreignKey = stringMember(field, 'foreignKey'), column = stringMember(field, 'column');
|
|
1128
|
+
if (!table || !foreignKey || !column)
|
|
1129
|
+
throw new Error('Index reference fields require table, foreignKey and column');
|
|
1130
|
+
const fallback = readMember(field, 'fallback');
|
|
1131
|
+
return [name, { table, foreignKey, column, ...(fallback !== undefined ? { fallback } : {}) }];
|
|
1132
|
+
}));
|
|
1133
|
+
}
|
|
1134
|
+
const dependencies = stringArray(readMember(indexValue, 'dependencies'));
|
|
1135
|
+
if (dependencies)
|
|
1136
|
+
plan.index.dependencies = dependencies;
|
|
1137
|
+
const sortColumns = readMember(indexValue, 'sortColumns');
|
|
1138
|
+
if (sortColumns !== undefined) {
|
|
1139
|
+
if (!isJsonObject(sortColumns))
|
|
1140
|
+
throw new Error('Index sortColumns must be a literal object');
|
|
1141
|
+
plan.index.sortColumns = Object.fromEntries(Object.entries(sortColumns).map(([column, value]) => {
|
|
1142
|
+
const fields = stringArray(value);
|
|
1143
|
+
if (!fields?.length)
|
|
1144
|
+
throw new Error('Index sort columns must be a nonempty string array');
|
|
1145
|
+
return [column, fields];
|
|
1146
|
+
}));
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1018
1149
|
const filtersValue = readMember(value, "filters");
|
|
1019
1150
|
const filtersArgument = stringMember(filtersValue, "argument");
|
|
1020
1151
|
const filtersColumns = stringArray(readMember(filtersValue, "allowedColumns"));
|
|
@@ -1063,10 +1194,20 @@ function parseLiveExpression(value) {
|
|
|
1063
1194
|
const operator = stringMember(value, "operator");
|
|
1064
1195
|
if (!operator || ![
|
|
1065
1196
|
"eq", "neq", "gt", "gte", "lt", "lte", "in", "contains",
|
|
1066
|
-
"containsInsensitive", "range", "and", "or", "not", "server",
|
|
1197
|
+
"containsInsensitive", "range", "and", "or", "not", "server", "inRelation", "arrayContains",
|
|
1067
1198
|
].includes(operator))
|
|
1068
1199
|
return undefined;
|
|
1069
1200
|
const expression = { operator: operator };
|
|
1201
|
+
if (operator === 'inRelation') {
|
|
1202
|
+
const relation = readMember(value, 'relation');
|
|
1203
|
+
const table = stringMember(relation, 'table'), column = stringMember(relation, 'column');
|
|
1204
|
+
if (!table || !column)
|
|
1205
|
+
throw new Error('Related query scopes require a literal table and column');
|
|
1206
|
+
const where = parseLiveExpression(readMember(relation, 'where'));
|
|
1207
|
+
if (readMember(relation, 'where') !== undefined && !where)
|
|
1208
|
+
throw new Error('Invalid related query predicate');
|
|
1209
|
+
expression.relation = { table, column, ...(where ? { where } : {}) };
|
|
1210
|
+
}
|
|
1070
1211
|
const column = stringMember(value, "column");
|
|
1071
1212
|
if (column)
|
|
1072
1213
|
expression.column = column;
|
|
@@ -1085,6 +1226,12 @@ function parseLiveExpression(value) {
|
|
|
1085
1226
|
return expression;
|
|
1086
1227
|
}
|
|
1087
1228
|
function parseLiveValue(value) {
|
|
1229
|
+
const context = stringMember(value, 'context');
|
|
1230
|
+
if (context) {
|
|
1231
|
+
if (!['account.id', 'member.id', 'tenant.id'].includes(context))
|
|
1232
|
+
throw new Error('Invalid query identity context');
|
|
1233
|
+
return { context: context };
|
|
1234
|
+
}
|
|
1088
1235
|
const argument = stringMember(value, "argument");
|
|
1089
1236
|
if (argument)
|
|
1090
1237
|
return { argument };
|