@cello-protocol/client 0.0.21 → 0.0.22
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/client-send-helpers.d.ts +25 -0
- package/dist/client-send-helpers.d.ts.map +1 -0
- package/dist/client-send-helpers.js +118 -0
- package/dist/client-send-helpers.js.map +1 -0
- package/dist/client-startup.d.ts +74 -0
- package/dist/client-startup.d.ts.map +1 -0
- package/dist/client-startup.js +337 -0
- package/dist/client-startup.js.map +1 -0
- package/dist/client-wiring.d.ts +120 -0
- package/dist/client-wiring.d.ts.map +1 -0
- package/dist/client-wiring.js +289 -0
- package/dist/client-wiring.js.map +1 -0
- package/dist/client.d.ts +29 -169
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +222 -5396
- package/dist/client.js.map +1 -1
- package/dist/connection-inbound-handler.d.ts +47 -0
- package/dist/connection-inbound-handler.d.ts.map +1 -0
- package/dist/connection-inbound-handler.js +325 -0
- package/dist/connection-inbound-handler.js.map +1 -0
- package/dist/connection-manager.d.ts +191 -0
- package/dist/connection-manager.d.ts.map +1 -0
- package/dist/connection-manager.js +692 -0
- package/dist/connection-manager.js.map +1 -0
- package/dist/frame-dispatch.d.ts +28 -0
- package/dist/frame-dispatch.d.ts.map +1 -0
- package/dist/frame-dispatch.js +118 -0
- package/dist/frame-dispatch.js.map +1 -0
- package/dist/registration-manager.d.ts +54 -0
- package/dist/registration-manager.d.ts.map +1 -0
- package/dist/registration-manager.js +248 -0
- package/dist/registration-manager.js.map +1 -0
- package/dist/relay-stream-manager.d.ts +136 -0
- package/dist/relay-stream-manager.d.ts.map +1 -0
- package/dist/relay-stream-manager.js +834 -0
- package/dist/relay-stream-manager.js.map +1 -0
- package/dist/seal-manager.d.ts +133 -0
- package/dist/seal-manager.d.ts.map +1 -0
- package/dist/seal-manager.js +803 -0
- package/dist/seal-manager.js.map +1 -0
- package/dist/session-assignment-parser.d.ts +33 -0
- package/dist/session-assignment-parser.d.ts.map +1 -0
- package/dist/session-assignment-parser.js +149 -0
- package/dist/session-assignment-parser.js.map +1 -0
- package/dist/session-manager.d.ts +132 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +605 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/signaling-manager.d.ts +85 -0
- package/dist/signaling-manager.d.ts.map +1 -0
- package/dist/signaling-manager.js +597 -0
- package/dist/signaling-manager.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal-manager.js","sourceRoot":"","sources":["../src/seal-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAOnG,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;AAkCvD,MAAM,OAAO,WAAW;IACb,IAAI,CAAc;IAClB,mBAAmB,CAAS;IAErC,gFAAgF;IAEhF,0EAA0E;IACjE,mBAAmB,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE7D,mFAAmF;IAC1E,iBAAiB,GAAG,IAAI,GAAG,EAAoD,CAAC;IAEzF,kEAAkE;IACzD,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvD,sDAAsD;IAC7C,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpD,2FAA2F;IAC3F,6BAA6B,GAAsD,IAAI,CAAC;IAExF,uFAAuF;IACvF,gBAAgB,GAAsB,IAAI,CAAC;IAE3C,YAAY,GAAgB,EAAE,kBAA0B;QACtD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,CAAC;IAED,iFAAiF;IAEjF,kBAAkB,CAAC,MAAkB;QACnC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;IACjC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,uFAAuF;IACvF,iBAAiB,CAAC,YAAoB;QACpC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,6FAA6F;IAC7F,4BAA4B,CAAC,YAAoB;QAC/C,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,4BAA4B,CAAC,KAA8B;QACzD,IAAI,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC;YACnD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,YAAY,CAAC,YAAoB;QAC/B,wEAAwE;QACxE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,YAAoB;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QAEpF,6EAA6E;QAC7E,+EAA+E;QAC/E,kFAAkF;QAClF,wFAAwF;QACxF,sFAAsF;QACtF,sFAAsF;QACtF,0FAA0F;QAC1F,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC3D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9F,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YAC/D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,CAAC;gBACzD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;YACxD,CAAC;YACD,8EAA8E;YAC9E,uEAAuE;YACvE,qFAAqF;YACrF,uFAAuF;YACvF,yGAAyG;YACzG,MAAM,SAAS,GAAI,OAAyB,CAAC,MAAM,CAAC;YACpD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,eAAe,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;gBACxH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;YACjD,CAAC;YACD,IAAI,SAAS,KAAK,QAAQ;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QACjF,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,iCAAiC;QACjC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;QAE9B,sFAAsF;QACtF,iFAAiF;QACjF,wEAAwE;QACxE,sEAAsE;QACtE,kEAAkE;QAClE,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACjD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAC5C,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAC9C,CAAC;YAEF,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;YAE5C,oBAAoB;YACpB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAE9C,oEAAoE;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtC,uEAAuE;gBACvE,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;gBAC7B,kFAAkF;gBAClF,8EAA8E;gBAC9E,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACnE,IAAI,iBAAiB,EAAE,CAAC;oBACtB,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,SAAS,CAAC;gBACrD,CAAC;gBACD,uCAAuC;gBACvC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,sBAAsB,CAC1B,YAAoB;QAMpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QACrD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC3D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YAC/D,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,CAAC;gBACzD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;YACxD,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC;QAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAElD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC5B,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,WAAW;SAC1B,CAAe,CAAC;QAEjB,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAExE,MAAM,qBAAqB,GAAG,MAAM,CAAC;QACrC,IAAI,aAAwD,CAAC;QAC7D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAA0B;YAChE,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE;gBAC/C,IAAI,CAAC,6BAA6B,GAAG,OAAO,CAAC;YAC/C,CAAC,CAAC;YACF,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE;gBAC/C,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;oBAC1C,OAAO,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAChE,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAC5B,CAAC,CAAC;SACH,CAAC,CAAC;QACH,YAAY,CAAC,aAAa,CAAC,CAAC;QAE5B,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,2BAA2B,EAAE,CAAC;YAC1D,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,aAAa,YAAY,UAAU,CAAC,CAAC,CAAC,aAAa;gBACpE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAuB,CAAC;oBAC1E,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,OAAO,aAAa,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1G,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QACpE,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,2BAA2B,EAAE,CAAC;YAC1D,MAAM,gBAAgB,GAAG,OAAO,aAAa,CAAC,mBAAmB,CAAC,KAAK,QAAQ;gBAC7E,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;QACjF,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,aAAa,CAAC,QAAQ,CAAwB,IAAI,SAAS,EAAE,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,YAAoB,EACpB,OAAsB,EACtB,KAAgC;QAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACxD,CAAC;QAED,kGAAkG;QAClG,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;YACtD,CAAC,CAAC,OAAO,CAAC,iBAAiB;YAC3B,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,MAAM,GAAgB,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC9D,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,OAAO;iBAChB,CAAC,CAAC,CAAC;gBACJ,OAAO,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,iBAAiB,CAAC;YACpC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,SAAS;YACrB,eAAe;YACf,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QAEH,6EAA6E;QAC7E,MAAM,WAAW,GAAG,IAAI,UAAU,CAChC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CACjF,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAG,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEtD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC1B,CAAC;YACD,WAAW;YACX,aAAa;YACb,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,aAAa;YACrB,eAAe;SAChB,CAAe,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAExD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;YACtC,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,GAAG;YACpB,gBAAgB,EAAE,SAAS;SAC5B,CAAe,CAAC;QAEjB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,cAAc,EAAE;YAChE,aAAa,EAAE,WAAW;YAC1B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACxD,CAAC;QACD,IAAI,UAA+F,CAAC;QACpG,MAAM,UAAU,GAAG,IAAI,OAAO,CAC5B,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;YACrE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAE5D,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;QAElC,6EAA6E;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACnC,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,CAAC;QAED,oBAAoB;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAE3F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,gFAAgF;IAEhF,4BAA4B,CAC1B,YAAoB,EACpB,KAA8B,EAC9B,eAA2B;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAE9C,uEAAuE;QACvE,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACnC,iEAAiE;YACjE,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC/G,OAAO;YACT,CAAC;YACD,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;gBAC9B,kCAAkC;gBAClC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,iGAAiG;IACjG,mBAAmB,CACjB,YAAoB,EACpB,KAA8B,EAC9B,eAA2B,EAC3B,OAAsB;QAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,YAAY,UAAU,CAAC,CAAC,CAAC,aAAa;YACpE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5G,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM;YACrD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO;QACpD,IAAI,cAAc,KAAK,IAAI;YAAE,OAAO;QACpC,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;YAC9B,6DAA6D;YAC7D,qFAAqF;YACrF,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,WAAW,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW;gBAC9D,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChF,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAG,eAAe,YAAY,UAAU,CAAC,CAAC,CAAC,eAAe;gBAC1E,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,eAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO;YAChD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO;YAExD,2FAA2F;YAC3F,8CAA8C;YAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,iBAAiB,EAAE,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACnF,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAE3E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,qBAAqB,EAAE,YAAY,CAAC,EAAE,CAAC;gBAC9E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC5G,OAAO;YACT,CAAC;YAED,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;YAC1B,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;YACjC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC;YACnC,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC;YACrC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;YAC5B,OAAO,CAAC,eAAe,GAAG,cAAc,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC5C,+BAA+B;YAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAClE,0EAA0E;YAC1E,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,4EAA4E;YAC5E,MAAM,SAAS,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,SAAS,YAAY,UAAU,CAAC,CAAC,CAAC,SAAS;gBACxD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,SAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5E,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO;YAE5C,0EAA0E;YAC1E,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC1B,SAAS;gBACT,UAAU;gBACV,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc;aACtE,CAAe,CAAC;YAEjB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;gBACvF,OAAO;YACT,CAAC;YAED,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;YAC1B,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;YACjC,OAAO,CAAC,mBAAmB,GAAG,MAAM,CAAC;YACrC,OAAO,CAAC,eAAe,GAAG,cAAc,CAAC;YACzC,+BAA+B;YAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAClE,0EAA0E;YAC1E,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAChF,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;IACjD,CAAC;IAED,kCAAkC;IAClC,kBAAkB,CAChB,YAAoB,EACpB,KAA8B,EAC9B,OAAsB;QAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,YAAY,UAAU,CAAC,CAAC,CAAC,aAAa;YACpE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW;YAC9D,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,eAAe,YAAY,UAAU,CAAC,CAAC,CAAC,eAAe;YAC1E,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,eAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5G,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM;YACrD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACzC,mFAAmF;QACnF,oFAAoF;QACpF,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY;YAC/D,CAAC,CAAC,CAAC,iBAAiB,EAAE,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,sBAAsB,GAAG,cAAc,IAAI,iBAAiB,EAAE,SAAS,IAAI,IAAI,CAAC;QAEtF,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO;QACpD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO;QAChD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO;QACxD,IAAI,sBAAsB,KAAK,IAAI;YAAE,OAAO;QAC5C,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEnF,8BAA8B;QAC9B,4FAA4F;QAC5F,oFAAoF;QACpF,8FAA8F;QAC9F,qEAAqE;QACrE,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,SAAqB,CAAC;QAC1B,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YACD,SAAS,GAAG,eAAe,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,YAAY,CAAC;QAC3B,CAAC;QAED,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,qBAAqB,EAAE,SAAS,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACrG,OAAO;QACT,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1B,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;QACjC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC;QACnC,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC;QACrC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QAC5B,OAAO,CAAC,eAAe,GAAG,sBAAsB,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,+BAA+B;QAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClE,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;QAEtF,gFAAgF;QAChF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;IACjD,CAAC;IAED,kCAAkC,CAAC,YAAoB,EAAE,MAA+B;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC;QACjC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClE,iGAAiG;QACjG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,8BAA8B,CAAC,YAAoB,EAAE,KAA8B;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,cAAc,GAAG,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,MAAM,cAAc,GAAG,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErG,2EAA2E;QAC3E,mGAAmG;QACnG,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAE/D,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;YAChC,iFAAiF;YACjF,OAAO;QACT,CAAC;QAED,6DAA6D;QAC7D,MAAM,OAAO,GAAG,aAAa,GAAG,UAAU,CAAC;QAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEtG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YACtD,SAAS,EAAE,YAAY;YACvB,OAAO;YACP,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,aAAa;YACzB,aAAa;SACd,CAAC,CAAC;QAEH,KAAK,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IACtG,CAAC;IAED;;;OAGG;IACH,6BAA6B,CAAC,YAAoB,EAAE,KAA8B;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,YAAY,UAAU,CAAC,CAAC,CAAC,aAAa;YACpE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpF,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1B,IAAI,UAAU;YAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;QACjD,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;QACjC,OAAO,CAAC,eAAe,GAAG,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACnG,+BAA+B;QAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACtC,SAAS,EAAE,YAAY;YACvB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1E,aAAa;SACd,CAAC,CAAC;QAEH,0EAA0E;QAC1E,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,6FAA6F;QAC7F,8FAA8F;QAC9F,4FAA4F;QAC5F,8FAA8F;QAC9F,kFAAkF;QAClF,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,gCAAgC,CAAC,YAAoB,EAAE,KAA8B;QACnF,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,qFAAqF;YACrF,8EAA8E;YAC9E,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,YAAY,YAAY,UAAU,CAAC,CAAC,CAAC,YAAY;gBACjE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,YAAsB,CAAC;oBACxE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACrC,4FAA4F;YAC5F,2FAA2F;YAC3F,0FAA0F;YAC1F,MAAM,IAAI,GAAkB;gBAC1B,UAAU,EAAE,SAAS;gBACrB,mBAAmB,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;gBACvC,oBAAoB,EAAE,EAAE;gBACxB,uBAAuB,EAAE,EAAE;gBAC3B,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC/C,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;gBACnD,gBAAgB,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;gBACpC,iBAAiB,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;gBACrC,aAAa,EAAE,CAAC;gBAChB,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,YAAY;gBACvB,iBAAiB,EAAE,EAAE;gBACrB,iBAAiB,EAAE,CAAC;gBACpB,cAAc,EAAE,KAAK;aACtB,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,YAAY,UAAU,CAAC,CAAC,CAAC,aAAa;YACpE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpF,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1B,IAAI,UAAU;YAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;QACjD,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;QACjC,OAAO,CAAC,eAAe,GAAG,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACnG,+BAA+B;QAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAElE,0EAA0E;QAC1E,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,eAAgB,CAAC,CAAC;QAC1F,CAAC;QAED,wDAAwD;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,uFAAuF;YACvF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBACzD,SAAS,EAAE,YAAY;gBACvB,aAAa,EAAE,YAAY;aAC5B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAE3F,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACnD,SAAS,EAAE,YAAY;gBACvB,KAAK,EAAE,IAAI;gBACX,aAAa,EAAE,YAAY;aAC5B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACnD,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACjD,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;gBACzE,aAAa,EAAE,YAAY;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAsB;QACrC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,OAAsB;QACtC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtF,MAAM,UAAU,GAAgB,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,OAAO;SAChB,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,YAAoB,EAAE,KAA8B;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAI,CAAC,eAAe;YAAE,OAAO,CAAC,mCAAmC;QAEjE,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,YAAY,UAAU,CAAC,CAAC,CAAC,aAAa;YACpE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM;YACrD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvG,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO;QAElF,yFAAyF;QACzF,gEAAgE;QAChE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,+EAA+E;QAC/E,8DAA8D;QAC9D,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEtE,wDAAwD;QACxD,MAAM,UAAU,GAAG,QAAQ,YAAY,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAClD,UAAU,EACV,GAAG,EACH,qBAAqB,CACtB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;YACzE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,mEAAmE;YACnE,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,wFAAwF;QACxF,6FAA6F;QAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACrH,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC;YACxC,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,SAAS;YACrB,eAAe,EAAE,MAAM,CAAC,SAAS;SAClC,CAAe,CAAC;QAEjB,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CACzB,MAAc,EACd,KAA8B;QAE9B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,0CAA0C,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1I,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,qFAAqF,EAAE,CAAC,CAAC;YACnJ,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAuB,CAAC;YAC9D,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACxH,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAuB,CAAC;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM;YAC/C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAuB,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,qCAAqC,UAAU,EAAE,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,YAAY,OAAO,EAAE,EAAE,CAAC,CAAC;QAEjM,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,0DAA0D,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACxK,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,sDAAsD,EAAE,CAAC,CAAC;YACpH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,qBAAqB,CACxD,UAAU,EACV,GAAG,EACH,OAAuE,CACxE,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,4DAA4D,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAE,MAAwC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAE5N,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3C,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;aAC5C,CAAC,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,wCAAwC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3G,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3C,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CAAC,YAAoB,EAAE,KAA8B;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,YAAY,UAAU,CAAC,CAAC,CAAC,aAAa;YACpE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW;YAC9D,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,eAAe,YAAY,UAAU,CAAC,CAAC,CAAC,eAAe;YAC1E,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,eAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM;YACrD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtE,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5E,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO;QAChD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO;QAExD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,uFAAuF;QACvF,kFAAkF;QAClF,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,iBAAiB,EAAE,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACnF,4FAA4F;QAC5F,oFAAoF;QACpF,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,iBAAiB,EAAE,SAAS,CAAC;QAC/E,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAE3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,SAAqB,CAAC;QAC1B,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC9C,IAAI,CAAC,eAAe;gBAAE,OAAO;YAC7B,SAAS,GAAG,eAAe,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,YAAY,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,qBAAqB,EAAE,SAAS,CAAC,EAAE,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,iDAAiD;QACjD,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1B,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;QACjC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC;QACnC,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC;QACrC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QAC5B,+BAA+B;QAC/B,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADAPTER-003: Session assignment frame parsing helpers.
|
|
3
|
+
*
|
|
4
|
+
* Decodes raw CBOR-decoded objects into typed protocol structures.
|
|
5
|
+
* No @cello-protocol/directory import needed — fields are validated by
|
|
6
|
+
* shape only, after cbor-x decoding of the outer frame.
|
|
7
|
+
*/
|
|
8
|
+
import type { SessionAssignment } from "@cello-protocol/protocol-types";
|
|
9
|
+
import type { InitiateSessionResult } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Decode a raw CBOR-decoded object (from frame["assignment"]) into a typed SessionAssignment.
|
|
12
|
+
* Returns null if any required field is missing or malformed.
|
|
13
|
+
*
|
|
14
|
+
* Wire shape (from encodeSessionAssignment in directory-frames.ts):
|
|
15
|
+
* {
|
|
16
|
+
* session_id: Uint8Array (16),
|
|
17
|
+
* participant_a: { pubkey: Uint8Array (32), peer_id: string, multiaddrs: string[] },
|
|
18
|
+
* participant_b: { pubkey: Uint8Array (32), peer_id: string, multiaddrs: string[] },
|
|
19
|
+
* relay_endpoint: { peer_id: string, multiaddrs: string[] },
|
|
20
|
+
* directory_endpoint: { peer_id: string, multiaddrs: string[] },
|
|
21
|
+
* session_timestamp: number,
|
|
22
|
+
* directory_pubkey: Uint8Array (32),
|
|
23
|
+
* directory_signature: Uint8Array (64),
|
|
24
|
+
* }
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseSessionAssignment(raw: Record<string, unknown>): SessionAssignment | null;
|
|
27
|
+
/**
|
|
28
|
+
* Map a raw decoded session_request_error frame to an InitiateSessionResult.
|
|
29
|
+
* Exported for direct unit testing (AC-005, AC-006).
|
|
30
|
+
* The frame must have type === "session_request_error".
|
|
31
|
+
*/
|
|
32
|
+
export declare function mapSessionRequestErrorFrame(frame: Record<string, unknown>): InitiateSessionResult;
|
|
33
|
+
//# sourceMappingURL=session-assignment-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-assignment-parser.d.ts","sourceRoot":"","sources":["../src/session-assignment-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQxD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAyD7F;AA8BD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,qBAAqB,CAYvB"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADAPTER-003: Session assignment frame parsing helpers.
|
|
3
|
+
*
|
|
4
|
+
* Decodes raw CBOR-decoded objects into typed protocol structures.
|
|
5
|
+
* No @cello-protocol/directory import needed — fields are validated by
|
|
6
|
+
* shape only, after cbor-x decoding of the outer frame.
|
|
7
|
+
*/
|
|
8
|
+
function toU8Safe(v) {
|
|
9
|
+
if (v instanceof Uint8Array)
|
|
10
|
+
return v;
|
|
11
|
+
if (Buffer.isBuffer(v))
|
|
12
|
+
return new Uint8Array(v);
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Decode a raw CBOR-decoded object (from frame["assignment"]) into a typed SessionAssignment.
|
|
17
|
+
* Returns null if any required field is missing or malformed.
|
|
18
|
+
*
|
|
19
|
+
* Wire shape (from encodeSessionAssignment in directory-frames.ts):
|
|
20
|
+
* {
|
|
21
|
+
* session_id: Uint8Array (16),
|
|
22
|
+
* participant_a: { pubkey: Uint8Array (32), peer_id: string, multiaddrs: string[] },
|
|
23
|
+
* participant_b: { pubkey: Uint8Array (32), peer_id: string, multiaddrs: string[] },
|
|
24
|
+
* relay_endpoint: { peer_id: string, multiaddrs: string[] },
|
|
25
|
+
* directory_endpoint: { peer_id: string, multiaddrs: string[] },
|
|
26
|
+
* session_timestamp: number,
|
|
27
|
+
* directory_pubkey: Uint8Array (32),
|
|
28
|
+
* directory_signature: Uint8Array (64),
|
|
29
|
+
* }
|
|
30
|
+
*/
|
|
31
|
+
export function parseSessionAssignment(raw) {
|
|
32
|
+
const sessionId = toU8Safe(raw["session_id"]);
|
|
33
|
+
if (!sessionId || sessionId.length !== 16)
|
|
34
|
+
return null;
|
|
35
|
+
const dirPubkey = toU8Safe(raw["directory_pubkey"]);
|
|
36
|
+
if (!dirPubkey || dirPubkey.length !== 32)
|
|
37
|
+
return null;
|
|
38
|
+
const dirSig = toU8Safe(raw["directory_signature"]);
|
|
39
|
+
if (!dirSig || dirSig.length !== 64)
|
|
40
|
+
return null;
|
|
41
|
+
const tsRaw = raw["session_timestamp"];
|
|
42
|
+
const sessionTimestamp = typeof tsRaw === "number" ? tsRaw
|
|
43
|
+
: typeof tsRaw === "bigint" ? Number(tsRaw) : null;
|
|
44
|
+
if (sessionTimestamp === null)
|
|
45
|
+
return null;
|
|
46
|
+
const participantA = parseParticipantInfo(raw["participant_a"]);
|
|
47
|
+
if (!participantA)
|
|
48
|
+
return null;
|
|
49
|
+
const participantB = parseParticipantInfo(raw["participant_b"]);
|
|
50
|
+
if (!participantB)
|
|
51
|
+
return null;
|
|
52
|
+
const relayEndpoint = parseEndpointInfo(raw["relay_endpoint"]);
|
|
53
|
+
if (!relayEndpoint)
|
|
54
|
+
return null;
|
|
55
|
+
const directoryEndpoint = parseEndpointInfo(raw["directory_endpoint"]);
|
|
56
|
+
if (!directoryEndpoint)
|
|
57
|
+
return null;
|
|
58
|
+
const sigType = typeof raw["signature_type"] === "string" ? raw["signature_type"] : "single";
|
|
59
|
+
if (sigType === "frost") {
|
|
60
|
+
const signerPubkey = toU8Safe(raw["signer_pubkey"]);
|
|
61
|
+
if (!signerPubkey || signerPubkey.length !== 32)
|
|
62
|
+
return null;
|
|
63
|
+
return {
|
|
64
|
+
session_id: sessionId,
|
|
65
|
+
participant_a: participantA,
|
|
66
|
+
participant_b: participantB,
|
|
67
|
+
relay_endpoint: relayEndpoint,
|
|
68
|
+
directory_endpoint: directoryEndpoint,
|
|
69
|
+
session_timestamp: sessionTimestamp,
|
|
70
|
+
directory_pubkey: dirPubkey,
|
|
71
|
+
directory_signature: dirSig,
|
|
72
|
+
signature_type: "frost",
|
|
73
|
+
signer_pubkey: signerPubkey,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
session_id: sessionId,
|
|
78
|
+
participant_a: participantA,
|
|
79
|
+
participant_b: participantB,
|
|
80
|
+
relay_endpoint: relayEndpoint,
|
|
81
|
+
directory_endpoint: directoryEndpoint,
|
|
82
|
+
session_timestamp: sessionTimestamp,
|
|
83
|
+
directory_pubkey: dirPubkey,
|
|
84
|
+
directory_signature: dirSig,
|
|
85
|
+
signature_type: "single",
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function parseParticipantInfo(raw) {
|
|
89
|
+
if (typeof raw !== "object" || raw === null)
|
|
90
|
+
return null;
|
|
91
|
+
const r = raw;
|
|
92
|
+
const pubkey = toU8Safe(r["pubkey"]);
|
|
93
|
+
if (!pubkey || pubkey.length !== 32)
|
|
94
|
+
return null;
|
|
95
|
+
const peerId = typeof r["peer_id"] === "string" ? r["peer_id"] : null;
|
|
96
|
+
if (!peerId)
|
|
97
|
+
return null;
|
|
98
|
+
const multiaddrs = parseStringArray(r["multiaddrs"]);
|
|
99
|
+
if (!multiaddrs)
|
|
100
|
+
return null;
|
|
101
|
+
return { pubkey, peer_id: peerId, multiaddrs };
|
|
102
|
+
}
|
|
103
|
+
function parseEndpointInfo(raw) {
|
|
104
|
+
if (typeof raw !== "object" || raw === null)
|
|
105
|
+
return null;
|
|
106
|
+
const r = raw;
|
|
107
|
+
const peerId = typeof r["peer_id"] === "string" ? r["peer_id"] : null;
|
|
108
|
+
if (!peerId)
|
|
109
|
+
return null;
|
|
110
|
+
const multiaddrs = parseStringArray(r["multiaddrs"]);
|
|
111
|
+
if (!multiaddrs)
|
|
112
|
+
return null;
|
|
113
|
+
return { peer_id: peerId, multiaddrs };
|
|
114
|
+
}
|
|
115
|
+
function parseStringArray(v) {
|
|
116
|
+
if (!Array.isArray(v))
|
|
117
|
+
return null;
|
|
118
|
+
if (!v.every((x) => typeof x === "string"))
|
|
119
|
+
return null;
|
|
120
|
+
return v;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Map a raw decoded session_request_error frame to an InitiateSessionResult.
|
|
124
|
+
* Exported for direct unit testing (AC-005, AC-006).
|
|
125
|
+
* The frame must have type === "session_request_error".
|
|
126
|
+
*/
|
|
127
|
+
export function mapSessionRequestErrorFrame(frame) {
|
|
128
|
+
const reason = frame["reason"];
|
|
129
|
+
if (reason === "target_offline")
|
|
130
|
+
return { ok: false, reason: "target_offline" };
|
|
131
|
+
if (reason === "relay_unavailable")
|
|
132
|
+
return { ok: false, reason: "relay_unavailable" };
|
|
133
|
+
if (reason === "frost_signer_not_configured")
|
|
134
|
+
return { ok: false, reason: "frost_signer_not_configured" };
|
|
135
|
+
if (reason === "directory_below_threshold")
|
|
136
|
+
return { ok: false, reason: "directory_below_threshold" };
|
|
137
|
+
if (reason === "ceremony_timeout")
|
|
138
|
+
return { ok: false, reason: "ceremony_timeout" };
|
|
139
|
+
if (reason === "ceremony_exhausted")
|
|
140
|
+
return { ok: false, reason: "ceremony_exhausted" };
|
|
141
|
+
if (reason === "ceremony_conflict")
|
|
142
|
+
return { ok: false, reason: "ceremony_conflict" };
|
|
143
|
+
if (reason === "no_connection")
|
|
144
|
+
return { ok: false, reason: "no_connection" };
|
|
145
|
+
if (reason === "connection_id_required")
|
|
146
|
+
return { ok: false, reason: "no_connection" };
|
|
147
|
+
return { ok: false, reason: "directory_unreachable" };
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=session-assignment-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-assignment-parser.js","sourceRoot":"","sources":["../src/session-assignment-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionManager — SESSION-002, MSG-004, SESSION-007
|
|
3
|
+
*
|
|
4
|
+
* Extracted from CelloClientImpl. Owns the complete session lifecycle:
|
|
5
|
+
* - Session assignment acceptance (receiveSessionAssignment)
|
|
6
|
+
* - Outbound message sending (sendMessage, #sendMessageLocked)
|
|
7
|
+
* - Content delivery (sendContentFrame, waitForOwnEcho)
|
|
8
|
+
* - Inbound message queuing (enqueueReceivedMessage, enqueueSessionSealedEvent)
|
|
9
|
+
* - Async blocking receive (receiveSessionMessageAsync, receiveMessageAsync)
|
|
10
|
+
* - Session listing (listSessions)
|
|
11
|
+
*
|
|
12
|
+
* State owned here (not in facade):
|
|
13
|
+
* - #sessions: SessionRecord map
|
|
14
|
+
* - #sessionMessageQueues + #anyMessageQueue: inbound message queues
|
|
15
|
+
* - #receiveWaiters + #receiveAnyWaiters: async-receive wake resolvers
|
|
16
|
+
* - #outboundQueues: per-session send serialization chains
|
|
17
|
+
* - #pendingAckResolvers: in-flight ack resolvers
|
|
18
|
+
* - #ownEchoResolvers: echo wait resolvers (set by relay reader, resolved here)
|
|
19
|
+
* - #ownPendingContent: pre-buffered own sends (keyed by content_hash_hex)
|
|
20
|
+
* - #contentHandlerRegistered: content stream protocol guard
|
|
21
|
+
* - #onSessionAssignmentHandler: inbound session callback
|
|
22
|
+
*/
|
|
23
|
+
import type { IThresholdSigner, KeyProvider } from "@cello-protocol/crypto";
|
|
24
|
+
import type { CelloNode } from "@cello-protocol/transport";
|
|
25
|
+
import type { Stream } from "@libp2p/interface";
|
|
26
|
+
import type { SessionAssignment } from "@cello-protocol/protocol-types";
|
|
27
|
+
import type { SessionRecord, ReceivedMessage, SendMessageResult, SessionAssignmentEvent, ReceiveAssignmentResult } from "./types.js";
|
|
28
|
+
import type { Logger } from "@cello-protocol/interfaces";
|
|
29
|
+
import type { ClientStatePersistence } from "./client-state-persistence.js";
|
|
30
|
+
/**
|
|
31
|
+
* Narrow interface exposing only what SessionManager needs from the facade
|
|
32
|
+
* and from other managers.
|
|
33
|
+
*/
|
|
34
|
+
export interface SessionContext {
|
|
35
|
+
readonly logger: Logger;
|
|
36
|
+
readonly persistence: ClientStatePersistence | null;
|
|
37
|
+
readonly keyProvider: KeyProvider;
|
|
38
|
+
readonly node: CelloNode;
|
|
39
|
+
getMyPubkeyHex(): string | null;
|
|
40
|
+
setMyPubkeyHex(hex: string): void;
|
|
41
|
+
getThresholdSigner(): IThresholdSigner | undefined;
|
|
42
|
+
getPersistentSignalingStream(): Stream | null;
|
|
43
|
+
initRelaySession(sessionIdHex: string): void;
|
|
44
|
+
runRelayStreamReader(sessionIdHex: string, stream: Stream, myPubkeyHex: string, iter: AsyncIterator<Uint8Array>): void;
|
|
45
|
+
performRelayAuth(stream: Stream, myPubkey: Uint8Array): Promise<{
|
|
46
|
+
ok: true;
|
|
47
|
+
iter: AsyncIterator<Uint8Array>;
|
|
48
|
+
} | {
|
|
49
|
+
ok: false;
|
|
50
|
+
reason: "relay_auth_failed" | "relay_auth_error";
|
|
51
|
+
}>;
|
|
52
|
+
handleContentStream(stream: Stream): void;
|
|
53
|
+
connectDirectorySignalingStream(sessionIdHex: string, assignment: SessionAssignment, myPubkey: Uint8Array): Promise<void>;
|
|
54
|
+
getRelayStream(sessionIdHex: string): Stream | undefined;
|
|
55
|
+
}
|
|
56
|
+
export declare class SessionManager {
|
|
57
|
+
#private;
|
|
58
|
+
constructor(ctx: SessionContext);
|
|
59
|
+
getSession(sessionIdHex: string): SessionRecord | undefined;
|
|
60
|
+
getSessions(): Map<string, SessionRecord>;
|
|
61
|
+
setSession(sessionIdHex: string, record: SessionRecord): void;
|
|
62
|
+
deleteSession(sessionIdHex: string): void;
|
|
63
|
+
getOutboundQueue(sessionIdHex: string): Promise<void> | undefined;
|
|
64
|
+
setOutboundQueue(sessionIdHex: string, queue: Promise<void>): void;
|
|
65
|
+
deleteOutboundQueue(sessionIdHex: string): void;
|
|
66
|
+
getPendingAckResolver(sessionIdHex: string): ((ack: {
|
|
67
|
+
ok: true;
|
|
68
|
+
sequence_number: number;
|
|
69
|
+
} | {
|
|
70
|
+
ok: false;
|
|
71
|
+
reason: string;
|
|
72
|
+
}) => void) | undefined;
|
|
73
|
+
setPendingAckResolver(sessionIdHex: string, resolve: (ack: {
|
|
74
|
+
ok: true;
|
|
75
|
+
sequence_number: number;
|
|
76
|
+
} | {
|
|
77
|
+
ok: false;
|
|
78
|
+
reason: string;
|
|
79
|
+
}) => void): void;
|
|
80
|
+
deletePendingAckResolver(sessionIdHex: string): void;
|
|
81
|
+
getOwnEchoResolvers(sessionIdHex: string): Map<number, () => void> | undefined;
|
|
82
|
+
initOwnEchoResolvers(sessionIdHex: string): void;
|
|
83
|
+
deleteOwnEchoResolvers(sessionIdHex: string): void;
|
|
84
|
+
getOwnPendingContent(sessionIdHex: string): Map<string, {
|
|
85
|
+
content_bytes: Uint8Array;
|
|
86
|
+
arrived_at: number;
|
|
87
|
+
}> | undefined;
|
|
88
|
+
initOwnPendingContent(sessionIdHex: string): void;
|
|
89
|
+
deleteOwnPendingContent(sessionIdHex: string): void;
|
|
90
|
+
getSessionMessageQueue(sessionIdHex: string): ReceivedMessage[] | undefined;
|
|
91
|
+
deleteSessionMessageQueue(sessionIdHex: string): void;
|
|
92
|
+
/** Initialize the message queue for a session (called from loadPersistedState). */
|
|
93
|
+
initSessionMessageQueue(sessionIdHex: string): void;
|
|
94
|
+
getAnyMessageQueue(): Array<{
|
|
95
|
+
sessionIdHex: string;
|
|
96
|
+
message: ReceivedMessage;
|
|
97
|
+
}>;
|
|
98
|
+
setOnSessionAssignmentHandler(handler: (event: SessionAssignmentEvent) => void): void;
|
|
99
|
+
/**
|
|
100
|
+
* Clean up all per-session state owned by SessionManager.
|
|
101
|
+
* Called by facade.closeSession — companion to RelayStreamManager.closeSession and SealManager.closeSession.
|
|
102
|
+
*/
|
|
103
|
+
closeSession(sessionIdHex: string): void;
|
|
104
|
+
enqueueReceivedMessage(sessionIdHex: string, message: ReceivedMessage): void;
|
|
105
|
+
/**
|
|
106
|
+
* Process a SessionAssignment pushed by the directory.
|
|
107
|
+
* SESSION-002 AC-002, AC-003, AC-004, AC-005, SI-003.
|
|
108
|
+
*
|
|
109
|
+
* Crypto refs:
|
|
110
|
+
* Ed25519 verification: RFC 8032
|
|
111
|
+
* SHA-256: FIPS 180-4
|
|
112
|
+
*/
|
|
113
|
+
receiveSessionAssignment(assignment: SessionAssignment, myPubkey: Uint8Array): Promise<ReceiveAssignmentResult>;
|
|
114
|
+
listSessions(): SessionRecord[];
|
|
115
|
+
sendMessage(sessionIdHex: string, content: Uint8Array): Promise<SendMessageResult>;
|
|
116
|
+
sendContentFrame(session: SessionRecord, content: Uint8Array, contentHash: Uint8Array): Promise<void>;
|
|
117
|
+
waitForOwnEcho(sessionIdHex: string, seqNum: number): Promise<void>;
|
|
118
|
+
receiveMessage(sessionIdHex: string): ReceivedMessage | null;
|
|
119
|
+
receiveAnyMessage(): {
|
|
120
|
+
sessionIdHex: string;
|
|
121
|
+
message: ReceivedMessage;
|
|
122
|
+
} | null;
|
|
123
|
+
wakeReceiveWaiters(sessionIdHex: string): void;
|
|
124
|
+
receiveSessionMessageAsync(sessionIdHex: string, timeoutMs: number): Promise<ReceivedMessage | null>;
|
|
125
|
+
receiveMessageAsync(timeoutMs: number): Promise<(ReceivedMessage & {
|
|
126
|
+
sessionIdHex: string;
|
|
127
|
+
}) | {
|
|
128
|
+
type: "timeout";
|
|
129
|
+
}>;
|
|
130
|
+
enqueueSessionSealedEvent(sessionIdHex: string, sealedRoot: Uint8Array, closeTimestamp: number): void;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|