From a0d791ddadc68236b76786a82ad5928e17fc164d Mon Sep 17 00:00:00 2001 From: cuixiaorui Date: Wed, 12 Jan 2022 18:41:53 +0800 Subject: [PATCH] feat(compile-core): support element and interpolation --- example/compiler-base/App.js | 16 +++++++++- example/compiler-base/index.html | 2 ++ lib/mini-vue.cjs.js | 30 ++++++++++++++++- lib/mini-vue.cjs.js.map | 2 +- lib/mini-vue.esm.js | 31 ++++++++++++++++-- lib/mini-vue.esm.js.map | 2 +- src/compiler-core/__tests__/codegen.spec.ts | 14 +++++++- src/compiler-core/src/codegen.ts | 32 ++++++++++++++++++- src/compiler-core/src/compile.ts | 3 +- src/compiler-core/src/runtimeHelpers.ts | 2 ++ .../src/transforms/transformElement.ts | 9 ++++++ src/runtime-core/index.ts | 2 +- src/runtime-core/vnode.ts | 2 ++ 13 files changed, 137 insertions(+), 10 deletions(-) create mode 100644 src/compiler-core/src/transforms/transformElement.ts diff --git a/example/compiler-base/App.js b/example/compiler-base/App.js index 7b1b2ce..e904991 100644 --- a/example/compiler-base/App.js +++ b/example/compiler-base/App.js @@ -1,5 +1,19 @@ +// 最简单的情况 +// template 只有一个 interpolation +// export default { +// template: `{{msg}}`, +// setup() { +// return { +// msg: "vue3 - compiler", +// }; +// }, +// }; + + +// 复杂一点 +// template 包含 element 和 interpolation export default { - template: `{{msg}}`, + template: `

{{msg}}

`, setup() { return { msg: "vue3 - compiler", diff --git a/example/compiler-base/index.html b/example/compiler-base/index.html index 0900434..f26bf5a 100644 --- a/example/compiler-base/index.html +++ b/example/compiler-base/index.html @@ -13,6 +13,8 @@ const rootContainer = document.querySelector("#app"); createApp(App).mount(rootContainer); + + diff --git a/lib/mini-vue.cjs.js b/lib/mini-vue.cjs.js index a196612..b4ef9fd 100644 --- a/lib/mini-vue.cjs.js +++ b/lib/mini-vue.cjs.js @@ -1114,6 +1114,7 @@ var runtimeDom = /*#__PURE__*/Object.freeze({ provide: provide, renderSlot: renderSlot, createTextVNode: createTextVNode, + createElementVNode: createVNode, createRenderer: createRenderer, toDisplayString: toDisplayString, h: h, @@ -1121,8 +1122,10 @@ var runtimeDom = /*#__PURE__*/Object.freeze({ }); const TO_DISPLAY_STRING = Symbol(`toDisplayString`); +const CREATE_ELEMENT_VNODE = Symbol("createElementVNode"); const helperNameMap = { [TO_DISPLAY_STRING]: "toDisplayString", + [CREATE_ELEMENT_VNODE]: "createElementVNode" }; function generate(ast, options = {}) { @@ -1166,8 +1169,26 @@ function genNode(node, context) { case 3: genExpression(node, context); break; + case 4: + genElement(node, context); + break; + case 0: + genText(node, context); + break; } } +function genText(node, context) { + const { push } = context; + push(`'${node.content}'+`); +} +function genElement(node, context) { + const { push, helper } = context; + push(`${helper(CREATE_ELEMENT_VNODE)}("${node.tag}", {}, `); + node.children.forEach((n) => { + genNode(n, context); + }); + push(`)`); +} function genExpression(node, context) { context.push(node.content, node); } @@ -1390,10 +1411,16 @@ function processExpression(node) { return node; } +function transformElement(node, context) { + if (node.type === 4) { + context.helper(CREATE_ELEMENT_VNODE); + } +} + function baseCompile(template, options) { const ast = baseParse(template); transform(ast, Object.assign(options, { - nodeTransforms: [transformExpression], + nodeTransforms: [transformExpression, transformElement], })); return generate(ast); } @@ -1408,6 +1435,7 @@ registerRuntimeCompiler(compileToFunction); exports.computed = computed; exports.createApp = createApp; exports.createAppAPI = createAppAPI; +exports.createElementVNode = createVNode; exports.createRenderer = createRenderer; exports.createTextVNode = createTextVNode; exports.effect = effect; diff --git a/lib/mini-vue.cjs.js.map b/lib/mini-vue.cjs.js.map index 51ece42..a9266b1 100644 --- a/lib/mini-vue.cjs.js.map +++ b/lib/mini-vue.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"mini-vue.cjs.js","sources":["../src/mini-core/LanguageTranslator.ts","../src/mini-core/Debug.ts","../src/mini-core/index.ts","../src/shared/shapeFlags.ts","../src/shared/toDisplayString.ts","../src/shared/index.ts","../src/runtime-core/vnode.ts","../src/runtime-core/h.ts","../src/runtime-core/createApp.ts","../src/runtime-core/componentProps.ts","../src/runtime-core/componentSlots.ts","../src/runtime-core/componentEmits.ts","../src/runtime-core/componentPublicInstance.ts","../src/reactivity/src/dep.ts","../src/reactivity/src/effect.ts","../src/reactivity/src/baseHandlers.ts","../src/reactivity/src/reactive.ts","../src/reactivity/src/ref.ts","../src/reactivity/src/computed.ts","../src/runtime-core/component.ts","../src/runtime-core/apiInject.ts","../src/runtime-core/helpers/renderSlot.ts","../src/runtime-core/scheduler.ts","../src/runtime-core/componentRenderUtils.ts","../src/runtime-core/renderer.ts","../src/runtime-dom/index.ts","../src/compiler-core/src/runtimeHelpers.ts","../src/compiler-core/src/codegen.ts","../src/compiler-core/src/parse.ts","../src/compiler-core/src/transform.ts","../src/compiler-core/src/transforms/transformExpression.ts","../src/compiler-core/src/compile.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["debug"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"mini-vue.cjs.js","sources":["../src/mini-core/LanguageTranslator.ts","../src/mini-core/Debug.ts","../src/mini-core/index.ts","../src/shared/shapeFlags.ts","../src/shared/toDisplayString.ts","../src/shared/index.ts","../src/runtime-core/vnode.ts","../src/runtime-core/h.ts","../src/runtime-core/createApp.ts","../src/runtime-core/componentProps.ts","../src/runtime-core/componentSlots.ts","../src/runtime-core/componentEmits.ts","../src/runtime-core/componentPublicInstance.ts","../src/reactivity/src/dep.ts","../src/reactivity/src/effect.ts","../src/reactivity/src/baseHandlers.ts","../src/reactivity/src/reactive.ts","../src/reactivity/src/ref.ts","../src/reactivity/src/computed.ts","../src/runtime-core/component.ts","../src/runtime-core/apiInject.ts","../src/runtime-core/helpers/renderSlot.ts","../src/runtime-core/scheduler.ts","../src/runtime-core/componentRenderUtils.ts","../src/runtime-core/renderer.ts","../src/runtime-dom/index.ts","../src/compiler-core/src/runtimeHelpers.ts","../src/compiler-core/src/codegen.ts","../src/compiler-core/src/parse.ts","../src/compiler-core/src/transform.ts","../src/compiler-core/src/transforms/transformExpression.ts","../src/compiler-core/src/transforms/transformElement.ts","../src/compiler-core/src/compile.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["debug"],"mappings":"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"} \ No newline at end of file diff --git a/lib/mini-vue.esm.js b/lib/mini-vue.esm.js index b745c82..7973914 100644 --- a/lib/mini-vue.esm.js +++ b/lib/mini-vue.esm.js @@ -1110,6 +1110,7 @@ var runtimeDom = /*#__PURE__*/Object.freeze({ provide: provide, renderSlot: renderSlot, createTextVNode: createTextVNode, + createElementVNode: createVNode, createRenderer: createRenderer, toDisplayString: toDisplayString, h: h, @@ -1117,8 +1118,10 @@ var runtimeDom = /*#__PURE__*/Object.freeze({ }); const TO_DISPLAY_STRING = Symbol(`toDisplayString`); +const CREATE_ELEMENT_VNODE = Symbol("createElementVNode"); const helperNameMap = { [TO_DISPLAY_STRING]: "toDisplayString", + [CREATE_ELEMENT_VNODE]: "createElementVNode" }; function generate(ast, options = {}) { @@ -1162,8 +1165,26 @@ function genNode(node, context) { case 3: genExpression(node, context); break; + case 4: + genElement(node, context); + break; + case 0: + genText(node, context); + break; } } +function genText(node, context) { + const { push } = context; + push(`'${node.content}'+`); +} +function genElement(node, context) { + const { push, helper } = context; + push(`${helper(CREATE_ELEMENT_VNODE)}("${node.tag}", {}, `); + node.children.forEach((n) => { + genNode(n, context); + }); + push(`)`); +} function genExpression(node, context) { context.push(node.content, node); } @@ -1386,10 +1407,16 @@ function processExpression(node) { return node; } +function transformElement(node, context) { + if (node.type === 4) { + context.helper(CREATE_ELEMENT_VNODE); + } +} + function baseCompile(template, options) { const ast = baseParse(template); transform(ast, Object.assign(options, { - nodeTransforms: [transformExpression], + nodeTransforms: [transformExpression, transformElement], })); return generate(ast); } @@ -1401,5 +1428,5 @@ function compileToFunction(template, options = {}) { } registerRuntimeCompiler(compileToFunction); -export { computed, createApp, createAppAPI, createRenderer, createTextVNode, effect, getCurrentInstance, h, inject, isProxy, isReactive, isReadonly, isRef, provide, proxyRefs, reactive, readonly, ref, registerRuntimeCompiler, renderSlot, shallowReadonly, stop, toDisplayString, unRef }; +export { computed, createApp, createAppAPI, createVNode as createElementVNode, createRenderer, createTextVNode, effect, getCurrentInstance, h, inject, isProxy, isReactive, isReadonly, isRef, provide, proxyRefs, reactive, readonly, ref, registerRuntimeCompiler, renderSlot, shallowReadonly, stop, toDisplayString, unRef }; //# sourceMappingURL=mini-vue.esm.js.map diff --git a/lib/mini-vue.esm.js.map b/lib/mini-vue.esm.js.map index ba9a618..9ab784c 100644 --- a/lib/mini-vue.esm.js.map +++ b/lib/mini-vue.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"mini-vue.esm.js","sources":["../src/mini-core/LanguageTranslator.ts","../src/mini-core/Debug.ts","../src/mini-core/index.ts","../src/shared/shapeFlags.ts","../src/shared/toDisplayString.ts","../src/shared/index.ts","../src/runtime-core/vnode.ts","../src/runtime-core/h.ts","../src/runtime-core/createApp.ts","../src/runtime-core/componentProps.ts","../src/runtime-core/componentSlots.ts","../src/runtime-core/componentEmits.ts","../src/runtime-core/componentPublicInstance.ts","../src/reactivity/src/dep.ts","../src/reactivity/src/effect.ts","../src/reactivity/src/baseHandlers.ts","../src/reactivity/src/reactive.ts","../src/reactivity/src/ref.ts","../src/reactivity/src/computed.ts","../src/runtime-core/component.ts","../src/runtime-core/apiInject.ts","../src/runtime-core/helpers/renderSlot.ts","../src/runtime-core/scheduler.ts","../src/runtime-core/componentRenderUtils.ts","../src/runtime-core/renderer.ts","../src/runtime-dom/index.ts","../src/compiler-core/src/runtimeHelpers.ts","../src/compiler-core/src/codegen.ts","../src/compiler-core/src/parse.ts","../src/compiler-core/src/transform.ts","../src/compiler-core/src/transforms/transformExpression.ts","../src/compiler-core/src/compile.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["debug"],"mappings":"AAIA,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,OAAO;IACX,UAAU,EAAE,qBAAqB;CAClC,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,IAAI;CACZ,CAAC;MAEmB,kBAAkB;IAErC;QACE,IAAI,CAAC,eAAe,GAA2B,IAAI,CAAC;KAErD;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,eAAe,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;KACxD;IAED,UAAU,CAAC,IAAI;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;KAC/B;;;MCxBkB,KAAK;IAExB,YAAY,kBAAkB;QAE5B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;KAC9C;IAED,QAAQ,CAAC,IAAI;QACX,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAC5B,MAAM,CAAC,OAAO,EACd,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAC5D,WAAW,CACZ,CAAC;KACH;;;ACXH,MAAMA,OAAK,GAAG,IAAI,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;AAClD,MAAM,CAAC,KAAK,GAAGA,OAAK;;ACLpB,IAAkB,UAWf;AAXH,WAAkB,UAAU;IAExB,iDAAW,CAAA;IAEX,uEAA2B,CAAA;IAE3B,6DAAsB,CAAA;IAEtB,gEAAuB,CAAA;IAEvB,gEAAuB,CAAA;AACzB,CAAC,EAXe,UAAU,KAAV,UAAU;;MCDf,eAAe,GAAG,CAAC,GAAG;IACjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB;;ACCO,MAAM,QAAQ,GAAG,CAAC,GAAG;IAC1B,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,QAAQ,CAAC;AAKrB,MAAM,QAAQ,GAAG,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AAEK,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAG7B,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAElC,UAAU,CAAC,KAAK,EAAE,QAAQ;IACxC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;SAEe,MAAM,CAAC,GAAG,EAAE,GAAG;IAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAMM,MAAM,UAAU,GAAG,CAAC,GAAW,KACpC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAMtC,MAAM,YAAY,GAAG,CAAC,GAAW,KACtC,GAAG,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;;ACvC5B,MAAM,WAAW,GAAG,UACzB,IAAS,EACT,KAAW,EACX,QAA8B;IAQ9B,MAAM,KAAK,GAAG;QACZ,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,IAAI;QACf,GAAG,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG;QACf,IAAI;QACJ,KAAK,EAAE,KAAK,IAAI,EAAE;QAClB,QAAQ;QACR,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC;KAC9B,CAAC;IAGF,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,KAAK,CAAC,SAAS,MAA6B,CAAC;KAC9C;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QACvC,KAAK,CAAC,SAAS,KAA4B,CAAC;KAC7C;IAED,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEnC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;SAEc,iBAAiB,CAAC,KAAK,EAAE,QAAQ;IAC/C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAIhC,IAAI,KAAK,CAAC,SAAS,IAAqB,EAAE,CAEzC;aAAM;YAEL,KAAK,CAAC,SAAS,MAA6B,CAAC;SAC9C;KACF;AACH,CAAC;AAEM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;SAK3B,eAAe,CAAC,OAAe,GAAG;IAChD,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;SAIe,cAAc,CAAC,KAAK;IAElC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC1D,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KAC/C;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAGD,SAAS,YAAY,CAAC,IAAS;IAC7B,OAAO,OAAO,IAAI,KAAK,QAAQ;;WAEE,CAAC;AACpC;;MC1Ea,CAAC,GAAG,CAAC,IAAY,EAAE,KAAU,EAAE,QAA6B;IACvE,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5C;;SCDgB,YAAY,CAAC,MAAM;IACjC,OAAO,SAAS,SAAS,CAAC,aAAa;QACrC,MAAM,GAAG,GAAG;YACV,UAAU,EAAE,aAAa;YACzB,KAAK,CAAC,aAAa;gBACjB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBACvC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;aAC9B;SACF,CAAC;QAEF,OAAO,GAAG,CAAC;KACZ,CAAC;AACJ;;SChBgB,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAQzB,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC5B;;SCTgB,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEzB,IAAI,KAAK,CAAC,SAAS,KAA4B,EAAE;QAC/C,oBAAoB,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC;KACvD;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAK;IAE/B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,KAAK;IAC3C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAK/B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D;KACF;AACH,CAAC;;SC1Be,IAAI,CAAC,QAAQ,EAAE,KAAa,EAAE,GAAG,OAAO;IAGtD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAI7B,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;KACrB;AACH;;ACXA,MAAM,mBAAmB,GAAG;IAG1B,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI;IACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK;IACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK;CACvB,CAAC;AAGK,MAAM,2BAA2B,GAAG;IACzC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG;QAItB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QAE/C,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAGlB,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;gBAC3B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;aACxB;iBAAM,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAG7B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;aACnB;SACF;QAED,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;SAC/B;KACF;IAED,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK;QAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAEhC,IAAI,UAAU,KAAK,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;YAEhD,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACzB;QAED,OAAO,IAAI,CAAA;KACZ;CACF;;SChDe,SAAS,CAAC,OAAQ;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb;;ACDA,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC;AAC1B,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;MAGnB,cAAc;IAIzB,YAAmB,EAAE,EAAS,SAAU;QAArB,OAAE,GAAF,EAAE,CAAA;QAAS,cAAS,GAAT,SAAS,CAAC;QAHxC,WAAM,GAAG,IAAI,CAAC;QACd,SAAI,GAAG,EAAE,CAAC;QAGR,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;KACrC;IAED,GAAG;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAQnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;SAClB;QAID,WAAW,GAAG,IAAI,CAAC;QAInB,YAAY,GAAG,IAAW,CAAC;QAE3B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAEzB,WAAW,GAAG,KAAK,CAAC;QACpB,YAAY,GAAG,SAAS,CAAC;QAEzB,OAAO,MAAM,CAAC;KACf;IAED,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,EAAE;YAGf,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;YACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;KACF;CACF;AAED,SAAS,aAAa,CAAC,MAAM;IAG3B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG;QACtB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACpB,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACzB,CAAC;SAEe,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE;IACrC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;IAIvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,EAAE,CAAC;IAId,MAAM,MAAM,GAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC;SAEe,IAAI,CAAC,MAAM;IACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;SAEe,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG;IACrC,IAAI,CAAC,UAAU,EAAE,EAAE;QACjB,OAAO;KACR;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,SAAS,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC;IAGrE,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE;QAEZ,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC;IAED,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,SAAS,EAAE,CAAC;QAElB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACvB;IAED,YAAY,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;SAEe,YAAY,CAAC,GAAG;IAU9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QAC1B,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrB,YAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACtC;AACH,CAAC;SAEe,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG;IAGvC,IAAI,IAAI,GAAe,EAAE,CAAC;IAG1B,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAI,CAAC,OAAO;QAAE,OAAO;IAIrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAG7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG;QAEf,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;KACtB,CAAC,CAAC;IAGH,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC;SAEe,UAAU;IACxB,OAAO,WAAW,IAAI,YAAY,KAAK,SAAS,CAAC;AACnD,CAAC;SAEe,cAAc,CAAC,GAAG;IAEhC,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE;QACxB,IAAI,MAAM,CAAC,SAAS,EAAE;YAIpB,MAAM,CAAC,SAAS,EAAE,CAAC;SACpB;aAAM;YACL,MAAM,CAAC,GAAG,EAAE,CAAC;SACd;KACF;AACH;;ACjKA,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAC3B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;AAC3B,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACvC,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEpD,SAAS,YAAY,CAAC,UAAU,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK;IACvD,OAAO,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ;QACvC,MAAM,oBAAoB,GAAG,MAC3B,GAAG,cAAsB,IAAI,QAAQ,KAAK,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpE,MAAM,oBAAoB,GAAG,MAC3B,GAAG,cAAsB,IAAI,QAAQ,KAAK,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpE,MAAM,2BAA2B,GAAG,MAClC,GAAG,cAAsB,IAAI,QAAQ,KAAK,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE3E,IAAI,GAAG,qBAA8B,EAAE;YACrC,OAAO,CAAC,UAAU,CAAC;SACpB;aAAM,IAAI,GAAG,qBAA8B,EAAE;YAC5C,OAAO,UAAU,CAAC;SACnB;aAAM,IACL,oBAAoB,EAAE;YACtB,oBAAoB,EAAE;YACtB,2BAA2B,EAAE,EAC7B;YACA,OAAO,MAAM,CAAC;SACf;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAM/C,IAAI,CAAC,UAAU,EAAE;YAEf,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC3B;QAED,IAAI,OAAO,EAAE;YACX,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;YAIjB,OAAO,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;SACnD;QAED,OAAO,GAAG,CAAC;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAGzD,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5B,OAAO,MAAM,CAAC;KACf,CAAC;AACJ,CAAC;AAEM,MAAM,gBAAgB,GAAG;IAC9B,GAAG,EAAE,WAAW;IAChB,GAAG,CAAC,MAAM,EAAE,GAAG;QAEb,OAAO,CAAC,IAAI,CACV,yBAAyB,MAAM,CAAC,GAAG,CAAC,+BAA+B,EACnE,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;KACb;CACF,CAAC;AAEK,MAAM,eAAe,GAAG;IAC7B,GAAG;IACH,GAAG;CACJ,CAAC;AAEK,MAAM,uBAAuB,GAAG;IACrC,GAAG,EAAE,kBAAkB;IACvB,GAAG,CAAC,MAAM,EAAE,GAAG;QAEb,OAAO,CAAC,IAAI,CACV,yBAAyB,MAAM,CAAC,GAAG,CAAC,+BAA+B,EACnE,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC;KACb;CACF;;ACjGM,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAE,CAAC;AAEhD,IAAkB,aAIjB;AAJD,WAAkB,aAAa;IAC7B,+CAA8B,CAAA;IAC9B,+CAA8B,CAAA;IAC9B,gCAAe,CAAA;AACjB,CAAC,EAJiB,aAAa,KAAb,aAAa,QAI9B;SAEe,QAAQ,CAAC,MAAM;IAC7B,OAAO,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AACpE,CAAC;SAEe,QAAQ,CAAC,MAAM;IAC7B,OAAO,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;AACrE,CAAC;SAEe,eAAe,CAAC,MAAM;IACpC,OAAO,oBAAoB,CACzB,MAAM,EACN,kBAAkB,EAClB,uBAAuB,CACxB,CAAC;AACJ,CAAC;SAEe,OAAO,CAAC,KAAK;IAC3B,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;SAEe,UAAU,CAAC,KAAK;IAC9B,OAAO,CAAC,CAAC,KAAK,kBAA2B,CAAC;AAC5C,CAAC;SAEe,UAAU,CAAC,KAAK;IAK9B,OAAO,CAAC,CAAC,KAAK,kBAA2B,CAAC;AAC5C,CAAC;AAgBD,SAAS,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY;IAM1D,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,aAAa,EAAE;QACjB,OAAO,aAAa,CAAC;KACtB;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAG9C,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC;AACf;;MCzEa,OAAO;IAMlB,YAAY,KAAK;QAFV,cAAS,GAAG,IAAI,CAAC;QAGtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAGvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC;KACxB;IAED,IAAI,KAAK;QAEP,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IAAI,KAAK,CAAC,QAAQ;QAGhB,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YAExC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAE1B,eAAe,CAAC,IAAI,CAAC,CAAC;SACvB;KACF;CACF;SAEe,GAAG,CAAC,KAAK;IACvB,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,OAAO,CAAC,KAAK;IACpB,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACnD,CAAC;AAED,SAAS,SAAS,CAAC,KAAK;IACtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC;AACjB,CAAC;SAEe,eAAe,CAAC,GAAG;IACjC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;SAEe,aAAa,CAAC,GAAG;IAC/B,IAAI,UAAU,EAAE,EAAE;QAChB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;AACH,CAAC;AAQD,MAAM,qBAAqB,GAAG;IAC5B,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ;QAGvB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;KAClD;IACD,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACpC,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE;SACpC;aAAM;YACL,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClD;KACF;CACF,CAAC;SAKc,SAAS,CAAC,cAAc;IACtC,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AAC1D,CAAC;SAGe,KAAK,CAAC,GAAG;IACvB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;AACtC,CAAC;SAEe,KAAK,CAAC,KAAK;IACzB,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3B;;MC9Fa,eAAe;IAO1B,YAAY,MAAM;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE;YAIvC,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YAExB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,eAAe,CAAC,IAAI,CAAC,CAAC;SACvB,CAAC,CAAC;KACJ;IAED,IAAI,KAAK;QAEP,aAAa,CAAC,IAAI,CAAC,CAAC;QAKpB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;CACF;SAEe,QAAQ,CAAC,MAAM;IAC7B,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC;;SCvCgB,uBAAuB,CAAC,KAAK,EAAE,MAAM;IACnD,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK;QACL,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,EAAE;QACT,MAAM;QACN,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,EAAE;QACvC,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,GAAG,EAAE,EAAE;QACP,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,SAAQ;KACf,CAAC;IAIF,QAAQ,CAAC,GAAG,GAAG;QACb,CAAC,EAAE,QAAQ;KACZ,CAAC;IAKF,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAQ,CAAC;IAEjD,OAAO,QAAQ,CAAC;AAClB,CAAC;SAEe,cAAc,CAAC,QAAQ;IAGrC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3C,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE3B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAO9B,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAQ;IAGtC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAKxB,QAAQ,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;IAGtE,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;IAIhC,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC5B,IAAI,KAAK,EAAE;QAGT,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAE7B,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,WAAW,GACf,KAAK,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;QAEhE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAGzB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;KAC1C;SAAM;QACL,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KAChC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAQ;IAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,SAAQ;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAQ,EAAE,WAAW;IAG9C,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;QAIrC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC;KAC/B;SAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QAS1C,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;KAC9C;IAED,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAQ;IAIpC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;IAEhC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;QAEpB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAChC,IAAI,SAAS,CAAC,QAAQ,EAAE;gBAEtB,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;gBACpC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;aACtC;SACF;QAED,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;KACpC;AAGH,CAAC;AAQD,IAAI,eAAe,GAAG,EAAE,CAAC;SAET,kBAAkB;IAChC,OAAO,eAAe,CAAC;AACzB,CAAC;SAEe,kBAAkB,CAAC,QAAQ;IACzC,eAAe,GAAG,QAAQ,CAAC;AAC7B,CAAC;AAED,IAAI,OAAO,CAAC;SACI,uBAAuB,CAAC,QAAQ;IAC9C,OAAO,GAAG,QAAQ,CAAC;AACrB;;SC/JgB,OAAO,CAAC,GAAG,EAAE,KAAK;;IAChC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,IAAI,eAAe,EAAE;QACnB,IAAI,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QAEnC,MAAM,cAAc,GAAG,MAAA,eAAe,CAAC,MAAM,0CAAE,QAAQ,CAAC;QASxD,IAAI,cAAc,KAAK,QAAQ,EAAE;YAC/B,QAAQ,GAAG,eAAe,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACrE;QAED,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KACvB;AACH,CAAC;SAEe,MAAM,CAAC,GAAG,EAAE,YAAY;;IACtC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,IAAI,eAAe,EAAE;QACnB,MAAM,QAAQ,GAAG,MAAA,eAAe,CAAC,MAAM,0CAAE,QAAQ,CAAC;QAElD,IAAI,GAAG,IAAI,QAAQ,EAAE;YACnB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;SACtB;aAAM,IAAI,YAAY,EAAE;YACvB,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;gBACtC,OAAO,YAAY,EAAE,CAAC;aACvB;YACD,OAAO,YAAY,CAAC;SACrB;KACF;AACH;;SCzBgB,UAAU,CAAC,KAAK,EAAE,IAAY,EAAE,KAAK,GAAG,EAAE;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,EAAE;QAIR,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;KAC/C;AACH;;ACzBA,MAAM,KAAK,GAAU,EAAE,CAAC;AAExB,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AAC5B,IAAI,cAAc,GAAG,KAAK,CAAC;SAEX,QAAQ,CAAC,EAAE;IACzB,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;SAEe,QAAQ,CAAC,GAAG;IAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhB,UAAU,EAAE,CAAC;KACd;AACH,CAAC;AAED,SAAS,UAAU;IAOjB,IAAI,cAAc;QAAE,OAAO;IAC3B,cAAc,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,SAAS;IAChB,cAAc,GAAG,KAAK,CAAC;IACvB,IAAI,GAAG,CAAC;IACR,QAAQ,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG;QAC5B,IAAI,GAAG,EAAE;YACP,GAAG,EAAE,CAAC;SACP;KACF;AACH;;SCrCgB,qBAAqB,CAAC,SAAS,EAAE,SAAS;IACxD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAOvC,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,CAAC,CAAC,SAAS,CAAC;KACpB;IAED,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IAID,OAAO,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,SAAS,EAAE,SAAS;IAI3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;QACrD,OAAO,IAAI,CAAC;KACb;IAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf;;SCnCgB,cAAc,CAAC,OAAO;IACpC,MAAM,EACJ,aAAa,EAAE,iBAAiB,EAChC,cAAc,EAAE,kBAAkB,EAClC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,cAAc,GAC3B,GAAG,OAAO,CAAC;IAEZ,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS;QAC9B,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;KAC/B,CAAC;IAEF,SAAS,KAAK,CACZ,EAAE,EACF,EAAE,EACF,SAAS,GAAG,IAAI,EAChB,MAAM,GAAG,IAAI,EACb,eAAe,GAAG,IAAI;QAItB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QAC/B,QAAQ,IAAI;YACV,KAAK,IAAI;gBACP,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC/B,MAAM;YAER,KAAK,QAAQ;gBACX,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBACnC,MAAM;YACR;gBAEE,IAAI,SAAS,IAAqB,EAAE;oBAClC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC1B,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;iBAC5D;qBAAM,IAAI,SAAS,IAAgC,EAAE;oBACpD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC5B,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;iBACtD;SACJ;KACF;IAED,SAAS,eAAe,CAAC,EAAO,EAAE,EAAO,EAAE,SAAc;QAEvD,IAAI,CAAC,EAAE,EAAE;YAEP,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SACvC;KACF;IAED,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS;QACpC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,EAAE,KAAK,IAAI,EAAE;YAGf,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9B,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,QAAkB,CAAC,GAAG,SAAS,CAAC,CAAC;SACxE;aAAM;YAML,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAG,CAAC,CAAC;YAC5B,IAAI,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,QAAkB,CAAC,CAAC;aACxC;SACF;KACF;IAED,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe;QAChE,IAAI,CAAC,EAAE,EAAE;YACP,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;SACrC;aAAM;YAEL,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;SAC3D;KACF;IAED,SAAS,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe;QAC/D,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAEhC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAG5B,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAG3B,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAGnC,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;KACpD;IAED,SAAS,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ;QAQxC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;YAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,QAAQ,KAAK,QAAQ,EAAE;gBAGzB,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC5C;SACF;QAMD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;YAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC;YACtB,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE;gBAItB,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC5C;SACF;KACF;IAED,SAAS,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe;QAC/D,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QACtD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QAKvC,IAAI,SAAS,IAA2B,EAAE;YACxC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,kBAAkB,CAAC,SAAS,EAAE,EAAY,CAAC,CAAC;aAC7C;SACF;aAAM;YAIL,IAAI,aAAa,KAA4B,EAAE;gBAC7C,IAAI,SAAS,KAA4B,EAAE;oBACzC,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;iBAChE;aACF;SACF;KACF;IAED,SAAS,kBAAkB,CACzB,EAAS,EACT,EAAS,EACT,SAAS,EACT,YAAY,EACZ,eAAe;QAEf,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhB,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC;SACjD,CAAC;QAEF,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;gBAC1C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC;gBACtC,MAAM;aACP;YAED,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;YACtE,CAAC,EAAE,CAAC;SACL;QAED,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;YAEzB,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAEzB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;gBAC1C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,EAAE,CAAC,CAAC;gBACtC,MAAM;aACP;YACD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACrD,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;YACtE,EAAE,EAAE,CAAC;YACL,EAAE,EAAE,CAAC;SACN;QAED,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;YAQrB,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC;YAC5D,OAAO,CAAC,IAAI,EAAE,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3C,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;gBACvD,CAAC,EAAE,CAAC;aACL;SACF;aAAM,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;YAG5B,OAAO,CAAC,IAAI,EAAE,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3C,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;aACL;SACF;aAAM;YAML,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;YACnC,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,gBAAgB,GAAG,CAAC,CAAC;YAGzB,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC7B,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxB,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACxC;YAGD,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,IAAI,OAAO,GAAG,CAAC,CAAC;YAGhB,MAAM,qBAAqB,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;gBAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAKnE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACzB,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAIxB,IAAI,OAAO,IAAI,WAAW,EAAE;oBAC1B,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACzB,SAAS;iBACV;gBAED,IAAI,QAAQ,CAAC;gBACb,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE;oBAGzB,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;iBAChD;qBAAM;oBAGL,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;wBAC7B,IAAI,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;4BACrC,QAAQ,GAAG,CAAC,CAAC;4BACb,MAAM;yBACP;qBACF;iBACF;gBAID,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAE1B,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iBAC1B;qBAAM;oBAEL,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAGvB,qBAAqB,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAK7C,IAAI,QAAQ,IAAI,gBAAgB,EAAE;wBAChC,gBAAgB,GAAG,QAAQ,CAAC;qBAC7B;yBAAM;wBACL,KAAK,GAAG,IAAI,CAAC;qBACd;oBAED,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;oBACjE,OAAO,EAAE,CAAC;iBACX;aACF;YASD,MAAM,0BAA0B,GAAG,KAAK;kBACpC,WAAW,CAAC,qBAAqB,CAAC;kBAClC,EAAE,CAAC;YACP,IAAI,CAAC,GAAG,0BAA0B,CAAC,MAAM,GAAG,CAAC,CAAC;YAQ9C,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAEzC,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzB,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAGhC,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC;gBAExE,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAGlC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;iBAC5D;qBAAM,IAAI,KAAK,EAAE;oBAIhB,IAAI,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBAEhD,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;qBAC7C;yBAAM;wBAGL,CAAC,EAAE,CAAC;qBACL;iBACF;aACF;SACF;KACF;IAED,SAAS,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM;QAC5C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAGnC,MAAM,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAGtD,IAAI,SAAS,IAA2B,EAAE;YAMxC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;SACxC;aAAM,IAAI,SAAS,KAA4B,EAAE;YAOhD,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACnC;QAGD,IAAI,KAAK,EAAE;YACT,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;gBAIvB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;aACvC;SACF;QAID,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAG1C,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAIlC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;KACrC;IAED,SAAS,aAAa,CAAC,QAAQ,EAAE,SAAS;QACxC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU;YAI1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ;IAED,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe;QAE1D,IAAI,CAAC,EAAE,EAAE;YAEP,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;SAChD;aAAM;YACL,eAAe,CAAC,EAAE,EAAE,EAAa,CAAC,CAAC;SACpC;KACF;IAGD,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS;QACxC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5B,MAAM,QAAQ,IAAI,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;YACjC,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;YAEnC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;YAOnB,QAAQ,CAAC,MAAM,EAAE,CAAC;SACnB;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;YAEpC,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;YAC5B,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YACd,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;SACrB;KACF;IAED,SAAS,cAAc,CAAC,YAAY,EAAE,SAAS,EAAE,eAAe;QAE9D,MAAM,QAAQ,IAAI,YAAY,CAAC,SAAS,GAAG,uBAAuB,CAChE,YAAY,EACZ,eAAe,CAChB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5C,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEzB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;KACtD;IAED,SAAS,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS;QAa1D,SAAS,iBAAiB;YACxB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;gBAKvB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,CAAC;gBAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAElC,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,GAAG,cAAc,CAChD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7C,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAGhC,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;gBAYhE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAEhD,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;gBAE7B,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC;gBACrD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;aAC3B;iBAAM;gBAGL,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;gBAE5C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;gBAIjC,IAAI,IAAI,EAAE;oBAER,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;oBACnB,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;iBAC1C;gBAED,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAClC,MAAM,QAAQ,GAAG,cAAc,CAC7B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAC7C,CAAC;gBAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;gBAClC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAG5B,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,8BAA8B,CAAC,CAAC;gBAGjE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAGvD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,CAAC;aAC7D;SACF;QAQD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE;YAC1C,SAAS,EAAE;gBAGT,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC3B;SACF,CAAC,CAAC;KACJ;IAED,SAAS,wBAAwB,CAAC,QAAQ,EAAE,SAAS;QAKnD,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC;QAG/B,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;QAC3B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAErB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAClC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAG5B;IAED,OAAO;QACL,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAa;IAChC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,IAAI,KAAK,CAAC,EAAE;YACd,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;gBACjB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACf,SAAS;aACV;YACD,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,EAAE;gBACZ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;oBACzB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACX;qBAAM;oBACL,CAAC,GAAG,CAAC,CAAC;iBACP;aACF;YACD,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,EAAE;oBACT,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBACtB;gBACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACf;SACF;KACF;IACD,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAClB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;QACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACV;IACD,OAAO,MAAM,CAAC;AAChB;;AC5nBA,SAAS,aAAa,CAAC,IAAI;IACzB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,IAAI;IACtB,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI;IACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,EAAE,IAAI;IAC9B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACxC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS;IAI7C,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,SAAS,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,QAAQ,EAAE,CAAC,CAAC;IAE7C,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;QAMb,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,SAAS,IAAI,eAAe,EAAE;YAGhC,eAAe,CAAC,KAAK,GAAG,SAAS,CAAC;SACnC;aAAM;YACL,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,SAAS,EAAE;gBACb,MAAM,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC5C,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aACzC;iBAAM;gBACL,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBACnD,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;aAC3B;SACF;KACF;SAAM;QACL,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,EAAE,EAAE;YAC1C,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SACzB;aAAM;YACL,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SACjC;KACF;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,MAAM,CAAC,KAAK;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;IAChC,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAC3B;AACH,CAAC;AAED,IAAI,QAAQ,CAAC;AAEb,SAAS,cAAc;IAErB,QACE,QAAQ;SACP,QAAQ,GAAG,cAAc,CAAC;YACzB,aAAa;YACb,UAAU;YACV,OAAO;YACP,cAAc;YACd,SAAS;YACT,MAAM;YACN,MAAM;SACP,CAAC,CAAC,EACH;AACJ,CAAC;MAEY,SAAS,GAAG,CAAC,GAAG,IAAI;IAC/B,OAAO,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7C;;;;;;;;;;;;;;;;;AChGO,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEpD,MAAM,aAAa,GAAG;IAC3B,CAAC,iBAAiB,GAAG,iBAAiB;CACvC;;SCDe,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE;IAExC,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAI/B,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACjC;SAAM;QACL,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACnC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC;IAE9B,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAItB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,YAAY,YAAY,IAAI,SAAS,KAAK,CAAC,CAAC;IAGjD,IAAI,CAAC,SAAS,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAElC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAQ,EAAE,OAAY;IACjD,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACrD,MAAM,UAAU,GAAG,iBAAiB,CAAC;IAErC,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAExE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,IAAI,CACF;kBACY,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,UAAU;;OAEnE,CACF,CAAC;KACH;IAED,OAAO,EAAE,CAAC;IACV,IAAI,CAAC,SAAS,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,IAAS,EAAE,OAAY;IAItC,QAAQ,IAAI,CAAC,IAAI;QACf;YACE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM;QACR;YACE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7B,MAAM;KAIT;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAS,EAAE,OAAY;IAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAS,EAAE,OAAY;IAC/C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,IAAI,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO;IAErC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAErD,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE;QAGtB,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC,OAAO;aAChC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAE5D,IAAI,CAAC,IAAI,CAAC,CAAC;KACZ;IAED,OAAO,EAAE,CAAC;IACV,IAAI,CAAC,SAAS,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAQ,EACR,EAAE,iBAAiB,GAAG,KAAK,EAAE,iBAAiB,GAAG,KAAK,EAAE,IAAI,GAAG,UAAU,EAAE;IAE3E,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,EAAE;QACR,IAAI;QACJ,iBAAiB;QACjB,iBAAiB;QACjB,MAAM,CAAC,GAAG;YACR,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;SACjC;QACD,IAAI,CAAC,IAAI;YACP,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;SACtB;QACD,OAAO;YAGL,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;SACtB;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB;;AC1HA,IAAW,OAGV;AAHD,WAAW,OAAO;IAChB,uCAAK,CAAA;IACL,mCAAG,CAAA;AACL,CAAC,EAHU,OAAO,KAAP,OAAO,QAGjB;SAEe,SAAS,CAAC,OAAe;IACvC,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAO;IAClC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO;QACL,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAO;IAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAQ,EAAE,CAAC;IAEtB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACtB,IAAI,IAAI,CAAC;QACT,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAEzB,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;YAEvB,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACpC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACvB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAEhB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBAGvB,QAAQ,CAAC,OAAO,IAAc,CAAC;oBAE/B,SAAS;iBACV;aACF;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC9B,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;aAC9B;SACF;QAED,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;SAC3B;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,OAAY;IAEzB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,OAAO;IAI3B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAgB,CAAC;IAEjD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAIxC,IAAI,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;QACrD,QAAQ,CAAC,OAAO,IAAc,CAAC;KAGhC;IAED,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE5B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,GAAW;IAGvD,QACE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,EAChE;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,OAAY,EAAE,IAAa;IAG3C,MAAM,KAAK,GAAQ,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAIrB,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAGpC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtB,IAAI,IAAI,MAAgB;QAAE,OAAO;IAEjC,IAAI,OAAO,IAAuB,CAAC;IAEnC,OAAO;QACL,IAAI,GAAmB;QACvB,GAAG;QACH,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAY;IAOtC,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,MAAM,cAAc,GAAG,IAAI,CAAC;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CACvC,cAAc,EACd,aAAa,CAAC,MAAM,CACrB,CAAC;IAKF,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtB,MAAM,gBAAgB,GAAG,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IAGtC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO;QACL,IAAI,GAAyB;QAC7B,OAAO,EAAE;YACP,IAAI,GAA6B;YACjC,OAAO;SACR;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAAO;IACxB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAMhC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,QAAQ,GAAG,KAAK,CAAC;SAClB;KACF;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEjD,OAAO;QACL,IAAI,GAAgB;QACpB,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAY,EAAE,MAAc;IACjD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAG3B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAEhD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,OAAO,EAAE,kBAAkB;IAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,QAAQ;IAC1B,OAAO;QACL,IAAI,GAAgB;QACpB,QAAQ;QACR,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,YAAoB;IACtD,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACzC;;SCxMgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE;IAG1C,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAGtD,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE5B,iBAAiB,CAAC,IAAa,CAAC,CAAC;IAEjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,IAAS,EAAE,OAAO;IACtC,MAAM,IAAI,GAAc,IAAI,CAAC,IAAI,CAAC;IAKlC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAEpC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC1B;IAED,QAAQ,IAAI;QACV;YAEE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAClC,MAAM;QAER,OAAoB;QACpB;YACE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM;KAIT;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW,EAAE,OAAY;IAEjD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI;QAE3B,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAI,EAAE,OAAO;IAC3C,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5C,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,MAAM,CAAC,IAAI;YAIT,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;SACtC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAS,EAAE,OAAY;IAChD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAI1B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3B;;SC7EgB,mBAAmB,CAAC,IAAI;IACtC,IAAI,IAAI,CAAC,IAAI,MAA4B,EAAE;QACzC,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChD;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAI;IAC7B,IAAI,CAAC,OAAO,GAAG,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IAEtC,OAAO,IAAI,CAAA;AACb;;SCPgB,WAAW,CAAC,QAAQ,EAAE,OAAO;IAE3C,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEhC,SAAS,CACP,GAAG,EACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACrB,cAAc,EAAE,CAAC,mBAAmB,CAAC;KACtC,CAAC,CACH,CAAC;IAGF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvB;;ACRA,SAAS,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAIhD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;IAErD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uBAAuB,CAAC,iBAAiB,CAAC;;;;"} \ No newline at end of file +{"version":3,"file":"mini-vue.esm.js","sources":["../src/mini-core/LanguageTranslator.ts","../src/mini-core/Debug.ts","../src/mini-core/index.ts","../src/shared/shapeFlags.ts","../src/shared/toDisplayString.ts","../src/shared/index.ts","../src/runtime-core/vnode.ts","../src/runtime-core/h.ts","../src/runtime-core/createApp.ts","../src/runtime-core/componentProps.ts","../src/runtime-core/componentSlots.ts","../src/runtime-core/componentEmits.ts","../src/runtime-core/componentPublicInstance.ts","../src/reactivity/src/dep.ts","../src/reactivity/src/effect.ts","../src/reactivity/src/baseHandlers.ts","../src/reactivity/src/reactive.ts","../src/reactivity/src/ref.ts","../src/reactivity/src/computed.ts","../src/runtime-core/component.ts","../src/runtime-core/apiInject.ts","../src/runtime-core/helpers/renderSlot.ts","../src/runtime-core/scheduler.ts","../src/runtime-core/componentRenderUtils.ts","../src/runtime-core/renderer.ts","../src/runtime-dom/index.ts","../src/compiler-core/src/runtimeHelpers.ts","../src/compiler-core/src/codegen.ts","../src/compiler-core/src/parse.ts","../src/compiler-core/src/transform.ts","../src/compiler-core/src/transforms/transformExpression.ts","../src/compiler-core/src/transforms/transformElement.ts","../src/compiler-core/src/compile.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["debug"],"mappings":"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"} \ No newline at end of file diff --git a/src/compiler-core/__tests__/codegen.spec.ts b/src/compiler-core/__tests__/codegen.spec.ts index a05bc05..0ed8928 100644 --- a/src/compiler-core/__tests__/codegen.spec.ts +++ b/src/compiler-core/__tests__/codegen.spec.ts @@ -1,14 +1,26 @@ import { generate } from "../src/codegen"; import { baseParse } from "../src/parse"; import { transform } from "../src/transform"; +import { transformElement } from "../src/transforms/transformElement"; import { transformExpression } from "../src/transforms/transformExpression"; test("interpolation module", () => { const ast = baseParse("{{hello}}"); transform(ast, { - nodeTransforms: [transformExpression] + nodeTransforms: [transformExpression], }); const { code } = generate(ast); console.log(code); }); + +test("element and interpolation", () => { + const ast = baseParse("
hi,{{msg}}
"); + transform(ast, { + nodeTransforms: [transformExpression, transformElement], + }); + + const { code } = generate(ast); + console.log(code); + console.log(code.children[0]) +}); diff --git a/src/compiler-core/src/codegen.ts b/src/compiler-core/src/codegen.ts index 7b18dbf..cccb26e 100644 --- a/src/compiler-core/src/codegen.ts +++ b/src/compiler-core/src/codegen.ts @@ -1,5 +1,9 @@ import { NodeTypes } from "./ast"; -import { helperNameMap, TO_DISPLAY_STRING } from "./runtimeHelpers"; +import { + CREATE_ELEMENT_VNODE, + helperNameMap, + TO_DISPLAY_STRING, +} from "./runtimeHelpers"; export function generate(ast, options = {}) { // 先生成 context @@ -65,11 +69,37 @@ function genNode(node: any, context: any) { genExpression(node, context); break; + case NodeTypes.ELEMENT: + genElement(node, context); + break; + + case NodeTypes.TEXT: + genText(node, context); + break; + default: break; } } +function genText(node: any, context: any) { + // Implement + const { push } = context; + + // TODO 是如何处理添加 + 操作符的呢? + push(`'${node.content}'+`); +} + +function genElement(node, context) { + const { push, helper } = context; + + push(`${helper(CREATE_ELEMENT_VNODE)}("${node.tag}", {}, `); + node.children.forEach((n) => { + genNode(n, context); + }); + push(`)`) +} + function genExpression(node: any, context: any) { context.push(node.content, node); } diff --git a/src/compiler-core/src/compile.ts b/src/compiler-core/src/compile.ts index 4c6ecfb..be9dbdf 100644 --- a/src/compiler-core/src/compile.ts +++ b/src/compiler-core/src/compile.ts @@ -2,6 +2,7 @@ import { generate } from "./codegen"; import { baseParse } from "./parse"; import { transform } from "./transform"; import { transformExpression } from "./transforms/transformExpression"; +import { transformElement } from "./transforms/transformElement"; export function baseCompile(template, options) { // 1. 先把 template 也就是字符串 parse 成 ast @@ -10,7 +11,7 @@ export function baseCompile(template, options) { transform( ast, Object.assign(options, { - nodeTransforms: [transformExpression], + nodeTransforms: [transformExpression, transformElement], }) ); diff --git a/src/compiler-core/src/runtimeHelpers.ts b/src/compiler-core/src/runtimeHelpers.ts index 2149c1c..8472e10 100644 --- a/src/compiler-core/src/runtimeHelpers.ts +++ b/src/compiler-core/src/runtimeHelpers.ts @@ -1,5 +1,7 @@ export const TO_DISPLAY_STRING = Symbol(`toDisplayString`); +export const CREATE_ELEMENT_VNODE = Symbol("createElementVNode"); export const helperNameMap = { [TO_DISPLAY_STRING]: "toDisplayString", + [CREATE_ELEMENT_VNODE]: "createElementVNode" }; diff --git a/src/compiler-core/src/transforms/transformElement.ts b/src/compiler-core/src/transforms/transformElement.ts new file mode 100644 index 0000000..e7680a0 --- /dev/null +++ b/src/compiler-core/src/transforms/transformElement.ts @@ -0,0 +1,9 @@ +import { NodeTypes } from "../ast"; +import { CREATE_ELEMENT_VNODE } from "../runtimeHelpers"; + +export function transformElement(node, context) { + if (node.type === NodeTypes.ELEMENT) { + // TODO 没有实现 block 所以这里直接创建 element + context.helper(CREATE_ELEMENT_VNODE); + } +} diff --git a/src/runtime-core/index.ts b/src/runtime-core/index.ts index 4be35f1..da6b441 100644 --- a/src/runtime-core/index.ts +++ b/src/runtime-core/index.ts @@ -3,6 +3,6 @@ export * from "./createApp"; export { getCurrentInstance, registerRuntimeCompiler } from "./component"; export { inject, provide } from "./apiInject"; export { renderSlot } from "./helpers/renderSlot"; -export { createTextVNode } from "./vnode"; +export { createTextVNode, createElementVNode } from "./vnode"; export { createRenderer } from "./renderer"; export { toDisplayString } from "../shared"; diff --git a/src/runtime-core/vnode.ts b/src/runtime-core/vnode.ts index 4ae8045..a582d85 100644 --- a/src/runtime-core/vnode.ts +++ b/src/runtime-core/vnode.ts @@ -1,5 +1,7 @@ import { ShapeFlags } from "../shared"; +export { createVNode as createElementVNode } + export const createVNode = function ( type: any, props?: any,